/*!
Theme Name: sunyu
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: sunyu
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

sunyu is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
html {
  color: #272d2e;
  background: #fff;
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  position: relative;
  width: 100%;
  padding: 0;
  font-family: "Oswald", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  text-align: left;
  line-height: 1.6;
  letter-spacing: 0.08em;
  -webkit-print-color-adjust: exact;
}
body.fixed {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  overflow: hidden;
  z-index: -1;
}

.wrapper-lg {
  width: 1440px;
  max-width: 94%;
  margin: 0 auto;
}

.wrapper-md {
  width: 1080px;
  max-width: 94%;
  margin: 0 auto;
}

.sec-wrapper {
  position: relative;
  margin: 8% auto 0;
  z-index: 1;
}

.hr-base {
  position: relative;
  padding-bottom: 8%;
}
.hr-base::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  opacity: 0.5;
  background: rgb(119, 119, 119);
  background: -webkit-gradient(linear, left top, right top, from(rgb(255, 255, 255)), color-stop(50%, rgb(119, 119, 119)), to(rgb(255, 255, 255)));
  background: linear-gradient(90deg, rgb(255, 255, 255) 0%, rgb(119, 119, 119) 50%, rgb(255, 255, 255) 100%);
}
br.sp {
  display: none;
}

p {
  line-height: 2;
}

.fw-bold {
  font-weight: 700;
}

img,
svg,
video {
  display: inline-block;
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  -o-object-fit: cover;
     object-fit: cover;
}

.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  align-items: flex-start;
}
.flex .col-1 {
  width: 8.33%;
}
.flex .col-2 {
  width: 16.66%;
}
.flex .col-3 {
  width: 25%;
}
.flex .col-4 {
  width: 33.33%;
}
.flex .col-5 {
  width: 41.66%;
}
.flex .col-6 {
  width: 50%;
}
.flex .col-7 {
  width: 58.33%;
}
.flex .col-8 {
  width: 66.66%;
}
.flex .col-9 {
  width: 75%;
}
.flex .col-10 {
  width: 83.33%;
}
.flex .col-11 {
  width: 91.66%;
}
.flex .col-12 {
  width: 100%;
}
.flex .w50 {
  width: 49%;
  margin: 0 2% 0 0;
}
.flex .w50:nth-child(n+3) {
  margin-top: 2%;
}
.flex .w50:nth-child(even) {
  margin-right: 0;
}
.flex .w33 {
  width: 32%;
  margin: 0 2% 0 0;
}
.flex .w33:nth-child(3n) {
  margin: 0;
}
.flex .w33:nth-child(n+4) {
  margin-top: 8rem;
}
.flex.align-start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.flex.align-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.flex.justify-between {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.font-serif {
  font-family: "Shippori Mincho B1", sans-serif;
}

.font-sans {
  font-family: "Noto Sans JP", sans-serif;
}

.font-oswald {
  font-family: "Oswald", sans-serif;
}

span,
a {
  display: inline-block;
  vertical-align: bottom;
}

.ttl-lg {
  line-height: 1.4;
  letter-spacing: 0.2em;
}
.ttl-lg.center {
  text-align: center;
}
.ttl-lg .text-en {
  font-size: 6rem;
  font-weight: 200;
  color: #1ba4b8;
}
.ttl-lg .text-jp {
  display: block;
  font-size: 1.4rem;
  font-weight: 600;
  color: #afafaf;
}

.ttl-md {
  font-size: 3.2rem;
  font-weight: 400;
  color: #1ba4b8;
  letter-spacing: 0.1em;
}
.ttl-md .text-border {
  border-bottom: 2px solid #1ba4b8;
}

.ttl-sm {
  font-size: 1.8rem;
}

.text-lg {
  font-size: 2.4rem;
}

.text-md {
  font-size: 2rem;
}

.text-sm {
  font-size: 1.2rem;
}

.text-main {
  color: #1ba4b8;
}

.back-base {
  background: #fff;
}

.link-text {
  -webkit-transition: color, 0.2s ease;
  transition: color, 0.2s ease;
}
.link-text:hover {
  color: #1ba4b8;
}

.link-text-border {
  position: relative;
  overflow: hidden;
}
.link-text-border::after {
  content: "";
  position: absolute;
  left: -100%;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #1ba4b8;
}
.link-text-border:hover::after {
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.btn-base {
  position: relative;
  width: 16rem;
  max-width: 100%;
  padding: 0.7em 1rem;
  font-size: 1.6rem;
  text-transform: capitalize;
  color: #1ba4b8;
  text-align: center;
  line-height: 1;
  border: 1px solid #1ba4b8;
  -webkit-transition: color 0.2s ease, border 0.2s ease;
  transition: color 0.2s ease, border 0.2s ease;
}
.btn-base .btn-txt {
  vertical-align: bottom;
}
.btn-base:hover {
  color: #afafaf;
  border-color: #afafaf;
}

.btn-inv {
  position: relative;
  width: 16rem;
  max-width: 100%;
  padding: 0.7em 1rem;
  font-size: 1.6rem;
  text-transform: capitalize;
  color: #fff;
  text-align: center;
  line-height: 1;
  border: 1px solid #fff;
  -webkit-transition: color 0.2s ease, border 0.2s ease;
  transition: color 0.2s ease, border 0.2s ease;
}
.btn-inv .btn-txt {
  vertical-align: bottom;
}
.btn-inv:hover {
  color: #afafaf;
  border-color: #afafaf;
}

.wrap-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  align-items: flex-start;
  width: 100%;
}
.wrap-btn .col-1 {
  width: 8.33%;
}
.wrap-btn .col-2 {
  width: 16.66%;
}
.wrap-btn .col-3 {
  width: 25%;
}
.wrap-btn .col-4 {
  width: 33.33%;
}
.wrap-btn .col-5 {
  width: 41.66%;
}
.wrap-btn .col-6 {
  width: 50%;
}
.wrap-btn .col-7 {
  width: 58.33%;
}
.wrap-btn .col-8 {
  width: 66.66%;
}
.wrap-btn .col-9 {
  width: 75%;
}
.wrap-btn .col-10 {
  width: 83.33%;
}
.wrap-btn .col-11 {
  width: 91.66%;
}
.wrap-btn .col-12 {
  width: 100%;
}
.wrap-btn .w50 {
  width: 49%;
  margin: 0 2% 0 0;
}
.wrap-btn .w50:nth-child(n+3) {
  margin-top: 2%;
}
.wrap-btn .w50:nth-child(even) {
  margin-right: 0;
}
.wrap-btn .w33 {
  width: 32%;
  margin: 0 2% 0 0;
}
.wrap-btn .w33:nth-child(3n) {
  margin: 0;
}
.wrap-btn .w33:nth-child(n+4) {
  margin-top: 8rem;
}
.wrap-btn.center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

a[href^="tel:"] {
  pointer-events: none;
  color: #272d2e;
}

.icon {
  vertical-align: middle;
}

.icon-lg {
  max-width: 10vw;
}

.icon-md {
  max-width: 11vw;
}

a.tel-link {
  pointer-events: none;
}
a.tel-link:hover {
  color: #1ba4b8;
}

.not-tel {
  pointer-events: none;
}

.tag-cat {
  margin: auto 0;
  padding: 0.2em 1em;
  color: #fff;
  font-size: 1.2rem;
  text-transform: uppercase;
  background: #1ba4b8;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

a.tag-cat:hover {
  background-color: #afafaf;
}

.tbl-base {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  border-collapse: collapse;
  background: #fff;
}
.tbl-base tr {
  border-top: 1px solid #eaf4f5;
}
.tbl-base tr th,
.tbl-base tr td {
  padding: 1.3em 0;
  vertical-align: middle;
  font-weight: 400;
}
.tbl-base tr th.va-top,
.tbl-base tr td.va-top {
  vertical-align: baseline;
}
.tbl-base tr th .icon,
.tbl-base tr td .icon {
  margin: 0 0 0 1em;
}
.tbl-base tr th li + li,
.tbl-base tr td li + li {
  margin: 0.26em 0 0;
}
.tbl-base tr th {
  width: 30%;
  vertical-align: text-top;
}

.list-check li {
  position: relative;
  padding: 0 0 0 3rem;
  line-height: 1.2;
  text-align: left;
}
.list-check li + li {
  margin-top: 0.5em;
}
.list-check li::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background: center/cover no-repeat url(./images/common/Icon_check_circle.png);
}

.gmap iframe {
  max-width: 100%;
  width: 100%;
}

.fw-b {
  font-weight: 600;
}

.ta-c {
  text-align: center;
}

.text-day {
  font-size: 1.4rem;
  color: #afafaf;
  line-height: 1;
  vertical-align: middle;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: 2rem;
  font-weight: 700;
  color: #272d2e;
}

.swiper-notification {
  display: none;
}

/*===========================================================================
js animation
===========================================================================*/
.js-clip {
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
          clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  -webkit-transition: -webkit-clip-path 0.4s ease;
  transition: -webkit-clip-path 0.4s ease;
  transition: clip-path 0.4s ease;
  transition: clip-path 0.4s ease, -webkit-clip-path 0.4s ease;
}
.js-clip.is-active {
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/*===========================================================================
input common
===========================================================================*/
input[type=text],
input[type=email],
input[type=tel] {
  width: 100%;
  padding: 0.5em 1em;
  font-size: 16px;
  line-height: 1.4rem;
  background: #f2fafb;
  border-radius: 5px;
}

textarea {
  width: 100%;
  height: 20em;
  padding: 1em;
  font-size: 16px;
  line-height: 1.4rem;
  background: #f2fafb;
  border-radius: 5px;
}

.wrap-form .wpcf7-list-item {
  margin: 0 0 0 1em;
}
.wrap-form .wpcf7-list-item.first {
  margin: 0;
}
.wrap-form .wpcf7-list-item-label::before, .wrap-form .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto 0;
  -webkit-transition: all 0.1s;
  transition: all 0.1s;
}
.wrap-form label {
  position: relative;
  width: 100%;
  padding: 0 0 0 24px;
  background: #fff;
  cursor: pointer;
}
.wrap-form label + label {
  margin-left: 1em;
}
.wrap-form label:checked {
  background: #1ba4b8;
}
.wrap-form input[type=radio],
.wrap-form input[type=checkbox] {
  display: none;
  cursor: pointer;
}
.wrap-form input[type=checkbox] label {
  position: relative;
  padding: 0.5em 1em;
}
.wrap-form .wrap-radio.wpcf7-form-control {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.wrap-form .wrap-radio .wpcf7-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.wrap-form .wrap-radio .wpcf7-list-item-label::before {
  width: 18px;
  height: 18px;
  border: 2px solid #1ba4b8;
  background: #fff;
  border-radius: 1em;
  z-index: 10;
}
.wrap-form .wrap-radio .wpcf7-list-item-label::after {
  width: 10px;
  height: 10px;
  left: 4px;
  background: #fff;
  border-radius: 1em;
  z-index: 20;
}
.wrap-form .wrap-radio input[type=radio]:checked + .wpcf7-list-item-label::after {
  background-color: #1ba4b8;
  z-index: 20;
}
.wrap-form .wrap-check .wpcf7-checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.wrap-form .wrap-check .wpcf7-list-item-label::before {
  width: 18px;
  height: 18px;
  border: 2px solid #1ba4b8;
  background: #fff;
  z-index: 10;
}
.wrap-form .wrap-check .wpcf7-list-item-label::after {
  content: "";
  display: block;
  position: absolute;
  top: -6px;
  left: 8px;
  width: 0.5em;
  height: 1em;
  border-right: 3px solid #1ba4b8;
  border-bottom: 3px solid #1ba4b8;
  opacity: 0;
  -webkit-transform: rotate(45deg) scale(0);
          transform: rotate(45deg) scale(0);
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  z-index: 20;
}
.wrap-form .wrap-check input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
  -webkit-transform: rotate(45deg) scale(1);
          transform: rotate(45deg) scale(1);
  z-index: 20;
}
.wrap-form .wpcf7-form-control-wrap {
  width: 100%;
}
.wrap-form .wpcf7-form-control-wrap.your-zip {
  width: 10em;
  margin: 0 0 0 0.5em;
}
.wrap-form form .wpcf7-not-valid-tip {
  font-size: 1.4rem;
  color: #ff0000;
}
.wrap-form form .wpcf7-response-output {
  position: relative;
  font-size: 1.4rem;
  text-align: center;
  padding: 1em 1em;
  color: #ff0000;
  font-weight: 700;
  background: #fff;
  border: 1px solid #ff0000 !important;
}
.wrap-form .acceptance {
  text-align: center;
}
.wrap-form .acceptance .link {
  margin: 0 0.5em;
  text-decoration: underline;
}
.wrap-form .btn-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.wrap-form .btn-wrap input[type=submit] {
  margin: 4% auto;
}

.open-modal {
  cursor: pointer;
}

.box-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  opacity: 0;
  z-index: 2000;
}
.box-modal::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.6);
  z-index: -1;
}
.box-modal .contents-modal {
  position: relative;
  top: 50%;
  right: 0;
  left: 0;
  width: 90%;
  max-width: 960px;
  margin: auto;
  padding: 1vw;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.box-modal .close-modal {
  position: absolute;
  top: 0;
  bottom: auto;
  right: 0;
  left: auto;
  width: 4rem;
  height: 4rem;
  background: #1ba4b8;
  border-radius: 6rem;
  z-index: 10;
  cursor: pointer;
}
.box-modal .close-modal::before, .box-modal .close-modal::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 60%;
  height: 3px;
  margin: auto;
  background: #fff;
  z-index: 11;
}
.box-modal .close-modal::before {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.box-modal .close-modal::after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.box-modal .box-youtube {
  position: relative;
  width: 100%;
  height: 0;
  margin: 0 auto;
  padding-top: 56.25%;
}
.box-modal .video-youtube {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  -webkit-clip-path: none;
          clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/*===========================================================================
scrollbar web-kit
===========================================================================*/
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #fff;
  border-left: solid 0.1em #272d2e;
}

::-webkit-scrollbar-thumb {
  background: rgba(39, 45, 46, 0.1);
  border-left: solid 0.1em #272d2e;
}

/*===========================================================================
home loading & scroll-trigger
===========================================================================*/
#loading {
  position: fixed;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  background: white;
  z-index: 9990;
}
#loading .img-loading {
  opacity: 0;
  width: 16rem;
  height: auto;
  stroke-width: 0.1px;
  -webkit-transform-origin: center 33%;
          transform-origin: center 33%;
}

#progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  z-index: 9991;
}
#progress svg {
  position: absolute;
  top: 0;
  left: 0;
}

/*===========================================================================
masthead
===========================================================================*/
#masthead .inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 94%;
  margin: 0 auto;
}
#masthead .site-title {
  width: 300px;
}
#masthead .site-title a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.4rem;
  font-weight: 700;
}
#masthead .site-title .logo-img {
  margin: auto 1rem auto 0;
}

/*===========================================================================
main nav
===========================================================================*/
#site-navigation {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
#site-navigation #primary-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
#site-navigation #primary-menu .link-main-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
}
#site-navigation #primary-menu .link-main-nav:hover::before {
  opacity: 1;
}
#site-navigation #primary-menu .link-main-nav::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 4px;
  margin: 0 auto;
  background: #1ba4b8;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
#site-navigation .menu-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  margin: 0 0 0 4rem;
  text-transform: uppercase;
  font-size: 1.6rem;
}
#site-navigation .menu-item.contact {
  overflow: hidden;
}
#site-navigation .menu-item.contact a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 238px;
  height: 80px;
  padding: 1em 2em;
  background: #1ba4b8;
  color: #fff;
}
#site-navigation .menu-item.contact a .icon {
  margin: 0 2rem 0 0;
}
#site-navigation .menu-item:hover .sub-menu {
  visibility: visible;
  opacity: 1;
  -webkit-transform: translate(0%, -1rem);
          transform: translate(0%, -1rem);
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  -webkit-transform-origin: opacity transform;
          transform-origin: opacity transform;
}
#site-navigation .sub-menu {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 100%;
  left: 0;
  width: 15em;
  padding: 2rem;
  background: #fff;
  border-top: 2px solid #1ba4b8;
  -webkit-box-shadow: 2px 0px 2px rgba(39, 45, 46, 0.4);
          box-shadow: 2px 0px 2px rgba(39, 45, 46, 0.4);
  z-index: 100;
}
#site-navigation .sub-menu .link-text-border {
  font-size: 1.5rem;
  position: relative;
}
#site-navigation .sub-menu .menu-item {
  margin: 0;
  padding: 0.5em;
}
#site-navigation .sub-menu .menu-item::before {
  content: ">";
  display: inline-block;
  margin: auto 0.5em auto 0;
  color: #1ba4b8;
}

#menu-toggle {
  display: none;
  position: relative;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  width: 4rem;
  height: 4rem;
  margin: auto 0 auto auto;
}
#menu-toggle .bar {
  position: absolute;
  right: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 2px;
  background: #1ba4b8;
}
#menu-toggle .bar:first-child {
  top: 1.2rem;
}
#menu-toggle .bar:last-child {
  bottom: 1.2rem;
}
#menu-toggle.active .bar {
  top: 0;
  bottom: 0;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
#menu-toggle.active .bar:first-child {
  -webkit-transform: rotate(-30deg);
          transform: rotate(-30deg);
}
#menu-toggle.active .bar:last-child {
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
}

/*===========================================================================
main footer
===========================================================================*/
#main-footer {
  position: relative;
  width: 100%;
  margin: 16rem 0 0;
  padding: 4rem 0;
  background: #272d2e;
  color: #fff;
}
#main-footer #footer-bottom {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  align-items: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 94%;
  margin: 0 auto;
}
#main-footer #footer-bottom .col-1 {
  width: 8.33%;
}
#main-footer #footer-bottom .col-2 {
  width: 16.66%;
}
#main-footer #footer-bottom .col-3 {
  width: 25%;
}
#main-footer #footer-bottom .col-4 {
  width: 33.33%;
}
#main-footer #footer-bottom .col-5 {
  width: 41.66%;
}
#main-footer #footer-bottom .col-6 {
  width: 50%;
}
#main-footer #footer-bottom .col-7 {
  width: 58.33%;
}
#main-footer #footer-bottom .col-8 {
  width: 66.66%;
}
#main-footer #footer-bottom .col-9 {
  width: 75%;
}
#main-footer #footer-bottom .col-10 {
  width: 83.33%;
}
#main-footer #footer-bottom .col-11 {
  width: 91.66%;
}
#main-footer #footer-bottom .col-12 {
  width: 100%;
}
#main-footer #footer-bottom .w50 {
  width: 49%;
  margin: 0 2% 0 0;
}
#main-footer #footer-bottom .w50:nth-child(n+3) {
  margin-top: 2%;
}
#main-footer #footer-bottom .w50:nth-child(even) {
  margin-right: 0;
}
#main-footer #footer-bottom .w33 {
  width: 32%;
  margin: 0 2% 0 0;
}
#main-footer #footer-bottom .w33:nth-child(3n) {
  margin: 0;
}
#main-footer #footer-bottom .w33:nth-child(n+4) {
  margin-top: 8rem;
}
#main-footer #footer-bottom .box-logo {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  margin: 0 10rem 0 0;
}
#main-footer #footer-bottom .footer-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
#main-footer #footer-bottom .footer-menu + .footer-menu {
  margin: 1rem 0 0;
}
#main-footer #footer-bottom .footer-menu .menu-item {
  margin: 0 0 0 2rem;
}
#main-footer #footer-bottom .footer-menu a {
  font-size: 1.6rem;
  color: #1ba4b8;
  text-transform: uppercase;
}
#main-footer #footer-bottom .footer-menu a:hover {
  color: #fff;
}
#main-footer #footer-bottom .add {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  font-size: 1.4rem;
  line-height: 2;
  text-align: right;
}
#main-footer #footer-bottom .add .txt-sm {
  margin: 0 1em 0 0;
  line-height: 2;
}
#main-footer #footer-bottom .tel-link {
  color: #fff;
}
#main-footer #copy-right {
  text-transform: none;
  position: fixed;
  top: 0;
  right: 1vw;
  width: 100vh;
  padding: 0 0 0 0;
  color: #272d2e;
  text-align: center;
  -webkit-transform-origin: top right;
          transform-origin: top right;
  -webkit-transform: rotate(-90deg) translateY(-100%);
          transform: rotate(-90deg) translateY(-100%);
  z-index: 1;
}

#pagetop {
  position: fixed;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  right: 0;
  bottom: 0;
  width: 4rem;
  height: 4rem;
  text-align: center;
  background: #1ba4b8;
  opacity: 0;
  cursor: pointer;
  z-index: 2000;
}
#pagetop::before, #pagetop::after {
  content: "";
  position: absolute;
  top: 63%;
  right: 0;
  left: 0;
  width: 30%;
  height: 2px;
  margin: 0 auto;
  background: #fff;
}
#pagetop::before {
  -webkit-transform: translate(-22%, -2px) rotate(-45deg);
          transform: translate(-22%, -2px) rotate(-45deg);
  -webkit-transform-origin: top left;
          transform-origin: top left;
}
#pagetop::after {
  -webkit-transform: translate(22%, -2px) rotate(45deg);
          transform: translate(22%, -2px) rotate(45deg);
  -webkit-transform-origin: top right;
          transform-origin: top right;
}

#pamphlet {
  position: fixed;
  top: 0;
  right: 3%;
  z-index: 1000;
  list-style: none;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: right 0.2s ease, -webkit-transform 0.2s ease;
  transition: right 0.2s ease, -webkit-transform 0.2s ease;
  transition: transform 0.2s ease, right 0.2s ease;
  transition: transform 0.2s ease, right 0.2s ease, -webkit-transform 0.2s ease;
}
#pamphlet:hover {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  right: 0;
}
#pamphlet .link-pamphlet {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 300px;
  height: 80px;
  padding: 2rem 1em 2rem 0;
  background: #f3f3f3;
}
#pamphlet .box-icon {
  padding: 0% 2%;
  width: 2vw;
  margin: 0 0 0 3%;
}
#pamphlet .text {
  margin: 0 0 0 3rem;
}
#pamphlet .text .text-en {
  display: block;
  color: #1ba4b8;
  font-size: 2.4rem;
  line-height: 1.2;
  font-weight: 200;
  letter-spacing: 0.05em;
}
#pamphlet .text .text-jp {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  color: #272d2e;
}

/*===========================================================================
home
===========================================================================*/
body.home #home-mv {
  position: relative;
  overflow: hidden;
}
body.home #home-mv .mv-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 90%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  letter-spacing: 0.2em;
  text-shadow: 0 0 1rem #272d2e;
  z-index: 100;
}
body.home #home-mv .mv-text .ttl-en {
  font-size: 6rem;
  font-weight: 200;
  line-height: 1.4;
}
body.home #home-mv .mv-text .text-border {
  position: relative;
  padding: 0 0 2rem 0;
}
body.home #home-mv .mv-text .text-border::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  margin: auto;
  background: #fff;
}
body.home #home-mv .mv-text .ttl {
  margin: 2rem auto 0;
  font-size: 3.2rem;
}
body.home #home-mv .swiper-container {
  position: relative;
  width: 94%;
  height: 43vw;
  margin: 0 auto;
  z-index: 1;
}
body.home #home-mv .img-slider {
  width: 100%;
  height: 100%;
}
body.home #home-mv .swiper-pagination-bullet {
  width: 1.4rem;
  height: 1.4rem;
  margin: 0 0.8rem;
  border-radius: 0;
  background: #fff;
  opacity: 1;
}
body.home #home-mv .swiper-pagination {
  bottom: 3.2rem;
}
body.home #home-mv .swiper-pagination-bullet-active {
  background: #1ba4b8;
}
@-webkit-keyframes scrollDown {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
            clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
@keyframes scrollDown {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
            clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
body.home #home-mv #scroll-down {
  position: absolute;
  left: 2%;
  bottom: 0;
  padding-left: 12rem;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  cursor: pointer;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
  z-index: 100;
}
body.home #home-mv #scroll-down .arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100px;
  height: 30px;
  -webkit-animation: scrollDown 2s 1s infinite;
          animation: scrollDown 2s 1s infinite;
}
body.home #home-mv #scroll-down .arrow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 2rem;
  height: 1px;
  margin: auto;
  background: #272d2e;
  -webkit-transform: rotate(-35deg);
          transform: rotate(-35deg);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
}
body.home #home-mv #scroll-down .arrow::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  margin: auto 0;
  background: #272d2e;
}
body.home #home-news .post-list-wrap {
  max-width: 864px;
  margin: 4rem 0 0 auto;
  text-align: right;
}
body.home #home-news .post-list-wrap li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1em;
  border-bottom: 1px solid #afafaf;
}
body.home #home-news .post-list-wrap .link-text {
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
body.home #home-news .post-list-wrap .tag-cat {
  margin: 0 2em;
}
body.home #home-news .post-list-wrap .text-day {
  margin: auto 0;
}
body.home #home-news .post-list-wrap .btn-base {
  margin: 3.2rem 0 auto 0;
}
body.home #home-company {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
body.home #home-company .wrapper-quality {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: calc(50% - 1px);
  height: 40vw;
  padding: 2rem;
  color: #fff;
  background: center/cover no-repeat url(./images/home/bg_home_quality.jpg);
}
body.home #home-company .wrapper-quality .box-text {
  max-width: 500px;
  margin: auto;
}
body.home #home-company .wrapper-quality .ttl-lg .text-jp {
  color: #fff;
}
body.home #home-company .wrapper-quality p {
  margin: 4rem 0 0;
}
body.home #home-company .wrapper-right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: calc(50% - 1px);
}
body.home #home-company .wrapper-right .box-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  padding: 4vw;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
body.home #home-company .wrapper-right .box-link::after {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(27, 164, 184, 0.2);
  z-index: 1;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
body.home #home-company .wrapper-right .box-link:hover .text-border {
  color: #fff;
  border-color: #fff;
}
body.home #home-company .wrapper-right .box-link:hover::after {
  opacity: 1;
}
body.home #home-company .wrapper-right .text-border {
  position: relative;
  z-index: 10;
  -webkit-transition: color 0.2s ease, border 0.2s ease;
  transition: color 0.2s ease, border 0.2s ease;
}
body.home #home-company .wrapper-right .message {
  width: 100%;
  margin: 0 auto 2px;
  background-image: url(./images/home/bg_home_message.jpg);
}
body.home #home-company .wrapper-right .outline {
  width: calc(50% - 1px);
  background-image: url(./images/home/bg_home_outline.jpg);
}
body.home #home-company .wrapper-right .access {
  width: calc(50% - 1px);
  background-image: url(./images/home/bg_home_access.jpg);
}
body.home #home-service {
  counter-reset: number 0;
}
body.home #home-service .wrapper-service {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
body.home #home-service .box-service {
  position: relative;
  width: 50%;
  margin: 4rem 0 0;
  padding: 1rem;
  overflow: hidden;
}
body.home #home-service .box-service .link-service {
  position: relative;
  display: block;
}
body.home #home-service .box-service .link-service::after {
  background: rgb(119, 119, 119);
  background: linear-gradient(45deg, rgb(119, 119, 119) 0%, rgb(255, 255, 255) 50%, rgb(119, 119, 119) 100%);
  width: 100%;
  height: 100%;
  opacity: 0;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
body.home #home-service .box-service .link-service::before {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  content: "VIEW MORE";
  padding: 0.5em 2em;
  color: #1ba4b8;
  font-size: 1.6rem;
  border: 1px solid #1ba4b8;
  opacity: 0;
  z-index: 200;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
body.home #home-service .box-service .link-service:hover::before {
  opacity: 1;
}
body.home #home-service .box-service .link-service:hover::after {
  opacity: 0.8;
}
body.home #home-service .box-service .ttl-sm {
  position: relative;
  margin: 2rem 0;
  padding: 0 0 0 8rem;
}
body.home #home-service .box-service .ttl-sm::before {
  counter-increment: number 1;
  content: "0" counter(number);
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 5.6rem;
  height: 5.6rem;
  margin: auto 0;
  font-size: 3.3rem;
  font-weight: 200;
  color: #1ba4b8;
  line-height: 1;
  border: 1px solid #1ba4b8;
}
body.home #home-service .box-service .ttl-sm .text-en {
  width: 100%;
  font-size: 2.6rem;
  font-weight: 200;
  line-height: 1.4;
  color: #1ba4b8;
  letter-spacing: 0.1em;
}
body.home #home-service .box-service .ttl-sm .text-jp {
  width: 100%;
  font-size: 1.8rem;
  font-weight: 700;
}
body.home #home-service .box-service p {
  margin: 0 0 2rem;
}
body.home #home-works {
  position: relative;
  padding: 14rem 0;
}
body.home #home-works::after {
  background: rgb(175, 175, 175);
  background: linear-gradient(45deg, rgb(175, 175, 175) 0%, rgb(210, 210, 210) 50%, rgb(238, 238, 238) 100%);
  width: 100%;
  height: 100%;
  opacity: 0.08;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-clip-path: polygon(0 0, 100% 0, 0 100%);
          clip-path: polygon(0 0, 100% 0, 0 100%);
  z-index: -1;
}
body.home #home-works .wrapper-lg {
  position: relative;
}
body.home #home-works .ttl-lg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
body.home #home-works #works-slider {
  overflow: hidden;
}
body.home #home-works .box-works {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}
body.home #home-works .box-works .box-text {
  width: 26%;
}
body.home #home-works .box-works .box-text .tag-cat {
  margin: 0;
}
body.home #home-works .box-works .box-text .ttl-sm {
  margin: 1.6rem 0;
}
body.home #home-works .box-works .box-img {
  width: 70%;
}
body.home #home-works .box-works .box-img img {
  width: 100%;
  height: 570px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
body.home #home-works .wrap-btn {
  position: absolute;
  bottom: 0;
  z-index: 10;
}
body.home #home-works #thum-slider {
  position: absolute;
  right: 1rem;
  bottom: 0;
  width: 40%;
  z-index: 200;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
}
body.home #home-works #thum-slider .swiper-wrapper {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-transform: none !important;
          transform: none !important;
}
body.home #home-works #thum-slider .swiper-wrapper .swiper-slide {
  background: #fff;
  border: 2px solid #fff;
  cursor: pointer;
}
body.home #home-works #thum-slider .swiper-wrapper .swiper-slide-thumb-active {
  border: 2px solid #1ba4b8;
}
body.home #home-works #thum-slider .swiper-wrapper .noimage {
  min-height: auto;
}
body.home #home-works #thum-slider .swiper-wrapper img {
  width: 100%;
  height: 8rem;
  overflow: hidden;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/*===========================================================================
sub page common
===========================================================================*/
#wrap-page-ttl {
  position: relative;
  width: 94%;
  margin: 0 auto;
  padding: 10rem 0;
  text-align: left;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.6);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#wrap-page-ttl.news {
  background-image: url(./images/news/bg_pagettl_news.jpg);
}
#wrap-page-ttl.service {
  background-image: url(./images/service/bg_pagettl_service.jpg);
}
#wrap-page-ttl.construction {
  background-image: url(./images/construction/bg_pagettl_construction.jpg);
}
#wrap-page-ttl.road-maintenance {
  background-image: url(./images/road-maintenance/bg_pagettl_road-maintenance.jpg);
}
#wrap-page-ttl.security {
  background-image: url(./images/security/bg_pagettl_security.jpg);
}
#wrap-page-ttl.renovation {
  background-image: url(./images/renovation/bg_pagettl_renovation.jpg);
}
#wrap-page-ttl.company {
  background-image: url(./images/company/bg_pagettl_company.jpg);
}
#wrap-page-ttl.contact {
  background-image: url(./images/contact/bg_pagettl_contact.jpg);
}
#wrap-page-ttl.privacy-policy {
  background-image: url(./images/privacy-policy/bg_pagettl_privacy-policy.jpg);
}
#wrap-page-ttl.news {
  background-image: url(./images/news/bg_pagettl_news.jpg);
}
#wrap-page-ttl.works {
  background-image: url(./images/works/bg_pagettl_works.jpg);
}
#wrap-page-ttl.error404 {
  background-size: contain;
  background-position: center 80%;
  background-color: #afafaf;
  background-image: url(./images/common/logo_black.svg);
}
#wrap-page-ttl .ttl-en {
  position: relative;
  width: 100%;
  font-size: 6rem;
  color: #fff;
  text-transform: uppercase;
  font-weight: 200;
  line-height: 1;
  letter-spacing: 0.05em;
}
#wrap-page-ttl .ttl-jp {
  width: 100%;
  margin: 0.5em auto 0;
  font-size: 2rem;
  color: #fff;
  font-weight: 400;
  text-transform: uppercase;
}

.page-about {
  margin: 8% auto;
  text-align: center;
  font-size: 1.6rem;
}

.breadcrumbs {
  position: absolute;
  max-width: 80%;
  min-width: 40%;
  right: 0;
  bottom: 0;
  padding: 0.5em 1em;
  margin: 0;
  font-size: 1.4rem;
  color: #fff;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  z-index: 100;
}
.breadcrumbs::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #1ba4b8;
  z-index: -1;
}
.breadcrumbs::after {
  background: rgb(175, 175, 175);
  background: linear-gradient(45deg, rgb(175, 175, 175) 0%, rgb(210, 210, 210) 50%, rgb(238, 238, 238) 100%);
  width: 100%;
  height: 100%;
  opacity: 0.24;
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: -2;
}
.breadcrumbs span[property=itemListElement] {
  margin: 0 1em;
}
.breadcrumbs .current-item {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 24em;
}

.bnr-contact {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 6rem 0;
  color: #fff;
  background: #1ba4b8;
}
.bnr-contact::after {
  background: rgb(175, 175, 175);
  background: linear-gradient(45deg, rgb(175, 175, 175) 0%, rgb(210, 210, 210) 50%, rgb(238, 238, 238) 100%);
  width: 100%;
  height: 100%;
  opacity: 0;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 1px;
  height: 80%;
  margin: auto;
  opacity: 0.4;
}
.bnr-contact .ttl-lg .text-en {
  color: #fff;
}
.bnr-contact .ttl-lg .text-jp {
  color: #fff;
}
.bnr-contact .text-time {
  letter-spacing: 0.2em;
}
.bnr-contact .tel-link {
  margin: 1rem 0 2rem;
  font-size: 1.6rem;
  color: #fff;
  line-height: 1.2;
}
.bnr-contact .tel-link .tel-num {
  margin: 0 0 0 1rem;
  font-size: 3.2rem;
  color: #fff;
  letter-spacing: 0.1em;
}

/*===========================================================================
services
===========================================================================*/
body.construction .wrap-btn,
body.road-maintenance .wrap-btn,
body.security .wrap-btn,
body.renovation .wrap-btn {
  margin: 6rem 0 0;
}
body.construction .bg-wrap-wide,
body.road-maintenance .bg-wrap-wide,
body.security .bg-wrap-wide,
body.renovation .bg-wrap-wide {
  padding: 8% 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
body.construction .bg-wrap-wide#community,
body.road-maintenance .bg-wrap-wide#community,
body.security .bg-wrap-wide#community,
body.renovation .bg-wrap-wide#community {
  background-image: url(./images/construction/bg_construction_community.jpg);
}
body.construction .bg-wrap-wide#technology,
body.road-maintenance .bg-wrap-wide#technology,
body.security .bg-wrap-wide#technology,
body.renovation .bg-wrap-wide#technology {
  background-image: url(./images/construction/bg_construction_high_tec.jpg);
}
body.construction .bg-wrap-wide#technology .box-text,
body.road-maintenance .bg-wrap-wide#technology .box-text,
body.security .bg-wrap-wide#technology .box-text,
body.renovation .bg-wrap-wide#technology .box-text {
  margin: 0 0 0 auto;
}
body.construction .bg-wrap-wide#quality,
body.road-maintenance .bg-wrap-wide#quality,
body.security .bg-wrap-wide#quality,
body.renovation .bg-wrap-wide#quality {
  background-image: url(./images/construction/bg_construction_quality.jpg);
}
body.construction .bg-wrap-wide:first-child,
body.road-maintenance .bg-wrap-wide:first-child,
body.security .bg-wrap-wide:first-child,
body.renovation .bg-wrap-wide:first-child {
  margin-top: 8%;
}
body.construction .bg-wrap-wide .box-text,
body.road-maintenance .bg-wrap-wide .box-text,
body.security .bg-wrap-wide .box-text,
body.renovation .bg-wrap-wide .box-text {
  width: 770px;
  max-width: 90%;
  padding: 6rem 8rem;
  background: #fff;
  border-left: 4px solid #1ba4b8;
}
body.construction .bg-wrap-wide .ttl-lg,
body.road-maintenance .bg-wrap-wide .ttl-lg,
body.security .bg-wrap-wide .ttl-lg,
body.renovation .bg-wrap-wide .ttl-lg {
  margin: 0 0 2rem 0;
}
body.construction .wrap-color-box,
body.road-maintenance .wrap-color-box,
body.security .wrap-color-box,
body.renovation .wrap-color-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  counter-reset: number 0;
}
body.construction .wrap-color-box .box-color-main,
body.road-maintenance .wrap-color-box .box-color-main,
body.security .wrap-color-box .box-color-main,
body.renovation .wrap-color-box .box-color-main {
  position: relative;
  width: calc(50% - 4rem);
  padding: 6rem 4rem 4rem 4rem;
  background: #f2fafb;
}
body.construction .wrap-color-box .box-color-main:nth-child(n+3),
body.road-maintenance .wrap-color-box .box-color-main:nth-child(n+3),
body.security .wrap-color-box .box-color-main:nth-child(n+3),
body.renovation .wrap-color-box .box-color-main:nth-child(n+3) {
  margin-top: 4%;
}
body.construction .wrap-color-box .box-color-main::before,
body.road-maintenance .wrap-color-box .box-color-main::before,
body.security .wrap-color-box .box-color-main::before,
body.renovation .wrap-color-box .box-color-main::before {
  counter-increment: number 1;
  content: "0" counter(number);
  position: absolute;
  top: 0;
  left: 0;
  font-size: 6rem;
  line-height: 1.4;
  font-weight: 200;
  color: #1ba4b8;
  border-bottom: 1px solid #1ba4b8;
  -webkit-transform: translate(-0.25em, -50%);
          transform: translate(-0.25em, -50%);
}
body.construction .wrap-color-box .box-color-main p,
body.road-maintenance .wrap-color-box .box-color-main p,
body.security .wrap-color-box .box-color-main p,
body.renovation .wrap-color-box .box-color-main p {
  margin: 1rem 0 0;
}
body.construction .wrap-overlap-box .box-overlap,
body.road-maintenance .wrap-overlap-box .box-overlap,
body.security .wrap-overlap-box .box-overlap,
body.renovation .wrap-overlap-box .box-overlap {
  position: relative;
}
body.construction .wrap-overlap-box .box-overlap + .box-overlap,
body.road-maintenance .wrap-overlap-box .box-overlap + .box-overlap,
body.security .wrap-overlap-box .box-overlap + .box-overlap,
body.renovation .wrap-overlap-box .box-overlap + .box-overlap {
  margin: 8% auto 0 0;
}
body.construction .wrap-overlap-box .box-overlap .box-img,
body.road-maintenance .wrap-overlap-box .box-overlap .box-img,
body.security .wrap-overlap-box .box-overlap .box-img,
body.renovation .wrap-overlap-box .box-overlap .box-img {
  position: relative;
  width: 60%;
  margin: 0 0 0 auto;
  z-index: 1;
}
body.construction .wrap-overlap-box .box-overlap .box-text,
body.road-maintenance .wrap-overlap-box .box-overlap .box-text,
body.security .wrap-overlap-box .box-overlap .box-text,
body.renovation .wrap-overlap-box .box-overlap .box-text {
  position: absolute;
  top: 50%;
  width: 770px;
  max-width: 60%;
  margin: auto 0;
  padding: 6rem 8rem;
  background: #fff;
  border-left: 4px solid #1ba4b8;
  -webkit-box-shadow: 4px 4px 8px rgba(39, 45, 46, 0.16);
          box-shadow: 4px 4px 8px rgba(39, 45, 46, 0.16);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
}
body.construction .wrap-overlap-box .box-overlap p,
body.road-maintenance .wrap-overlap-box .box-overlap p,
body.security .wrap-overlap-box .box-overlap p,
body.renovation .wrap-overlap-box .box-overlap p {
  margin: 4rem 0 0 0;
}
body.construction .wrap-overlap-box .box-overlap:nth-child(even) .box-img,
body.road-maintenance .wrap-overlap-box .box-overlap:nth-child(even) .box-img,
body.security .wrap-overlap-box .box-overlap:nth-child(even) .box-img,
body.renovation .wrap-overlap-box .box-overlap:nth-child(even) .box-img {
  margin: 0;
}
body.construction .wrap-overlap-box .box-overlap:nth-child(even) .box-text,
body.road-maintenance .wrap-overlap-box .box-overlap:nth-child(even) .box-text,
body.security .wrap-overlap-box .box-overlap:nth-child(even) .box-text,
body.renovation .wrap-overlap-box .box-overlap:nth-child(even) .box-text {
  right: 0;
}

/*===========================================================================
company
===========================================================================*/
body.company .ttl-lg {
  margin: 0 auto 8rem;
}
body.company #message .ttl-lg {
  margin: 0 auto 6rem;
}
body.company #message .wrap-message .box-img {
  position: sticky;
  top: 0;
  left: 0;
  padding: 2rem 0 0;
}
body.company #message .wrap-message .box-img .box-name {
  position: absolute;
  top: 50%;
  left: 4rem;
  margin: auto 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
body.company #message .wrap-message .box-img .img-name-sub {
  margin: 0 0 1rem;
}
body.company #message .wrap-message .box-text {
  padding: 2rem 0 0;
  letter-spacing: 0.05em;
}
body.company #message .wrap-message p {
  font-size: 1.6rem;
}
body.company #message .wrap-message p + p {
  margin: 4rem 0 0;
}
body.company #message .wrap-message .box-bottom {
  margin: 8rem 0 0;
}
body.company #access .wrap-map {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
body.company #access .wrap-map .gmap {
  width: 70%;
}
body.company #access .wrap-map .box-text {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 30%;
  text-align: center;
}
body.company #access .wrap-map .box-text::after {
  background: rgb(175, 175, 175);
  background: linear-gradient(45deg, rgb(175, 175, 175) 0%, rgb(210, 210, 210) 50%, rgb(238, 238, 238) 100%);
  width: 100%;
  height: 100%;
  opacity: 0.08;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
body.company #access .wrap-map .box-text p {
  margin-top: 1rem;
}

/*===========================================================================
PRIVACY-POLICY
===========================================================================*/
body.privacy-policy #policy {
  margin: 8% 0;
}
body.privacy-policy #policy .box-policy,
body.privacy-policy #policy .box-disclaimer {
  margin: 4rem 0 0;
}
body.privacy-policy #policy .box-policy + .box-policy,
body.privacy-policy #policy .box-disclaimer + .box-policy {
  margin: 4% 0 0;
}
body.privacy-policy #policy .box-policy .ttl-sm,
body.privacy-policy #policy .box-disclaimer .ttl-sm {
  position: relative;
  margin: 0 0 1%;
  padding: 0 0 0 1em;
  font-weight: 600;
}
body.privacy-policy #policy .box-policy > p,
body.privacy-policy #policy .box-disclaimer > p {
  padding: 0 0 0 1em;
}
body.privacy-policy #policy .box-policy .privacy-list,
body.privacy-policy #policy .box-disclaimer .privacy-list {
  margin: 1% 0 0;
  padding: 0 0 0 1em;
  list-style-type: auto;
  list-style-position: inside;
}
body.privacy-policy #policy .box-policy .privacy-list li,
body.privacy-policy #policy .box-disclaimer .privacy-list li {
  margin: 0.5em 0 0 0;
}
body.privacy-policy #policy .box-policy .link-text,
body.privacy-policy #policy .box-disclaimer .link-text {
  text-decoration: underline;
}
body.privacy-policy #policy .box-policy .box-border,
body.privacy-policy #policy .box-disclaimer .box-border {
  margin: 2% 0 0;
  padding: 2% 4%;
  border: 1px solid #eaf4f5;
}

/*===========================================================================
CONTACT
===========================================================================*/
body.contact .req {
  margin: auto 0.5em;
  color: #ff0000;
}
body.contact .ttl-sm {
  margin: 0 auto 2rem;
}
body.contact .tel-link {
  font-size: 3rem;
  color: #1ba4b8;
  font-weight: 200;
  line-height: 1;
  letter-spacing: 0.08em;
}
body.contact .tel-link .tel-num {
  font-size: 6rem;
}
body.contact .text-time {
  margin: 3rem 0 0;
  font-weight: 200;
  line-height: 1;
}
body.contact .text-time .text-num {
  margin: 0 0 0 1em;
  font-size: 3rem;
}
body.contact #sec-form {
  position: relative;
}
body.contact #sec-form .wrapper-md {
  position: relative;
}
body.contact #sec-form .tbl-contact {
  margin: 4rem auto 0;
}
body.contact #sec-form .tbl-contact th {
  vertical-align: middle;
}
body.contact #sec-form .tbl-contact tr:last-child th {
  vertical-align: text-top;
}
body.contact #sec-form .dl-contact dt {
  font-weight: 700;
}
body.contact #sec-form .dl-contact dd {
  margin: 0.5em 0 2%;
}

/*===========================================================================
404 
===========================================================================*/
body.error404 #sec404 {
  margin: 4% auto;
}
body.error404 #sec404 p {
  margin: 4rem 0;
}
body.error404 .ttl-lg {
  margin: 4% auto;
}

/*===========================================================================
post archive page  #post_works #post_news is archive
===========================================================================*/
.noimage {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  font-size: 1.4rem;
  min-height: 160px;
  background: #eee;
}
.noimage img {
  width: 100%;
  height: 100%;
}

.post-list-wrap {
  margin: 8% auto;
}
.post-list-wrap .news-list,
.post-list-wrap .blog-list {
  width: 100%;
}
.post-list-wrap .news-list li,
.post-list-wrap .blog-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  padding: 1em 0;
  border-bottom: 1px solid #eaf4f5;
}
.post-list-wrap .text-day {
  margin: 0 1em 0 0;
  color: #afafaf;
}
.post-list-wrap .ttl-post {
  margin: 0.5em 0;
  font-weight: 700;
  letter-spacing: 0.15em;
}
.post-list-wrap .link-text {
  color: #1ba4b8;
}
.post-list-wrap .link-text:hover {
  color: #afafaf;
}
.post-list-wrap .content-text {
  margin: 1rem 0 0;
  font-weight: 400;
}
.post-list-wrap .news-list li {
  padding: 3.2rem 0;
}
.post-list-wrap .news-list .thumbnail-wrap {
  width: 22%;
  min-width: 160px;
  margin: 0 4% 0 0;
}
.post-list-wrap .news-list .wp-post-image {
  width: 100%;
  height: 100%;
}
.post-list-wrap .news-list .tag-cat {
  margin: 0;
}
.post-list-wrap .news-list .post-texts {
  width: 70%;
  max-width: calc(100% - 160px - 4%);
  margin: auto 0;
  padding: 0 2rem 0 0;
}
.post-list-wrap .text-notcategory {
  margin: 4% 0 0;
}

.works-list-wrap .box-works {
  position: relative;
}
.works-list-wrap .tag-cat {
  margin: 0;
}
.works-list-wrap .link-works {
  position: relative;
  display: block;
}
.works-list-wrap .link-works::after {
  background: rgb(119, 119, 119);
  background: linear-gradient(45deg, rgb(119, 119, 119) 0%, rgb(255, 255, 255) 50%, rgb(119, 119, 119) 100%);
  width: 100%;
  height: 100%;
  opacity: 0;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.works-list-wrap .link-works::before {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  content: "VIEW MORE";
  padding: 0.5em 2em;
  color: #1ba4b8;
  font-size: 1.6rem;
  border: 1px solid #1ba4b8;
  opacity: 0;
  z-index: 200;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.works-list-wrap .link-works:hover::before {
  opacity: 1;
}
.works-list-wrap .link-works:hover::after {
  opacity: 0.8;
}
.works-list-wrap .box-img {
  position: relative;
  width: 100%;
  height: 0;
  margin: 0 0 1.6rem 0;
  padding: 62.5% 0 0 0;
  overflow: hidden;
}
.works-list-wrap .box-img .wp-post-image,
.works-list-wrap .box-img .noimage {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.works-list-wrap .tag-cat {
  margin: 0 1em 0 0;
}
.works-list-wrap .text-day {
  vertical-align: baseline;
}
.works-list-wrap .ttl-sm {
  margin: 1rem 0 0;
  font-size: 1.5rem;
}

#pager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 8% auto 0;
}
#pager .page-numbers {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2em;
  height: 2em;
  margin: 0 8px;
  color: #1ba4b8;
  border: 1px solid #1ba4b8;
  font-weight: 400;
}
#pager .page-numbers.current, #pager .page-numbers:hover {
  background: #1ba4b8;
  border: none;
  color: #fff;
}

.nav-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 8% auto 0;
}
.nav-links .nav-subtitle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2em;
  height: 2em;
  margin: 0 8px;
  color: #eaf4f5;
  border: 1px solid #eaf4f5;
  font-weight: 400;
}
.nav-links .nav-subtitle.current, .nav-links .nav-subtitle:hover {
  background: #1ba4b8;
  border: none;
  color: #272d2e;
}
.nav-links .nav-next {
  margin: 0 0 0 auto;
}
.nav-links .nav-prev {
  margin: 0 auto 0 0;
}

/*===========================================================================
single common
===========================================================================*/
body.single .entry-meta .entry-title {
  margin: 2rem 0;
  padding: 0 0 2rem;
  color: #272d2e;
  border-bottom: 1px solid #afafaf;
}
body.single .entry-meta .text-day {
  margin: 0 1em;
}
body.single .entry-content {
  margin: 2rem auto 0;
}
body.single .entry-content img {
  margin: 2% 0 0;
}
body.single #works-single-slider {
  position: relative;
  height: 566px;
  overflow: hidden;
}
body.single #works-single-slider .swiper-slide {
  height: auto;
}
body.single #works-single-slider .swiper-slide .box-img {
  height: 100%;
}
body.single #works-single-slider .swiper-slide .img-slider {
  width: 100%;
  height: 100%;
}
body.single #works-single-slider .swiper-button-next {
  right: 0;
}
body.single #works-single-slider .swiper-button-prev {
  left: 0;
}
body.single #works-single-slider .swiper-button-next::after,
body.single #works-single-slider .swiper-button-prev::after {
  font-size: 3rem;
  color: #1ba4b8;
  padding: 2rem;
  background: #fff;
}
body.single #single-thum-slider {
  margin: 20px 0 4rem;
  height: 100px;
}
body.single #single-thum-slider .swiper-slide {
  height: auto;
  cursor: pointer;
}
body.single #single-thum-slider .swiper-slide .box-img {
  height: 100%;
}
body.single #single-thum-slider .swiper-slide .img-slider {
  width: 100%;
  height: 100%;
}

/*===========================================================================
sp
===========================================================================*/

@media screen and (max-width: 1570px) {
  html {
    margin: 0;
  }
}

@media screen and (max-width: 1080px) {
  html {
    font-size: 60%;
  }
  .btn-base {
    font-size: 1.4rem;
  }
  .btn-inv {
    font-size: 1.4rem;
  }
  #site-navigation .menu-item a {
    font-size: 1.4rem;
  }
  #pamphlet {
    right: 60px;
  }
  #pamphlet .box-icon {
    padding: 0;
    width: 2vw;
    margin: 0 0 0 2rem;
  }
}

@media screen and (max-width: 767px) {
  html {
    margin: 0;
  }
  body {
    padding: 0;
  }
  .sec-wrapper {
    margin: 6rem auto 0;
  }
  br.pc {
    display: none;
  }
  br.sp {
    display: block;
  }
  p {
    line-height: 1.8;
  }
  .flex .w50 {
    width: 48%;
  }
  .flex .w50:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  .flex .w50:nth-child(even) {
    margin-right: 0;
  }
  .flex .w50:nth-child(n+3) {
    margin-top: 2rem;
  }
  .flex .w33 {
    width: 48%;
  }
  .flex .w33:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  .flex .w33:nth-child(even) {
    margin-right: 0;
  }
  .flex .w33:nth-child(n+3) {
    margin-top: 2rem;
  }
  .ttl-lg .text-en {
    font-size: 4rem;
  }
  .text-lg {
    font-weight: 700;
    font-size: 2rem;
  }
  .btn-base {
    width: auto;
    padding-right: 4em;
    padding-left: 4em;
  }
  .btn-inv {
    width: auto;
    padding-right: 4em;
    padding-left: 4em;
  }
  .wrap-btn .w50 {
    width: 48%;
  }
  .wrap-btn .w50:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  .wrap-btn .w50:nth-child(even) {
    margin-right: 0;
  }
  .wrap-btn .w50:nth-child(n+3) {
    margin-top: 2rem;
  }
  .wrap-btn .w33 {
    width: 48%;
  }
  .wrap-btn .w33:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  .wrap-btn .w33:nth-child(even) {
    margin-right: 0;
  }
  .wrap-btn .w33:nth-child(n+3) {
    margin-top: 2rem;
  }
  a[href^="tel:"] {
    pointer-events: auto;
    color: #1ba4b8;
  }
  .gmap iframe {
    height: 80vw;
  }
  input[type=text],
  input[type=email],
  input[type=tel] {
    padding: 0.5em;
  }
  textarea {
    padding: 0.5em;
    height: 16em;
  }
  #site-navigation #primary-menu {
    display: none;
    position: relative;
    position: fixed;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100vh - 8rem);
    z-index: 4999;
  }
  #site-navigation #primary-menu::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120%;
    background: rgba(39, 45, 46, 0.8);
    z-index: 1;
  }
  #site-navigation #primary-menu .menu-item {
    position: relative;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    margin: 0;
    padding: 2rem 1em;
    border-bottom: 1px solid #1ba4b8;
    font-size: 3rem;
    text-align: center;
    z-index: 10;
  }
  #site-navigation #primary-menu .menu-item .link-main-nav {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    font-size: 3rem;
    color: #fff;
  }
  #site-navigation #primary-menu .menu-item .link-main-nav::before {
    content: none;
  }
  #site-navigation #primary-menu .menu-item .parent {
    position: relative;
    padding: 0 4rem 0 0;
    color: #fff;
  }
  #site-navigation #primary-menu .menu-item .parent::after {
    content: ">";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    display: inline-block;
    -webkit-transform: rotate(90deg) scale(1, -1);
            transform: rotate(90deg) scale(1, -1);
    line-height: 1;
  }
  #site-navigation #primary-menu .menu-item .parent.open::after {
    -webkit-transform: rotate(90deg) scale(-1, -1);
            transform: rotate(90deg) scale(-1, -1);
  }
  #site-navigation #primary-menu .menu-item.contact {
    margin: 0 0 0;
    padding: 2px;
    border: none;
  }
  #site-navigation #primary-menu .menu-item.contact a {
    width: 100%;
    font-size: 3rem;
  }
  #site-navigation #primary-menu .menu-item .sub-menu {
    display: none;
    position: static;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    margin: 0 auto 0;
    padding: 0 0 0;
    border: none;
    background: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    visibility: visible;
    opacity: 1;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
  #site-navigation #primary-menu .menu-item .sub-menu .menu-item {
    padding: 2rem 0 0;
    border: none;
  }
  #site-navigation #primary-menu .menu-item .sub-menu .menu-item:last-child {
    margin: 0;
  }
  #site-navigation #primary-menu .menu-item .sub-menu .menu-item .link-text-border {
    color: #fff;
    font-size: 1.8rem;
  }
  #menu-toggle {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  #main-footer #footer-bottom .w50 {
    width: 48%;
  }
  #main-footer #footer-bottom .w50:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  #main-footer #footer-bottom .w50:nth-child(even) {
    margin-right: 0;
  }
  #main-footer #footer-bottom .w50:nth-child(n+3) {
    margin-top: 2rem;
  }
  #main-footer #footer-bottom .w33 {
    width: 48%;
  }
  #main-footer #footer-bottom .w33:nth-child(3n) {
    margin: 2rem 2% 0 0;
  }
  #main-footer #footer-bottom .w33:nth-child(even) {
    margin-right: 0;
  }
  #main-footer #footer-bottom .w33:nth-child(n+3) {
    margin-top: 2rem;
  }
  #pagetop {
    bottom: 3%;
    width: 6rem;
    height: 6rem;
  }
  #pagetop::before {
    -webkit-transform: translate(-22%, -2px) rotate(-45deg);
            transform: translate(-22%, -2px) rotate(-45deg);
  }
  #pagetop::after {
    -webkit-transform: translate(22%, -2px) rotate(45deg);
            transform: translate(22%, -2px) rotate(45deg);
  }
  #pamphlet {
    position: static;
    top: auto;
    right: auto;
    bottom: 0;
    margin: 0;
    padding: 2px;
    -webkit-transform: none;
            transform: none;
  }
  #pamphlet:hover {
    -webkit-transform: none;
            transform: none;
  }
  #pamphlet .link-pamphlet {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
  }
  #pamphlet .box-icon {
    width: 2rem;
  }
  #pamphlet .text {
    margin: 0 3rem 0 2em;
  }
  #wrap-page-ttl {
    width: 100%;
    padding: 4rem 0;
  }
  #wrap-page-ttl .ttl-en {
    font-size: 4rem;
  }
  #wrap-page-ttl .ttl-jp {
    font-size: 1.4rem;
  }
  .page-about {
    margin: 8% auto;
  }
  .breadcrumbs {
    text-align: left;
  }
  .breadcrumbs::after {
    left: -2px;
    top: 2px;
  }
  .breadcrumbs .current-item {
    max-width: 8em;
  }
  .bnr-contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 6vw;
  }
  .bnr-contact::after {
    content: none;
  }
  .bnr-contact .ttl-lg {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    margin: 0 0 2rem;
  }
  .bnr-contact .box-text {
    text-align: center;
  }
  .post-list-wrap .content-text {
    font-size: 1.4rem;
  }
  .post-list-wrap .news-list .link-arrow::after {
    content: none;
  }
  .post-list-wrap .news-list .post-texts {
    padding: 0;
  }
  body {
    padding-top: 8rem;
  }
  #masthead {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 5000;
  }
  #masthead::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    border-bottom: 1px solid #f9f9f9;
    -webkit-backdrop-filter: blur(2px);
            backdrop-filter: blur(2px);
    z-index: 1;
  }
  #masthead .site-title {
    width: auto;
  }
  #masthead .inner {
    position: relative;
    height: 8rem;
    z-index: 10;
  }
  #masthead .site-title .logo-img {
    width: 28vw;
    margin: 0 1em 0 0;
  }
  #main-footer {
    margin: 16% 0 0;
    padding: 0;
  }
  #main-footer #footer-bottom {
    padding: 4rem 0;
  }
  #main-footer #footer-bottom .logo-img {
    width: 18vw;
  }
  #main-footer #footer-bottom .box-logo {
    margin: 0 auto;
  }
  #main-footer #footer-bottom #footer-nav {
    display: none;
  }
  #main-footer #copy-right {
    position: static;
    width: 100%;
    padding: 0;
    text-align: center;
    background: #fff;
    -webkit-transform: none;
            transform: none;
  }
  #pagetop {
    bottom: 0;
  }
  body.home #home-mv .mv-text .ttl-en {
    font-size: 8vw;
  }
  body.home #home-mv .mv-text .ttl {
    font-size: 3vw;
  }
  body.home #home-mv .mv-text .text-border::after {
    height: 1px;
  }
  body.home #home-mv #scroll-down {
    display: none;
  }
  body.home #home-mv .swiper-container {
    height: 400px;
  }
  body.home #home-mv .swiper-pagination {
    bottom: 1rem;
  }
  body.home #home-news .post-list-wrap {
    margin: 2rem auto 0;
  }
  body.home #home-news .post-list-wrap li {
    padding: 1em 0;
  }
  body.home #home-news .post-list-wrap .link-text {
    display: block;
    width: 100%;
    margin: 0.5em 0 0;
    text-align: left;
    font-size: 1.8rem;
  }
  body.home #home-company .wrapper-quality {
    width: 100%;
    height: auto;
    padding: 8rem 2rem;
  }
  body.home #home-company .wrapper-quality p {
    margin: 2rem 0 0;
    line-height: 2.4;
  }
  body.home #home-company .wrapper-right {
    width: 100%;
  }
  body.home #home-company .wrapper-right .box-link {
    height: 200px;
  }
  body.home #home-service .box-service {
    width: 100%;
    margin: 2rem 0 0;
  }
  body.home #home-service .box-service .box-text {
    padding: 0 0.5em;
  }
  body.home #home-service .box-service .ttl-sm {
    margin: 1rem 0;
    padding: 0;
  }
  body.home #home-service .box-service .ttl-sm::before {
    -webkit-transform: translateY(-110%);
            transform: translateY(-110%);
    background: #fff;
  }
  body.home #home-service .box-service p {
    margin: 1rem 0 0;
  }
  body.home #home-works {
    padding: 8% 0;
  }
  body.home #home-works .ttl-lg {
    position: static;
  }
  body.home #home-works .box-works {
    margin: 4rem 0 0;
  }
  body.home #home-works .box-works .box-text {
    width: 100%;
    margin: 2rem auto;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  body.home #home-works .box-works .box-text .ttl-sm {
    margin: 1rem 0 0;
    font-weight: 700;
  }
  body.home #home-works .box-works .box-img {
    width: 100%;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  body.home #home-works .box-works .box-img img {
    height: 240px;
  }
  body.home #home-works .wrap-btn {
    position: static;
  }
  body.home #home-works #thum-slider {
    position: static;
    width: 100%;
    max-width: 94%;
    margin: 2rem auto;
    -webkit-transform: none;
            transform: none;
  }
  body.home #home-works #thum-slider .swiper-wrapper img {
    height: 6rem;
  }
  body.construction .bg-wrap-wide .box-text {
    padding: 4rem;
    background: rgba(255, 255, 255, 0.9);
  }
  body.road-maintenance .wrap-color-box .box-color-main {
    width: 100%;
    margin: 8% 0 0;
  }
  body.road-maintenance .wrap-color-box .box-color-main::before {
    -webkit-transform: translate(2rem, -50%);
            transform: translate(2rem, -50%);
  }
  body.security .wrap-overlap-box .box-overlap .box-img {
    width: 80%;
    height: 420px;
  }
  body.security .wrap-overlap-box .box-overlap .box-img img {
    height: 100%;
  }
  body.security .wrap-overlap-box .box-overlap .box-text {
    max-width: 80%;
    padding: 4rem;
    background: rgba(255, 255, 255, 0.9);
  }
  body.security .wrap-overlap-box .box-overlap p {
    margin: 2rem 0 0;
  }
  body.renovation .wrap-overlap-box .box-overlap .box-img {
    width: 80%;
    height: 420px;
  }
  body.renovation .wrap-overlap-box .box-overlap .box-img img {
    height: 100%;
  }
  body.renovation .wrap-overlap-box .box-overlap .box-text {
    max-width: 80%;
    padding: 4rem;
    background: rgba(255, 255, 255, 0.9);
  }
  body.renovation .wrap-overlap-box .box-overlap p {
    margin: 2rem 0 0;
  }
  body.company #message .wrap-message .box-img {
    width: 100%;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  body.company #message .wrap-message .box-text {
    width: 100%;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  body.company #message .wrap-message .box-bottom {
    margin: 4rem 0 0;
  }
  body.company #message .wrap-message p + p {
    margin: 2rem 0 0;
  }
  body.company #message .wrap-message .box-img .box-name {
    max-width: 50%;
    left: 2rem;
  }
  body.company .ttl-lg {
    margin: 0 0 4rem;
  }
  body.company #message .ttl-lg {
    margin: 0 0 2rem;
  }
  body.company #access .wrap-map .gmap {
    width: 100%;
  }
  body.company #access .wrap-map .box-text {
    width: 100%;
    padding: 2em;
  }
  body.company #access .wrap-map .box-text::after {
    content: none;
  }
  body.contact .tel-link .tel-num {
    font-size: 4rem;
  }
  body.contact .text-time .text-num {
    font-size: 2.4rem;
  }
  body.contact #sec-form .tbl-contact th {
    display: block;
    width: 100%;
    font-weight: 700;
  }
  .tbl-base tr th,
  .tbl-base tr td {
    display: block;
    width: 100%;
    padding-top: 0;
  }
  .post-list-wrap .news-list li {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .post-list-wrap .news-list .thumbnail-wrap {
    min-width: auto;
    width: 100%;
    height: 160px;
    margin: 0 0 1rem;
    overflow: hidden;
  }
  .post-list-wrap .news-list .thumbnail-wrap .noimage img {
    width: auto;
    height: 80%;
  }
  .post-list-wrap .news-list .post-texts {
    width: 100%;
    max-width: none;
  }
  .works-list-wrap .box-works {
    width: 100%;
    margin: 0;
    padding: 3.2rem 0;
    border-bottom: 1px solid #f2fafb;
  }
  .works-list-wrap .box-works:nth-child(n+3) {
    margin: 4rem 0 0;
  }
  .works-list-wrap .box-img {
    min-width: auto;
    width: 100%;
    height: 160px;
    margin: 0 0 1rem;
    padding: 0;
    overflow: hidden;
  }
  .works-list-wrap .box-img:nth-child(n+2) {
    margin: 4rem 0 0;
  }
  .works-list-wrap .box-img .noimage img {
    width: auto;
    height: 80%;
  }
  .works-list-wrap .box-img .wp-post-image,
  .works-list-wrap .box-img .noimage {
    padding: 0;
    height: 160px;
  }
  body.single #works-single-slider {
    height: 56vw;
  }
  body.single #single-thum-slider {
    height: 10vw;
    margin: 2rem 0 4rem;
  }
}

@media screen and (max-width: 467px) {
  html {
    font-size: 50%;
  }
  .ttl-md {
    font-size: 2.4rem;
  }
  .tbl-base tr th {
    padding: 1em 0.5em 1em 0;
    width: 32%;
    vertical-align: middle;
  }
}