@charset "utf-8";
/* CSS Document */

/*------------------------------------------
  共通
------------------------------------------*/
h2.main-heading {
  font-family: "Archivo Black", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 60px;
  letter-spacing: 0;
}
#services .main-heading,
#portfolio .main-heading,
#team .main-heading,
#latest-post .main-heading,
#price-package .main-heading,
#about-us .main-heading,
#woo-section .main-heading {
	line-height: 1.3;
}

/*------------------------------------------
  slider
------------------------------------------*/
/*
#slider-div .slides li {
	height: 85vh;
}

#slider-div .slider {
	height: 100vh;
}*/




/*------------------------------------------
  (teamセクション)新着・あいさつ
------------------------------------------*/
section#team {
	padding-bottom: 50px;
}
section#team .page-team{
	float: none;
}
section#team .team-block{
	float: none;
	padding-top: 0;
}

#topnews {
	background-color: #307ab0;
	color: #fff;
}
#topnews .wrap {
	display: flex;
	flex-wrap: wrap;
	max-width: 1200px;
	margin: 0 auto;
	padding: 30px 20px;
	align-items: center;
	width: 100%;
}
#topnews .title {
	padding-right: 100px;
}
#topnews .newslist {
	padding-right: 100px;
}
#topnews .newslist ul {
	margin: 0;
	padding: 0;
}
#topnews .newslist ul li {
	margin: 0;
	padding: 5px 0;
	list-style-type: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	line-height: 1.5;
	font-size: 90%;
}
#topnews .newslist li .date {
	width: 120px;
}
#topnews .newslist li .txt {
}
#topnews .newslist li a {
	color: #fff;
}

#topnews .morebtn {
}
#topnews .morebtn .inner {
	display: inline-block;
	padding: 7px 20px;
	font-size: 14px;
	border: 1px solid #fff;
	line-height: 1.5;
}
#topnews .morebtn a {
	color: #fff;
}

#topnews .title h2 {
	margin: 0;
	letter-spacing: 0;
	font-size: 36px;
	color: #fff;
}


/*あいさつ*/
#topgreeting {
}
#topgreeting h2.main-heading {
	font-size: 80px;
}
#topgreeting .flex {
	display: flex;
	flex-wrap: wrap;
	position: relative;
}
#topgreeting .txtbox {
	width: 65%;
	z-index: 2;
	text-align: left;
}
/*
#topgreeting .txtbox h2.main-heading {
	line-height: 1.3;
}*/
#topgreeting .txtbox h3 {
	font-size: 24px;
	margin-top: 0;
}
#topgreeting .txt {
	background-color: rgba(255, 255, 255, 0.75);
	padding: 30px 30px 30px 0;
}
#topgreeting .ph {
	width: 55%;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 1;
}

/*------------------------------------------
  (serviceセクション)サービス
------------------------------------------*/
#services {
	background: url(images/bg_topservice.jpg) no-repeat center;
	background-size: cover;
	background-attachment: fixed;
}
.service-block {
	padding-top: 0;
}
#services .titlebox {
	text-align: left;
	/*margin-bottom: 30px;*/
}
#services .titlebox h2,
#services .titlebox h4 {
	color: #fff;
	line-height: 1.1;
}
#services .titlebox h4 {
	font-size: 20px;
	font-weight: 500;
	margin: 0;
}

#topsvbnr {
}
#topsvbnr ul {
	display: flex;
	flex-wrap: wrap;
}
#topsvbnr ul li {
	width: 33.3%;
	height: 300px;
	position: relative;
	overflow: hidden;
	padding: 10px;
	margin: 0;
}
#topsvbnr ul li.sv07 {
	width: 100%;
}
#topsvbnr ul li a {
	width: 100%;
	height: 100%;
	display: inline-block;
	position: relative;
	overflow: hidden;
}
#topsvbnr li .bg {
	z-index: 1;
	position: absolute;
	left: 0;
	top: 0;
	overflow: hidden;
}
#topsvbnr li .bg img {
  width: 100%;
  transition-duration: 0.5s;
}
#topsvbnr li .bg:hover img{
  transform: scale(1.2);
  transition-duration: 0.5s;
}
#topsvbnr li .titlebox {
	text-align: center;
	position: relative;
	top: 45%;
	z-index: 2;
}
#topsvbnr li .titlebox h3 {
	margin: 0 auto;
	font-size: 30px;
	color: #fff;
}
#topsvbnr li.sv01 .titlebox h3,
#topsvbnr li.sv05 .titlebox h3,
#topsvbnr li.sv06 .titlebox h3 {
	letter-spacing: -2px;
}
#topsvbnr li.sv02 .titlebox h3 {
	letter-spacing: 5px;
}
#topsvbnr li.sv03 .titlebox h3 {
	letter-spacing: 0;
}
#topsvbnr li.sv04 .titlebox h3 {
	letter-spacing: 0;
}
#topsvbnr li.sv07 .titlebox h3 {
	letter-spacing: 5px;
}

/*------------------------------------------
  (ribbonセクション)施工事例
------------------------------------------*/
body.home #ribbon {
	background-color: #ece9e3;
}


/*------------------------------------------
  (testimonialセクション)バナー（不動産会社・協力k会社）
------------------------------------------*/
section#testimonials {
	padding: 0;
}
#topbnr2 ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
#topbnr2 ul a {
	width: 50%;
	overflow: hidden;
}
#topbnr2 ul a:hover {
  /*transform: scale(1.2);
  transition-duration: 0.5s;*/
  opacity: 0.8;
}
#topbnr2 ul li {
	padding: 100px 20px;
	margin: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
    /*transition-duration: 0.5s;*/
}
#topbnr2 ul li.box1 {
	background-image: url(images/topbnrA01.jpg);
}
#topbnr2 ul li.box2 {
	background-image: url(images/topbnrA02.jpg);
}

#topbnr2 li .bg {
	z-index: 1;
	overflow: hidden;
	width: 100%;
}
#topbnr2 li .bg img {
}
#topbnr2 li .bg:hover img{
}
#topbnr2 li .titlebox {
	text-align: center;
	position: relative;
	z-index: 2;
}
#topbnr2 li .titlebox h3 {
	margin: 0 auto;
	font-size: 30px;
	color: #fff;
	letter-spacing: 0;
	font-weight: 500;
}

/*------------------------------------------
  (latest postセクション)Blog
------------------------------------------*/
body.home #latest-post {
}
body.home #latest-post h4 {
	font-weight: 400;
	color: #222;
	padding: 0;
	margin: 0;
	font-size: 20px;
}
body.home #latest-post figure.post-content h3 {
	font-weight: 500;
	letter-spacing: 0;
	color: #333;
	line-height: 1.3;
	padding-bottom: 0;
}
body.home figure.post-content figcaption p {
	display: none;
}
body.home #latest-post .post-block {
	padding-top: 20px;
}
#latest-post ul.post-grid .date,
#latest-post ul.post-grid i {
	display: none;
}
figure.post-content figcaption {
	padding: 20px;
}
figure.post-content h3 {
	font-size: 16px;
}
#latest-post span.read-more a {
	padding: 7px 20px;
}

/*------------------------------------------
  (固定ページ)バナー（会社概要・問い合わせ）
------------------------------------------*/
#topbnr3 {
}
#topbnr3 ul {
	display: flex;
	flex-wrap: wrap;
}
#topbnr3 ul a {
	width: 50%;
	overflow: hidden;
}
#topbnr3 ul li {
	margin: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 140px 20px 40px 70px;
}
#topbnr3 ul li {
	/*transform: scale(1.1);
	transition-duration: 0.5s;
	filter: grayscale(100%);*/
}
#topbnr3 ul li:hover {
	/*filter: grayscale(0);
	transition-duration: 0.5s;*/
	opacity: 0.8;
}
#topbnr3 ul li.box1 {
	background-image: url(images/topbnrB01.jpg);
}
#topbnr3 ul li.box2 {
	background-image: url(images/topbnrB02.jpg);
}
#topbnr3 .titlebox {
}
#topbnr3 .titlebox h2 {
	font-family: "Archivo Black", sans-serif;
	font-weight: 400;
	margin: 0;
	font-size: 60px;
	color: #fff;
}
#topbnr3 .titlebox h3 {
	font-size: 18px;
	margin: 0;
	color: #fff;
}


/*------------------------------------------
  施工事例
------------------------------------------*/

    * {
      box-sizing: border-box;
    }


    a {
      color: inherit;
      text-decoration: none;
    }

    .top-works {
      position: relative;
      width: 1200px;
      height: 600px;
      margin: 0 auto;
      overflow: hidden;
      background: #111;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
    }

    .top-works__bg-wrap {
      position: absolute;
      inset: 0;
      z-index: 1;
    }

    .top-works__bg,
    .top-works__bg-next {
      position: absolute;
      inset: 0;
      background-repeat: no-repeat;
      background-position: center center;
      background-size: cover;
      transform: scale(1.02);
      will-change: opacity, transform, filter;
    }

    .top-works__bg {
      opacity: 1;
      z-index: 1;
      transition:
        opacity 1s ease,
        transform 6s ease,
        filter .7s ease;
    }

    .top-works__bg-next {
      opacity: 0;
      z-index: 2;
      transition:
        opacity 1s ease,
        transform 6s ease,
        filter .7s ease;
    }

    .top-works.is-switching .top-works__bg,
    .top-works.is-switching .top-works__bg-next {
      filter: brightness(.78);
    }

    .top-works__shade {
      position: absolute;
      inset: 0;
      z-index: 3;
      background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.48) 0%, rgba(0, 0, 0, 0.22) 40%, rgba(0, 0, 0, 0.56) 100%);
      pointer-events: none;
    }

    .top-works__grain {
      position: absolute;
      inset: 0;
      z-index: 4;
      background: linear-gradient(rgba(255,255,255,.03), rgba(255,255,255,0));
      mix-blend-mode: soft-light;
      pointer-events: none;
    }

    .top-works__inner {
      position: relative;
      z-index: 5;
      display: flex;
      width: 100%;
      height: 100%;
    }

    .top-works__left,
    .top-works__right {
      width: 50%;
      position: relative;
    }

    .top-works__left {
      display: flex;
      align-items: flex-start;
      justify-content: flex-start;
      padding: 70px 60px;
    }

    .top-works__heading-wrap {
      overflow: hidden;
    }

    .top-works__heading-sub {
      display: block;
      margin-bottom: 16px;
      font-size: 14px;
      letter-spacing: .24em;
      font-weight: 500;
      opacity: 0;
      transform: translateY(18px);
      animation: fadeUp .9s ease .05s forwards;
    }

    .top-works__heading {
      margin: 0;
      font-size: 68px;
      line-height: 1.05;
      letter-spacing: .08em;
      font-weight: 700;
      text-shadow: 0 6px 18px rgba(0,0,0,.18);
      opacity: 0;
      transform: translateY(34px);
      animation: fadeUp 1s ease .18s forwards;
    }
	h2.top-works__heading {
	color: #FFF;
	}

    .top-works__heading-line {
      width: 70px;
      height: 1px;
      margin-top: 28px;
      background: rgba(255,255,255,.8);
      opacity: 0;
      transform: scaleX(0);
      transform-origin: left center;
      animation: lineGrow .9s ease .55s forwards;
    }

    .top-works__right {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      padding: 70px 60px 60px 30px;
    }

    .top-works__news {
      width: 100%;
      max-width: 520px;
      backdrop-filter: blur(1px);
    }

    .top-works__news-list {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .top-works__news-item {
      position: relative;
      border-bottom: 1px solid rgba(255,255,255,.16);
      opacity: 0;
      transform: translateY(24px);
    }

    .top-works.is-ready .top-works__news-item {
      animation: fadeUp .8s ease forwards;
    }

    .top-works.is-ready .top-works__news-item:nth-child(1) { animation-delay: .18s; }
    .top-works.is-ready .top-works__news-item:nth-child(2) { animation-delay: .28s; }
    .top-works.is-ready .top-works__news-item:nth-child(3) { animation-delay: .38s; }
    .top-works.is-ready .top-works__news-item:nth-child(4) { animation-delay: .48s; }
    .top-works.is-ready .top-works__news-item:nth-child(5) { animation-delay: .58s; }

    .top-works__news-link {
      position: relative;
      display: block;
      padding: 20px 0 18px;
    }

    .top-works__news-link::before {
      content: "";
      position: absolute;
      left: 0;
      bottom: -1px;
      width: 0;
      height: 2px;
      background: #fff;
      transition: width .45s ease;
    }

    .top-works__news-link::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, rgba(255,255,255,.08), rgba(255,255,255,0));
      opacity: 0;
      transition: opacity .35s ease;
      pointer-events: none;
    }

    .top-works__news-item.is-active .top-works__news-link::before {
      width: 100%;
    }

    .top-works__news-item.is-active .top-works__news-link::after,
    .top-works__news-item:hover .top-works__news-link::after {
      opacity: 1;
    }

    .top-works__date {
      display: block;
      margin-bottom: 8px;
      font-size: 14px;
      line-height: 1.4;
      letter-spacing: .14em;
      font-weight: 500;
      color: rgba(255,255,255,.82);
      transition: color .3s ease, transform .3s ease, opacity .3s ease;
    }

    .top-works__title {
      display: block;
      font-size: 20px;
      line-height: 1.45;
      letter-spacing: .04em;
      font-weight: 700;
      text-shadow: 0 3px 12px rgba(0,0,0,.18);
      transition: transform .35s ease, opacity .35s ease, letter-spacing .35s ease;
    }

    .top-works__news-item.is-active .top-works__date {
      color: rgba(255,255,255,.96);
      transform: translateX(6px);
    }

    .top-works__news-item.is-active .top-works__title {
      transform: translateX(8px);
      letter-spacing: .055em;
    }

    .top-works__news-item:hover .top-works__date,
    .top-works__news-item:hover .top-works__title {
      transform: translateX(8px);
    }

    .top-works__progress {
      position: absolute;
      left: 0;
      bottom: 0;
      z-index: 6;
      width: 100%;
      height: 3px;
      background: rgba(255,255,255,.16);
      overflow: hidden;
    }

    .top-works__progress-bar {
      width: 0;
      height: 100%;
      background: rgba(255,255,255,.9);
      transform-origin: left center;
    }

    .top-works.is-playing .top-works__progress-bar {
      animation: progressBar 4.8s linear forwards;
    }

    .top-works.is-paused .top-works__progress-bar {
      animation-play-state: paused;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(24px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes lineGrow {
      from {
        opacity: 0;
        transform: scaleX(0);
      }
      to {
        opacity: 1;
        transform: scaleX(1);
      }
    }

    @keyframes progressBar {
      from {
        width: 0%;
      }
      to {
        width: 100%;
      }
    }

/*    @media (max-width: 1280px) {

      .top-works {
        width: 100%;
        height: auto;
        aspect-ratio: 2 / 1;
      }

      .top-works__heading {
        font-size: 56px;
      }

      .top-works__title {
        font-size: 26px;
      }
    }

    @media (max-width: 900px) {
      .top-works {
        aspect-ratio: auto;
        min-height: 620px;
      }

      .top-works__inner {
        flex-direction: column;
      }

      .top-works__left,
      .top-works__right {
        width: 100%;
      }

      .top-works__left {
        padding: 36px 24px 0;
      }

      .top-works__right {
        padding: 16px 24px 40px;
      }

      .top-works__heading {
        font-size: 42px;
      }

      .top-works__heading-line {
        margin-top: 18px;
      }

      .top-works__title {
        font-size: 21px;
      }
    }
*/
















