@charset "utf-8";


.textCaption {
	z-index: 1;
}

.kv {
	position: relative;
}
.kv__photo {
	position: relative;
	width: 100%;
	max-height: 960px;
	overflow: hidden;
}
.kv__photo img {
	object-fit: cover;
	object-position: center center;
	width: 100%;
	height: 100%;
}
.kv__title {
	position: absolute;
	left: 0;
	bottom: 0;
	margin-left: clamp(30px, 10vw, 150px);
	margin-bottom: clamp(30px, 10vw, 150px);
	width: fit-content;
	z-index: 1;
}
.kv__title--en {
	display: block;
    font-size: clamp(55px, 7.33333333vw, 110px);
    line-height: 1;
    font-family: "EB Garamond", serif;
    color: #fff;
    letter-spacing: .1em;
    /*margin-bottom: clamp(10px, 1.33333333vw, 20px);*/
}
.kv__title--jp {
	position: relative;
	font-size: clamp(17px, 2.26666667vw, 34px);
	line-height: 1;
	color: #fff;
	letter-spacing: .05em;
	padding-left: clamp(58px, 7.73333333vw, 116px);
}
.kv__title--jp::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: clamp(40px, 5.33333333vw, 80px);
	height: 1px;
	background: #fff;
}


.sec__head {
	padding-top: 135px;
}
.sec__inner {
	position: relative;
	max-width: 1400px;
	width: 90%;
	margin-inline: auto;
}
.sec__heading {
	position: relative;
	font-size: clamp(14px, 1.8006431vw, 28px); /*base 1555px*/
	/*line-height: 1.909091;*/
	line-height: 1.5;
	letter-spacing: .05em;
	padding-left: 40px;
}
.sec__heading::before,
.sec__heading::after {
	content: '';
	position: absolute;
	left: 0;
	width: 5px;
	height: calc(50% - 0.5em);
}
.sec__heading::before {
	top: 0.8em;
	background: #0F71BA;
}
.sec__heading::after {
	background: #25B0B7;
	bottom: 0.2em;
}
.sec__heading span {
	display: block;
	font-size: calc(50 / 28 * 1.0em);
}
.sec__desc {
	font-size: clamp(14px, 1.1575563vw, 18px);
	line-height: 2.444444;
	letter-spacing: .05em;
	color: #333333;
	margin-top: 35px;
}
@media screen and (max-width: 768px){
	.sec__head {
		padding-top: 45px;
	}
	.sec__inner {
		max-width: 560px;
		width: calc(320 / 380 * 100%);
	}
	.sec__heading {
		line-height: 1.909091;
		padding-left: 30px;
	}
	.sec__desc {
		line-height: 2.285714;
		margin-top: 10px;
	}
}


.layout__head {
	padding-bottom: 140px;
}
.layout__contents {
	padding-block: 150px 140px;
	background: #EAECED;
}
.layout__box {
	position: relative;
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
}
.layout__figure {
	position: sticky;
	top: 0;
	right: 0;
	width: calc(100% - 440px);
}
.layout__list {
	width: 360px;
}
.layout__list__item {
}
.layout__list__item + .layout__list__item {
	margin-top: 30px;
	padding-top: 33px;
	border-top: dashed 1px #7D6D3A;
}
.layout__list__item__heading {
	position: relative;
	padding-left: 25px;
	font-size: clamp(18px, 1.2861736vw, 20px);
	line-height: 1.45;
	letter-spacing: 0;
	color: #004376;
	margin-bottom: 14px;
}
.layout__list__item__heading i {
	position: absolute;
	left: 0;
	top: 0.4em;
	font-style: normal;
	font-size: .8em;
	letter-spacing: 0;
	line-height: 1;
	color: #fff;
	width: 1.0em;
	height: 1.0em;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-bottom: .1em;
	background: #004376;
	/*border-radius: 50%;*/
}
.layout__list__item__desc {
	font-size: 14px;
	line-height: 2.285714;
	letter-spacing: 0;
	color: #67584d;
}
@media screen and (max-width: 1000px){
	.layout__figure {
		width: calc(100% - 360px);
	}
	.layout__list {
		width: 320px;
	}
}
@media screen and (max-width: 768px){
	.layout__head {
		padding-bottom: 20px;
	}
	.layout__contents {
		padding-block: 0 50px;
	}
	.layout__box {
		display: block;
	}
	.layout__figure {
		position: relative;
		width: calc(380 / 320 * 100%);
		margin-left: calc(-30 / 320 * 100%);
		margin-bottom: 60px;
        padding-bottom: calc(30 / 320 * 100%);
        background: #fff;
	}
	.layout__list {
		width: 100%;
	}
	.layout__list__item + .layout__list__item {
        margin-top: 22px;
        padding-top: 25px;
	}
}


.plan__head {
	padding-bottom: 135px;
}
.plan__contents {
	position: relative;
}
.plan__contents::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 80%;
	background : linear-gradient(90deg, rgba(63, 181, 199, 1) 0%, rgba(63, 183, 200, 1) 56.9%, rgba(62, 190, 204, 1) 77.4%, rgba(62, 201, 212, 1) 91.96%, rgba(61, 212, 218, 1) 100%);
	z-index: -1;
}
.plan__list {
	gap: 100px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	padding-bottom: calc(150 / 1400 * 100%);
}
.plan__list__item {
	width: min(555px,calc((100% - 100px) / 2));
	background: #fff;
}
@media (any-hover: hover){
	.plan__list__item a {
		transition: opacity .3s linear;
	}
	.plan__list__item a:hover {
		opacity: .7;
	}
}
@media screen and (max-width: 768px){
	.plan__head {
		padding-bottom: 25px;
	}
	.plan__list {
		gap: 30px;
		padding-bottom: 50px;
	}
	.plan__list__item {
		width: 100%;
	}
}



.planDetail__wrap {
	position: relative;
	padding-block: 200px 180px;
}

.planDetail__wrap::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: calc(100% - 400px);
	background : linear-gradient(90deg, rgba(63, 181, 199, 1) 0%, rgba(63, 183, 200, 1) 56.9%, rgba(62, 190, 204, 1) 77.4%, rgba(62, 201, 212, 1) 91.96%, rgba(61, 212, 218, 1) 100%);
	z-index: -1;
}

.planDetail__inner {
	max-width: 1200px;
	width: 90%;
	margin-inline: auto;
}

.planDetail {
    display: flex;
    justify-content: space-between;
    padding: calc(70 / 1200 * 100%) calc(70 / 1200 * 100%) 155px;
    gap: clamp(40px,5.1244509517vw,70px);
    background : linear-gradient(125deg, rgba(23, 121, 147, 1) 0%, rgba(7, 147, 161, 1) 100%);
}

.planDetailBox {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
}

.planDetailBoxTitle {
	width: 100%;
    margin-bottom: 29px;
    padding-bottom: 42px;
    border-bottom: 1px solid #fff;
    color: #fff;
    font-size: 42px;
    font-family: "EB Garamond",serif
}

.planDetailBoxTitleBig {
    font-size: 79px;
}

.planDetailBoxSize {
    margin-bottom: 14px;
    color: #fff;
    font-size: clamp(3rem,2.4890190337vw,3.4rem);
    font-family: "EB Garamond",serif
}

.planDetailBoxSizeBig {
    font-size: clamp(5rem,4.39238653vw,6rem)
}

.planDetailBoxList {
    color: #fff
}

.planDetailBoxListItem {
    position: relative;
    margin-bottom: 20px;
    padding-left: 20px
}

.planDetailBoxListItem::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 6px;
    height: 6px;
    transform: translate(0, -50%);
    border-radius: 50%;
    background-color: #25b0b8;
    content: ""
}

.planDetailBoxListItem:first-child {
    font-size: 20px;
    white-space: nowrap;
    margin-bottom: 35px;
}

.planDetailBoxListItem:first-child::before {
    top: 50px;
    transform: translate(0, 0)
}

.planDetailBoxListItem__meter {
	font-size: 3.6em;
}
.planDetailBoxListItem__meter span {
	font-size: 0.66666667em;
}

.planDetailBoxBtn-wrap {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	justify-content: center;
	flex-wrap: nowrap;
	gap: 20px;
	margin-top: auto;
	margin-inline: auto;
	width: 100%;
}
.planDetailBoxPrint {
	width: min(100%,180px);
	height: 62px;
	font-size: 16px;
	letter-spacing: 0;
	color: #2A3D4E;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	padding-bottom: .1em;
}
.planDetailBoxBack {
	width: min(100%,180px);
	height: 62px;
	font-size: 16px;
	letter-spacing: 0;
	color: #2A3D4E;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	padding-bottom: .1em;
}

.planDetailBoxPrint-sp ,
.planDetailBoxBack-sp {
	display: none;
}

.planDetailImg {
	position: relative;
    width: calc(580 / 1060 * 100%);
}

.planDetailImg img {
    -ms-touch-action: pinch-zoom;
    width: 100%;
    touch-action: pinch-zoom
}

.planDetail__legend {
	position: absolute;
	inset: auto 0 0;
	margin-inline: auto;
	transform: translateY(100%);
    width: 100%;
    padding-top: 30px;
}

.planDetail__legendBox {
	display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    width: 100%;
    color: #fff;
    font-size: clamp(10px, 0.9003215vw, 14px);
}

.planDetail__legendBox + .planDetail__legendBox {
	margin-top: 20px;
}

.planDetail .planDetail__legendItem {
    display: flex;
    column-gap: 0.6666666667em;
    align-items: center
}

.planDetail .planDetail__legendItem .icon {
    width: 3em
}

.planDetail .planDetail__legendItem .icon img {
	vertical-align: middle;
}

.planDetail .planDetail__legendItem .iconStorage {
    position: relative;
    aspect-ratio: 48/16;
    width: 3em;
    background-color: #d2bb97
}

.planDetail .planDetail__legendItem .iconFloorheating {
    position: relative;
    aspect-ratio: 48/16;
    width: 3em;
    background-color: #faece6
}

.planControl {
	margin-top: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 46px;
}

.planControl__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	font-size: 16px;
	letter-spacing: 0;
	color: #fff;
}

.planControl__item i {
	display: block;
	width: 60px;
	height: 60px;
}

.planControl__item svg {
	width: 100%;
	height: 100%;
}

.planControl__square {
	width: 24px;
	height: 24px;
}

@media (any-hover: hover){
	.planDetailBoxPrint ,
	.planDetailBoxBack {
		transition: color .3s linear,background-color .3s linear;
	}
	.planDetailBoxPrint:hover ,
	.planDetailBoxBack:hover {
		color: #fff;
		background-color: #2A3D4E;
	}
	.planControl__item svg {
		transition: opacity .3s linear;
	}
	.planControl__item:hover svg {
		opacity: .3;
	}
}

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

	.planDetail__wrap {
		padding-block: 100px 60px;
	}

	.planDetail__wrap::before {
		height: calc(100% - 280px);
	}

	.planDetail__inner {
		max-width: 560px;
		width: calc(340 / 380 * 100%);
	}

	.planDetail {
        display: block;
        padding: calc(45 / 340 * 100%) calc(20 / 340 * 100%) calc(45 / 340 * 100%);
    }

    .planDetailBoxTitle {
    	font-size: 34px;
        margin-bottom: 28px;
        padding-bottom: 30px;
    }

    .planDetailBoxTitleBig {
	    font-size: 62px;
	}

    .planDetailBoxSize {
    	font-size: 24px;
    	letter-spacing: .06em;
        margin-bottom: 10px;
    }
    .planDetailBoxSizeBig {
	    font-size: 42px;
	}

    .planDetailBoxList {
        margin-bottom: 40px
    }

    .planDetailBoxListItem {
    	font-size: 12px;
    	margin-bottom: 15px;
    }

    .planDetailBoxListItem:first-child {
        font-size: 16px;
        margin-bottom: 20px;
    }

    .planDetailBoxListItem:first-child::before {
        top: 28px
    }

    .planDetailBoxListItem__meter {
    	font-size: 2.625em;
	}

	.planDetailBoxListItem small {
		font-size: 0.875em;
	}

	.planDetailBoxBtn-wrap {
		display: none;
	}

	.planDetailBoxPrint-sp {
		width: 80%;
		height: 62px;
		font-size: 16px;
		letter-spacing: 0;
		color: #2A3D4E;
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #fff;
		padding-bottom: .1em;
		margin-top: 50px;
		margin-inline: auto;
	}

	.planDetailBoxBack-sp {
		width: 80%;
		height: 62px;
		font-size: 16px;
		letter-spacing: 0;
		color: #2A3D4E;
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #fff;
		padding-bottom: .1em;
		margin-top: 20px;
		margin-inline: auto;
	}

    .planDetailImg {
        width: 100%
    }

    .planDetail__legend {
    	position: relative;
    	transform: translateY(0);
    	padding-top: 20px;
    }

    .planDetail__legendBox + .planDetail__legendBox {
		margin-top: 10px;
	}

	.planControl {
		margin-top: 40px;
		gap: 35px;
	}

	.planControl__item {
		gap: 15px;
		font-size: 13px;
	}

	.planControl__item i {
		width: 48px;
		height: 48px;
	}

	.planControl__square {
		width: 19px;
		height: 19px;
	}
}
