/* CSS Document */

@charset "UTF-8";

@import url('reset.css');

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css?family=Noto+Serif+JP:400,600,700&display=swap&subset=japanese');

@import url('https://use.fontawesome.com/releases/v6.3.0/css/all.css');
@import url('https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/1.3.0/css/line-awesome.min.css');

/*----------------------------------------------------------------------
変数定義
-----------------------------------------------------------------------*/
:root {
	--main-image-color: #B8674C;
}

/*----------------------------------------------------------------------
全体
-----------------------------------------------------------------------*/
body {
	background-color: #FFF;
	font-family: 'Noto Sans JP', sans-serif;
	overflow-X: hidden;
}

input {
	font-family: 'Noto Sans JP', sans-serif;
}

hr {
	height: 1px;
	margin: 10px 0px;
	padding: 0;
	border: 0;
	background: #bbb;
}

img {
	max-width: 100%;
}

a {
	display: inline-block;
}

a:hover img {
	filter: brightness(112%);
	opacity: 0.88;
	transition: 0.4s;
}

.bottom {
	margin-bottom: 0 !important;
}

@media screen and (max-width: 736px) {
	img._100 {
		width: 100vw;
		max-width: none;
		margin-left: -20px;
	}

	html { 
		font-size: 14px;
	}
}

/*----------------------------------------------------------------------
flex
-----------------------------------------------------------------------*/
.flex {
	display: flex;
	align-items: flex-start;
}

@media screen and (max-width: 1200px) {
	.flex {
		flex-direction: column;
	}
}

/*----------------------------------------------------------------------
p
-----------------------------------------------------------------------*/
article p {
	font-size: 1.25rem;
	line-height: 1.7;
}
article p+p {
	margin-top: 2rem;
}

article p strong, article p b {
	font-size: 1.125em;
}

@media screen and (max-width: 800px) {
	p br {
		display: none;
	}
}

/*----------------------------------------------------------------------
main
-----------------------------------------------------------------------*/
main {
	padding-bottom: 8.75rem;
}

@media screen and (max-width: 1260px) {
	main > article:not(#Gallery):not(#main-bottom):not(.ventilation-top) {
		padding-left: 20px;
		padding-right: 20px;
	}
}

img {
	max-width: 100%;
}

main > article+article:not(.ventilation) {
	padding-top: 5rem;
}

/*----------------------------------------------------------------------
main-top
-----------------------------------------------------------------------*/
#main-top {
	padding: 380px 100px;
	background: url("../images/01.jpg");
	background-size: cover;
	background-position: bottom;
}

#main-top > h1 {
	display: inline-block;
	margin-bottom: 300px;
}
#main-top > h1 > img {
	max-width: 50vw;
}

p.q {
	display: inline-flex;
	justify-content: center;
	position: relative;
	padding: 1.625rem 3rem;
	background: rgba(70,118,118,0.8);
	border-radius: 50px;
	font-size: 1.375rem;
	font-family: 'Noto Serif', serif;
	color: #FFF;
	line-height: 1.4;
}
.q::before {
	position: absolute;
	top: -4px;
	left: 4px;
	width: 100%;
	height: 100%;
	content: "";
	border: 1px solid #FFF;
	border-radius: 50px;
}

#main-top p:nth-of-type(n+2) {
	margin-top: 2.5em;
}

#main-top p.a {
	position: relative;
	display: inline-block;
	margin: 2rem 0 4.5rem;
	padding: 2.5rem 4rem;
	background: rgba(250,250,250,0.7);
	text-align: center;
}

.a i {
	position: absolute;
	top: -44px;
	left: 60px;
	content: "\f078";
	font-family: "Font Awesome 6 Free";
	font-size: 6rem;
	font-weight: 900;
	color: var(--main-image-color);
}

div.right {
	display: flex;
	justify-content: center;
	width: 100%;
}

@media screen and (min-width: 960px) {
	#main-top p.q {
		width: 680px;
	}
}

@media screen and (max-width: 680px) {
	#main-top {
		padding: 230px 20px;
	}

	#main-top > h1 > img {
		max-width: 60vw;
	}

	#main-top p, .q {
		width: 100%;
	}

	#main-top p.a {
		padding: 1.5rem;
	}
}

/*----------------------------------------------------------------------
Uatop
-----------------------------------------------------------------------*/
#Ua-top {
	padding: 70px 20px;
	text-align: center;
}

#Ua-top p:nth-of-type(2) {
	display: table;
	margin: 0.5rem auto 0rem;
	padding: 1rem 6rem;
	border: 16px solid var(--main-image-color);
	font-size: 2.5rem;
	font-weight: bold;
}
#Ua-top p:first-of-type {
	font-size: 1.875rem;
	font-weight: bold;
}
#Ua-top p:nth-of-type(3) {
	margin-top: 1.5rem;
	font-size: 2rem;
	font-weight: bold;
}

@media screen and (max-width: 680px) {
	#Ua-top p:nth-of-type(2) {
		padding: 1rem;
		line-height: 1.4;
	}
}

/*----------------------------------------------------------------------
Ua値
-----------------------------------------------------------------------*/
#Ua {
	display: flow-root;
	padding: 280px 0px;
	background: url("../images/02.jpg");
	background-size: 64%;
	background-position: left bottom;
	background-repeat: no-repeat;
}

@media screen and (max-width: 1400px) {
	#Ua {
		background-size: 76%;
	}
}
@media screen and (max-width: 1200px) {
	#Ua {
		padding: 160px 0px;
		background-position: center center;
		background-size: cover;
	}
}

#Ua > div {
	float: right;
	display: inline-block;
	padding: 6.875rem 4rem;
	background: rgba(250,250,250,0.7);
}
@media screen and (max-width: 1200px) {
	#Ua > div {
		padding: 4rem 2.5rem;
	}
}
@media screen and (max-width: 736px) {
	#Ua > div {
		padding: 2rem 1.5rem;
	}
}

#Ua > div > p {
	line-height: 1.8;
}
#Ua > div > p+p {
	margin-top: 4rem;
}

#Ua > div > p span {
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--main-image-color);
}
#Ua > div > p span::before {
	content: "”";
	margin-right: 0.25rem;
	color: #555;
}
#Ua > div > p span::after {
	content: "”";
	margin-left: 0.25rem;
	color: #555;
}

/*----------------------------------------------------------------------
イメージ写真Grid
-----------------------------------------------------------------------*/
#Gallery {
	padding: 2rem 0 12rem;
}

.grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	grid-gap: 8px;
}

/*----------------------------------------------------------------------
性能01.～08. - h2
-----------------------------------------------------------------------*/
main > article h2 {
	position: relative;
	display: inline-flex;
	justify-content: center;
	place-items: center;
	height: 180px;
	margin-bottom: 4rem;
	padding: 40px;
	background: #3D4C5F;
	font-size: 1.875rem;
	color: #FFF;
	line-height: 1.6;
	white-space: nowrap;
}
main > article h2::before {
	position: absolute;
	top: -80px;
	right: -1.75rem;
	content: attr(data-subtitle);
	display: grid;
	place-items: center;
	width: 160px;
	height: 100px;
	padding-bottom: 60px;
	background: #FFF;
	border: 2px solid #BEBEBE;
	border-radius: 50%;
	font-size: 2em;
	color: #ECECEC;
	z-index: -1;
}
main > article h2::after {
	position: absolute;
	bottom: 14px;
	left: 50%;
	content: "";
	width: 70px;
	border-bottom: 1px solid #FFF;
	transform: translateX(-50%);
}

@media screen and (min-width: 680px) {
	main > article h2 {
		min-width: 340px;
	}
}

@media screen and (max-width: 960px) {
	main > article h2 {
		max-width: 100%;
		margin-bottom: 30px !important;
		font-size: 1.625rem;
	}
}

/*----------------------------------------------------------------------
性能01.～08.
-----------------------------------------------------------------------*/
.Performance {
	padding-left: 20px;
}

div.gray {
	position: relative;
	display: flow-root;
	padding: 4rem;
}
div.gray::after {
	position: absolute;
	content: "";
	top: 0;
	left: 0;
	width: 100%;
	max-width: 100vw;
	height: 150%;
	background: #F5F5F5;
	z-index: -2;
}

._01 div.gray {
	padding: 0 4rem 4rem;
}
._01 div.gray::after {
	top: -50%;
	left: 18%;
	height: 150%;
}

._01 div.gray > p:last-of-type {
	float: right;
}

._02 {
	gap: 0 56px;
	padding-left: 30vw;
}

article._02-bottom {
	padding-top: 3rem !important;
}

._02-bottom img {
	display: table;
	margin: auto;
}

._02 > h2 {
	margin-top: 5rem;
}

._02 div.gray {
	top: 0;
	left: 0;
}
._02 div.gray::after {
	top: 0;
	left: 0;
	height: 100%;
}

._03 {
	padding-right: 45vw;
}

._03 h2::before {
	left: 20px;
}

._03 div.gray {
	padding-top: 0;
}
._03 div.gray::after {
	top: -70%;
	left: 16%;
	width: 84%;
	height: 130%;
}

._03 div.gray > img {
	display: table;
	margin: 1.5rem auto 0;
}

._04 {
	gap: 0px 20px;
	margin-bottom: 5rem;
	padding: 0 6vw 0 20vw;
}

._04 div {
	text-align: right;
}

._04 h2 {
	margin-right: 4rem;
	text-align: left;
}

._04 div.gray {
	padding-top: 0;
	text-align: left;
}
._04 div.gray::after {
	top: -50%;
	left: -10%;
	width: 110%;
	height: 150%;
}

._05-06 {
	position: relative;
	margin-bottom: 5rem;
	padding-right: 50vw;
	background: url("../images/05.jpg");
	background-size: 60vw;
	background-position: top right;
	background-repeat: no-repeat;
	z-index: -3;
}

._05-06 > div:not(.gray) {
	text-align: right;
}
._05-06 div.gray {
	text-align: left;
}

._05-06 h2:first-child {
	margin-right: 4rem;
	text-align: left;
}
._05-06 h2::before {
	left: 20px;
}
._05-06 h2:first-child::before {
	left: -1.75rem;
}

._05-06 img {
	display: table;
	margin: 1.5rem auto 10rem;
}

._05-06 div._1st {
	padding-top: 0;
}
._05-06 div._1st::after {
	top: -20%;
	height: 60%;
}
@media screen and (min-width: 960px) {
	._05-06 div._1st {
		max-width: 699px;
	}
}

._05-06 div._2nd {
	width: calc(40vw - 37px);
	padding-top: 0;
}
._05-06 div._2nd::after {
	top: -50%;
	height: 150%;
}

._07 h2::before {
	left: -1.75rem;
}

._07 div.gray::after {
	top: -26%;
	left: -20%;
	width: 120%;
	height: 126%;
}

@media screen and (min-width: 1360px) {
	._07 {
		padding-left: 40vw;
	}
}

._08 div.gray {
	max-width: 1000px;
	padding-bottom: 1rem;
}
._08 div.gray::after {
	left: -15%;
	width: 70%;
	min-width: 500px;
	height: 63%;
	margin-top: 1rem;
}

main > article._08+article {
	padding-top: 0 !important;
}

@media screen and (min-width: 1200px) {
	._08 img {
		margin-right: 100px;
	}
}

@media screen and (max-width: 960px) {
	.Performance:not(._01) {
		margin-top: 3rem !important;
	}

	._04 img {
		z-index: -10;
	}

	._05-06 {
		padding-right: 0;
		background-size: cover;
	}

	div.gray {
		width: 100% !important;
		padding: 2rem 1rem !important;
	}
	div.gray::after {
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
	}

	._05-06 div._1st::after {
		height: calc(100% - 30vw) !important;
	}
}

@media screen and (max-width: 1360px) {
	._07 > h2::before {
		left: 20px !important;
	}
}

@media screen and (max-width: 480px) {
	._05-06 h2:first-child::before {
		left: 20px !important;
	}
}

/*----------------------------------------------------------------------
換気top
-----------------------------------------------------------------------*/
article.ventilation-top img {
	position: relative;
	z-index: -2;
}

article.ventilation-top h3 {
	position: relative;
	display: table;
	margin: -50px auto 0;
	padding-bottom: 10px;
	z-index: 5;
}
article.ventilation-top h3::before, article.ventilation-top h3::after {
	position: absolute;
	content: "";
	width: 250px;
	height: 250px;
	background: #FFF;
	border: 1px solid #5C5954;
	border-radius: 50%;
	z-index: -1;
}
article.ventilation-top h3::before {
	top: -100px;
	left: -10px;
}
article.ventilation-top h3::after {
	top: -103px;
	left: -13px;
	background: transparent;
}

article.ventilation-top h3 > span {
	position: relative;
}
article.ventilation-top h3 > span::after {
	position: absolute;
	bottom: -31px;
	left: calc(50% - 70px);
	content: "";
	width: 70px;
	border-bottom: 1px solid #5C5954;
}

@media screen and (max-width: 680px) {
	article.ventilation-top h3::before, article.ventilation-top h3::after {
		width: 200px;
		height: 200px;
	}
	article.ventilation-top h3::before {
		top: -75px;
		left: -25px;
	}
	article.ventilation-top h3::after {
		top: -78px;
		left: -28px;
		background: transparent;
	}
}

@media screen and (max-width: 1260px) {
	article.ventilation >img {
		margin-bottom: 1rem;
	}
}

/*----------------------------------------------------------------------
換気
-----------------------------------------------------------------------*/
article.ventilation {
	background: #F3F0EB;
	padding-top: 170px;
}

article.ventilation+article.ventilation {
	padding-top: 100px;
}

article.ventilation > div, article.ventilation > p {
	padding: 0px 5rem;
}

article.ventilation p {
	max-width: 920px;
}

article:nth-last-of-type(2) {
	display: flow-root;
	padding-bottom: 120px;
}
article:nth-last-of-type(2) > div {
	float: right;
}
article:nth-last-of-type(2) p {
	max-width: 1300px;
}

article h3 {
	font-size: 1.75em;
	margin-bottom: 0.875em;
}

@media screen and (max-width: 1200px) {
	article.ventilation > div, article.ventilation > p {
		padding: 0;
	}

	.sp-reverse {
		flex-direction: column-reverse;
	}
}

/*----------------------------------------------------------------------
main-bottom
-----------------------------------------------------------------------*/
#main-bottom {
	padding-top: 0;
}

#main-bottom > div {
	padding: 7.5rem 3.75rem;
	background: var(--main-image-color);
	text-align: center;
}

#main-bottom > div > img {
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}

/*----------------------------------------------------------------------
ボタンリンク
-----------------------------------------------------------------------*/
a.button {
	display: flex;
	justify-content: space-around;
	align-items: center;
	position: relative;
	width: 480px;
	margin: 60px auto 0;
	padding: 18px 12px;
	background: var(--main-image-color);
	border-radius: 50px;
	color: #FFF;
	text-decoration: none;
}

a.button > span {
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1.1;
	letter-spacing: 0.06em;
	text-align: center;
}
a.button > span::after {
	position: absolute;
	top: 50%;
	right: 2.75rem;
	content: "\f101";
	margin-left: 0.625em;
	font-family: "Font Awesome 6 Free";
	font-size: 2rem;
	font-weight: 900;
	transform: translateY(-50%);
}

a:hover.button {
	opacity: 0.8;
}
a:hover.button > span::after {
	right: 2.5rem;
	;transition: 0.3s;
}

a.button > span > small {
	font-size: 1rem;
}

@media screen and (max-width: 680px) {
	a.button {
		width: 80vw;
	}

	a.button > span::after {
		right: 1.5rem;
		font-size: 1.5rem;
	}
	a:hover.button > span::after {
		right: 1.25rem;
	}
}

/*----------------------------------------------------------------------
画像フルサイズ
-----------------------------------------------------------------------*/
img.cover {
	height: 98vh;
	object-fit: cover;
}

@media screen and (max-width: 680px) {
	img.cover {
		height: 66vh;
	}
}

/*----------------------------------------------------------------------
2024_0405追加調整
-----------------------------------------------------------------------*/
._03 div.gray::after {
	height: 136%;
}

._05-06 div._1st::after {
	height: 90%;
}