@charset "UTF-8";

/*----------------------------------------------------------------
  Common Classes
  ----------------------------------------------------------------*/

.d-sp {
	display: none;
}

.inner {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

/*----------------------------------------------------------------
  Page Header
  ----------------------------------------------------------------*/

.body-sticky {
	padding-top: 140px;
}

.header-logo {
	margin-left: 35px;
}

.page-header-sticky .header-logo {
	width: 130px;
}

.header-nav-link,
.header-nav-link-main {
	display: flex;
}

.header-nav-link-main {
	flex-wrap: wrap-reverse;
	align-items: flex-start;
	justify-content: flex-end;
}

.header-nav-link-main li {
	margin-right: 50px;
}

.header-nav-link-main a {
	flex-direction: column;
	align-items: flex-start;
	height: 70px;
	padding-top: 5px;
	overflow: hidden;
}

.page-header-sticky .header-nav-link-main a {
	padding-top: 0;
}

.header-nav-link-main a span {
	margin-bottom: 10px;
}

.header-nav-link-request {
	flex-direction: column;
	align-items: center;
	width: 140px;
	height: 140px;
	padding-top: 30px;
	text-align: center;
}

.page-header-sticky .header-nav-link-request {
	height: 90px;
	padding-top: 25px;
}

.header-nav-link-request img {
	margin-bottom: 15px;
}

.content-header {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 260px;
}

.content-header h2 {
	margin-bottom: -35px;
	padding: 0 calc(100% - 595px) 55px 50px;
	background: transparent linear-gradient(to right, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.8) 640px, transparent 640px, transparent 100%) 0 0 no-repeat;
	font-size: 3.6rem;
	font-weight: 700;
	color: #000;
}

@media screen and (min-width: 1281px) {
	.content-header h2 {
		padding-right: 695px;
	}
}

.content-header h2 img {
	margin: -45px 0 -5px -20px;
}

.breadcrumbs {
	padding: 15px 0;
}

.content-main {
	width: 100%;
	max-width: 1100px;
	margin: 100px auto;
	font-size: 1.6rem;
}

.content-main-header {
	margin: 100px 0 60px;
	font-size: 3.6rem;
}

/*----------------------------------------------------------------
  Home
  ----------------------------------------------------------------*/

.top-jumbotron {
	margin-bottom: 120px;
}

.top-jumbotron figcaption {
	bottom: 60px;
	width: 600px;
	padding: 30px 0;
}

.top-lineup {
	margin-bottom: 225px;
	padding-bottom: 80px;
	background-color: #eee;
}

.top-lineup img {
	margin: -45px 0 45px 40px;
}

.top-lineup h2 {
	margin: 0 85px 20px;
	font-size: 1.6rem;
	font-weight: 700;
	color: #f00;
}

.top-lineup p {
	margin: 0 85px;
}

.top-works {
	margin-bottom: 100px;
	padding-bottom: 100px;
	background-color: #eff6f3;
}

.top-works h2 {
	margin: 0 75px 75px;
}

.top-works-title {
	margin: -35px 0 0 15px;
}

.top-works-inner {
	margin-bottom: 50px;
}

.top-works-slide {
	margin-bottom: 15px;
}

.top-works-slide .slick-list {
	width: calc(100% - 130px);
}

.top-works-slide-inner,
.top-works-slide-text-inner {
	padding: 0 15px;
}

.top-works-slide-inner a {
	display: block;
	border: 6px solid #fff;
}

.top-works-slide-prev,
.top-works-slide-next {
	width: 40px;
}

.top-works-slide-text {
	width: calc(100% - 130px);
	margin: 0 auto;
}

.top-news-inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 130px;
}

.top-news-inner h2 {
	margin: 20px 0 0 25px;
}

.top-news-inner dl {
	width: calc(100% - 380px);
	margin-right: 35px;
}

.top-news-inner dt {
	width: 210px;
	padding: 15px 0 15px 55px;
}

.top-news-inner dd {
	width: calc(100% - 210px);
	padding: 15px 0;
}

.top-news-photo {
	margin-bottom: 110px;
	padding-bottom: 100px;
}

.top-news-photo-inner {
	display: flex;
	justify-content: center;
	margin-bottom: 50px;
}

.top-news-photo-inner li {
	width: calc(25% - 60px);
	max-width: 230px;
	margin: -115px 30px 0;
}

.top-news-photo-image {
	margin-bottom: 20px;
}

.top-news-photo-title {
	margin-bottom: 15px;
}

.top-news-photo-link {
	width: 290px;
	margin-bottom: 50px;
	padding: 9px;
}

.top-banner {
	max-width: 1100px;
}

.top-about {
	display: flex;
	margin-bottom: 70px;
}

.top-about-bg {
	width: 50%;
	background: transparent url(../img/bg_top_aboutus.jpg) center / cover no-repeat;
}

.top-about-inner {
	width: 50%;
	padding: 60px 70px;
}

.top-about h2 {
	margin-bottom: 30px;
	font-weight: 500;
	font-size: 3.2rem;
}

.top-instagram {
	margin-bottom: 70px;
}

.top-instagram h2 {
	margin-bottom: 40px;
}

#sb_instagram.top-instagram-inner #sbi_images .sbi_item {
	width: 20% !important;
	margin-bottom: 20px !important;
}

/*----------------------------------------------------------------
  Rebuild
  ----------------------------------------------------------------*/

.rebuild-archive {
	display: flex;
	align-items: flex-end;
	width: 100%;
	margin: 80px 0;
}

.rebuild-archive figure {
	width: 480px;
	padding-bottom: 50px;
	background: transparent linear-gradient(to right, #eff6f3 0%, #eff6f3 100%) right bottom / 260px 100px no-repeat;
}

.rebuild-single-intro {
	display: flex;
	align-items: center;
	width: 100%;
	margin: 80px 0;
}

.rebuild-single-intro figure {
	width: 480px;
}

.rebuild-text {
	width: calc(100% - 480px);
	padding: 50px 60px;
}

.rebuild-text dd a {
	margin-top: 20px;
}

.rebuild-single-gallery li {
	width: 29%;
	margin-right: 6.5%;
}

.rebuild-single-gallery li:nth-of-type(3n) {
	margin-right: 0;
}

.rebuild-single-gallery li:nth-of-type(n+4) {
	margin-top: 80px;
}

.rebuild-single-gallery figcaption {
	margin-top: 15px;
}

.rebuild-single-gallery figcaption::before {
	width: 100px;
}

.rebuild-single-gallery figcaption span {
	width: calc(100% - 115px);
}

/*----------------------------------------------------------------
  Land
  ----------------------------------------------------------------*/

.archive-land {
	margin-top: 60px;
}

.archive-land a {
	padding: 20px 20px 20px 40px;
}

.header-land {
	margin: 100px 0 40px;
	font-size: 2.4rem;
}

.land-info {
	padding: 15px 25px;
	background-color: #eff6f3;
}

.land-info dl {
	margin-bottom: 20px;
}

.land-info dt {
	width: 100px;
	margin-bottom: 5px;
}

.land-info dd {
	width: calc(100% - 100px);
	margin-bottom: 5px;
}

.land-info p {
	margin-left: 100px;
}

.land-gallery {
	margin-bottom: 80px;
}

.land-gallery ul {
	display: flex;
	flex-wrap: wrap;
}

.land-gallery li {
	width: calc(50% - 100px);
	margin: 50px 50px 0;
}

/*----------------------------------------------------------------
  Interior
  ----------------------------------------------------------------*/

.interior-archive {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

.interior-archive p {
	width: 49.6%;
	padding-left: 20px;
}

.interior-archive figure {
	width: 49.6%;
}

.interior-gallery {
	width: 100%;
	margin-top: 20px;
}

.interior-gallery li {
	width: 11.8%;
	margin-right: 0.8%;
}

.interior-gallery li:nth-of-type(8n) {
	margin-right: 0;
}

.interior-gallery li:nth-of-type(n+9) {
	margin-top: 0.8%;
}

/*----------------------------------------------------------------
  Showroom
  ----------------------------------------------------------------*/

.showroom-intro {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	margin-bottom: 60px;
}

.showroom-intro figure {
	width: 496px;
}

.showroom-intro p {
	width: calc(100% - 550px);
}

.showroom-gallery-1 li {
	width: calc((100% - 50px) / 3);
	margin: 0 25px 30px 0;
}

.showroom-gallery-1 li:nth-of-type(3n) {
	margin-right: 0;
}

.showroom-description {
	margin-bottom: 70px;
}

.showroom-gallery-2 {
	margin-bottom: 120px;
}

.header-showroom {
	margin: 0 0 40px;
	padding: 0 0 20px;
}

.header-showroom span {
	margin: 0 0 15px;
	font-size: 3.6rem;
}

.showroom-map {
	margin-bottom: 80px;
}

.showroom-map iframe {
	height: 500px;
	margin-bottom: 30px;
}

.showroom-address {
	margin-bottom: 150px;
}

.showroom-info {
	margin: 70px 0 90px;
}

.showroom-info dt,
.showroom-info dd {
	padding: 30px 0 10px;
}

.showroom-info dt {
	width: 280px;
}

.showroom-info dd {
	width: calc(100% - 280px);
}

/*----------------------------------------------------------------
  Works
  ----------------------------------------------------------------*/

.work-nav {
	margin-bottom: 80px;
}

.work-nav ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.work-nav li {
	width: 50%;
	max-width: 500px;
	margin-bottom: 40px;
}

.work-nav li:nth-of-type(n) a {
	padding: 50px 70px 50px 50px;
	background-position: center right 50px, center, center;
}

.work-nav dt {
	font-size: 3.2rem;
	font-weight: 700;
}

.work-nav dd {
	font-size: 1.8rem;
	font-weight: 100;
}

.header-work {
	margin: 0 0 40px;
	padding: 0 0 20px;
}

.header-work span {
	margin: 0 0 15px;
	font-size: 3.6rem;
}

.work-gallery {
	margin-bottom: 100px;
}

.work-gallery li {
	width: 25%;
	margin-bottom: 20px;
	padding: 4px 4px 10px;
	border: 1px solid #dedede;
}

.work-gallery img {
	margin-bottom: 10px;
}

@media screen and (min-width: 1001px), print {
	.work-gallery li {
		width: 250px;
		margin-right: calc((100% - 1000px) / 3);
	}

	.work-gallery li:nth-of-type(4n) {
		margin-right: 0;
	}
}

/*----------------------------------------------------------------
  Construction
  ----------------------------------------------------------------*/

.construction-header {
	margin-bottom: 50px;
	padding: 5px 5px 5px 10px;
	font-size: 2.4rem;
}

.construction-list {
	margin-top: 50px;
}

.construction-list dt {
	padding: 15px 0;
}

.construction-list dd {
	width: calc(50% - 80px);
	padding: 15px 15px 15px 0;
}

/*----------------------------------------------------------------
  News
  ----------------------------------------------------------------*/

.news-inner {
	width: 640px;
	margin: 0 auto 50px;
}

/*----------------------------------------------------------------
  Flow
  ----------------------------------------------------------------*/

.flow-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 100px;
}

.flow-list dl {
	width: 420px;
}

.flow-list dt {
	margin-bottom: 15px;
	padding: 10px 30px 15px;
	font-size: 3.6rem;
}

.flow-list dt span {
	display: block;
	font-size: 1.8rem;
}

.flow-list dt::after {
	left: 100%;
	top: 0;
	width: 40px;
	height: 20px;
	border-left: 20px solid #eff6f3;
	border-right: 20px solid transparent;
	border-top: 10px solid #eff6f3;
	border-bottom: 10px solid transparent;
}

.flow-list dl:nth-of-type(1) dt {
	background: #eff6f3 url(../img/bg_flow_1.png) left 303px center no-repeat;
}

.flow-list dl:nth-of-type(2) dt {
	background: #eff6f3 url(../img/bg_flow_2.png) left 302px center no-repeat;
}

.flow-list dl:nth-of-type(3) dt {
	background: #eff6f3 url(../img/bg_flow_3.png) left 315px center no-repeat;
}

.flow-list dl:nth-of-type(4) dt {
	background: #eff6f3 url(../img/bg_flow_4.png) left 313px center no-repeat;
}

.flow-list dd {
	margin-left: 20px;
}

.flow-list ol {
	width: calc(100% - 535px);
	padding: 30px 0;
	background: transparent linear-gradient(to right, #9fd8a9 0px, #9fd8a9 8px) left 12px top / 8px auto no-repeat;
}

.flow-list li + li {
	margin-top: 50px;
}

/*----------------------------------------------------------------
  Contact
  ----------------------------------------------------------------*/

.contact-form {
	display: flex;
	flex-wrap: wrap;
	margin: 80px 0 30px;
	border-top: 1px solid #006f4a;
}

.contact-form dt {
	width: 280px;
	padding: 38px 0;
	border-bottom: 1px solid #006f4a;
}

.contact-form dd {
	width: calc(100% - 280px);
	padding: 20px 0;
	border-bottom: 1px solid #006f4a;
}

.contact-text {
	padding: 17px;
}

.contact-form-name {
	max-width: 400px;
}

.contact-form-mail {
	max-width: 600px;
}

.contact-form-address {
	max-width: 780px;
}

.contact-form-textarea {
	width: 710px;
	min-height: 260px;
	resize: vertical;
}

.contact-form-btn {
	display: flex;
	justify-content: center;
}

.contact-form-btn-default {
	width: calc(50% - 20px);
}

.contact-form-btn-return {
	margin-right: 40px;
}

/*----------------------------------------------------------------
  Sitemap
  ----------------------------------------------------------------*/

.sitemap-wrapper {
	display: flex;
	flex-wrap: wrap;
}

.sitemap-wrapper > li {
	width: 30%;
	margin: 0 5% 5% 0;
}

.sitemap-wrapper > li:nth-of-type(3n) {
	margin-right: 0;
}

/*----------------------------------------------------------------
  Page Footer
  ----------------------------------------------------------------*/

.btn-page-top {
	left: 50%;
	transform: translateX(610px);
	bottom: 300px;
	width: 60px;
	height: 60px;
}

.page-footer {
	padding: 110px 0 80px;
}

.footer-name {
	width: 330px;
}

.footer-nav-1,
.footer-nav-2 {
	width: calc(50% - 300px);
}

.footer-nav-1 li {
	margin-bottom: 15px;
}

.footer-nav-2 li {
	margin-bottom: 10px;
}

.footer-name {
	width: 270px;
}

.footer-copyright {
	margin-top: 40px;
}