@charset "utf-8";

/* Noto Sans */
.sans-l,
.h2-en,
.cmn-txt,
.sub .catch-en {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  letter-spacing: .1em;
}

.sans-r,
time,
.cmn-th,
.cmn-td,
.work-ttl,
#news .time,
#news .cmn-txt,
#works .head-type04,
input,
textarea,
#site .site-link,
#privacy p {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  letter-spacing: .1em;
}

.sans-m,
.g-en,
#exterior .accent,
#company .name-txt {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  letter-spacing: .1em;
}

/* Noto Serif */
.serif-r,
.video-ttl
#footer .cmn-txt,
#footer .tel-txt,
#footer small,
#footer small a,
#sec01 .sub-catch,
#sec02 .sec02-ttl,
#contact .tel-txt,
#contact .tel-number,
.head-type03,
.head-type04,
.head-type05,
#works .tag-head {
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  letter-spacing: .1em;
}

.serif-m,
.tel-txt,
.tel-number,
.g-ja,
#footer .tel-number,
#footer .nav-li,
.h2-ja,
.cmn-btn,
.sub-menu-link,
.sub .head-type02 {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  letter-spacing: .1em;
}

.bold {font-weight: bold !important;}
.t-center {text-align: center !important;}
.t-right {text-align: right !important;}
.t-left {text-align: left !important;}
.f12 {font-size: 12px !important;}
.f13 {font-size: 13px !important;}
.f14 {font-size: 14px !important;}
.f15 {font-size: 15px !important;}
.mt00 {margin-top: 0 !important;}
.mt10 {margin-top: 10px !important;}
.mt20 {margin-top: 20px !important;}
.mt30 {margin-top: 30px !important;}
.mt40 {margin-top: 40px !important;}
.mt50 {margin-top: 50px !important;}
.mt60 {margin-top: 60px !important;}
.mt70 {margin-top: 70px !important;}
.mt80 {margin-top: 80px !important;}
.mb00 {margin-bottom: 0 !important;}
.mb10 {margin-bottom: 10px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}
.w100 {width: 100% !important;}
/************************************************

PC layout

************************************************/
/* =========================================
  base
========================================= */
body { /* fontはcmn-txtに合わせる */
  width: 100%;
  min-width: 1100px;
  font-family: 'Noto Sans JP', sans-serif;
}

/* safariの自動CSSを打ち消す */
* {
  -webkit-appearance: none;
}

.disable-auto-tel a {
  color: inherit;
  text-decoration:none;
}

img {
  max-width: 100%;
  vertical-align: middle;
}

a[href^="tel:"] {
  pointer-events: none;
}

a,
input[type=submit],
a img {
  -webkit-transition:opacity .4s;
  transition: opacity .4s;
}

a:hover,
input[type=submit]:hover {
  opacity: .7;
}

.sec-inner,.bread-inner {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}

.sp-only {
  display: none !important;
}

.sp-img {
  display: none;
}

@media screen and (min-width: 768px) {
  .cmn-txt.t-center.w100 {
    padding-top: 50px;
  }
}

/*	flex parts
------------------------------------ */
.fle {
  display: -webkit-box;
  display: flex;
}

.fle-wrap {
  flex-wrap: wrap;
}

.fle-nowrap {
  flex-wrap: nowrap;
}

.fle-column {
  flex-direction: column;
}

.fle-start {
  justify-content: flex-start;
}

.fle-end {
  justify-content: flex-end;
}

.fle-between {
  justify-content: space-between;
}

.fle-around {
  justify-content: space-around;
}

.fle-left {
  justify-content: left;
}

.fle-center {
  justify-content: center;
}

.fle-right {
  justify-content: right;
}

.fle-align-baseline {
  align-items: baseline;
}

.fle-align-start {
  align-items: flex-start;
}

.fle-align-center {
  align-items: center;
}

.fle-align-end {
  align-items: flex-end;
}

.fle-reverse {
  flex-flow: row-reverse;
}

/*	parts  PC
------------------------------------ */
.br {
  display: inline-block;
}

.cmn-txt {
  color: #333;
  font-size: 16px;
  font-size: 1.6rem;
  letter-spacing: .1em;
  line-height: 1.875;
}

.tel-txt {
  display: inline-block;
}

/*--- cmn-btn ----*/
.cmn-btn {
  display: block;
  width: 260px;
  height: 42px;
  margin: auto;
  text-align: center;
  font-size: 20px;
  font-size: 2rem;
  line-height: 42px;
  position: relative;
}

.cmn-btn::after {
  content: '';
  border-width: 0 0 20px 20px;
  border-style: solid;
  border-color: #fff #fff #e5e5e5;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15);
  position: absolute;
  left: -1px;
  top: -1px;
}

.cmn-btn.white::after {
  border-color: #222 #222 #d2d2d2;
  box-shadow: 1px 1px 1px rgba(255, 255, 255, .15);
}

.cmn-btn.black {
  background: #222;
  color: #fff;
}

.cmn-btn.white {
  background: #fff;
  color: #222;
}

/*--- cmn-table ----*/
.cmn-table {
  width: 100%;
}

.cmn-tr {
  border-bottom: 1px solid #c9c9c9;
}

.cmn-th,
.cmn-td {
  padding: 22px 0;
  color: #222;
  vertical-align: middle;
}

.cmn-th {
  width: 32.25%;
  text-align: center;
}

.cmn-td {
  width: 67.75%;
  padding-left: 3%;
}

/*	heading  PC
------------------------------------ */
.head-type01::before,
.head-type01::after,
.head-type02::before,
.head-type02::after {
  content: '';
  display: inline-block;
  width: 1px;
  height: 51px;
  position: absolute;
  top: 10px;
  transform: rotate(16deg);
}

.head-type01::before,
.head-type01::after,
.head-type02::before,
.head-type02:after {
  background: #686868;
}

.head-type01::before,
.head-type02::before {
  left: 0;
}

.head-type01::after,
.head-type02::after {
  right: 0;
}

.head-type01,
.head-type02 {
  display: inline-block;
  padding: 0 45px;
  text-align: center;
  letter-spacing: .05em;
  position: relative;
}

.h2-ja,
.h2-en {
  display: block;
}

.h2-ja {
  font-size: 36px;
  font-size: 3.6rem;
}

.h2-en {
  margin-top: 4px;
  color: #555;
  font-weight: 200;
}

/* type02 白 */
#sec02 .head-type02::before,
#sec02 .head-type02:after,
#sec04 .head-type02::before,
#sec04 .head-type02:after,
#contact .head-type02::before,
#contact .head-type02:after {
  background: #fff;
}

#sec02 .head-type02 .h2-ja,
#sec04 .head-type02 .h2-ja,
#contact .head-type02 .h2-ja {
  color: #fff;
}

#sec02 .head-type02 .h2-en,
#sec04 .head-type02 .h2-en,
#contact .head-type02 .h2-en {
  color: #fefefe;
}

.head-wrap {
  text-align: center;
}

.head-type03 {
  height: 60px;
  background: #222;
  padding-left: 5%;
  color: #fff;
  font-size: 22px;
  font-size: 2.2rem;
  letter-spacing: .1em;
  line-height: 60px;
}

.head-type04 {
  height: 50px;
  background: url(../img/common/cmn-bg.png)repeat;
  color: #333;
  font-size: 20px;
  font-size: 2rem;
  line-height: 50px;
}

.head-type05 {
  width: 480px;
  padding-left: 28px;
  background: #fff;
  box-shadow: 4px 4px #222;
  color: #333;
  font-size: 20px;
  font-size: 2rem;
  letter-spacing: .1em;
  line-height: 50px;
}

/*	form  PC
------------------------------------ */
textarea,input[type='text'],
input[id='tel'] {
  min-height: 40px;
  border: none;
  background: #ebedf0;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 40px;
  box-sizing: border-box;
}

input[type='text'],
input[id='tel'] {
  width: 100%;
}

textarea {
  width: 100%;
}

input[type=checkbox] {
  width: 20px;
  height: 20px;
  border: 1px solid #909090;
  vertical-align: bottom;
}

input[type="submit"] {
  width: 100%;
  max-width: 300px;
  height: 50px;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 50px;
}

/* mark 「必須」マーク */
.required-mark {
  color: #d30000;
  font-size: 10px;
  font-size: 1rem;
  vertical-align: 5px;
}

/* 「~が入力されていません」などの未記入エラー文 */
.error-text {
  margin: 0 0 4px;
  color: #d30000;
  font-size: 15px;
  font-size: 1.5rem;
}

label[for="agree"] a {
  color: inherit;
  text-decoration: underline;
}

input[name="check"] {
  background: #3b3a3a;
}

input[name="back"] {
  background: #909090;
  color: #fff;
}

input[name="send"] {
  margin: 20px 0 0;
  background: #3b3a3a;
}

input[type="submit"]:disabled {
  color: rgba(255, 255, 255, 0.5);
}

.contact-submits-wrap {
  width: 100%;
  margin: 47px auto 0;
  text-align: center;
}

.submit-box {
  position: relative;
}

.contact-recaptcha-wrap {
  display: table;
  margin: 20px auto;
  text-align: center;
}

/* radio,checkのcss */

input[type=radio],
input[type=checkbox] {
  display: none;
}

input[type=radio] + label,
input[type=checkbox] + label {
  display: block;
  padding: 0 0 0 34px;
  position: relative;
  line-height: 1.4;
}

input[type=radio] + label::before,
input[type=checkbox] + label::before {
  content: "";
  position: absolute;
  left: 0;
  display: block;
  width: 18px;
  height: 18px;
  background: #FFF;
}

input[type=radio]:checked + label::after,
input[type=checkbox]:checked + label::after {
  content: "";
  position: absolute;
  display: block;
}

input[type=checkbox] + label::before {
  border: 2px solid #ccc;
}

input[type=checkbox]:checked + label::after {
  top: 0;
  left: 3px;
  width: 16px;
  height: 8px;
  border-left: 3px solid #3b3a3a;
  border-bottom: 3px solid #3b3a3a;
  transform: rotate(-45deg);
}

/*	pagetop  PC
------------------------------------ */
#pagetop {
  display: none;
  position: fixed;
  cursor: pointer;
  z-index: 1010;
  right: 48px;
  bottom: 40px;
  -webkit-transition: all .4s;
  transition: all .4s;
}

#pagetop .top-btn {
  display: block;
}

/*	breadcrumb  PC
------------------------------------ */
.breadcrumb {
  position: relative;
}

.breadcrumb a {
  color: inherit;
}

.breadcrumb .fle {
  color: #000;
  font-size: 12px;
  font-size: 1.2rem;
  flex-flow: wrap;
  justify-content: flex-start;
  position: absolute;
  top: 20px;
  z-index: 99;
}

.breadcrumb .fle li:not(:first-child)::before {
  content: '>';
  padding: 0 4px;
}

/*	pagenation  PC
------------------------------------ */
.pagenation {
  display: inline-block;
  width: 100%;
  margin-top: 100px;
  text-align: center;
}

.pagenation li {
  display: inline-block;
  height: 60px;
  width: 60px;
  border: 1px solid #111;
  background: #fff;
  line-height: 60px;
  -webkit-transition: all .4s;
  transition: all .4s;
}

.pagenation li:hover {
  border: none;
  background: #999;
}

.pagenation li:hover a {
  color: #fff;
}

.pagenation li.super-page {
  width: 100px;
}

.pagenation li + li {
  margin: 0 0 0 20px;
}

.pagenation li a {
  display: block;
  height: inherit;
  color: #000;
  font-size: 20px;
  font-size: 2rem;
  font-weight: bold;
}

.pagenation .back-arrow {
  background: url(../img/common/back-arrow.png)no-repeat center;
}

.pagenation .prev-arrow {
  background: url(../img/common/prev-arrow.png)no-repeat center;
}

.pagenation span {
  font-size: 24px;
  font-size: 2.4rem;
}

.pagenation .current {
  border: none;
  background: #999;
}

.pagenation .current span {
  color: #fff;
}

.pagenation .circle-arrow {
  vertical-align: text-bottom;
}

/*	detail pagenation  PC
------------------------------------ */
.pagenation-inner {
  padding: 30px 0;
}

.data-nav a {
  color: #000;
}

.data-nav .back-arrow,
.data-nav .next-arrow {
  position: relative;
}

.data-nav .back-arrow::before,
.data-nav .next-arrow::after {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  position: absolute;
  top: 9px;
}

.data-nav .back-arrow::before {
  margin-right: 2%;
  background: url(../img/common/back-arrow.png)no-repeat;
  left: -20px;
}

.data-nav .next-arrow::after {
  margin-left: 2%;
  background: url(../img/common/prev-arrow.png)no-repeat;
  right: -20px;
}

.data-nav .to-works {
  margin: 0 78px;
  padding: 0 10px;
  border-left: 1px solid #000;
  border-right: 1px solid #000;
}

/*	ggmap  PC
------------------------------------ */
.ggmap {
  margin-top: 68px;
}

/* =========================================
  header  PC
========================================= */
/*	headline
------------------------------------ */
#header .headline {
  width: 100%;
  height: 100px;
  padding: 0 20px;
  background: #222;
}

#header .h-logo {
  margin-right: auto;
}

#header .tel-box {
  padding: 0 15px;
  border: 1px solid #fff;
}

#header .tel-txt,
#header .tel-number {
  color: #fff;
  letter-spacing: .05em;
}

#header .tel-txt {
  font-size: 15px;
  font-size: 1.5rem;
}

#header .tel-number {
  padding-left: 10px;
  font-size: 32px;
  font-size: 3.2rem;
}

#header .insta,
#header .fb {
  margin-left: 20px;
}

#header .nav-wrap {
  width: 100%;
  height: 80px;
  background: #fff;
  -webkit-transition: .3s;
  transition: .3s;
}

/* 上部固定 */
.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}

/*	gnav  PC
------------------------------------ */
#gnav .g-ul {
  height: 100%;
}

#gnav .g-li {
  display: inline-block;
}

#gnav .g-li+.g-li {
  margin-left: 80px;
}

#gnav .g-link {
  display: block;
}

#gnav .g-ja {
  color: #222;
  font-size: 18px;
  font-size: 1.8rem;
}

#gnav .g-en {
  margin-top: 4px;
  text-align: center;
  color: #999999;
  font-size: 11px;
  font-size: 1.1rem;
}

/*	sub-menu  PC
------------------------------------ */
.drop-btn {
  position: relative;
}

.sub-menu {
  display: none;
  width: 180px;
  position: absolute;
  top: 63px;
  left: -53px;
  z-index: 1010;
}

.drop-hover {
  transition: all .3s ease;
  display: inline-block;
}

.sub-menu-li {
  background: rgba(213, 220, 229, .9);
}

.sub-menu-li+.sub-menu-li {
  margin-top: 1px;
}

.sub-menu-link {
  display: block;
  text-align: center;
  color: #222;
}

.pc-only .sub-menu-link {
  height: 30px;
  line-height: 30px;
}

/*	sp-menu-btn
------------------------------------ */
#sp-menu-btn {
  display: none;
}

/*	side-btn PC
------------------------------------ */
.side-btn {
  position: fixed;
  right: 33px;
  bottom: 50px;
  z-index: 1000;
  -webkit-transition:all .35s;
  transition: all .35s;
}

.side-btn a {
  display: block;
}

/* =========================================
  footer  PC
========================================= */
#footer .f-bg {
  background: #222;
}

#footer .sec-inner {
  padding: 80px 0 55px;
}

#footer .cmn-txt {
  margin-top: 50px;
  color: #efefef;
  font-size: 18px;
  font-size: 1.8rem;
}

#footer .tel-txt {
  color: #efefef;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: .1em;
}

#footer .tel-number {
  margin-left: 6px;
  font-size: 24px;
  font-size: 2.4rem;
}

#footer .nav-ul {
  width: 660px;
}

#footer .nav-li {
  width: 50%;
  text-align: left;
}

#footer .nav-li a {
  display: inline-block;
  color: #efefef;
}

#footer .nav-li a::before {
  content: '・';
}

#footer .nav-li:nth-of-type(n+3) {
  margin-top: 20px;
}

#footer .cr-bg {
  background: url(../img/common/cmn-bg.png)repeat 0 22px/contain;
}

#footer .copyright {
  height: 50px;
  background: rgba(0, 0, 0, .6);
  font-size: 13px;
  font-size: 1.3rem;
}

#footer small,
#footer small a {
  color: #efefef;
}

/* =========================================
  main  PC
========================================= */
/*	main-vis
------------------------------------ */
#header .main-vis {
  height: 770px;
  background: url(../img/top/mv.jpg)no-repeat center/cover;
  position: relative;
}

#header .main-vis .sec-inner {
  height: 100%;
}

.top #header .catch {
  position: absolute;
  top: 255px;
  left: 236px;
}

/*	sec01  PC
------------------------------------ */
#sec01 .sec-bg {
  padding: 150px 0 295px;
  background: #fff;
  position: relative;
}

#sec01 .img {
  max-width: 50%;
  margin-left: auto;
  text-align: right;
}

#sec01 .txt-box::before {
  content: '';
  display: inline-block;
  width: 333px;
  height: 170px;
  background: url(../img/top/sec01-ico.png)no-repeat;
  position: absolute;
  top: -104px;
  left: -120px;
}

#sec01 .txt-box {
  /* width: 44.8%; */
  width: 860px;
  padding-bottom: 81px;
  border: 1px solid #777;
  text-align: center;
  position: absolute;
  top: 226px;
  left: 200px;
}

#sec01 .head-type01 {
  background: #fff;
  transform: translateY(-36px);
}

#sec01 .txt-detail {
  width: 540px;
  max-width: 90%;
  margin: auto;
  text-align: left;
}

#sec01 .sub-catch {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.92;
}

#sec01 .cmn-txt.first {
  margin-top: 20px;
}

#sec01 .cmn-btn-wrap {
  margin-top: 45px;
}

#sec01 .video-bg {
  padding: 0 0 100px;
  background-color: #fff;
}

#sec01 .video-wrap {
  width: 100%;
  max-width: 800px;
  height: 0;
  margin: 50px auto 0;
  padding-top: 450px;
  position: relative;
}

#sec01 .video-ttl {
  text-align: center;
}

#sec01 .video-ttl-span {
  font-size: 40px;
  color: #333;
  position: relative;
}

#sec01 .video-ttl-span::before,
#sec01 .video-ttl-span::after {
  content: '';
  display: inline-block;
  width: 1px;
  height: 51px;
  background: #333;
  position: absolute;
  top: 10px;
  transform: rotate(16deg);
}

#sec01 .video-ttl-span::before {
  left: -20px;
}
#sec01 .video-ttl-span::after {
  right: -20px;
}

#sec01 .video-wrap iframe {
  width: 100%;
  height: 100%;
  margin: auto;
  border: none;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.ofj {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: 'object-fit: cover;';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

/*	sec02  PC
------------------------------------ */
#sec02 .sec-bg {
  background: #222;
  position: relative;
}

#sec02 .sec-bg::after {
  content: '';
  display: inline-block;
  width: 400px;
  height: 212px;
  background: url(../img/top/sec02-ico.png)no-repeat;
  position: absolute;
  bottom: -118px;
  right: 68px;
}

#sec02 .sec-inner {
  padding: 150px 0 153px;
}

#sec02 .head-type02::before,
#sec02 .head-type02:after {
  background: #fff;
}

#sec02 .head-type02 .h2-ja {
  color: #fff;
}

#sec02 .head-type02 .h2-en {
  color: #fefefe;
}

#sec02 .sec02-ul {
  margin-top: 100px;
}

#sec02 .sec02-li {
  width: 100%;
  height: 587px;
  max-width: 360px;
  position: relative;
}

#sec02 .sec02-ttl {
  height: 55px;
  margin: auto;
  background: #fff;
  text-align: center;
  line-height: 55px;
  color: #333;
  font-size: 24px;
  font-size: 2.4rem;
  position: absolute;
  top: -25px;
  left: 0;
  right: 0;
}

#sec02 li:nth-of-type(1) .sec02-ttl {
  width: 160px;
}

#sec02 li:nth-of-type(2) .sec02-ttl {
  width: 300px;
}

#sec02 li:nth-of-type(3) .sec02-ttl {
  width: 240px;
}

#sec02 .cmn-txt {
  margin-top: 16px;
  color: #fff;
  font-weight: 300;
}

#sec02 .cmn-btn-wrap {
  margin: auto;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}


/*	sec03  PC
------------------------------------ */
.works .sec-bg {
  padding: 200px 20px;
  background: #fff;
}

.works .works-ul {
  margin-top: 75px;
}

.works .works-li {
  width: 100%;
  height: 100%;
  max-width: 455px;
  max-height: 480px;
  position: relative;
}

.works .works-li+.works-li {
  margin-left: 20px;
}

.works .works-link {
  display: block;
  width: 100%;
  height: 0;
  padding-top: 480px;
  position: relative;
}

.works .works-link img {
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: cover;
  font-family: 'object-fit: cover;';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.works .works-link img:nth-of-type(n+2) {
  display: none;
}

.works .txt-box {
  width: 300px;
  max-width: 100%;
  height: 60px;
  padding-top: 10px;
  padding-left: 6%;
  padding-right: 3%;
  background: #fff;
  position: absolute;
  right: 0;
  bottom: 0;
}

time,
.work-ttl {
  color: #222;
}

time {
  font-size: 13px;
  font-size: 1.3rem;
}

.works .cmn-btn-wrap {
  margin-top: 80px;
}


/*	top news  PC
------------------------------------ */
.top #news {
  position: relative;
  z-index: 1;
}

#news .sec-bg {
  background: url(../img/common/cmn-bg.png)repeat center;
  position: relative;
  z-index: -2;
}

#news .sec-bg::before {
  content: '';
  display: inline-block;
  width: 380px;
  height: 438px;
  background: url(../img/top/sec04-ico.png)no-repeat;
  position: absolute;
  top: 100px;
  left: 60px;
  z-index: -1;
}

#news .sec-inner {
  width: 1080px;
  padding: 150px 0;
}

#news .news-ul {
  margin-top: 73px;
}

.top #news .news-li,
.sub #news .news-link {
  height: 56px;
  border: 1px solid #d6d7d7;
  background: rgba(255, 255, 255, .7);
  line-height: 56px;
}

#news .news-li+.news-li {
  margin-top: 20px;
}

#news .news-link {
  display: block;
  padding-left: 3%;
}

#news .time {
  font-size: 13px;
  font-size: 1.3rem;
}

#news .sec-inner .cmn-txt:not(.w100) {
  display: inline-block;
  margin-left: 15px;
}

#news .cmn-btn-wrap {
  margin-top: 50px;
}

/*	sec04  PC
------------------------------------ */
#sec04::before {
  content: "";
  display:block;
  width: 100%;
  height: 100vh;
  background: url(../img/top/sec05-bg.jpg)no-repeat center;
  background-size: cover;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -9;
}

#sec04 .sec-bg::before,
#sec04 .sec-bg::after {
  content: '';
  display: block;
  width: 100%;
  height: 150px;
  background: #fff;
}

#sec04 .sec-inner {
  padding: 102px 0 100px;
}

#sec04 .cmn-txt {
  margin-top: 66px;
  text-align: center;
  color: #fff;
}

#sec04 .cmn-btn-wrap {
  margin-top: 70px;
}

#sec04 .cmn-btn::after {
  content: none;
}

#sec04 .cmn-btn {
  width: 100%;
  background: url(../img/common/cmn-btn.png)no-repeat center;
  color: #222;
}

/*	contact  PC
------------------------------------ */
#contact {
  background: #fff;
  position: relative;
}

#contact::before {
  content: '';
  display: block;
  width: 80px;
  height: 80px;
  margin: auto;
  background: url(../img/top/logo.png)no-repeat;
  opacity: .8;
  position: absolute;
  top: 70px;
  left: 0;
  right: 0;
}

#contact .sec-bg {
  background: #555;
}

#contact .sec-inner {
  padding: 103px 0 80px;
  text-align: center;
}

#contact .h2-en {
  font-size: 16px;
  font-size: 1.6rem;
}

#contact .tel-txt,
#contact .tel-number {
  color: #fff;
}

#contact .tel-txt,
#contact-form main .tel-txt {
  margin-top: 40px;
  font-size: 26px;
  font-size: 2.6rem;
  letter-spacing: 0;
}

#contact .tel-number,
#contact-form main .tel-number {
  margin-left: 15px;
  font-size: 42px;
  font-size: 4.2rem;
  letter-spacing: 0;
}

#contact .cmn-btn-wrap {
  margin-top: 30px;
}

#contact .cmn-btn.white::after {
  border-color: #555 #555 #d2d2d2;
}

/*	sec05  PC
------------------------------------ */
#sec05 .sec-bg {
  background: #fff;
}

#sec05 .sec-inner {
  padding: 203px 0 187px;
}

#sec05 .sec05-flex {
  margin-top: 77px;
}

#sec05 .cmn-table {
  width: 620px;
}

#sec05 .sec-img {
  margin-left: 6%;
}

#sec05 .cmn-btn-wrap {
  margin-top: 50px;
}

/* =========================================
  sub  PC
========================================= */
/*	404  PC
------------------------------------ */
.sub .e404 .sec01 {
  padding-top: 100px;
}

.sub .e404 .sec-inner {
  padding: 0 0 100px;
}

.sub .e404 .cmn-txt {
  margin-top: 30px;
  text-align: center;
}

/* sub news  PC
------------------------------------ */
.sub #news .sec-bg,
.sub #news .sec-bg::before {
  z-index: auto;
}

.sub #news .sec-bg::before {
  width: 140px;
  height: 140px;
  background-size: contain;
}

.sub .news .sec-inner {
  padding-bottom: 100px;
}

.sub .news .body-txt {
  margin-top: 30px;
}

.sub .news .body-txt .cmn-txt {
  width: 100%;
}

.sub .news .news-img {
  width: 500px;
  height: 0;
  padding-top: 300px;
  margin-left: 5%;
  position: relative;
}

.sub .news .news-img img {
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: cover;
  font-family: 'object-fit: cover;';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.sub .news.detail {
  padding: 0;
}

.sub .news.detail .head-type02::before,
.sub .news.detail .head-type02::after {
  content: none;
}

.sub .news.detail .news-contents-box {
  margin-top: 80px;
}

.sub .news.detail .news-contents-box .cmn-txt {
  margin-top: 20px;
}

.sub .news .head-type02 {
  word-break: normal;
  justify-content: center;
}

/*	sub 共通  PC
------------------------------------ */
/* sub-vis */
.sub #header .sub-vis {
  width: 100%;
  height: 400px;
  background: url(../img/common/sub-vis.jpg)no-repeat 50% 12%/cover;
  position: relative;
}

.sub #header .catch {
  width: 580px;
  height: 160px;
  margin: auto;
  background: url(../img/common/cmn-bg.png)repeat;
  align-items: center;
  position: absolute;
  top: 120px;
  left: 0;
  right: 0;
}

.sub .catch-en {
  margin-top: 23px;
  color: #555555;
  font-size: 16px;
  font-size: 1.6rem;
  letter-spacing: .1em;
}

/* main */
.sub .sec01 {
  padding-top: 201px;
}

.sub .head-type02 {
  font-size: 36px;
  font-size: 3.6rem;
}

.sub .head-type02::before,
.sub .head-type02::after {
  top: 0;
}

.sub #contact {
  padding-bottom: 200px;
}

/* 施工事例4件のみ表示 */
.sub .works .works-li:nth-of-type(n+5) {
  display: none;
}

/*	concept  PC
------------------------------------ */
#concept .sec01 {
  padding-bottom: 200px;
}

.sub .img {
  display: none;
}

.contents-box {
  width: 100%;
  height: 540px;
  background-size: 50%;
  background-repeat: no-repeat;
  background-position: 100% 0;
}

#concept .box01 {
  margin-top: 80px;
}

.contents-box+.contents-box {
  margin-top: 150px;
}

.contents-box.reverse {
  background-position: 0 0;
}

#concept .box01 {
  background-image: url(../img/concept/img01.jpg);
}

#concept .box02 {
  background-image: url(../img/concept/img02.jpg);
}

#concept .box03 {
  background-image: url(../img/concept/img03.jpg);
}

#concept .box04 {
  background-image: url(../img/concept/img04.jpg);
}

.con {
  width: 100%;
  max-width: 520px;
  padding-top: 50px;
}

.reverse .con {
  margin: 0 0 0 auto;
}

#concept .cmn-txt {
  margin-top: 40px;
}

#concept .sec02 .sec-bg {
  margin: auto;
  max-width: 1920px;
  background: url(../img/common/cmn-bg.png)repeat;
}

#concept .sec02 .sec-inner {
  padding: 150px 0;
}

#concept .sec02-ul {
  width: 100%;
  max-width: 1320px;
}

#concept .sec02-li {
  width: 28.78%;
  max-width: 320px;
  height: 220px;
  padding: 10px;
  position: relative;
}

#concept .sec02-li::before {
  content: '';
  display: inline-block;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
}

#concept .sec02-li:nth-of-type(1) {
  background: url(../img/concept/bnr01.png)no-repeat;
}

#concept .sec02-li:nth-of-type(2) {
  background: url(../img/concept/bnr02.png)no-repeat;
}

#concept .sec02-li:nth-of-type(3) {
  background: url(../img/concept/bnr03.png)no-repeat;
}

#concept .txt-wrap {
  width: 100%;
  max-width: 320px;
  height: 100%;
  text-align: center;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
}

#concept .txt-flex {
  height: 100%;
}

#concept .serif-r,
#concept .sans-l {
  color: #fff;
  letter-spacing: .1em;
}

#concept .serif-r {
  font-size: 30px;
  font-size: 3rem;
}

#concept .sans-l {
  margin-top: 20px;
  font-size: 16px;
  font-size: 1.6rem;
}

/*	LANDSCAPING  PC
------------------------------------ */
#landscaping .sec01 .box01 {
  margin-top: 80px;
  background-image: url(../img/landscaping/img01.jpg?20260303);
}

#landscaping .sec01 .box02 {
  background-image: url(../img/landscaping/img02.jpg?20260303);
}

#landscaping .sec01 .box03 {
  background-image: url(../img/landscaping/img03.jpg?20260303);
}

@media screen and (min-width: 768px) {
  #landscaping .contents-box+.contents-box {
    margin-top:100px;
  }

  #landscaping .sec02-ul .box01 {
  background-image: url(../img/landscaping/01.jpg);
}

  #landscaping .sec02-ul .box02 {
    background-image: url(../img/landscaping/02.jpg);
  }

  #landscaping .sec02-ul .box03 {
    background-image: url(../img/landscaping/03.jpg);
  }

  #landscaping .sec02-ul .box001 {
  background-image: url(../img/landscaping/001.jpg);
}

  #landscaping .sec02-ul .box002 {
  background-image: url(../img/landscaping/002.jpg);
}
}

#landscaping .con .cmn-txt+.cmn-txt {
  margin-top: 35px;
}

#landscaping .sec02 .sec-inner {
  margin-top: 200px;
}

#landscaping .sec02-ul {
  margin-top: 80px;
}

#landscaping .sec02-li {
  height: 320px;
  background-repeat: no-repeat;
  background-position: 100% 0;
}

#landscaping .sec02-li+.sec02-li {
  margin-top: 60px;
}

#landscaping .con02 {
  width: 100%;
  max-width: 780px;
}

#landscaping .sec02 .cmn-txt {
  margin-top: 36px;
}

.sub .works .head-type02::before,
.sub .works .head-type02::after {
  top: 0;
}

.sub .works .works-ul {
  margin-top: 95px;
}

/*	exterior  PC
------------------------------------ */
#exterior .sec01 .box01 {
  margin-top: 80px;
  background-image: url(../img/exterior/img01.jpg?20260303);
}
#exterior .sec01 .box05 {
  background-image: url(../img/exterior/img05.jpg?20260303);
}

#exterior .sec01 .cmn-txt {
  margin-top: 46px;
}

#exterior .stamp-bg {
  margin-top: 150px;
  background: url(../img/common/cmn-bg.png)repeat;
}

#exterior  .stamp-bg .sec-inner {
  padding: 51px 0 97px;
  position: relative;
}

#exterior .stamp-bg .sec-inner::before {
  content: '';
  display: inline-block;
  width: 660px;
  height: 450px;
  background: url(../img/exterior/img02.jpg)no-repeat;
  position: absolute;
  right: 0;
  top: -50px;
}

#exterior .stamp-bg .cmn-txt {
  width: 100%;
  max-width: 480px;
  margin-left: 100px;
}

#exterior .sec02 {
  margin-top: 200px;
}

#exterior .sec02 .box01 {
  margin-top: 80px;
  background-image: url(../img/exterior/img03.jpg?20260303);
}

#exterior .sec02 .box02 {
  padding-top: 110px;
  padding-left: 160px;
  background-image: url(../img/exterior/img04.jpg);
}

#exterior .con03 {
  width: 36.3%;
  min-width: 410px;
  height: 320px;
  background: url(../img/common/cmn-bg.png)repeat;
  text-align: center;
  position: relative;
}

#exterior .con03::before,
#exterior .con03::after {
  content: '';
  display: inline-block;
  width: 70px;
  height: 70px;
  position: absolute;
}

#exterior .con03::before {
  border-top: 2px solid #222;
  border-left: 2px solid #222;
  top: -60px;
  left: -60px;
}

#exterior .con03::after {
  border-right: 2px solid #222;
  border-bottom: 2px solid #222;
  right: -60px;
  bottom: -60px;
}

#exterior .accent {
  display: block;
  color: #333;
  font-size: 20px;
  font-size: 2rem;
}

/*	management  PC
------------------------------------ */
#management .box01 {
  margin-top: 80px;
  background-image: url(../img/management/img01.jpg?20260303);
}
#management .box02 {
  background-image: url(../img/management/img02.jpg?20260303);
}
#management .box03 {
  background-image: url(../img/management/img03.jpg?20260303);
}
#management .box04 {
  background-image: url(../img/management/img04.jpg);
}

#management .cmn-txt {
  margin-top: 45px;
}

/* works  PC
------------------------------------ */
#works .sec01 {
  padding-bottom: 200px;
}

#works .sec-inner {
  width: 1080px;
}

#works .tag-nav {
  margin-top: 80px;
  border: 1px solid #222;
}

#works .tag-head {
  margin-top: 40px;
  text-align: center;
  color: #222;
  font-size: 18px;
  font-size: 1.8rem;
}

#works .tag-head::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  margin: 15px auto 0;
  background: #c9c9c9;
}

#works .tag-ul {
  width: 880px;
  margin: 38px auto 0;
  padding-bottom: 42px;
}

#works .works-ul {
  margin-top: 80px;
}

#works .works-ul .works-li:nth-of-type(3n-1),
#works .works-ul .works-li:nth-of-type(3n) {
  margin-left: 5%;
}

#works .works-ul .works-li:nth-of-type(n+4) {
  margin-top: 80px;
}

#works .works-li {
  width: 30%;
}

#works .tag-li .cmn-btn {
  font-size: 18px;
  font-size: 1.8rem;
}

.lightgallery a:not(:first-of-type) {
  display: none !important;
}

#works .works-img-box {
  display: block;
  width: 100%;
  max-width: 320px;
  height: 0;
  padding-top: 234px;
  border: 10px solid #e5e5e5;
  background: #222;
  position: relative;
}

.gallery-list {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
}

.gallery-list > li {
    width: 500px;
}

.gallery-list a:first-of-type {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 75%;
}

.gallery-list a:first-of-type img {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: none;
}

.gallery-list a:not(:first-of-type) {
    display: none;
}

#works .works-img {
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: cover;
  font-family: 'object-fit: cover;';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 9;
  left: 0;
}

#works .head-type04 {
  width: 100%;
  margin-top: 20px;
  padding-left: 28px;
}

/*	recruit  PC
------------------------------------ */
#recruit .box01 {
  margin-top: 80px;
  background-image: url(../img/recruit/img01.jpg);
}

#recruit .con {
  padding-top: 0;
}

#recruit .sec01,
#recruit .sec02 {
  padding-bottom: 200px;
}

#recruit .sec02 .sec-inner {
  width: 1080px;
}

.sub .cmn-table {
  margin-top: 100px;
}

.sub .cmn-td {
  padding-left: 0;
  text-align: left;
}

/*	company  PC
------------------------------------ */
#company .sec-bg {
  padding-bottom: 200px;
}

#company .box01 {
  background-image: url(../img/company/img01.jpg);
}

#company .cmn-txt+.cmn-txt {
  margin-top: 35px;
}

#company .contents-box {
  margin-top: 80px;
}

#company .name-txt {
  margin-top: 65px;
  text-align: right;
  color: #333;
  font-size: 18px;
  font-size: 1.8rem;
}

#company .cmn-td {
  line-height: 2.5;
}

#company .ggmap {
  margin-top: 150px;
}

/*	contact-form  PC
------------------------------------ */
#contact-form main .sec-inner {
  margin-top: 80px;
  text-align: center;
}

#contact-form main .tel-txt,
#contact-form main .tel-number {
  color: #222;
}

#contact-form .form-wrap .sec-inner {
  margin-top: 200px;
  padding-bottom: 200px;
}

#contact-form .note-txt {
  margin-top: 80px;
  text-align: left;
  color: #d30000;
}

#contact-form .cmn-table {
  margin-top: 20px;
}

/*	privacy  PC
------------------------------------ */
#privacy .head-type02 {
  width: 100%;
}

#privacy .head-type02::before,
#privacy .head-type02::after {
  content: none;
}

#privacy .txt-box {
  margin-top: 50px;
  padding-bottom: 50px;
}

#privacy .head-type02::before,
#privacy .head-type02::after {
  max-width: 100%;
}

#privacy .head-type02::before {
  margin-right: 2%;
}

#privacy .head-type02::after {
  margin-left: 2%;
}

/*	site  PC
------------------------------------ */
#site .sec01 {
  padding: 100px 0;
}

#site .site-li {
  width: 100%;
  min-height: 60px;
  line-height: 60px;
}

#site .site-li+.site-li {
  border-top: 1px solid #d7d6d6;
}

#site .site-link {
  display: block;
  margin-left: 2%;
  color: #222;
}
/************************************************

  SP layout

************************************************/
/* =========================================
  base
========================================= */
@media screen and (max-width: 767px) {
  body {
    min-width: 320px;
    font-size: 14px;
    font-size: 1.4rem;
  }

  body.active { /* スクロール禁止 */
    overflow: hidden;
  }

  .pc-only {
    display: none !important;
  }

  .sp-only {
    display: inherit !important;
  }

  a img {
    pointer-events: all;
  }

  a[href^="tel:"] {
  pointer-events: all;
}

/*	parts  SP
------------------------------------ */
  .sec-inner {
    width: 100% !important;
  }

  #header .seo-txt {
    margin: 0;
    line-height: 1.6;
    font-size: 12px;
    font-size: 1.2rem;
  }

  .sub .seo-txt {
    line-height: 1.2;
  }

  .cmn-txt,
  .cmn-txt-b {
    font-size: 14px;
    font-size: 1.4rem;
  }

  /* ---- cmn-btn ---- */
  .cmn-btn {
    height: 50px;
    line-height: 50px;
    font-size: 16px;
    font-size: 1.6rem;
  }

  /* ---- cmn-table ---- */
  .cmn-table,
  #sec05 .cmn-table {
    width: 100%;
  }

  .cmn-th,
  .cmn-td {
    display: block;
    width: 100%;
    padding: 10px 0;
    font-size: 14px;
    font-size: 1.4rem;
  }

  .cmn-th {
    text-align: left;
  }

  /* arrow */
  .arrow::before {
    right: -40px;
  }

/*	404  SP
------------------------------------ */
  #e404 .catch-ja {
    max-width: 200px;
  }

  .e404 .sec01 {
    padding-top: 40px;
  }


/*	heading  SP
------------------------------------ */
  .head-type01,
  .head-type02 {
    padding: 0 10%;
  }

  .head-type01::before,
  .head-type01::after,
  .head-type02::before,
  .head-type02::after {
    height: 100%;
  }

  .h2-ja,
  .sub .head-type02 {
    font-size: 20px;
    font-size: 2rem;
  }

  .h2-en {
    font-size: 12px;
    font-size: 1.2rem;
  }

  .head-type03 {
    height: auto;
    padding: 10px 2%;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5;
  }

  .head-type05 {
    width: 90%;
    margin: auto;
    padding: 10px 2%;
    line-height: 1.5;
  }

/*	form  SP
------------------------------------ */
  input[type='text'], input[id='tel'] {
    width: 100%;
  }

  textarea, input[type='text'], input[id='tel'] {
    font-size: 14px;
    font-size: 1.4rem;
  }

  .inline-privacy-policy-inner {
    margin: 0 3%;
    border: 1px solid #c9c9c9;
  }

/* =========================================
  header  SP
========================================= */
/*	headline
------------------------------------ */
  #header .headline {
    height: 64px;
    padding: 3px 2%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
  }

  #header .h-logo {
    width: 100%;
    max-width: 200px;
    margin: 5px 0 0;
  }

  #header .sp-tel {
    display: block;;
    position: fixed;
    top: 13px;
    right: 67px;
    z-index: 1010;
  }

  #header .fa-size {
    color: #fff;
    font-size: 2.5em;
  }

  .is-fixed {
    position: static;
    -webkit-overflow-scrolling: none;
    overflow-scrolling: none;
  }

/*	gnav  SP
------------------------------------ */
  #gnav {
    display: block;
    width: 70%;
    height: 100%;
    margin: 0;
    padding: 60px 0 0;
    background: #fff;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    right: -70%;
    z-index: 1010;
    color: #fff;
    -webkit-transition:.35s right ease;
    transition: .35s right ease;
    overflow-y: scroll;
  }

  #gnav.active {
    right: 0;
  }

  #gnav .g-ul {
    display: block;
    margin: auto;
    padding: 0 2%;
  }

  #gnav .g-li {
    display: block;
    height: 50px;
    padding: 0;
    border-bottom: 1px dashed #331f01;
    text-align: left;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 50px;
  }

  #gnav .sub-menu-link {
    padding-left: 5%;
  }

  #gnav .g-li+.g-li {
    padding: 0;
    margin-left: 0;
  }

  #gnav .g-link {
    display: -webkit-box;
    display: flex;
    align-items: baseline;
  }

  #gnav .g-ja {
    width: auto;
  }

  #gnav .g-en::before {
    content: '';
    font-size: 0;
  }

  #gnav .g-en {
    margin-top: 0;
    margin-left: auto;
  }

/*  sub-menu  SP
------------------------------------ */
  .sub-menu {
    position: static;
  }

  .sub-menu-li {
    background: none;
  }

  .sub-menu-link {
    display: -webkit-box;
    display: flex;
  }

/*	sp menu btn
------------------------------------ */
  #sp-menu-btn {
    display: block;
    position: fixed;
    top: 3px;
    right: 0;
    height: 60px;
    width: 60px;
    z-index: 1010;
    -webkit-transition: opacity .25s ease;
    transition: opacity .25s ease;
  }

  #sp-menu-btn.active .top {
    transform: translateY(16px) translateX(0) rotate(45deg);
  }

  #sp-menu-btn.active .middle {
    opacity: 0;
  }

  #sp-menu-btn.active .bottom {
    transform: translateY(-14px) translateX(0) rotate(-45deg);
  }

  #sp-menu-btn.active span::before {
    content: none;
  }

  #sp-menu-btn span {
    width: 70%;
    height: 4px;
    margin: auto;
    border: none;
    border-radius: 3px;
    background: #fff;
    position: absolute;
    top: 12px;
    right: 0;
    left: 0;
    -webkit-transition: all .35s ease;
    transition: all .35s ease;
  }

  #sp-menu-btn .middle {
    top: 27px;
  }

  #sp-menu-btn .bottom {
    top: 42px;
  }

  #sp-menu-btn.active span {
    background: #222;
  }

/*	side-btn  SP
------------------------------------ */
  .side-btn {
    text-align: right;
    right: 2%;
    bottom: 100px !important;
  }

  .side-btn img {
    width: 50%;
    height: 50%;
  }

/*	breadcrumb  SP
------------------------------------ */
  .breadcrumb .fle {
    padding: 10px 2% 0;
    position: static;
  }

/*	pagenation  SP
------------------------------------ */
  .pagenation {
    max-width: 600px;
    margin: 60px auto 0;
  }

  .pagenation li {
    width: 50px;
    height: 50px;
    line-height: 50px;
  }

  .pagenation li+li {
    margin: 0 0 0 10px;
  }

  .pagenation span,
  .pagenation li a {
    font-size: 18px;
    font-size: 1.8rem;
  }

  .data-nav .back-arrow::before,
  .data-nav .next-arrow::after {
    top: 7px;
  }

  .detail .pagenation-inner {
    padding: 30px 3%;
  }

  .data-nav .to-works {
    margin: 0 5%;
    padding: 0 1%;
  }

  /*	ggmap  SP
  ------------------------------------ */
  .ggmap {
    margin: 30px auto 0;
  }

  /*	pagetop  SP
  ------------------------------------ */
  #pagetop {
    right: 4%;
    bottom: 40px !important;
  }

  #pagetop .top-btn {
    width: 50px;
    height: 50px;
    line-height: 50px;
  }

/* =========================================
  footer  SP
========================================= */
  #footer .sec-inner {
    padding: 30px 3%;
    flex-direction: column;
    align-items: center;
  }

  #footer .logo {
    width: 80%;
    margin: auto;
  }

  #footer .detail {
    text-align: center;
  }

  #footer .cmn-txt {
    margin-top: 20px;
    font-size: 14px;
    font-size: 1.4rem;
  }

  #footer .tel-txt {
    margin-top: 20px;
  }

  #footer .f-nav {
    margin-top: 10px;
  }

  #footer .nav-ul {
    width: 100%;
    margin-top: 30px;
  }

  #footer .nav-li {
    font-size: 12px;
    font-size: 1.2rem;
  }

  #footer .sns-link {
    display: block;
    width: 100%;
    margin: 50px auto 0;
  }

  #footer .sns-link a+a {
    margin-left: 40px;
  }

  #footer .copyright {
    height: 30px;
  }

  #footer small {
    font-size: 10px;
    font-size: 1rem;
  }

/* =========================================
  main  SP
========================================= */
/*	main-vis
------------------------------------ */
  #header .main-vis {
    height: auto;
    padding: 50px 0;
    background: url(../img/top/mv.jpg)no-repeat right/cover;
  }

  .top #header .catch {
    width: 100%;
    min-width: 300px;
    position: static;
  }

  #header .nav-wrap {
    height: 64px;
  }

/*	SP共通
------------------------------------ */
  #sec02 .sec-inner,
  #news:not(.pagenation) .sec-inner,
  #sec04 .sec-inner,
  #contact .sec-inner,
  #sec05 .sec-inner,
  #concept .sec02 .sec-inner {
    padding: 30px 3%;
  }

  .sub .sec01 {
    padding-top: 50px;
  }


/*	sec01  SP
------------------------------------ */
  #sec01 .sec-bg {
    padding: 70px 3% 30px;
  }

  #sec01 .txt-box {
    position: static;
  }

  #sec01 .txt-box {
    width: 100%;
    padding-bottom: 30px;
  }

  #sec01 .txt-box::before {
    width: 150px;
    height: 30%;
    background-size: contain;
    top: 20px;
    left: 0;
  }

  #sec01 .txt-detail {
    width: 100%;
    padding: 0 2%;
  }

  #sec01 .sub-catch {
    font-size: 20px;
    font-size: 2rem;
  }

  #sec01 .sp-img {
    display: block;
    max-width: 90%;
    margin: 0 auto 20px;
    text-align: center;
  }

  #sec01 .cmn-btn-wrap {
    margin-top: 30px;
  }

  #sec01 .video-wrap {
    max-width: 300px;
    margin: 20px auto 0;
    height: 200px;
    padding: 0;
  }

  #sec01 .video-wrap .ofj {
    position: static;
  }

  #sec01 .video-bg {
    padding: 50px 15px;
    margin: auto;
  }

  #sec01 .video-ttl-span {
    font-size: 23px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  #sec01 .video-ttl-span::before, #sec01 .video-ttl-span::after {
    height: 26px;
    position: static;
  }
  #sec01 .video-ttl-span::before {
    margin-right: 14px;
  }
  #sec01 .video-ttl-span::after {
    margin-left: 14px;
  }

/*	sec02  SP
------------------------------------ */
  #sec02 .sec-bg::after {
    content: none;
  }
  #sec02 .sec02-ul {
    margin-top: 50px;
    flex-direction: column;
    align-items: center;
  }

  #sec02 .sec02-li {
    height: auto;
  }

  #sec02 .sec02-li+.sec02-li {
    margin-top: 100px;
  }

  #sec02 .sec02-ttl {
    width: 60%;
    height: 40px;
    line-height: 40px;
    font-size: 18px;
    font-size: 1.8rem;
  }

  #sec02 figure {
    width: 80%;
    margin: auto;
  }

  #sec02 .cmn-txt {
    max-width: 80%;
    margin: 10px auto 0;
  }

  #sec02 .cmn-btn-wrap {
    margin: 30px auto 0;
    position: static;
  }

/*	sec03  SP
------------------------------------ */
  .works .sec-bg {
    padding: 30px 1%;
  }

  .works .works-ul,
  .sub .works .works-ul {
    margin-top: 50px;
    flex-wrap: wrap;
  }

  .works .works-li+.works-li {
    margin-left: 0;
  }

  .works .works-li {
    width: 48%;
    height: auto;
  }

  .works .works-li:nth-of-type(2n) {
    margin-left: 2%;
  }

  .works .works-li:nth-of-type(n+3) {
    margin-top: 2%;
  }

  .works .works-link {
    padding-top: 350px;
  }

  .works .txt-box {
    width: 80%;
  }

/*	top news  SP
------------------------------------ */
  #news .sec-bg::before {
    width: 200px;
    height: 140px;
    background-size: contain;
    top: 0;
    left: 0;
  }

/*	sec04  SP
------------------------------------ */
  #sec04::before {
    content: none;
  }

  #sec04 .sec-bg::before,
  #sec04 .sec-bg::after {
    height: 50px;
  }

  #sec04 .sec-bg {
    background: url(../img/top/sec05-bg.jpg)no-repeat center/cover;
  }

  #sec04 .cmn-txt,
  #sec04 .cmn-btn-wrap {
    margin-top: 30px;
  }

/*	sec05  SP
------------------------------------ */
  #sec05 .sec05-flex {
    margin-top: 0;
    flex-direction: column-reverse;
  }

  #sec05 .sec-img {
    margin: 30px auto 0;
  }

  #sec05 .cmn-table {
    margin-top: 30px;
  }

/*	contact  SP
------------------------------------ */
  #contact .h2-en {
    font-size: 12px;
    font-size: 1.2rem;
  }
  #contact::before {
    width: 50px;
    height: 50px;
    background: url(../img/top/logo.png)no-repeat center/contain;
    top: 50px;
  }
  #contact .tel-txt,
  #contact-form main .tel-txt {
    margin-top: 30px;
    font-size: 14px;
    font-size: 1.4rem;
  }

  #contact .tel-number,
  #contact-form main .tel-number {
    font-size: 24px;
    font-size: 2.4rem;
  }

/*	top news  SP
------------------------------------ */
  .top #news .news-li,
  .sub #news .news-link {
    height: auto;
    padding: 10px 2%;
    line-height: 2;
  }

  #news time {
    margin-right: 2%;
  }

  #news .cmn-txt {
    margin-left: 0;
  }

  #news .sec-inner .cmn-txt {
    margin-left: 0;
  }


/* =========================================
  sub  SP
========================================= */
/*  sub 共通  SP
------------------------------------ */
  .sub #header .sub-vis {
    height: 250px;
    background: url(../img/common/sub-vis.jpg)no-repeat center/cover;
  }

  .sub #header .catch-txt {
    width: 80%;
    margin: auto;
  }

  .sub .catch-en {
    margin-top: 10px;
  }

  .sub #header .catch {
    width: 300px;
    height: auto;
    padding: 10px 0;
    top: 60px;
  }

  /* main */

  #concept .sec01 .sec-bg,
  #landscaping .sec-bg {
    padding-left: 3%;
    padding-right: 3%;
  }

/* concept  SP
------------------------------------ */
  #concept .catch-ja {
    max-width: 150px;
  }

  #concept .sec01 {
    padding-bottom: 30px;
  }

  #concept .box01 {
    margin-top: 20px;
  }

  .con,
  .reverse .con {
    padding-top: 0;
    margin: auto;
  }

  .sub .img{
    display: block;
    margin-top: 10px;
  }

 .contents-box {
    height: auto;
    background: none !important;
  }

  #concept .cmn-txt {
    margin-top: 20px;
  }

  .contents-box+.contents-box {
    margin-top: 30px;
  }

  #concept .sec02-ul {
    flex-direction: column;
    align-items: center;
  }

  #concept .sec02-li {
    width: 100%;
    height: 150px;
  }

  #concept .sec02-li+.sec02-li {
    margin-top: 20px;
  }

  #concept .sec02-li:nth-of-type(1) {
    background: url(../img/concept/bnr01.png)no-repeat center/cover;
  }

  #concept .sec02-li:nth-of-type(2) {
    background: url(../img/concept/bnr02.png)no-repeat center/cover;
  }

  #concept .sec02-li:nth-of-type(3) {
    background: url(../img/concept/bnr03.png)no-repeat center/cover;
  }

  #concept .serif-r {
    font-size: 20px;
    font-size: 2rem;
  }

  #concept .sans-l {
    font-size: 14px;
    font-size: 1.4rem;
  }

  .sub #contact {
    padding-bottom: 30px;
  }

/*	landscaping  SP
------------------------------------ */
  #landscaping .catch-ja {
    max-width: 50px;
  }

  #landscaping .sec01 .box01 {
    margin-top: 20px;
  }

  #landscaping .cmn-txt,
  #landscaping .sec02 .cmn-txt {
    margin-top: 20px;
  }

  #landscaping .sec02 .sec-inner,
  #landscaping .sec02-ul {
    margin-top: 30px;
  }

  #landscaping .sec02-li {
    height: auto;
    background: none;
  }

  #landscaping .con02 {
    max-width: 500px;
    margin: auto;
  }

  #landscaping .con02 img {
    width: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
  }

/*	exterior  SP
------------------------------------ */
  #exterior .catch-ja {
    max-width: 200px;
  }

  #exterior .sec01 .head-wrap,
  #exterior .sec01 .con,
  #exterior .stamp-bg .sec-inner,
  #exterior .sec02 {
    padding-left: 3%;
    padding-right: 3%;
  }

  #exterior .sec01 .box01,
  #exterior .stamp-bg,
  #exterior .sec02,
  #exterior .sec02 .box01,
  #exterior .con03 .img {
    margin-top: 30px;
  }

  #exterior .cmn-txt,
  #exterior .sec01 .cmn-txt {
    margin-top: 20px;
  }

  #exterior .stamp-bg .sec-inner {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  #exterior .stamp-bg .sec-inner::before {
    background: none;
  }

  #exterior .stamp-bg .cmn-txt {
    margin-left: 0;
  }

  #exterior .sec02 .box02 {
    padding: 0;
    position: relative;
  }

  #exterior .con03 {
    width: 100%;
    min-width: auto;
    height: auto;
    position: static;
  }

  #exterior .con03::before,
  #exterior .con03::after {
    content: none;
  }

  #exterior .stamp-bg .img {
    margin-top: 30px;
  }

  #exterior .accent {
    font-size: 16px;
    font-size: 1.6rem;
  }

/*	management  SP
------------------------------------ */
  #management .sec01 .sec-bg {
    padding-left: 3%;
    padding-right: 3%;
  }

  #management .cmn-txt {
    margin-top: 20px;
  }

  #management .catch-ja {
    max-width: 150px;
  }

  #management .box01 {
    margin-top: 30px;
  }

/* works  SP
------------------------------------ */
  .works .cmn-btn-wrap {
    margin-top: 100px;
  }
  #works .catch-ja {
    max-width: 100px;
  }

  #works .sec-inner {
    padding-left: 3%;
    padding-right: 3%;
  }

  #works .tag-ul {
    width: 100%;
    margin: 30px auto;
    padding: 0 2%;
    flex-wrap: wrap;
  }

  #works .tag-li {
    width: 46%;
  }

  #works .tag-li:nth-of-type(n+3) {
    margin-top: 20px;
  }

  #works .cmn-btn {
    width: 100%;
    font-size: 13px;
    font-size: 1.3rem;
  }

  #works .tag-li .cmn-btn {
    font-size: 13px;
    font-size: 1.3rem;
  }

  #works .works-li {
    width: 47.5%;
  }

  #works .works-ul .works-li:nth-of-type(n+4),
  #works .works-ul .works-li:nth-of-type(3n-1),
  #works .works-ul .works-li:nth-of-type(3n) {
    margin: 0;
  }

  #works .works-ul .works-li:nth-of-type(2n) {
    margin-left: 5%;
  }

  #works .works-ul .works-li:nth-of-type(n+3) {
    margin-top: 5%;
  }

  #works .works-img-box {
    border: 5px solid #e5e5e5;
  }

  #works .head-type04 {
    height: auto;
    padding-left: 1%;
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.6;
  }

/*	recruit  SP
------------------------------------ */
  #recruit .catch-ja {
    max-width: 100px;
  }

  #recruit .sec01,
  #recruit .sec02 {
    padding-left: 3%;
    padding-right: 3%;
    padding-bottom: 30px;
  }

  #recruit .box01,
  #recruit .cmn-table {
    margin-top: 30px;
  }

  #recruit .cmn-txt {
    margin-top: 20px;
  }

  .sub .cmn-th,
  .sub .cmn-td {
    padding: 10px 2%;
  }

  .sub .cmn-th {
    padding-bottom: 0;
  }

/*  company  SP
------------------------------------ */
  #company .catch-ja {
    max-width: 100px;
  }

  #company .sec-bg {
    padding: 0 3% 30px;
  }

  #company .name-txt {
    margin-top: 30px;
    font-size: 16px;
    font-size: 1.6rem;
  }

  #company .contents-box,
  #company .cmn-table {
    margin-top: 30px;
  }

  .sub .cmn-td {
    padding-top: 0;
    padding-left: 3%;
  }

  #company .cmn-txt {
    margin-top: 20px;
  }

  #company .ggmap {
    margin-top: 30px;
  }

  #company .ggmap iframe {
    height: 300px !important;
  }

/*	contact-form  SP
------------------------------------ */
  #contact-form .catch-ja {
    max-width: 150px;
  }

  #contact-form .sec01 {
    padding-left: 3%;
    padding-right: 3%;
  }

  #contact-form main .sec-inner {
    margin-top: 30px;
  }

  #contact-form .form-wrap .sec-inner {
    margin-top: 80px;
  }

  #contact-form .note-txt {
    margin-top: 30px;
  }

  #contact-form .cmn-td {
    padding-top: 10px;
  }

/*	privacy  SP
------------------------------------ */
  #privacy section:nth-of-type(n+2) {
    padding-left: 3%;
    padding-right: 3%;
  }
  #privacy .txt-box {
    margin-top: 30px;
    padding-bottom: 30px;
  }

/*	sub news  SP
------------------------------------ */
  .sub .news .sec-inner {
    padding: 50px 3%;
  }

  .sub #news .sec-bg::before {
    content: none;
  }

  .sub #news .news-ul {
    margin-top: 30px;
  }

  .sub .news .body-txt {
    margin-top: 10px;
    flex-direction: column-reverse;
    align-items: center;
  }

  .sub .news .news-img {
    width: 100%;
    margin: 0 auto 20px;
  }

  .sub .news .body-txt .cmn-txt {
    margin: auto;
  }

  .sub .news.detail .sec-inner {
    padding: 0 3% 30px;
  }

  .sub .news.detail .news-contents-box {
    margin-top: 30px;
  }

  .sub#blog .catch-ja {
    max-width: 80px;
  }

/* site  SP
------------------------------------ */
  #site .catch-ja {
    max-width: 150px;
  }

  #site .sec01 {
    padding: 30px 0;
  }

  #site .sec-inner {
    padding: 30px 3%;
  }
/*--------- */
}
/*--------- */

/************************************************

  breakpoint

************************************************/
@media screen and (min-width: 769px) and (max-width: 1800px) {
  #sec01 .txt-box {
    left: 100px;
  }
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
  #sec01 .txt-box {
    width: 45%;
  }
  #sec01 .sec-bg {
    padding-bottom: 26%;
  }
}

@media screen and (min-width: 769px) and (max-width: 1350px) {
  #sec01 .sec-bg {
    padding-bottom: 500px;
  }
  .sec-inner, .bread-inner {
    width: 100%;
    max-width: 1320px;
  }

  #sec05 .cmn-table {
    width: 500px;
  }

  #sec05 .sec-img {
    width: 53%;
  }
}

@media screen and (min-width: 769px) and (max-width: 1260px) {
  #landscaping .con02 {
    max-width: 600px;
  }

  #exterior .stamp-bg .sec-inner::before {
    width: 500px;
  }
}

@media screen and (min-width: 769px) and (max-width: 1100px) {
  #gnav .g-ja {
    font-size: 16px;
    font-size: 1.6rem;
  }

  #gnav .g-li+.g-li {
    margin-left: 30px;
  }
}

@media screen and (max-width: 600px) {
  #works .works-img-box {
    padding-top: 160px;
  }
}

@media screen and (max-width: 575px) {
  .works .works-link {
    padding-top: 300px;
  }

  .works .txt-box {
    width: 100%;
    position: static;
  }

  .works .works-li:nth-of-type(n+3) {
    margin-top: 90px;
  }
}

@media screen and (max-width: 475px) {
  .pagenation li {
    width: 45px;
    height: 45px;
    line-height: 45px;
  }

  .pagenation li.super-page {
    width: 60px;
  }

   .pagenation li+li {
    margin: 0 0 0 1%;
  }
}

@media screen and (max-width: 455px) {
  #sec01 .txt-box::before {
    width: 100px;
    top: 41px;
  }

  .works .works-link {
    padding-top: 250px;
  }
}

@media screen and (max-width: 400px) {
  #works .works-img-box {
    padding-top: 100px;
  }

  .pagenation li {
    width: 30px;
  }

  /* #footer .nav-li:nth-of-type(n+3) {
    margin-top: 0;
  } */

  /* #footer .nav-li+.nav-li {
    width: 100%;
    margin-top: 20px;
  } */
}
@media screen and (max-width: 767px) {
  .cmn-txt.t-center.w100 {
    padding: 30px;
  }
}

.sec02_pt{
  padding-top: 201px;
}
#landscaping .sec02.sec02_pt .sec-inner{
  margin-top:0;
}
@media screen and (max-width: 767px) {
  .sec02_pt{
    padding-top: 50px;
  }
}