@charset "utf-8";
/* ===================================================================

 file name  :renovation.css
 style info : 中古住宅再生

=================================================================== */

/* ---------------------------------------------------------------------------
	囲み要素
--------------------------------------------------------------------------- */
body.renovation #main {
    padding-bottom: 0;
}

.sec-inner-1660-white {
	padding-left: 15px;
	padding-right: 15px;
	max-width: 1660px;
	margin-left: auto;
	margin-right: auto;
	background: #fff;
}

@media screen and (min-width: 768px) {
	.sec-inner-1660-white {
		padding: 120px 230px;
	}
}

/* =============================

	overwrite

=============================== */
#pageHeader{
	background-image: url(../images/renovation/mv.png);
}

.txt-block--head p {
	font-weight: bold;
	display: block;
	line-height: 2!important;
	letter-spacing: 0.1em;
}

.txt-block--head p:not(:first-child) {
	margin-top: 3rem;
}

.txt-block--head p strong {
	color: #015491;
}

.txt-block--head .catch-copy{
	font-size: 3rem;
	margin-top: 0;
}

#secMassage .txt-block p + p {
    margin: 2.5rem 0 0;
}

.txt-block--head .catch-copy--large {
	font-size: 4.6rem;
	line-height: 1.5!important;
	margin-top: 7rem!important;
}

.sec-concept {
	background: #B4B4B4;
}

.sec-concept .ttl-wrap img {
	margin-top: 20rem;
	width: calc(100% + 10px)!important;
	max-width: none!important;
	margin-left: -10px;
}

@media screen and (min-width: 1240px) {
	.sec-concept .ttl-wrap img {
		width: calc(100% + ((100vw - 1200px) / 2))!important;
		margin-left: calc((100vw - 1200px) / -2);
		max-width: 660px!important;
	}
}
@media screen and (min-width: 1920px) {
	.sec-concept .ttl-wrap img {
		width: 660px!important;
		margin-left: -360px!important;
	}
}

@media screen and (max-width: 767px) {

	.txt-block--head .catch-copy{
		font-size: 2rem;
	}

	.txt-block--head .catch-copy--large {
		font-size: 3rem;
	}
	#secOutline {
		margin-top: 0!important;
		padding: 60px 0 !important;
	}
	.sec-concept .ttl-wrap img {
		margin-top: 3rem;
		width: 100%!important;
		max-width: none!important;
		margin-left: 0;
	}
}



#secOutline {
	margin-top: 0!important;
	padding: 120px 0 0;
	background: #B4B4B4;
	color: #000;
	text-align: center;
}

#secOutline .ttl-h03 .en::before {
    margin-left: auto;
    margin-right: auto;
}

.rinov-grid {
	display: flex;
	justify-content: center;
	margin-top: 5.6rem;
	margin-bottom: 3rem;
}

.rinov-grid div {
	padding: 2rem 0;
}

.flow {
	display: flex;
	flex-direction: column;
	gap: 17rem;
	list-style: none;
	position: relative;
}

.flow::before {
	content: "";
	position: absolute;
	top: 143px;
	bottom: 0;
	left: 90px;
	width: 1px;
	background: repeating-linear-gradient(
			to bottom,
			#000 0px,
      #000 2px,
			transparent 2px,
			transparent 4px
	);
	z-index: 0;
}

.flow li::after {
  content: "";
  position: absolute;
  width: 26px;
  height: 80px;
  background: url(/parts/images/renovation/icon-house.png) no-repeat center/contain;
  top: 90px;
  left: 90px;
  transform: translate(-50%, -50%);
  z-index: 3;
}

.flow li.zero::after,
.flow li.plus::after {
  content: none;
}

.flow li {
	position: relative;
  padding-left: 290px;
}

/* .flow li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 180px;
  height: 180px;
  border: 2px solid #000;
  border-radius: 50%;
  background: #fff;
  z-index: 1;

  clip-path: polygon(
    0% 25%,
    100% 25%,
    100% 100%,
    0% 100%
  );
} */

.bg {
	position: absolute;
	top: -90px;
	left: 170px;
	z-index: -1;
}

.flow-head {
  position: absolute;
  top: -40px;
  left: 0;
  width: 180px;
  height: 180px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 20px;
  z-index: 3;
	background: #fff;
}


.flow-title {
	display: block;
	position: relative;
	text-align: center;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.7;
	background: #fff;
}

.flow-title span {
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-top: 1.5rem;
}

.flow-desc .text {
  font-size: 16px;
  font-weight: 700;
	text-align: left;
  line-height: 2;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}

.flow-desc .lead {
  font-size: 24px;
  font-weight: 700;
	text-align: left;
  line-height: 2;
  letter-spacing: 2.4px;
  text-transform: uppercase;
}

.flow-desc .line {
  width: 60px;
  height: 2px;
  background: #000;
  margin: 20px 0;
}

.flow-copy {
	font-size: 32px;
	display: flex;
	align-items: flex-end;
	gap: 2rem;
	line-height: 1.3;
	margin-top: -5.5rem;
}

.flow-copy div {
	font-size: 70px;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.flow-copy div span {
	font-size: 20px;
}

.flow .grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	margin-top: 3rem;
}

.circle-content {
  position: absolute;
  top: 90px;
  left: 90px;
  transform: translate(-50%, -50%);
  z-index: 3;

  text-align: center;
	background: #fff;
}

.circle-content div {
  font-size: 40px;
  font-weight: bold;
  line-height: 1;
}

.flow-img {
    margin-top: 4rem;
}

.flow-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 推しリノベ０ 強調、ルビ */
.oshi-renov-zero {
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.oshi-renov-zero ruby rt {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0;
}

ruby.ruby-only rt {
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0;
}

@media screen and (max-width: 767px) {
    .oshi-renov-zero {
        font-size: 2rem;
    }
}

@media screen and (max-width: 767px) {
	.rinov-grid div {
		padding: 1rem;
	}

	.flow {
		gap: 13rem;
		padding-top: 30px;
		margin-top: 0;
	}

	.flow::before {
		width: 1px;
		height: 87%;
		top: 110px;
		left: 40px;
	}

	.flow li {
		grid-template-columns: 1fr;
		gap: 20px 0;
		padding-left: 80px;
	}

	.flow-title {
		padding-left: 0;
		margin-left: 0;
		text-align: center;
		font-size: 16px;
		line-height: 1.4;
	}

	.flow-title span {
		margin-top: 1rem;
	}

	.flow-desc {
		padding-left: 30px;
		font-size: 1.4rem;
	}

	.flow-desc .lead {
		font-size: 20px;
	}

	.flow .grid {
		gap: 2rem;
	}

	.bg {
		top: -40px;
		left: auto;
		right: -50px;
	}

	.flow li::before {
		width: 80px;
		height: 80px;
	}

	/* 1番目アイコン */
	.flow li::after {
		top: 55px;
		left: 40px;
	}

	/* ZERO / PLUS */
	.circle-content {
		top: 40px;
		left: 40px;
		background: #fff;
	}

	.flow-head {
		top: -25px;
		width: 80px;
		height: 80px;
		background: #fff;
	}

	.flow li.zero .flow-head,
	.flow li.plus .flow-head {
		top: -32px;
		height: auto;
		padding-top: 5px;
		width: auto;
		white-space: nowrap;
	}

	.flow li.zero .circle-content,
	.flow li.plus .circle-content {
		top: 40px;
		padding-bottom: 10px;
	}

	.flow-img {
    margin-top: 2rem;
	}
}

/* =============================
    #secConceptVisual
=============================== */
#secConceptVisual {
    overflow: hidden;
    background: #F6F6F6;
		padding-top: 80px;
		padding-bottom: 65px;
}

.concept-visual-wrap {
    display: flex;
    justify-content: flex-end;
}

.concept-visual-wrap img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-right: 0;
}

#secConceptVisual .concept-visual-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc((100% - 100vw) / 2);
}

@media screen and (max-width: 767px) {
    .concept-visual-wrap img {
        width: 100%;
        max-width: none;
    }
		#secMassage .txt-block::before {
        height: calc(100% + 130px);
    }
}

@media screen and (min-width: 768px) {
	#secConceptVisual {
    padding-top: 160px;
		padding-bottom: 132px;
	}
	#secMassage .txt-block::before {
		height: calc(100% + 160px);
	}

	#secMassage {
		align-items: flex-start;
	}
}

/* 推しリノベ相談室 */
/* =============================
    .sec-wrap-renov（concept.cssの.sec-wrapを流用）
=============================== */
#main .sec-wrap-renov {
    background: #161616;
    color: #fff;
}
#main .sec-wrap-renov section .f-block {
		margin-top: 125px;
    padding:70px 86px ;
}
#main .sec-wrap-renov section.even .f-block {
    flex-direction: row-reverse;
}
#main .sec-wrap-renov section .f-block figure {
    width: 50%;
}
#main .sec-wrap-renov section .f-block .txt-block {
    width: 600px;
}
#main .sec-wrap-renov section.odd .f-block .txt-block {
    padding: 0 0 0 3.9%;
}
#main .sec-wrap-renov section.even .f-block .txt-block {
    padding: 0 3.9% 0 0;
}
#main .sec-wrap-renov section .f-block .txt-block h2 {
    margin: 0 0 40px;
    font-size: 3rem;
		text-align: left;
}
#main .sec-wrap-renov section .f-block .txt-block h2::before {
    content: "";
    display: block;
    width: 36px;
    height: 3px;
    background: #fff;
    margin: 0 0 22px;
}

#main .sec-wrap-renov section .f-block .txt-block p {
    text-align: left;
}

@media screen and (max-width: 1430px) {
    #main .sec-wrap-renov section .f-block figure {
        overflow: hidden;
    }
    #main .sec-wrap-renov section .f-block figure img {
        width: 715px !important;
        max-width: none;
    }
}
@media screen and (max-width: 767px) {
    #main .sec-wrap-renov {
        background: #161616;
        color: #fff;
    }
    #main .sec-wrap-renov section .f-block {
				margin-top: 60px;
        padding:30px 20px ;
    }
    #main .sec-wrap-renov section .f-block figure {
        width: 100%;
    }
    #main .sec-wrap-renov section .f-block .txt-block {
        width: 100%;
        padding: 30px 20px !important;
    }
    #main .sec-wrap-renov section .f-block .txt-block h2 {
        margin: 0 0 20px;
        font-size: 2rem;
        line-height: 1.2;
    }
    #main .sec-wrap-renov section .f-block .txt-block h2::before {
        width: 18px;
        height: 2px;
        margin: 0 0 10px;
    }
    #main .sec-wrap-renov section .f-block figure img {
        width: 100% !important;
    }
}