@charset "utf-8";

/* -------------------------------------------------- */
/* PC*/
/* -------------------------------------------------- */
.gNavLink:hover {
	color: #1c4fa1;
}

.headerLogo:before,
.headerLogo:after,
.logoLink:before,
.logoLink:after,
.siteMap:hover .btnNav04,
.siteMap ul {
	background: #1c4fa1;
}

#mv {
	width: calc(100% - 120px);
	height: calc(100vh - 100px);
	margin: 100px 0 70px 120px;
	position: relative;
	z-index: 1;
}

.mvSliderWrap,
.mvSliderWrap * {
	height: 100%;
}

.mvSlider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	font-family: 'object-fit: cover;'
}

#contsWrap {
	margin: 0 0 100px;
}

#mvCatch {
	width: 100%;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -40px);
}

#catchMain,
#catchSub {
	color: #fff;
}

#catchMain {
	margin: 0 0 55px;
	font-size: 160px;
	font-weight: 600;
	line-height: 0.7;
	letter-spacing: 0.4em;
}

#catchSub {
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: 0.46em;
}

.scrollArea {
	width: 14px;
	height: 59px;
	padding: 0 0 109px;
	position: absolute;
	bottom: 0;
	left: -67px;
	line-height: 10px;
	background: url(../../img/top/arrow_scroll.png) no-repeat bottom center;
}

.scrTxt {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #000;
	transform: rotate(90deg);
}

#topVision .inner {
	margin: 0 auto 120px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: nowrap;
	flex-wrap: nowrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	position: relative;
	flex-direction: row-reverse;
}

#topVisionCatch {
	font-size: 5.0rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

#topVisionCatch span.color {
	color: #1c4fa1;
}

#topVisionTxt {
	width: 52.333%;
	padding: 64px 0 0;
	font-size: 1.8rem;
	line-height: 1.9;
	letter-spacing: 0;
}

#bgTxt {
	position: absolute;
	top: 2px;
	left: 304px;
	z-index: -1;
	font-size: 180px;
	font-weight: 600;
	line-height: 0.7;
	color: #fcebec;
}

.topVisionBtn {
	width: 400px;
	position: absolute;
	left: 0;
	bottom: 0;
}

.renovationTtl {
	background: url(../../img/renovation/renovation_mv_bg.jpg) no-repeat center center / cover;
}

.pageTtl {
	padding: 15px 45px 20px 40px;
}

.pageSubTtl {
	width: 570px;
	padding: 9px 14px;
	margin: 15px auto 0;
	display: block;
	background: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0;
	text-align: center;
	color: #1c4fa1;
}

.pageSubTtl * {
	letter-spacing: 0;
}

.cross:after {
	width: 10px;
	height: 10px;
	margin: 0 5px;
	display: inline-block;
	content: "";
	background: url(../../img/renovation/cross.png) no-repeat 0 0 / 100%;
}

.busiTtlEn {
	color: #1c4fa1;
}

.busiSubTtl {
	border-left: 2px solid #1c4fa1;
}

.intro {
	margin: 0 0 50px;
	background: url(../../img/design/intro_ill.svg) no-repeat right bottom;
	background-size: 420px;
}

#contsWrap,
#reform {
	padding-top: 120px;
	margin-top: -120px;
}

.catchArea {
	margin: 0 0 35px;
}

.introCatch {
	font-size: clamp(2.2rem, 3.33vw, 4.0rem);
	font-weight: 700;
	line-height: 1.4;
	color: #000;
}

.introCatch .br_:before {
	content: "\A";
	white-space: pre;
}

.especially {
	color: #1c4fa1;
}

.subCatch {
	display: block;
	font-size: clamp(1.8rem, 2.67vw, 3.2rem);
	font-weight: 700;
	color: #000;
}

.introTxt {
	width: 59.4%;
	font-size: clamp(1.4rem, 1.5vw, 1.6rem);
	line-height: 1.6;
	letter-spacing: 0.06em;
}

.introTxt .br_:after {
	content: "\A";
	white-space: pre;
}

.cost {
	margin: 0 0 140px;
	padding: 50px 0 160px;
	display: flex;
	justify-content: center;
	background: #f9f9f9 url(../../img/design/intro_figure.png) no-repeat center bottom 60px;
}

.costInner {
	width: 90%;
	max-width: 1000px;
	display: flex;
	justify-content: space-between;
}

.costBlock {
	padding: 46px 0 0;
}

.costBlockLarge {
	padding: 0;
}

.house {
	margin: 0 0 30px;
	padding: 130px 0 60px;
	background: url(../../img/renovation/house_bg.png) no-repeat center bottom;
	font-size: 2.0rem;
	font-weight: 700;
	text-align: center;
}

.costBlockLarge .house {
	padding: 125px 0 50px;
	background: url(../../img/design/house_bg02.svg) no-repeat center bottom;
	font-size: 2.3rem;
	line-height: 1.3;
	color: #fff;
}

.costTxt {
	font-size: clamp(1.1rem, 1.25vw, 1.5rem);
	line-height: 1.5;
}

.costBlockLarge .costTxt {
	font-size: clamp(1.2rem, 1.33vw, 1.6rem);
	font-weight: 700;
	color: #1c4fa1;
}

#point {
	margin: 0 0 140px;
}

.pointTtl {
	margin: 0 0 80px;
	text-align: center;
}

.pointTtlIn {
	display: inline-block;
	position: relative;
	font-size: clamp(1.6rem, 2.8vw, 3.0rem);
	font-weight: 700;
	line-height: 1.4;
	color: #000;
}

.pointTtlIn:before, .pointTtlIn:after {
	width: 15px;
	height: 120px;
	content: "";
	position: absolute;
	top: 50%;
	border: 1px solid #000;
	transform: translateY(-50%);
}

.pointTtlIn:before {
	left: -74px;
	border-right: none;
}

.pointTtlIn:after {
	right: -74px;
	border-left: none;
}

.pointList {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 2em 2%;
}

.pointBox {
	width: 32%;
}

.pointFigure {
	padding: 5px;
	border: 1px solid #1c4fa1;
}

.pointFigure img {
	width: 100%;
}

.pointConts {
	margin: -25px 0 0;
	text-align: center;
}

.pointHead,
.pointNum {
	font-weight: 700;
	color: #1c4fa1;
}

.pointHead {
	width: 9.2em;
	margin: 0 0 0.6em;
	padding: 0.6em 0 0;
	display: inline-block;
	background: #fff;
	font-size: clamp(1.6rem, 2.08vw, 2.5rem);
}

.pointNum {
	font-size: clamp(2.5rem, 3.17vw, 3.8rem);
}

.pointTxt {
	font-size: clamp(1.3rem, 1.25vw, 1.5rem);
	line-height: 1.5;
	text-align: left;
}

.pointTxt .br_:before {
	content: "\A";
	white-space: pre;
}

.pointBox04 .pointTxt {
	letter-spacing: 0.05em;
}

#concern {
	margin: 0 0 100px;
}

.concernTtl {
	margin: 0 0 60px;
	text-align: center;
}

.concernTtl * {
	font-size: 3.5rem;
	font-weight: 700;
}

.concernTtlMain, .concernTtlSub {
	display: block;
}

.concernTtlMain {
	margin: 0 0 12px;
	display: inline-block;
	position: relative;
	color: #1c4fa1;
}

.concernTtlMain:before,
.concernTtlMain:after {
	content: "";
	position: absolute;
	width: 32px;
	height: 32px;
}

.concernTtlMain:before {
	top: -7px;
	left: -32px;
	background: url(../../img/design/corner_left.svg) no-repeat 0 0 / 100%;
}

.concernTtlMain:after {
	bottom: -7px;
	right: -32px;
	background: url(../../img/design/corner_right.svg) no-repeat 0 0 / 100%;
}

#caseConts {
	display: flex;
	flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	justify-content: space-between;
}

.caseBox {
	width: 23%;
}

.caseHead, .caseNum {
	display: inline-block;
	font-weight: 700;
	line-height: 0.7;
	color: #1c4fa1;
	font-feature-settings: "palt";
}

.caseHead {
	margin: 0 0 0.25em;
	font-size: clamp(1.3rem, 1.4vw, 1.5rem);
}

.caseNum {
	font-size: clamp(1.8rem, 2.4vw, 3rem);
}

.caseBoxTtl {
	margin: 0 0 32px;
	padding: 0 0 14px;
	position: relative;
	z-index: 0;
	border-bottom: 1px solid #b6b6b6;
}

.caseBoxTtl:after {
	width: 14px;
	height: 14px;
	content: "";
	position: absolute;
	bottom: -8px;
	left: 50%;
	z-index: -1;
	background: #fff;
	border-right: 1px solid #b6b6b6;
	border-bottom: 1px solid #b6b6b6;
	transform: translateX(-50%) rotate(45deg);
}

.caseTtl {
	display: block;
	font-size: clamp(1.4rem, 1.5vw, 1.6rem);
	font-weight: 700;
	line-height: 1.4;
	color: #1a1a1a;
}

.solutionConts {
	position: relative;
}

.mark {
	width: 30%;
	height: auto;
	aspect-ratio: 1 / 1;
	/* padding: 15px 0 0 14px; */
	position: absolute;
	top: -3em;
	right: -1em;
	background: #ffd600;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;

	& img {
		object-fit: contain;
		width: 68%;
		height: auto;
	}
}

.caseFigure {
	margin: 0 0 1em;
}

.caseFigure img {
	width: 100%;
}

.caseTxt {
	font-size: clamp(1.3rem, 1.25vw, 1.4rem);
	line-height: 1.5;
}

.busiSubTtlJp {
	font-weight: 600;
}

#works {
	padding: 0;
	background-color: #fff;
}

.worksBox {
	background: #f1f1f1;
}

.worksLink:before,
.worksLink:after,
.worksBox:before,
.worksBox:after {
	background: #1c4fa1;
}

#reform {
	margin-bottom: 100px;
}

.reformWrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.reformFigure {
	width: 48.33%;
}

.reformFigure img {
	width: 100%;
}

.reformConts {
	width: 51.67%;
	padding: 0 0 0 43px;
}

.reformTxtConts {
	margin: 0 0 36px;
}

.reformTxt {
	margin: 0 0 23px;
	font-size: clamp(1.3rem, 1.25vw, 1.5rem);
	line-height: 1.5;
}

.reformTxt .br:after {
	content: "\A";
	white-space: pre;
}

.possibleTtl {
	margin: 0 0 20px;
	padding: 0 0 0 20px;
	font-size: clamp(1.6rem, 2.17vw, 2.4rem);
	font-weight: 700;
	line-height: 1.4;
	border-left: 2px solid #1c4fa1;
}

.possibleBox {
	padding: 30px;
	background: #f9f9f9;
}

.poosibleInner {
	padding: 2em;
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	background: #fff;
}

.possibleItem {
	font-size: clamp(1.3rem, 1.25vw, 1.5rem);
	line-height: 1.4;
}

.possibleItem:before {
	width: 10px;
	height: 10px;
	margin: 0 10px 0 0;
	display: inline-block;
	content: "";
	background: #1c4fa1;
	border-radius: 50%;
	vertical-align: 1px;
}

.possibleItem .assist {
	margin: 0 0 0 84px;
}

#table th:before {
	background: #1c4fa1;
}

.footerNav:before {
	background: #1c4fa1;
}

.footNavLink:hover {
	color: #1c4fa1;
}

#holdings .footNavLink:hover {
	color: #ab0106;
}

#holdings #holdingsLink a:hover {
	color: #fff;

}

/* -------------------------------------------------- */
/* Media Queries (large → small) */
/* -------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.pageTtlJp .br_:after {
		content: "\A";
		white-space: pre;
	}

	.renovationSecTtl {
		margin: 0 0 20px;
		padding: 0 0 20px;
	}

	.pointTtlIn:before {
		left: 0;
	}

	.pointTtlIn:after {
		right: 0;
	}

	.introCatch .br_:before {
		content: "";
	}

	.intro {
		margin: 0 0 60px;
		padding: 0 0 311px;
		background-position: center bottom;
	}

	#mvCatch {
		transform: translate(-50%, -100%);
	}

	#catchMain {
		margin: 0 0 20px;
		font-size: 57px;
	}

	#catchSub {
		font-size: 1.5rem;
	}

	#topVision .inner {
		margin: 0 auto 65px;
		flex-wrap: wrap;
		flex-direction: column-reverse;
	}

	#topVisionTxt h1,
	#topVisionTxt p {
		text-align: left;
	}

	.topVisionBtn {
		width: 100%;
		position: relative;
		left: 0;
		bottom: 0;
		display: inline-block;
		margin-top: 30px;
	}

	.pageSubTtl {
		width: 100%;
		font-size: 1.3rem;
		text-align: center;
	}

	#reform .introCatch {
		letter-spacing: 0.04em;
	}

	.introTxt {
		width: 100%;
	}

	.pointTtl {
		margin: 0 0 60px;
	}

	/* .especially {
		display: block;
	} */

	.pointBox:nth-last-of-type(1) {
		margin: 0;
	}

	#point {
		margin: 0 0 60px;
	}

	.pointTxt .br_:before {
		content: "";
	}

	.costTxt br {
		display: none;
	}

	#caseConts {
		padding: 0;
	}

	.caseBox:nth-last-of-type(1) {
		margin: 0;
	}

	.caseTxt {
		line-height: 1.4;
	}

	.mark {
		width: 86px;
		height: 86px;
		padding: 14px 0 0 10px;
		top: -50px;
		right: 12px;
	}

	.mark img {
		width: 62px;
	}

	.reformFigure {
		width: 100%;
		margin: 0 0 20px;
	}

	.reformConts {
		width: 100%;
		padding: 0;
	}

	.reformTxt .br:after {
		content: "\A";
		white-space: pre;
	}

	.possibleBox {
		padding: 20px;
	}

	.pointTtlIn {
		display: block;
	}

	.pointList {
		gap: 3em 2%;
	}
}


@media screen and (min-width: 1025px) and (max-width: 1200px) {
	#catchMain {
		font-size: 128px;
	}

	#topVisionCatch {
		font-size: 4.5rem;
		font-weight: 700;
		letter-spacing: 0.1em;
	}

	#topService:before {
		width: 100%;
	}

	.introTxt {
		width: 55%;
		padding: 0 30px 0 0;
	}

	.introTxt .br_:after {
		content: "";
	}

	.pointTxt .br_:before {
		content: "";
	}

	.mark {
		width: 100px;
		height: 100px;
		padding: 13px 0 0 8px;
		top: -53px;
		right: 8px;
	}
}

/* タブレットのみ（768-1024px） */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.start {
		display: none;
	}

	#mv {
		width: 100%;
		height: calc(100vh - 80px);
		margin: 80px 0 40px;
	}

	.slick-track {
		height: calc(100vh - 80px) !important;
	}

	.scrollArea {
		display: none;
	}

	#topVisionCatch {
		font-size: 4.0rem;
		line-height: 1.3;
	}

	#bgTxt {
		position: absolute;
		top: -10px;
		left: 56px;
		font-size: 180px;
		letter-spacing: 0;
	}

	#topVisionTxt {
		width: 100%;
		padding: 30px 0 0;
		font-size: 1.8rem;
		letter-spacing: 0.05em;
		text-align: center;
	}

	.renoTtlJp {
		font-size: 4.8rem;
	}

	.renoTtlEn {
		font-size: 3.0rem;
	}

	.cost {
		margin: 0 0 60px;
		padding: 0 0 13vw;
		background-size: 96%;
		background-position: center bottom 30px;
	}

	.costBlock {
		width: 28%;
		padding: 102px 0 0;
	}

	.costBlockLarge {
		width: 36% !important;
		padding: 40px 0 0 !important;
	}

	.house {
		margin: 0 0 30px;
		padding: 12.59vw 0 5.8vw;
		background-size: 100%;
		line-height: 1.3;
	}

	.costBlockLarge .house {
		padding: 13.28vw 0 4.88vw;
		background-size: 100%;
	}

	.pointBox {
		width: 48.3%;
	}

	.concernTtl .br_ {
		display: inline-block;
		color: #1c4fa1 !important;
	}

	.caseBox {
		width: 48.3%;
		margin: 0 0 40px;
	}

	.possibleItem {
		margin: 0 25px 16px 0;
	}
}

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

	#headRe, #headHal, #headDesign {
		display: none;
	}

	.start p {
		width: 104px !important;
	}

	.start img {
		width: 100%;
		height: auto;
	}

	.br_:after {
		content: "\A";
		white-space: pre;
	}

	#mv {
		width: 100%;
		height: calc(100vh - 60px);
		margin: 60px 0 40px;
	}

	.slick-track {
		height: calc(100vh - 60px) !important;
	}

	.mvSlider01 {
		background: url(../../img/top/bg_mv01.jpg) no-repeat center bottom / cover;
	}

	.mvSlider02 {
		background: url(../../img/top/bg_mv02.jpg) no-repeat center bottom / cover;
	}

	.mvSlider03 {
		background: url(../../img/top/bg_mv03.jpg) no-repeat center bottom / cover;
	}

	.mvSlider04 {
		background: url(../../img/top/bg_mv04.jpg) no-repeat center bottom / cover;
	}

	.scrollArea {
		left: 4%;
	}

	#topVisionCatch {
		font-size: clamp(2.2rem, 2.5vw, 3.0rem);
		line-height: 1.3;
	}

	#bgTxt {
		position: absolute;
		top: -10px;
		left: 56px;
		font-size: 125px;
		letter-spacing: 0;
	}

	#topVisionTxt {
		width: 100%;
		padding: 30px 0 0;
		font-size: 1.4rem;
		line-height: 1.6;
		letter-spacing: 0.05em;
		text-align: center;
	}

	.renovationTtl {
		background: url(../../img/renovation/sp_renovation_mv_bg.jpg) no-repeat center bottom / cover;
	}

	.cross:after {
		width: 10px;
		height: 10px;
		margin: 2px auto;
		display: block;
		content: "";
		background: url(../../img/renovation/cross.png) no-repeat 0 0 / 100%;
	}

	.renoTtlJp {
		font-size: clamp(2.4rem, 2.92vw, 3.5rem);
	}

	.renoTtlEn {
		font-size: clamp(1.6rem, 1.67vw, 2.0rem);
	}

	.introCatch {
		font-size: clamp(2.0rem, 3.6vw, 4.0rem);
	}

	.subCatch {
		display: flex;
		flex-wrap: wrap;
		font-size: clamp(1.8rem, 3.0vw, 3.2rem);
	}

	.introCatch .brSp:before {
		content: "\A";
		white-space: pre;
	}

	.cost {
		margin: 0 0 60px;
		padding: 0 0 20vw;
		background-image: url(../../img/design/sp_intro_figure.png);
		background-position: center bottom 30px;
		background-size: 96%;
	}

	.costBlock {
		width: 28%;
		padding: 12.3vw 0 0;
	}

	.costBlockLarge {
		width: 36% !important;
		padding: 6.13vw 0 0;
	}

	.costBlock03 {
		padding: 12vw 0 0;
	}

	.house {
		margin: 0 0 15px;
		padding: 11.2vw 0 5.33vw;
		background-size: 100%;
		font-size: 3.45vw;
		line-height: 1.3;
	}

	.costBlockLarge .house {
		padding: 9.6vw 0 4vw;
		background-size: 100%;
		font-size: 3.45vw;
	}

	.costBlock03 .house {
		padding: 5.6vw 0 2.13vw;
	}

	.house .br_:before, .house .br_:after {
		content: "\A";
		white-space: pre;
	}

	.costTxt {
		line-height: 1.6;
	}

	.pointTtlIn {
		font-size: clamp(1.6rem, 3.6vw, 2.4rem);
	}

	.pointTtlIn .br_:before {
		content: "\A";
		white-space: pre;
	}

	.pointBox {
		width: 100%;
	}

	.concernTtl * {
		font-size: clamp(1.8rem, 5.0vw, 3.0rem);
		line-height: 1.4;
	}

	.concernTtl .br_ {
		color: #1c4fa1 !important;
	}

	.concernTtlMain {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		width: fit-content;
		margin: 0 auto 0.5em;
	}

	.concernTtlMain .br_:after {
		content: "\A";
		white-space: pre;
	}

	.concernTtlMain:before,
	.concernTtlMain:after {
		width: 20px;
		height: 20px;
	}

	.caseBox {
		width: 100%;
		margin: 0 0 40px;
	}

	.possibleItem {
		width: 100%;
		/* margin: 0 25px 16px 0; */
		display: block;
	}

	#reform {
		margin-bottom: 50px;
	}

	.especially {
		display: flex;
		flex-wrap: wrap;
	}

	.pointTtlIn .especially {
		justify-content: center;
	}
}

@media screen and (max-width: 600px) {
	.cost {
		margin: 0 0 60px;
		padding: 0 0 25vw;
	}
}

@media screen and (max-width: 470px) {
	.intro {
		padding: 0 0 45vw;
		background-size: 70%;
	}
}

@media screen and (max-width: 374px) {
	#catchMain {
		font-size: 4.0rem;
	}

	.possibleItem .assist {
		margin: 0 0 0 50px;
	}

	.topNewsBtn {
		width: 100%;
		margin: auto;
	}
}