@charset "UTF-8";
/* CSS Document */

/*
Theme Name: premium-suis
Author: レオーネクオーリ
Description: U.Style Premium-suis　HP用
Version: 1.0
*/

:root {
	--black: #040000;
	--gray: #f6f6f6;
	--gray2: #ebebeb;
	--gray3: #f3f3f3;
	--gray4: #f4f4f4;
	--gray5: #e2e2e2;
	--green: #74713e;
	--lightgreen: #9c9b7c;
	--deepgreen: #59572e;
	--red: #d21a1a;
}

body {
    font-family: "Shippori Mincho", serif;
    font-size: 16px;
	color: var(--black);
	background-color: #fff;
}

.none,.sp,.sp02 {display: none;}

a {transition: 0.5s;}

a:hover {
	opacity: 0.7;
	transition: 0.5s;
}

.link {
	position: relative;
	display: inline-block;
	padding: 20px 50px 20px 30px;
	width: fit-content;
	border: solid 1px #fff;
}

.link:hover {
	opacity: 1;
	background-color: var(--green);
	border: solid 1px var(--green);
}

.link::before {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 1px #fff;
	border-right: solid 1px #fff;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	right: 30px;
	bottom: 0;
	margin: auto;	
}

.btn {	
	text-align: center;
	width: 310px;
}

.btn a {
	display: block;
	line-height: 1.5em;
	font-size: 18px;	
	color: #fff;
	padding: 25px 0;
	background-color: var(--green);
}

.btn a:hover {
	opacity: 1;
	background-color: var(--black);
}

img {width: 100%;}

pre {white-space: pre-wrap;}

@media screen and (max-width: 820px) {
	.link::after {transform: scale(1, 1);}
}

@media screen and (max-width: 640px) {
	.pc {display: none;}
	.sp {display: block;}
	
	body {font-size: 14px;}
	
	.btn {width: 280px;}
	.btn a {
		font-size: 16px;
		padding: 20px 0;
	}
}

/**********************************************************************************

inviewでフェードイン

**********************************************************************************/
.fadein {
	opacity: 0;
	filter: blur(6px);
	transition: opacity 1s ease, filter 1s ease;
	will-change: opacity, filter;
}

.fadein.is-show {
	opacity: 1;
	filter: blur(0);
}

.fadein[data-delay="1"] { transition-delay: .3s; }
.fadein[data-delay="2"] { transition-delay: 3.5s; }
.fadein[data-delay="3"] { transition-delay: 4.5s; }
.fadein[data-delay="4"] { transition-delay: 5.5s; }

/**********************************************************************************
右からスッとフェードイン
**********************************************************************************/
.fadein-right {
	opacity: 0;
	transform: translateX(40px);
}

.fadein-right.is-show {
	animation: fadeSlideRight 1s ease forwards;
}

@keyframes fadeSlideRight {
	0% {
		opacity: 0;
		transform: translateX(40px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

.fadein-right[data-delay="1"] { transition-delay: .3s; }

/**********************************************************************************

ローディング

**********************************************************************************/

/* ローディング画面全体 */
#loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;

	opacity: 1;
	visibility: visible;
	transition: opacity 1s ease-in-out, visibility 1s ease-in-out;
}

/* ロゴ */
#loading-logo {
	opacity: 0;
	animation: fadeInOut 3s ease-in-out forwards;
	width: 70%;
	max-width: 300px;
}

/* ロゴのフェードイン→フェードアウト */
@keyframes fadeInOut {
	0%   { opacity: 0; }
	25%  { opacity: 1; }   /* すぐにフェードイン */
	75%  { opacity: 1; }   /* 表示キープ短め */
	100% { opacity: 0; }   /* すぐにフェードアウト */
}

/* ローディング後は画面ごとふわっと消える */
body.loaded #loading {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}


/**********************************************************************************
#navArea
**********************************************************************************/
#navArea {transition: all 0.6s ease;}
#navArea .box {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 95%;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 0;
}

#navArea .box h1 {
	max-width: 340px;
}

#navArea .box nav {	
	font-size: 16px;
	font-family: "Aboreto", system-ui;
	color: #fff;
}

#navArea .box nav ul {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 25px;
}

.home #navArea h1 {
	position: fixed;
	left: 7%;
	bottom: 70px;
	max-width: 400px;
	z-index: 2;
}

.home #navArea nav {	
	font-family: "Aboreto", system-ui;
	text-align: right;
	position: fixed;
	top: 30px;
	right: 17%;
	z-index: 3;
	color: #fff;
}

.home #navArea nav ul li { margin-bottom: 15px; }
.home #navArea nav ul li:last-child { margin-bottom: 0;}

#navArea.difference {
	mix-blend-mode: difference;
}

#navArea.difference nav ul {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 25px;
}

#navArea.difference nav ul li {
	margin-bottom: 0;
}

.open #navArea {
	mix-blend-mode: normal !important;
}

/* 非TOPは常時 difference（現状維持） */
body:not(.home) #navArea {
	mix-blend-mode: difference;
}

/* TOPだけ、切替のときだけ透明→再表示 */
body.home #navArea {
	opacity: 1;
}

/* 一瞬だけ完全に隠す（重なり時間 0） */
body.home #navArea.fade-hide {
	opacity: 0;
	transition: opacity 0.12s ease-out; /* 速く隠す */
}

/* 再表示はゆっくり“ふわっ” */
body.home #navArea.fade-show {
	opacity: 1;
	transition: opacity 0.55s ease;     /* 好みで 0.45〜0.8s */
}

/* footer中の h1 は従来通り“ふわっ” */
body.home #navArea h1 {
	transition: opacity 0.45s ease;
}
body.home #navArea h1.logonone { opacity: 0; }



@media screen and (max-width: 1500px) {
	.home #navArea h1 {
		width: 23%;
	}
}

@media screen and (max-width: 1400px) {
	.home #navArea nav { right: 10%; }
	#navArea .box h1 {width: 25%;}
}
@media screen and (max-width: 1100px) {
	#navArea .box nav {	font-size: 14px;}
	.home #navArea nav { right: 5%; }
	
	#navArea.difference nav {
		font-size: 14px;
	}
	
}

@media screen and (max-width: 1024px) {
	.home #navArea h1 {
		width: 26%;
		left: 4%;
	}
}

/**********************************************************************************
SP 表示（820px 以下）
**********************************************************************************/
@media screen and (max-width: 820px) {
	#navArea nav {
		opacity: 0;	
		pointer-events: none;
	}
	
	#navArea .box {
		z-index: 950;
		padding: 30px 0;
	}

	#navArea .box nav {
		font-size: 24px;
		text-align: center;
		position: fixed;
		top: 50%;
		left: 0;
		right: 0;
		margin: 0 auto;
		transform: translateY(-50%);
		-webkit-transform: translateY(-50%);
		-ms-transform: translateY(-50%);
		/* navを mask より上に */
		z-index: 1000 !important;
	}
	
	#navArea .box nav ul {
		flex-direction: column;
	}
	
	#navArea.difference nav ul {
		flex-direction: column;
		gap: 0;
	}
	
	.open nav {
		display: block;
		left: 0;
		opacity: 1;
	}
	
	.open #navArea h1 {display: none;}
	
	#navArea nav.active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	
	#navArea .box h1 {
		width: 60%;
	}
	
	.home #navArea h1 {
		top: 50px;
		left: 0;
		right: 0;
		bottom: auto;
		width: 40%;
		margin: 0 auto;
	}
	
	.home #navArea.difference h1 {
		top: 20px;
		left: 20px;
		right: auto;
		width: 25%;
		margin: 0;
	}

	.home #navArea nav {
		font-size: 24px;
		text-align: center;
		top: 50%;
		left: 0;
		right: 0;
		margin: 0 auto;
		transform: translateY(-50%);
		-webkit-transform: translateY(-50%);
		-ms-transform: translateY(-50%);
		z-index: 1000 !important; /* こちらも nav を mask より上に */
	}
	
	.home #navArea nav ul li { margin-bottom: 30px; }

	.toggle_btn {
		display: block;
		position: fixed;
		top: 27px;
		right: 30px;
		width: 34px;
		height: 30px;
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
		cursor: pointer;
		z-index: 1001; /* nav よりさらに上 */
	}
	
	.toggle_btn span {
		position: absolute;
		left: 0;
		width: 34px;
		height: 1px;
		border-radius: 4px;
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
		background-color: #fff;
	}
	
	.toggle_btn span:nth-child(1) {top: 4px;}
	.toggle_btn span:nth-child(2) {top: 14px;}
	.toggle_btn span:nth-child(3) {bottom: 4px;}
	
	.open .toggle_btn span:nth-child(1) {
		-webkit-transform: translateY(10px) rotate(-315deg);
		transform: translateY(10px) rotate(-45deg);
	}
	
	.open .toggle_btn span:nth-child(2) {opacity: 0;}
	.open .toggle_btn span:nth-child(3) {
		-webkit-transform: translateY(-10px) rotate(315deg);
		transform: translateY(-10px) rotate(45deg);
	}

	/* mask は背景 (下) */
	#mask {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--black);
		z-index: 900; /* nav より下 */
	}
}

@media screen and (max-width: 430px) {
	.home #navArea h1 { width: 50%; }
}

/**********************************************************************************
ベース調整
**********************************************************************************/
#navArea {
	position: relative;
	z-index: 950; /* navのz-indexが効く足場 */
}


/**********************************************************************************

.spmenu

**********************************************************************************/
@media screen and (max-width: 820px) {
	.spmenu {
		display: flex;
		align-items: center;
		justify-content: space-around;
		position: fixed;
		bottom: 0;
		z-index: 3;
		width: 100%;
	}
	
	.spmenu li {
		display: flex;
		align-items: center;
		height: 60px;
		color: #fff;
		background-color: var(--black);
		font-family: "Marcellus", "Shippori Mincho" ,serif;
		letter-spacing: 0.1em;
		border-right: solid 1px #fff;
		padding: 0 40px;
		width: 100%;
		white-space: nowrap;
	}
	
	.spmenu li:last-child{
		border-right: none;
	}
	
	.spmenu li a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 15px;
		margin: 0 auto;
	}
	
	.spmenu li a img {
		width: 24px;
	}
}

@media screen and (max-width: 768px) {
	.home #navArea.scrolled h1 {
		bottom: 70px;
	}
	
	.spmenu li {
		height: 50px;
		font-size: 14px;
		padding: 0 30px;
	}
	
	.spmenu li a img {
		width: 20px;
	}
}

@media screen and (max-width: 640px) {
	.home #navArea.scrolled h1 {
		bottom: 60px;
	}
	
	.spmenu li {
		height: 40px;
		font-size: 12px;
		padding: 0 15px;
	}
	
	.spmenu li a {
		gap: 10px;
	}
	
	.spmenu li a img {
		width: 18px;
	}
}

/**********************************************************************************

footer

**********************************************************************************/
footer {
	position: relative;
}

footer .box01 {
	position: relative;
	width: 75%;
	margin: 0 auto;
}

footer .box01 .inner {
	display: flex;
	align-items: flex-start;	
	padding: 100px 110px 0;
	position: relative;
	z-index: 1;
}

footer .box01 .left {
	width: 40%;
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
}

footer .box01 .left h3 {
	font-size: 48px;	
	writing-mode: vertical-rl;
	padding-right: 70px;
	letter-spacing: 0.1em;
}

footer .box01 .right {
	max-width: 640px;
	margin-top: 150px;
}

footer .box01 .right ul {
	margin-top: 65px;
	padding-bottom: 50px;
	display: flex;
	flex-wrap: wrap;
	gap: 20px 25px;
}

footer .box01 .right ul li {
	color: #fff;
	padding-right: 25px;
	border-right: solid 1px;
}

footer .box01 .right ul li:nth-child(4),footer .box01 .right ul li:last-child {
	padding-right: 0;
	border-right: none;
}

footer .box01 .bg-box {
	background-color: var(--black);
	width: 100%;
	height: 350px;
	position: absolute;
	left: 0;
	bottom: 0;
}

footer .box02 {
	margin-top: -250px;
	height: 400px;
}

footer .box02 video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

footer .footer-logo {
	position: absolute;
	left: 11%;
	bottom: 230px;
	max-width: 400px;
	z-index: 2;
}

footer .copylight {
	font-size: 15px;
	font-family: "Aboreto", system-ui;
	text-align: center;
	padding: 10px 0;
}

@media screen and (max-width: 1800px) {
	footer .footer-logo {
		left: 7%;
	}
}

@media screen and (max-width: 1500px) {
	footer .footer-logo {
		left: 3%;
		width: 25%;
	}
}

@media screen and (max-width: 1200px) {
	footer .box01 .inner {
		padding: 100px 50px 0;
	}
	
	footer .box01 .left {
		width: 30%;
	}
	
	footer .box01 .right {
		width: 70%;
	}
}

@media screen and (max-width: 1100px) {
	footer .box01 .bg-box {
		height: 300px;
	}
}

@media screen and (max-width: 980px) {
	footer .box01 .right ul li:nth-child(4) {
		padding-right: 25px;
		border-right: solid 1px;
	}

	footer .box01 .right ul li:nth-child(3),footer .box01 .right ul li:nth-child(7) {
		padding-right: 0;
		border-right: none;
	}
}

@media screen and (max-width: 820px) {
	footer {
		margin-bottom: 60px;
	}
	
	footer .box01 {
		width: 90%;
	}
	
	footer .box02 {
		margin-top: -200px;
		height: 300px;
	}
}

@media screen and (max-width: 768px) {
	footer {
		margin-bottom: 50px;
	}
}

@media screen and (max-width: 640px) {
	footer {
		margin-bottom: 40px;
	}
	
	footer .box01 .inner {
		flex-direction: column;
	}
	
	footer .box01 .left,footer .box01 .right {
		width: 100%;
	}
	
	footer .box01 .left {
		justify-content: center;
	}
	
	footer .box01 .left h3 {
		padding-right: 0;
	}
	
	footer .box01 .right {
		margin-top: 30px;
	}
	
	footer .box01 .right ul {
		margin-top: 50px;
	}
	
	footer .footer-logo {
		left: auto;
		right: 10%;
		bottom: 80px;
	}
	
	footer .copylight {
		font-size: 13px;
	}
}

@media screen and (max-width: 430px) {
	footer .box01 .inner {
		padding: 80px 30px 0;
	}
	
	footer .box01 .left h3 {
		font-size: 36px;
	}
	
	footer .box01 .right ul li:nth-child(3) {
		padding-right: 25px;
		border-right: solid 1px;
	}

	footer .box01 .right ul li:nth-child(2),footer .box01 .right ul li:nth-child(4) {
		padding-right: 0;
		border-right: none;
	}
	
	footer .footer-logo {
		width: 35%;
	}
}

@media screen and (max-width: 390px) {
	footer .box01 .right ul li:nth-child(7) {
		padding-right: 25px;
		border-right: solid 1px;
	}

	footer .box01 .right ul li:nth-child(6) {
		padding-right: 0;
		border-right: none;
	}
}

/**********************************************************************************

.scroll-area

**********************************************************************************/
.scroll-area {
	position: absolute;
	right: 12%;
	top: 300px;
}

.scroll-area::before {
	animation: scroll-area 2s infinite;	
	content: "";		
	background-color: var(--black);
	width: 1px;
	height: 270px;	
	position: absolute;
	bottom: -285px;
	left: 0;
	right: 0;	
	margin: auto;
}

.scroll-area::after{
	animation: blink 3s infinite ease-in-out;
	content: "";
	background-color: var(--black);
	width: 8px;
	height: 8px;
	border-radius: 50%;
	position: absolute;
	bottom: -240px;
	left: 0;
	right: 0;	
	margin: auto;
}

.scroll-area span {
	font-size: 14px;
	font-family: "Aboreto", system-ui;
}

@keyframes scroll-area {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	51% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

@keyframes blink {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
}

@media screen and (max-width: 820px) {
	.scroll-area::before {
		height: 200px;
		bottom: -220px;
	}

	.scroll-area::after{
		bottom: -200px;
	}
}

@media screen and (max-width: 430px) {
	.scroll-area {
		top: 180px;
	}

	.scroll-area::before {
		height: 100px;
		bottom: -120px;
	}

	.scroll-area::after{
		width: 6px;
		height: 6px;
		bottom: -100px;
	}
	
	.scroll-area span {
		font-size: 12px;
	}
}

/**********************************************************************************

#fv

**********************************************************************************/
#fv {
	position: relative;
	height: 100dvh;
	width: 100%;
	background: image-set(
		url("images/top/fv_pc.webp") type("image/webp") 1x,
		url("images/top/fv_pc.jpg") type("image/png") 1x
	);
	background-size: cover;
	background-position: center;
}

#fv h2 {
	font-size: 100px;
	color: #fff;
	writing-mode: vertical-rl;
	position: absolute;
	top: 50px;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);	
}

#fv h2 ruby {
	ruby-align: center;
}

#fv h2 ruby rt {
	font-size: 25%;
	letter-spacing: 0.2em;
}

#fv h3 {
	color: #fff;
	font-family: "Marcellus", serif;
	text-align: center;
	white-space: nowrap;
	letter-spacing: 0.1em;
	position: absolute;
	bottom: 90px;
	left: 0;
	right: 0;
	margin: 0 auto;
}

@media screen and (max-width: 1600px) {
	#fv h2 {
		font-size: 90px;
	}	
}

@media screen and (max-width: 1400px) {
	#fv h3 {	
		font-size: 14px;
	}
}

@media screen and (max-width: 1100px) {
	#fv h2 {
		font-size: 80px;
	}
	
	#fv h3 {	
		font-size: 12px;
		bottom: 80px;
	}		
}

@media screen and (max-width: 820px) {
	#fv {
		background: image-set(
			url("images/top/fv_sp.webp") type("image/webp") 1x,
			url("images/top/fv_sp.jpg") type("image/png") 1x
		);
		background-size: cover;
		background-position: center;
	}
	
	#fv h2 {
		top: 300px;
		font-size: 70px;
	}
	
	#fv h3 {	
		font-size: 12px;
		bottom: 100px;
	}
}

@media screen and (max-width: 640px) {
	#fv h2 {
		font-size: 60px;
	}
	
	#fv h3 {	
		bottom: 90px;
	}
}


@media screen and (max-width: 430px) {
	#fv h2 {
		top: 220px;
		font-size: 40px;
	}
	
	#fv h3 {
		font-size: 10px;
	}
}

/**********************************************************************************

#top-concept01

**********************************************************************************/
#top-concept01 {
	display: flex;
	margin-top: 180px;
	position: relative;
	padding-right: 30px;
	gap: 55px;
}

#top-concept01 .left {
	width: 40%;
	aspect-ratio: 5 / 6;
	overflow: hidden;
}

#top-concept01 .left img {
	height: 100%;
	object-fit: cover;
}

#top-concept01 .right {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

#top-concept01 .right .inner01 {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 100px;
	margin-bottom: 60px;
}

#top-concept01 .right .inner01 h3 {
	font-size: 48px;	
	writing-mode: vertical-rl;
	order: 2;
	white-space: nowrap;
}

#top-concept01 .right .inner01 p {
	margin-top: 70px;
	font-size: 18px;
	line-height: 2em;
	letter-spacing: 0.1em;
	writing-mode: vertical-rl;
	order: 1;
	white-space: nowrap;
}

#top-concept01 .right .inner02 {
	background-color: var(--gray);
	padding: 25px;
}

#top-concept01 .right .inner02 h4 {
	font-size: 24px;
	margin-bottom: 15px;
	line-height: 1.5em;
	letter-spacing: 0.1em;
}

#top-concept01 .right .inner02 p {
	line-height: 1.5em;
	letter-spacing: 0.1em;
	text-align: justify;
}

#top-concept01 .scroll-area {
	top: auto;
	bottom: 285px;
}

#top-concept01 .scroll-area::before {
	animation: scroll-area 2s infinite;	
	content: "";		
	background-color: var(--black);
	width: 1px;
	height: 270px;	
	position: absolute;
	bottom: -285px;
	left: 0;
	right: 0;	
	margin: auto;
}

#top-concept01 .scroll-area::after{
	animation: blink 3s infinite ease-in-out;
	content: "";
	background-color: var(--black);
	width: 8px;
	height: 8px;
	border-radius: 50%;
	position: absolute;
	bottom: -240px;
	left: 0;
	right: 0;	
	margin: auto;
}

#top-concept01 .scroll-area span {
	font-family: "Aboreto", system-ui;
}

@media screen and (max-width: 1870px) {
	#top-concept01 .left {
		width: 35%;
	}
}

@media screen and (max-width: 1400px) {
	#top-concept01 .right .inner01 {
		gap: 100px;
	}
	
	#top-concept01 .scroll-area {
		right: 10%;
	}
}

@media screen and (max-width: 1100px) {
	#top-concept01 .scroll-area {	
		right: 5%;
	}
}

@media screen and (max-width: 820px) {
	#top-concept01 {
		margin-top: 150px;
		flex-direction: column;
		padding-right: 0;
		gap: 80px;
	}
	
	#top-concept01 .left {
		order: 2;
		width: 100%;
		aspect-ratio: 5 / 3;
	}

	#top-concept01 .right {
		display: block;
		order: 1;
		width: 90%;
		margin: 0 auto;
	}
	
	#top-concept01 .scroll-area {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		-webkit-transform: translateX(-50%);
		-ms-transform: translateX(-50%);
		bottom: 320px;
	}
	
	#top-concept01 .scroll-area::before {
		background-color: #fff;
	}

	#top-concept01 .scroll-area::after{
		background-color: #fff;
	}
	
	#top-concept01 .scroll-area span {
		color: #fff;
	}
}

@media screen and (max-width: 640px) {
	#top-concept01 {
		margin-top: 100px;
	}
	
	#top-concept01 .right .inner01 {
		gap: 80px;
	}

	#top-concept01 .right .inner01 h3 {
		font-size: 40px;
	}
}

@media screen and (max-width: 430px) {
	#top-concept01 .right .inner01 {
		gap: 40px;
	}

	#top-concept01 .right .inner01 h3 {
		font-size: 30px;
	}
	
	#top-concept01 .right .inner01 p {
		margin-top: 50px;
		font-size: 16px;
	}

	#top-concept01 .right .inner02 h4 {
		font-size: 18px;
	}

	#top-concept01 .right .inner02 p {
		font-size: 14px;
	}
	
	#top-concept01 .scroll-area {
		bottom: 165px;
	}
	
	#top-concept01 .scroll-area::before {
		height: 150px;
		bottom: -165px;
	}

	#top-concept01 .scroll-area::after{
		width: 6px;
		height: 6px;
		bottom: -130px;
	}
}

/**********************************************************************************

#top-concept02

**********************************************************************************/
#top-concept02 {
	margin-top: 150px;
}

#top-concept02 .box01 {
	width: 90%;
	max-width: 1150px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}

#top-concept02 .box01 p {
	position: absolute;
	top: -33px;
	right: 40px;
	font-family: "Marcellus", serif;
	font-size: 14px;
	line-height: 1.5em;
	letter-spacing: 0.1em;
	z-index: 1;
}

#top-concept02 .box01 .slick-dots {
	position: absolute;
	right: 15px;
	bottom: 15px;
	width: auto;
	left: auto;
	transform: none; 
}

#top-concept02 .box01 .slick-dots li {
	width: 45px;
	height: 2px;
	margin: 0 4px;
}

#top-concept02 .box01 .slick-dots li button {
	padding: 0;
	width: 45px;
	height: 2px;
	border: 0;
	background: none;
	font-size: 0; 
	line-height: 0;
	cursor: pointer;
}

#top-concept02 .box01 .slick-dots li button:before {
	content: "";
	display: block;
	width: 100%!important;;
	height: 100%!important;;
	background-color: #fff;
	opacity: 1; 
	border-radius: 0; 
}

#top-concept02 .box01 .slick-dots li.slick-active button:before {
	background-color: var(--black);
	opacity: 1;
}

#top-concept02 .box02 {
	position: relative;
	overflow: hidden;
	margin-top: -280px;
}

#top-concept02 .box02 video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -1; 
}

#top-concept02 .box02 .inner {
	width: 90%;
	max-width: 1100px;
	padding: 320px 0 100px;
	margin: 0 auto;
	color: #fff;	
}

#top-concept02 .box02 .inner .inner-wrap {
	margin-left: 250px;
}

#top-concept02 .box02 .inner .inner-wrap h3 {
	font-size: 30px;
	line-height: 2em;
	letter-spacing: 0.1em;
	margin-bottom: 30px;
}

#top-concept02 .box02 .inner .inner-wrap p {
	line-height: 2em;
}

@media screen and (max-width: 1700px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 300px;
	}
}

@media screen and (max-width: 1570px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 350px;
	}
}

@media screen and (max-width: 1450px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 400px;
	}
}

@media screen and (max-width: 1330px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 450px;
	}
}

@media screen and (max-width: 1250px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 500px;
	}
}

@media screen and (max-width: 1024px) {
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 33%;
	}
}

@media screen and (max-width: 640px) {
	#top-concept02 .box01 p {
		top: -28px;
		right: 20px;
		font-size: 12px;
	}
	#top-concept02 .box01 .slick-dots li,#top-concept02 .box01 .slick-dots li button  {
		width: 25px;
	}

	#top-concept02 .box02 {
		margin-top: -150px;
	}
	#top-concept02 .box02 .inner {
		padding: 180px 0 80px;
	}
	#top-concept02 .box02 .inner .inner-wrap {
		margin-left: 0;
	}
}

@media screen and (max-width: 430px) {
	#top-concept02 .box02 .inner .inner-wrap h3 {
		font-size: 24px;
	}

	#top-concept02 .box02 .inner .inner-wrap p {
		font-size: 14px;
	}
}

/**********************************************************************************

#top-concept03

**********************************************************************************/
#top-concept03 {
	margin-top: 150px;
	position: relative;
}

#top-concept03 .left {
	width: 46%;
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
}

#top-concept03 .left .box01 {
	position: absolute;
	left: 30px;
	bottom: 0;
	color: #fff;
}

#top-concept03 .left .box01 h3 {
	font-size: 92px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	line-height: 0.65em;
}

#top-concept03 .left .box02 {
	position: absolute;
	top: 90px;
	left: 30px;
	color: #fff;
}

#top-concept03 .left .box02 h4 {
	font-size: 36px;
	margin-bottom: 30px;
}

#top-concept03 .left .box02 p {
	font-size: 20px;
	line-height: 2em;
}

#top-concept03 .left video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

#top-concept03 .right-wrap {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 60px 30px 60px 0;
	position: relative;
	display: flex;
	justify-content: flex-end;
}

#top-concept03 .right-wrap .right {
	width: 100%;
	max-width: 50%;
}

#top-concept03 .right-wrap .right li {
	margin-bottom: 60px;
}

#top-concept03 .right-wrap .right li:last-child {
	margin-bottom: 0;
}

#top-concept03 .right-wrap .right li h4 {
	font-size: 24px;
	line-height: 1.3em;
	margin-bottom: 20px;
}

#top-concept03 .right-wrap .right li h4 span {
	color: var(--green);
}

#top-concept03 .right-wrap .right li p {
	line-height: 2em;
}

#top-concept03 .right-wrap .right li p span {
	background-color: var(--gray2);
}

@media screen and (max-width: 1300px) {
	#top-concept03 .left .box h4 {
		font-size: 40px;
	}

	#top-concept03 .left .box h3 {
		font-size: 80px;
	}
}

@media screen and (max-width: 1100px) {
	#top-concept03 {
		flex-direction: column;
	}
	
	#top-concept03 .left {
		width: 100%;
		position: relative;
		height: auto;
		top: auto;
		left: auto;
	}
	
	#top-concept03 .left video {
		height: auto;
		aspect-ratio: 1 / 1;
	}
	
	#top-concept03 .right-wrap {
		max-width: 1100px;
		width: 100%;
		margin: 0 auto;
		padding: 80px 30px 0 30px;
	}
	
	#top-concept03 .right-wrap .right {
		max-width: 100%;
	}
}

@media screen and (max-width: 640px) {
	#top-concept03 .left .box01 h3 {
		font-size: 65px;
	}
	
	#top-concept03 .left .box02 {
		top: 60px;
	}
	
	#top-concept03 .left .box02 h4 {
		font-size: 30px;
	}

	#top-concept03 .left .box02 p {
		font-size: 18px;
	}
	
	#top-concept03 .right-wrap .right li {
		margin-bottom: 40px;
	}
}

@media screen and (max-width: 430px) {
	#top-concept03 {
		margin-top: 100px;
	}
	
	#top-concept03 .left .box01 h3 {
		font-size: 55px;
	}
	
	#top-concept03 .left .box02 h4 {
		font-size: 24px;
	}

	#top-concept03 .left .box02 p {
		font-size: 16px;
	}
	
	#top-concept03 .right-wrap {
		padding: 60px 30px 0 30px;
	}
	
	#top-concept03 .right-wrap .right li h4 {
		font-size: 20px;
		margin-bottom: 15px;
	}

}

/**********************************************************************************

#top-gallery

**********************************************************************************/
#top-gallery {
	width: 100%;
	margin-top: 195px;
	overflow: hidden;
}

#top-gallery h3 {
	font-size: 92px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	text-align: center;
	position: relative;
	z-index: 1;
}

#top-gallery .top-gallery-slide {
	margin-top: -42px;
	position: relative;
	z-index: 0;
}

#top-gallery .top-gallery-slide .slick-list {
	overflow: visible;
}

#top-gallery .top-gallery-slide .slick-track {
	display: flex;
	align-items: center;
}

#top-gallery .top-gallery-slide .slick-slide {
	margin: 0 -50px;
	box-sizing: border-box;
	transition: transform 0.3s ease, opacity 0.3s ease;
	transform: scale(0.7);
	transform-origin: center center;
}

#top-gallery .top-gallery-slide .slick-center {
	transform: scale(1);
}

#top-gallery .top-gallery-slide li {
	width: clamp(240px, 60vw, 1080px);
	margin: 0 8px;
	box-sizing: border-box;
}

#top-gallery .top-gallery-slide img {
	display: block;
	height: auto;
}

#top-gallery .top-gallery-slide li p {
	line-height: 1.7em;
	padding: 40px 30px 0 30px;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

#top-gallery .top-gallery-slide .slick-center p {
	opacity: 1;
	pointer-events: auto;
}

#top-gallery .btn {	
	width: 300px;
	margin: 50px auto 0;
}

#top-gallery .btn a {
	font-size: 16px;
	padding: 10px 0;
}

#top-gallery .btn a span {
	font-family: "Aboreto", system-ui;
	font-size: 14px;
	letter-spacing: 0.1em;
}

@media screen and (max-width: 1200px) {
	#top-gallery .top-gallery-slide .slick-slide {
		margin: 0 -30px;
	}
}

@media screen and (max-width: 820px) {
	#top-gallery {
		margin-top: 150px;
	}
	
	#top-gallery h3 {
		font-size: 80px;
	}
	
	#top-gallery .top-gallery-slide {
		margin-top: -37px;
	}
	
	#top-gallery .top-gallery-slide li {
		width: clamp(100px, 80vw, 1080px);
	}
}

@media screen and (max-width: 640px) {
	#top-gallery {
		margin-top: 150px;
	}
	
	#top-gallery h3 {
		font-size: 60px;
	}
	
	#top-gallery .top-gallery-slide {
		margin-top: -30px;
	}
	
	#top-gallery .top-gallery-slide li p {
		padding: 30px 20px 0 20px;
	}
}

@media screen and (max-width: 430px) {
	#top-gallery {
		margin-top: 100px;
	}
	
	#top-gallery h3 {
		font-size: 50px;
	}
	
	#top-gallery .top-gallery-slide {
		margin-top: -23px;
	}
	
	#top-gallery .top-gallery-slide .slick-slide {
		margin: 0 -20px;
		transform-origin: center 25%;
	}
}

/**********************************************************************************

#top-architect

**********************************************************************************/
#top-architect {
	width: 100%;
	margin-top: 90px;
}

#top-architect .top-architect-slide li {
	display: flex;
	background-color: var(--black);
	color: #fff;
	position: relative;
}

#top-architect .top-architect-slide li .left {
	width: 46%;
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
}

#top-architect .top-architect-slide li:nth-child(2) .left {
	order: 2;
	left: auto;
	right: 0;
}

#top-architect .top-architect-slide li .left img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;

	/* 右にフェード */
	-webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 65%, rgba(0,0,0,0) 100%);
	-webkit-mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-image: linear-gradient(to right, rgba(0,0,0,1) 65%, rgba(0,0,0,0) 100%);
	mask-size: 100% 100%;
	mask-repeat: no-repeat;
}

#top-architect .top-architect-slide li:nth-child(2) .left img {
	/* 左にフェード */
	-webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 65%, rgba(0,0,0,0) 100%);
	mask-image: linear-gradient(to left, rgba(0,0,0,1) 65%, rgba(0,0,0,0) 100%);
}

#top-architect .top-architect-slide li .right-wrap {
	max-width: 1340px;
	width: 100%;
	margin: 0 auto;
	padding: 150px 30px 150px 0;
	display: flex;
	justify-content: flex-end;
}

#top-architect .top-architect-slide li:nth-child(2) .right-wrap {
	order: 1;
	justify-content: flex-start;
}

#top-architect .top-architect-slide li .right-wrap .right {
	width: 100%;
	max-width: 55%;
}

#top-architect .top-architect-slide li .right .name-box {
	display: flex;
	align-items: flex-end;
	margin-bottom: 30px;
}

#top-architect .top-architect-slide li .right .name-box .position {
	margin-right: 35px;
	background-color: var(--green);
	padding: 3px 10px;
}

#top-architect .top-architect-slide li .right .name-box .name-inner {
	display: flex;
	align-items: flex-end;
	gap: 10px;
}

#top-architect .top-architect-slide li .right .name-box .name {
	font-size: 24px;
}

#top-architect .top-architect-slide li .right .name-box .ruby {
	font-family: "Aboreto", system-ui;
	font-size: 14px;
	color: var(--green);
}

#top-architect .top-architect-slide li .right .txt {
	line-height: 2em;
	text-align: justify;
}

@media screen and (max-width: 820px) {
	#top-architect .top-architect-slide li {
		flex-direction: column;
	}
	
	#top-architect .top-architect-slide li .left {
		width: 100%;
		position: relative;
		height: auto;
		top: auto;
		left: auto;
		aspect-ratio: 5 / 2;
	}
	
	#top-architect .top-architect-slide li:nth-child(2) .left {
		order: 1;
		right: auto;
	}
	
	#top-architect .top-architect-slide li .left img,#top-architect .top-architect-slide li:nth-child(2) .left img {
		height: auto;
		aspect-ratio: 5 / 3;
		-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
		mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
	}
	
		
	#top-architect .top-architect-slide li .right-wrap {
		max-width: 1100px;
		width: 100%;
		margin: 0 auto;
		padding: 150px 40px 70px;
	}
	
	#top-architect .top-architect-slide li:nth-child(2) .right-wrap {
		order: 2;
	}
	
	#top-architect .top-architect-slide li .right-wrap .right {
		max-width: 100%;
	}
}

@media screen and (max-width: 640px) {
	#top-architect .top-architect-slide li .right .name-box {
		flex-direction: column;
		align-items: flex-start;
	}
	
	#top-architect .top-architect-slide li .right .name-box .position {
		margin-right: 0;
		margin-bottom: 20px;
	}
}
	
@media screen and (max-width: 430px) {
	#top-architect .top-architect-slide li .right-wrap {
		padding: 100px 30px 60px;
	}
	
	#top-architect .top-architect-slide li .right .name-box .name {
		font-size: 22px;
	}
	
	#top-architect .top-architect-slide li .right .name-box .ruby {
		font-size: 12px;
	}
	
}
	
/**********************************************************************************

#top-model

**********************************************************************************/
#top-model {
	position: relative;
	padding: 300px 0 360px;
	overflow: hidden;
}

#top-model video {
	display: block;
	width: 90%;
	max-width: 990px;
	margin: 0 auto;
}
	
#top-model h3.marquee {
	--speed: 40s;
	--gap: 4rem;
	position: absolute;
	top: 48%;
	left: 0;
	right: 0;
	transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
	z-index: 1;
	pointer-events: none;
	white-space: nowrap;
	letter-spacing: 0.1em;
	font-size: 150px;
	font-family: "Aboreto", system-ui;
}

@keyframes marquee{
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

#top-model h3.marquee .marquee__inner{
	display: inline-flex;
	gap: var(--gap);
	will-change: transform;
	animation: marquee var(--speed) linear infinite;
}

#top-model h3.marquee .marquee__inner > span {
	flex: 0 0 auto;
}

/* 浮遊レイヤー（上で自然に消えるマスク） */
#top-model .floaty {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	margin: 0;
	padding: 0;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, black 12%, black 92%, transparent 100%);
	        mask-image: linear-gradient(to bottom, transparent 0, black 12%, black 92%, transparent 100%);
}

/* li 共通：縦だけに“スッ…フワッ…”上昇 */
#top-model .floaty li {
	position: absolute;
	left: var(--left, 50%);
	bottom: -22%; /* 画面外から出現 */
	list-style: none;
	width: var(--size, clamp(48px, 8vw, 120px));
	animation: riseStaggerFade var(--dur, 22s) linear var(--delay, 0s) infinite;
	will-change: bottom, opacity, filter, transform;
	transform: translateX(-50%);
}

/* 画像はli幅にフィット */
#top-model .floaty li img {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 6px 10px rgba(0,0,0,.18));
}

/* --- 新キーフレーム：上で“たまらず”順次消える --- */
@keyframes riseStaggerFade {
	0%   { bottom: -22%;  opacity: 0;   filter: blur(2px);   transform: translateX(-50%) scale(.98); }
	8%   { bottom: -10%;  opacity: .95; filter: blur(0);     transform: translateX(-50%) scale(1); }
	60%  { bottom:  60%;  opacity: .95; }
	72%  { bottom:  72%;  opacity: .80; }
	82%  { bottom:  86%;  opacity: .45; }
	92%  { bottom: 100%;  opacity: .12; filter: blur(1px); }
	100% { bottom: 120%;  opacity: 0;   filter: blur(1px); }
}

/* --- 個別パラメータ：負のdelayで初期位相をズラす（=常にバラける） --- */
/* 5枚版（HTMLに合わせて調整） */
#top-model .floaty li:nth-child(1){ --left: 22%; --delay: -6.2s; --dur: 15.7s; --size: clamp(60px, 10vw, 150px); }
#top-model .floaty li:nth-child(2){ --left: 80%; --delay: -4s; --dur: 19.6s; --size: clamp(120px, 20vw, 250px); }
#top-model .floaty li:nth-child(3){ --left: 35%; --delay: -1s; --dur: 22.3s; --size: clamp(120px, 20vw, 250px); }
#top-model .floaty li:nth-child(4){ --left: 70%; --delay: 2s; --dur: 20.5s; --size: clamp(70px, 8.0vw, 200px); }
#top-model .floaty li:nth-child(5){ --left: 13%; --delay: 3s; --dur: 18.1s; --size: clamp(54px, 7.5vw, 116px); }

/* （任意）上端での滞留感をさらに減らしたい時はマスクも少し強める */
#top-model .floaty{
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, black 18%, black 82%, transparent 100%);
	        mask-image: linear-gradient(to bottom, transparent 0, black 18%, black 82%, transparent 100%);
}


	
@media screen and (max-width: 820px) {
	#top-model h3.marquee{
		top: 47%;
		font-size: 100px;
	}
}

@media screen and (max-width: 640px) {
	#top-model {
		padding: 200px 0 250px;
	}
	
	#top-model h3.marquee{
		top: 46%;
		font-size: 80px;
	}
}

@media screen and (max-width: 430px) {
	#top-model h3.marquee{
		font-size: 70px;
	}
	
	#top-model {
		padding: 150px 0 200px;
	}
}

/**********************************************************************************

#top-model02

**********************************************************************************/
#top-model02 {
	width: 100%;
	position: relative;
	z-index: 2;
	margin-top: 200px;
}

#top-model02 h3 {
	font-size: 75px;
	font-family: "Aboreto", system-ui;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto -20px;
	line-height: 1.2em;
}

#top-model02 h3 span {
	font-size: 120px;
}

#top-model02 .box {
	background-color: var(--black);
	color: #fff;
}

#top-model02 .box .inner {
	width: 100%;
	max-width: 1280px;
	display: flex;
	align-items: flex-end;
	margin: 0 auto 0;
}

#top-model02 .box .inner.sp {
	display: none;
}

#top-model02 .box .inner .left {
	padding: 150px 30px;
}

#top-model02 .box .inner .left p {
	font-size: 18px;
	line-height: 1.7em;
	margin-bottom: 50px;
}

#top-model02 .box .inner .left .link-box {
	display: flex;
	gap: 50px;
}

#top-model02 .box .inner .left .link-box .link {
	font-size: 18px;
}

#top-model02 .box .inner .right {
	max-width: 666px;
	margin-top: -235px;
	margin-left: -98px;
}

@media screen and (max-width: 1400px) {
	#top-model02 .box .inner .right {
		width: 50%;
		margin-left: -80px;
	}
}

@media screen and (max-width: 1252px) {
	#top-model02 {
		margin-top: 200px;
	}
}

@media screen and (max-width: 1200px) {
	#top-model02 .box .inner .left {
		padding: 70px 30px;
	}
	
	#top-model02 .box .inner .right {
		margin-left: 0;
	}
}

@media screen and (max-width: 1080px) {
	#top-model02 {
		margin-top: 100px;
	}
}

@media screen and (max-width: 1024px) {
	#top-model02 .box .inner .left p,#top-model02 .box .inner .left .link-box .link {
		font-size: 16px;
	}
}

@media screen and (max-width: 640px) {
	#top-model02 h3 {
		font-size: 60px;
		margin: 0 auto -15px;
	}
	
	#top-model02 h3 span {
		font-size: 90px;
	}
	
	#top-model02 .box .inner.pc {
		display: none;
	}
	
	#top-model02 .box .inner.sp {
		display: block;
		padding: 50px 0 0;
	}
	
	#top-model02 .box .inner.sp p {
		font-size: 16px;
		line-height: 1.7em;
		margin-bottom: 30px;
		padding: 0 30px 0;
	}
	
	#top-model02 .box .inner .inner-box {
		display: flex;
		align-items: center;
		gap: 20px;
	}
	
	#top-model02 .box .inner .left {
		padding: 30px 0 50px 30px;
	}
	
	#top-model02 .box .inner .left .link-box {
		flex-direction: column;
		gap: 30px;
	}
	
	#top-model02 .box .inner .left .link-box .link {
		white-space: nowrap;
		padding: 15px 35px 15px 15px;
	}

	#top-model02 .box .inner .left .link-box .link::before {
		right: 15px;
	}
	
	#top-model02 .box .inner .right {
		margin: 0 0 0 auto;
		width: 50%;
	}
}

@media screen and (max-width: 430px) {
	#top-model02 h3 {
		font-size: 50px;
		margin: 0 auto -13px;
	}
	
	#top-model02 h3 span {
		font-size: 80px;
	}
	
	#top-model02 .box .inner.sp p,#top-model02 .box .inner .left .link-box .link {
		font-size: 14px;
	}
}

@media screen and (max-width: 414px) {
	#top-model02 .box .inner .right {
		width: 46%;
	}
}

@media screen and (max-width: 390px) {
	#top-model02 h3 {
		font-size: 40px;
		margin: 0 auto -10px;
	}
	
	#top-model02 h3 span {
		font-size: 70px;
	}
}

/**********************************************************************************

#top-event

**********************************************************************************/
#top-event {
	background: image-set(
		url("images/top/event_bg.webp") type("image/webp") 1x,
		url("images/top/event_bg.png") type("image/png") 1x
	);
	background-size: cover;
	background-position: center;
}

#top-event .box {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 130px 0 100px;
}

#top-event .box .inner {
	background-color: #fff;
	margin: 0 0 0 auto;	
	max-width: 550px;
	padding: 40px;
}

#top-event .box .inner h3 {
	font-size: 58px;
	font-family: "Aboreto", system-ui;
	letter-spacing: 0.1em;
	margin-top: -72px;
	margin-bottom: 45px;
}

#top-event .box .inner h4 {
	font-size: 18px;
	padding-bottom: 15px;
	border-bottom: solid 1px;
	margin-bottom: 30px;
}

#top-event .box .inner .inner-box .list {
	width: 100%;
	margin-bottom: 20px;
}

#top-event .box .inner .inner-box .list:last-child {margin-bottom: 0;}

#top-event .box .inner .inner-box .list a {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}

#top-event .box .inner .inner-box .list a .thum {
	position: relative;
	flex: 0 0 200px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

#top-event .box .inner .inner-box .list a .thum img {
	height: 100%;
	object-fit: cover;
}

#top-event .box .inner .inner-box .list a .thum .cat {
	font-size: 14px;
	font-family: "Aboreto", system-ui;
	color: #fff;
	background-color: var(--black);
	letter-spacing: 0.1em;
	padding: 5px 10px;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}

#top-event .box .inner .inner-box .list a .thum .arrow {
	font-size: 20px;
	background-color: #fff;
	padding: 0 15px;
	position: absolute;
	right: 0;
	bottom: 0;
	transition: 0.5s;
	z-index: 2;
}

#top-event .box .inner .inner-box .list a:hover .thum .arrow {
	color: #fff;
	background-color: var(--black);
	transition: 0.5s;
}

#top-event .box .inner .inner-box .list a .thum .ended {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	z-index: 2;
	text-align: center;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	line-height: 1.5em;
	width: fit-content;
}

#top-event .box .inner .inner-box .list a .thum .overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.5);
	z-index: 1;
}

#top-event .box .inner .inner-box .list a .detail {
	padding-top: 10px;
	font-size: 14px;
	flex: 1;
}


#top-event .box .inner .inner-box .list a .detail h5 {
	padding-bottom: 10px;
	border-bottom: solid 1px;
	margin-bottom: 10px;
	line-height: 1.5em;
}

#top-event .box .inner .inner-box .list a .detail ul li {margin-bottom: 5px;}
#top-event .box .inner .inner-box .list a .detail ul li:last-child {margin-bottom: 0;}

@media screen and (max-width: 640px) {
	#top-event .box .inner {
		max-width: 600px;
		padding: 30px;
	}
	
	#top-event .box .inner h3 {
		margin-top: -63px;
	}
}

@media screen and (max-width: 430px) {
	#top-event .box {padding: 100px 0 80px;}
	
	#top-event .box .inner h3 {
		font-size: 50px;
		margin-top: -58px;
	}
	
	#top-event .box .inner h4 {font-size: 16px;}
	#top-event .box .inner .inner-box .list {margin-bottom: 50px;}
	#top-event .box .inner .inner-box .list a {flex-direction: column;}
	#top-event .box .inner .inner-box .list a .thum {
		flex: 0;
		width: 100%;
	}
	
	#top-event .box .inner .inner-box .list a .detail {
		padding-top: 0;
		width: 100%;
	}
}

/**********************************************************************************

#top-news

**********************************************************************************/
#top-news {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	align-items: center;
}

#top-news .left {
	flex: 0 0 30%;
	min-width: 0;
}

#top-news .right {
	flex: 0 0 70%;
	min-width: 0;
	padding: 100px 0;
}

#top-news .right .box01 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 26px;
}

#top-news .right .box01 h3 {
	font-size: 36px;
	font-family: "Aboreto", system-ui;
	color: var(--green);
	letter-spacing: 0.1em;
}

#top-news .right .box01 a {
	position: relative;
	display: inline-block;
	width: fit-content;
}

#top-news .right .box01 a:hover {
	opacity: 1;
}

#top-news .right .box01 a::after {
	background-color: var(--black);
	bottom: -10px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
	width: 100%;
}

#top-news .right .box01 a:hover::after {
	transform: scale(1, 1);
}

#top-news .right .box02 {
	width: 100%;
}

#top-news .right .box02 li {margin-bottom: 10px;}
#top-news .right .box02 li:last-child {margin-bottom: 0;}

#top-news .right .box02 li a {
	display: flex;
	align-items: center;
	gap: 15px;
}

#top-news .right .box02 li a .inner {
	display: flex;
	align-items: center;
	gap: 15px;
}

#top-news .right .box02 li a .inner .cat {
	font-size: 14px;
	font-family: "Aboreto", system-ui;
	color: #fff;
	background-color: var(--black);
	padding: 5px 10px;
	flex: 0 0 74px;
	text-align: center;
}

#top-news .right .box02 li a h4 {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis; 
	width: 100%; 
	display: block;
}

@media screen and (max-width: 820px) {
	#top-news .left {
		display: none;
	}
	
	#top-news .right {
		flex: 0 0 100%;
	}
	
	#top-news .right .box01 a::after {
		transform: scale(1, 1);
	}
}

@media screen and (max-width: 430px) {
	#top-news {
		margin: 40px auto;
	}
	
	#top-news .right .box01 {
		margin-bottom: 20px;
	}
	
	#top-news .right .box01 h3 {
		font-size: 30px;
	}
	
	#top-news .right .box02 li {margin-bottom: 20px;}
	
	#top-news .right .box02 li a {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	
	#top-news .right .box02 li a .inner .cat {
		font-size: 12px;
	}
}

/**********************************************************************************

#top-garage

**********************************************************************************/
#top-garage {
	width: 100%;
	display: flex;
}

#top-garage .left,#top-garage .right {
	flex: 0 0 50%;
	min-width: 0;
}

#top-garage .left {
	position: relative;
	overflow: hidden;
}

#top-garage .left video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#top-garage .right {
	padding: 160px 30px 120px;
	background-color: var(--black);
	color: #fff;
	text-align: center;
}

#top-garage .right h4 {
	font-size: 28px;
	line-height: 1.3em;
	margin-bottom: 60px;
}

#top-garage .right h3 {
	width: 80%;
	max-width: 426px;
	margin: 0 auto;
}

#top-garage .right p {
	margin-top: 20px;
}

#top-garage .right a {
	margin: 50px auto 0;
}

@media screen and (max-width: 1490px) {
	#top-garage .right h4 {
		font-size: 24px;
	}
}

@media screen and (max-width: 1240px) {
	#top-garage .right h4 {
		font-size: 22px;
	}
}

@media screen and (max-width: 1140px) {
	#top-garage .right h4.pc {display: none;}
	#top-garage .right h4.sp {display: block;}
}

@media screen and (max-width: 640px) {
	#top-garage {
		flex-direction: column;
	}
	
	#top-garage .left,#top-garage .right {
		flex: 1;
		width: 100%;
	}
	
	#top-garage .left {
		order: 2;
		aspect-ratio: 5 / 3;
	}
	
	#top-garage .right {
		order: 1;
		padding: 80px 30px;
	}

}

@media screen and (max-width: 430px) {
	#top-garage .right h4 {
		font-size: 20px;
		margin-bottom: 40px;
	}

	#top-garage .right a {
		margin: 40px auto 0;
	}
}

/**********************************************************************************

#top-suis

**********************************************************************************/
#top-suis {
	position: relative;
	overflow: hidden;
	margin-top: -1px;
}

#top-suis h4,#top-suis h3 {
	position: absolute;
	color: #fff;
	z-index: 2;
}

#top-suis h4 {
	font-size: 72px;
	letter-spacing: 0.1em;
	writing-mode: vertical-rl;
	top: 10%;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);	
}

#top-suis h3 {
	font-size: 200px;
	font-family: "Aboreto", system-ui;
	letter-spacing: 0.05em;
	line-height: 0.65em;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
	text-align: center;
}

#top-suis .suis-wrap {
	display: flex;
	width: 100%;
	height: 100vh; 
}

#top-suis .col {
	flex: 1;
	position: relative;
	overflow: hidden;
}

#top-suis .col ul,
#top-suis .col li {
	height: 100vh;
}

#top-suis img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ================================
 * slick の重なり方を“常に不透明”にして利用
 * （デフォのfadeでの透明アニメは無効化）
 * ================================ */
#top-suis .slick-slider.slick-fade .slick-slide{
	opacity: 1 !important;
	transition: none !important;
}
#top-suis .slick-slide.is-entering{
	z-index: 2; /* 次に来るスライドを最前面へ */
}

/* ================================
 * wipe アニメーション
 * 左：上→下に覆う（wipeDown）
 * 右：下→上に覆う（wipeUp）
 * ================================ */
@keyframes wipeDown{
	from{ clip-path: inset(0 0 100% 0); }  /* 上から100%隠す → 全開 */
	to  { clip-path: inset(0 0 0 0); }
}
@keyframes wipeUp{
	from{ clip-path: inset(100% 0 0 0); }  /* 下から100%隠す → 全開 */
	to  { clip-path: inset(0 0 0 0); }
}

/* 左列：上→下ワイプ */
#top-suis .top-suis-l .slick-slide.is-entering img {
	animation: wipeDown 1200ms ease both;
}
/* 右列：下→上ワイプ */
#top-suis .top-suis-r .slick-slide.is-entering img {
	animation: wipeUp 1200ms ease both;
}

@media screen and (max-width: 640px) {
	#top-suis .suis-wrap {
		height: auto;
	}
	
	#top-suis .suis-wrap {
		flex-direction: column;
	}
	
	#top-suis .left {
		order: 2;
	}
	
	#top-suis .right {
		order: 1;
	}
	
	#top-suis .col ul,#top-suis .col li {
		height: 50vh;
	}
	
	#top-suis h4 {
		font-size: 60px;
		top: 50%;
		transform: translate(-50%, -50%);
		-webkit-transform: translate(-50%, -50%);
		-ms-transform: translate(-50%, -50%);
	}

	#top-suis h3 {
		font-size: 150px;
	}
	
}

@media screen and (max-width: 430px) {
	#top-suis h4 {
		font-size: 40px;
	}

	#top-suis h3 {
		font-size: 120px;
	}
}

/**********************************************************************************

.coming-soon

**********************************************************************************/
.coming-soon {
	margin: 200px auto;
	text-align: center;
	font-size: 20px;
}

/**********************************************************************************

#under-header

**********************************************************************************/
#under-header {
	margin-top: 198px;
}

#under-header .box {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto 100px;
}

#under-header .box h2 {
	font-size: 72px;
	font-family: "Aboreto", system-ui;
	font-weight: bold;
	letter-spacing: 0.1em;
	margin-bottom: 15px;
}

#under-header .box h3 {
	font-size: 36px;
	color: var(--green);
}

.page-modelhouse #under-header .box h3 {
	font-family: "Aboreto", system-ui;
	letter-spacing: 0.1em;
}

@media screen and (max-width: 1024px) {
	#under-header .img-box {
		width: 100%;
		height: auto;
		aspect-ratio: 5 / 2;
	}
	
	#under-header .img-box img {
		height: 100%;
		object-fit: cover;
	}
}

@media screen and (max-width: 820px) {
	#under-header .box h2 {
		font-size: 65px;
	}

	#under-header .box h3 {
		font-size: 30px;
	}
}

@media screen and (max-width: 640px) {
	#under-header .box h2 {
		font-size: 55px;
	}

	#under-header .box h3 {
		font-size: 24px;
	}
}

@media screen and (max-width: 430px) {
	#under-header {
		margin-top: 120px;
	}

	#under-header .box {
		margin: 0 auto 60px;
	}
	
	#under-header .box h2 {
		font-size: 40px;
	}

	#under-header .box h3 {
		font-size: 20px;
	}
}

/**********************************************************************************

#news-postarea

**********************************************************************************/
#news-postarea {
	width: 90%;
	max-width: 1280px;
	margin: 120px auto 100px;
	display: flex;
	align-items: flex-start;
	gap: 15%;
}

#news-postarea .tab h3 {
	font-size: 36px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}

#news-postarea .tab .news-tabs__btn.is-active {
	color: var(--green);
}

#news-postarea .tab .news-tabs {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

#news-postarea .post ul {
	width: 100%;
}

#news-postarea .post ul li {margin-bottom: 60px;}
#news-postarea .post ul li:last-child {margin-bottom: 0;}

#news-postarea .post ul li a {
	display: flex;
	align-items: flex-start;
	gap: 30px;
}

#news-postarea .post ul li a .thumb {
	position: relative;
	width: 100%;
	max-width: 300px;
	height: auto;
	aspect-ratio: 67 / 34;
}

#news-postarea .post ul li a .thumb .cat {
	font-size: 16px;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	position: absolute;
	right: 0;
	bottom: 0;
}

#news-postarea .post ul li a .thumb img {
	height: 100%;
	object-fit: cover;
}

#news-postarea .post ul li a .meta .date {
	font-family: "Marcellus", serif;
	text-align: right;
	margin-bottom: 25px;
}

#news-postarea .post ul li a .meta .excerpt {
	text-align: justify;
	line-height: 1.7em;
	margin-bottom: 25px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

#news-postarea .post ul li a .meta .more {
	position: relative;
	margin: 0 0 0 auto;
	width: fit-content;
}

#news-postarea .post ul li a .meta .more::after {
	background-color: var(--black);
	bottom: -10px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
	width: 100%;
}

#news-postarea .post ul li a .meta .more:hover::after {
	transform: scale(1, 1);
}

.pagination {
	margin: 100px auto 0;
}

.pagination .nav-links {
	display: flex;
	align-items: center;
	gap: 20px;
}

.pagination .nav-links .current {
	color: var(--green);
}

@media screen and (max-width: 1300px) {
	#news-postarea {
		gap: 10%;
	}
}

@media screen and (max-width: 1024px) {
	#news-postarea {
		flex-direction: column;
		gap: 50px;
	}
	
	#news-postarea .tab .news-tabs {
		flex-direction: row;
	}
	
	#news-postarea .post ul li a .thumb {
		width: 80%;
	}
	
	#news-postarea .post ul li a .meta {
		width: 100%;
	}
}

@media screen and (max-width: 820px) {
	#news-postarea .post ul li a .meta .more::after {
		transform: scale(1, 1);
	}
}

@media screen and (max-width: 640px) {
	#news-postarea .tab h3 {
		font-size: 30px;
	}
	
	#news-postarea .post ul li a {
		flex-direction: column;
		align-items: center;
	}
	
	#news-postarea .post ul li a .thumb {
		width: 100%;
	}
}

@media screen and (max-width: 430px) {
	#news-postarea {
		margin: 80px auto;
	}
}

/**********************************************************************************

#news_inner

**********************************************************************************/
#news_inner {
	width: 90%;
	max-width: 1280px;
	margin: 120px auto 100px;
}

#news_inner .title {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 70px;
	padding-bottom: 15px;
	border-bottom: solid 1px;
	margin-bottom: 100px;
}

#news_inner .title h3 {
	font-size: 24px;
	line-height: 1.5em;
}

#news_inner .title .date {
	font-family: "Marcellus", serif;
	font-size: 18px;
	letter-spacing: 0.05em;
} 

#news_inner .box {
	margin-bottom: 120px;
	line-height: 1.7em;
}

#news_inner .box img {
	width: auto;
	margin: 50px auto;
	display: block;
}

#news_inner .pagenav-box {
	margin: 0 auto;
}


#news_inner .pagenav-box a {
	display: block;
	margin: 0 auto;
	font-size: 18px;
	text-align: center;
	max-width: 300px;
	position: relative;
}

#news_inner .pagenav-box a::after {
	background-color: var(--black);
	bottom: -10px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
	width: 100%;
}

#news_inner .pagenav-box a:hover::after {
	transform: scale(1, 1);
}

#news_inner .btn {
	margin: 0 auto 120px;
}

@media screen and (max-width: 820px) {
	#news_inner .pagenav-box a::after {
		transform: scale(1, 1);
	}
}

@media screen and (max-width: 640px) {
	#news_inner .title {
		flex-direction: column;
		gap: 30px;
		margin-bottom: 80px;
	}
	
	#news_inner .title h3 {
		font-size: 20px;
	}
	
	#news_inner .title .date,#news_inner .pagenav-box a {
		font-size: 14px;
	}
}

@media screen and (max-width: 430px) {
	#news_inner {
		margin: 80px auto;
	}
	
	#news_inner .title {
		margin-bottom: 50px;
	}
	
	#news_inner .title h3 {
		font-size: 18px;
	}
	
	#news_inner .box {
		margin-bottom: 80px;
	}
	
	#news_inner .btn {
		margin: 0 auto 80px;
	}
}

/**********************************************************************************

#event-postarea

**********************************************************************************/
#event-postarea {
	width: 90%;
	max-width: 1280px;
	margin: 120px auto 100px;
}

#event-postarea ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px 70px;
}

#event-postarea ul li a {
	display: flex;
	align-items: flex-start;
	gap: 30px;
	--thumb-w: 284px; 
}

#event-postarea ul li a .thum {
	position: relative;
	width: var(--thumb-w);
	flex: 0 0 var(--thumb-w);
	aspect-ratio: 57 / 34;
	overflow: hidden;
}

#event-postarea ul li a .thum img {
	height: 100%;
	object-fit: cover;
}

#event-postarea ul li a .thum .ended {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	z-index: 2;
	text-align: center;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	line-height: 1.5em;
	width: fit-content;
}

#event-postarea ul li a .thum .overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.5);
	z-index: 1;
}

#event-postarea ul li a .thum .active {
	position: absolute;
	right: 0;
	bottom: 0;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	line-height: 1.5em;
	width: fit-content;
}

#event-postarea ul li a .detail {
	margin-top: 15px;
	flex: 1 1 auto;
}

#event-postarea ul li a .detail .post-date {
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}

#event-postarea ul li a .detail h3 {
	line-height: 1.5em;
	margin-bottom: 10px;
}

#event-postarea ul li a .detail .datetime,#event-postarea ul li a .detail .place {
	margin-bottom: 10px;
}

#event-postarea ul li a .detail .more {
	position: relative;
	width: fit-content;
	margin: 0 0 0 auto;
}

#event-postarea ul li a .detail .more::after {
	background-color:  var(--black);
	bottom: -10px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
	width: 100%;
}

#event-postarea ul li a:hover .detail .more::after {
	transform: scale(1, 1);
}

@media screen and (max-width: 1420px) {
	#event-postarea ul li a {
		--thumb-w: 250px; 
	}
}

@media screen and (max-width: 1350px) {
	#event-postarea ul {
		gap: 60px;
	}
	
	#event-postarea ul li a {
		--thumb-w: 220px; 
	}
}

@media screen and (max-width: 1300px) {
	#event-postarea ul {
		gap: 50px;
	}
	
	#event-postarea ul li a {
		--thumb-w: 190px; 
	}
}

@media screen and (max-width: 820px) {
	#event-postarea ul {
		grid-template-columns: repeat(1, 1fr);
	}
	
	#event-postarea ul li a {
		--thumb-w: 250px; 
	}
	
	#event-postarea ul li a .detail .more::after {
		transform: scale(1, 1);
	}
}

@media screen and (max-width: 640px) {
	#event-postarea ul li a {
		--thumb-w: 200px; 
	}
}

@media screen and (max-width: 430px) {
	#event-postarea {
		margin: 80px auto;
	}
	
	#event-postarea ul li a {
		flex-direction: column;
	}
	
	#event-postarea ul li a .thum {
		width: 100%;
		flex: 0; 
	}
	
	#event-postarea ul li a .detail {
		margin-top: 0;
		width: 100%;
		flex: 0; 
	}
}

/**********************************************************************************

.event-detail

**********************************************************************************/
.event-detail {
	margin-bottom: 120px;
	display: flex;
	min-height: 266px;	
}

.event-detail table {
	background-color: var(--gray5);
	padding: 30px;
	width: 100%;
	flex: 1;
}

.event-detail table tr th,.event-detail table tr td {
	border-bottom: solid 1px #fff;
	line-height: 1.5em;
}

.event-detail table tr:last-child th,.event-detail table tr:last-child td {
	border-bottom: none;
}

.event-detail table tr th {
	padding: 15px 30px 15px 0;
	width: 80px;
}

.event-detail table tr:first-child th,.event-detail table tr:first-child td {
	padding-top: 0;
}

.event-detail table tr:last-child th,.event-detail table tr:last-child td {
	padding-bottom: 0;
}

.event-detail table tr td {
	padding: 15px 0;
}

.event-detail #map {
	filter: grayscale(100%);
	width: 100%;
	flex: 1;
}

@media screen and (max-width: 820px) {
	.event-detail {
		flex-direction: column;
		flex: 0;
		min-height: 0;
	}
	
	.event-detail #map {
		height: 300px;
	}
}


@media screen and (max-width: 430px) {
	.event-detail {
		margin-bottom: 80px;
	}
	
	.event-detail table {
		padding: 20px;
	}
	
	.event-detail table tr th {
		width: 72px;
	}
}

/**********************************************************************************

モデルハウス　#model-introduction

**********************************************************************************/
#model-introduction .box01 {
	width: 90%;
	max-width: 1280px;
	margin: 130px auto 0;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

#model-introduction .box01 .left,#model-introduction .right {flex: 1;}

#model-introduction .box01 .left {
	margin-top: 65px;
}

#model-introduction .box01 .left h4 {
	font-size: 24px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	margin-bottom: 10px;
}

#model-introduction .box01 .left h3 {
	font-size: 60px;
	font-family: "Aboreto", system-ui;
	color: var(--green);
	letter-spacing: 0.1em;
	margin-bottom: 20px;
}

#model-introduction .box01 .left p {
	font-size: 18px;
	line-height: 2em;
	letter-spacing: 0.05em;
}

#model-introduction .box01 .right {
	max-width: 700px;
}

@media screen and (max-width: 1146px) {
	#model-introduction .box01 {
		align-items: flex-end;
	}
	
	#model-introduction .box01 .left {
		margin-top: 0;
		margin-bottom: 30px;
	}
	
	#model-introduction .box01 .right {
		flex: 0 1 auto;
		width: 40%;
	}
}

@media screen and (max-width: 820px) {
	#model-introduction .box01 {
		flex-direction: column;
		align-items: flex-start;
		gap: 40px;
	}
	
	#model-introduction .box01 .right {
		width: 80%;
		text-align: center;
		margin: 0 auto;
	}
}

@media screen and (max-width: 640px) {
	#model-introduction .box01 .left p {
		font-size: 16px;
	}
}

@media screen and (max-width: 430px) {
	#model-introduction .box01 {
		margin: 80px auto 0;
	}
	
	#model-introduction .box01 .left h4 {
		font-size: 20px;
	}

	#model-introduction .box01 .left h3 {
		font-size: 45px;
	}
}

/**********************************************************************************

モデルハウス　#model-floorplan

**********************************************************************************/
#model-floorplan .box01 {
	width: 90%;
	max-width: 1280px;
	margin: 80px auto;
	display: flex;
	align-items: center;
	gap: 30px;
}

#model-floorplan .box01 .left {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 15px;
}

#model-floorplan .box01 .left h3 {
	font-size: 64px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	color: var(--green);
	white-space: nowrap;
}

#model-floorplan .box01 .left .inner {
	text-align: center;
}

#model-floorplan .box01 .left .inner .madori {
	color: #fff;
	background-color: var(--black);
	padding: 5px 10px 7px;
	margin-bottom: 15px;
	display: inline-block;
}

#model-floorplan .box01 .right {
	max-width: 852px;
}

#model-floorplan .box02 {
	background-color: var(--lightgreen);
}

#model-floorplan .box02 ul {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 30px 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

#model-floorplan .box02 ul li {
	padding: 30px;
	border-right: solid 1px #fff;
}

#model-floorplan .box02 ul li:last-child {border-right: none;}

#model-floorplan .box02 ul li .midashi {
	display: flex;
	align-items: center;
	gap: 30px;
	margin-bottom: 20px;
}

#model-floorplan .box02 ul li .midashi .num {
	font-size: 48px;
	font-family: "Marcellus", serif;
}

#model-floorplan .box02 ul li .midashi h4 {
	font-size: 24px;
	line-height: 1.3em;
}

#model-floorplan .box02 ul li .txt {
	text-align: justify;
	line-height: 1.7em;
	letter-spacing: -0.01em;
}

@media screen and (max-width: 820px) {
	#model-floorplan .box01 {
		flex-direction: column;
		gap: 50px;
	}
	
	#model-floorplan .box01 .left {
		align-items: center;
	}
	
	#model-floorplan .box01 .right {
		width: 80%;
	}
	
	#model-floorplan .box02 ul {
		width: 85%;
		grid-template-columns: repeat(1, 1fr);
	}
	
	#model-floorplan .box02 ul li {
		border-right: none;
		padding: 30px 0;
	}
	#model-floorplan .box02 ul li {border-bottom: solid 1px #fff;}
	#model-floorplan .box02 ul li:first-child {
		padding-top: 0;
	}
	#model-floorplan .box02 ul li:last-child {
		border-bottom: none;
		padding-bottom: 0;
	}
}

@media screen and (max-width: 640px) {
	#model-floorplan .box01 .left h3 {
		font-size: 55px;
	}
}

@media screen and (max-width: 430px) {
	#model-floorplan .box01 {
		margin: 60px auto;
	}
	
	#model-floorplan .box01 .left h3 {
		font-size: 43px;
	}
	
	#model-floorplan .box02 ul li .midashi .num {
		font-size: 40px;
	}

	#model-floorplan .box02 ul li .midashi h4 {
		font-size: 20px;
	}
}

/**********************************************************************************

モデルハウス　#model-point

**********************************************************************************/
#model-point {
	display: flex;
	align-items: center;
	justify-content: space-between;
	overflow: hidden;
	gap: 150px;
}

#model-point h3 {
	font-size: 120px;	
	writing-mode: vertical-rl;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	line-height: 0.65em;
}

#model-point ul {
	width: 100%;
	padding: 120px 0;
}

#model-point ul li {
	display: flex;
	background-color: var(--gray3);
}

#model-point ul li .left {
	flex: 0 0 40%;
	min-width: 0;
}

#model-point ul li .left img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

#model-point ul li .right {
	flex: 0 0 60%;
	min-width: 0;
	padding: 60px 40px;
}

#model-point ul li .right h4 {
	font-size: 48px;
	display: flex;
	align-items: flex-end;
	margin-bottom: 50px;
	gap: 20px;
}

#model-point ul li .right h4.sp {display: none;}

#model-point ul li .right h4 span {
	font-size: 18px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	color: var(--green);
	white-space: nowrap;
}

#model-point ul li .right p {
	line-height: 1.7em;
}

@media screen and (max-width: 1370px) {
	#model-point {
		gap: 70px;
	}
}

@media screen and (max-width: 1284px) {
	#model-point ul li .right h4 {
		font-size: 40px;
	}
	
	#model-point ul li .right h4 span {
		font-size: 16px;
	}
}

@media screen and (max-width: 820px) {
	#model-point {
		align-items: flex-start;
	}
	
	#model-point ul li {
		flex-direction: column;
	}
	
	#model-point ul li .left,#model-point ul li .right {
		flex: 0 0 auto;
		width: 100%;
	}
	
	#model-point ul li .left {
		aspect-ratio: 5 / 3;
	}
}

@media screen and (max-width: 640px) {
	#model-point h3 {
		font-size: 100px;
	}
	
	#model-point ul li .right {
		padding: 40px 30px;
	}
	
	#model-point ul li .right h4.pc {display: none;}
	#model-point ul li .right h4.sp {display: flex;}
	
	#model-point ul li .right h4 {margin-bottom: 30px;}
}

@media screen and (max-width: 430px) {
	#model-point {gap: 30px;}
	#model-point h3 {font-size: 70px;}
	#model-point ul {padding: 80px 0;}
	
	#model-point ul li .right h4 {
		font-size: 30px;
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	
	#model-point ul li .right h4 span {
		font-size: 14px;
	}
}

/**********************************************************************************

モデルハウス　#model-spec

**********************************************************************************/
#model-spec {
	margin-top: 100px;
	margin-bottom: 120px;
}

#model-spec .read {
	color: var(--green);
	font-size: 48px;
	margin: 0 auto 80px;
	width: 90%;
	max-width: 1280px;
	line-height: 1.3em;
}

#model-spec .box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	overflow: hidden;
	gap: 150px;
}

#model-spec .box ul {	
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

#model-spec .box ul li {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	width: 100%;
	height: auto;
	max-width: 600px;
}

#model-spec .box ul li h4 {
	font-size: 24px;
	background-color: #fff;
	padding: 10px 25px 15px;
	position: absolute;
	top: 0;
	right: 0;
}

#model-spec .box ul li img {
	height: 100%;
	object-fit: cover;
}

#model-spec .box h3 {
	font-size: 120px;	
	writing-mode: vertical-rl;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	line-height: 0.7em;
}

#model-spec .btn {
	margin: 60px auto 0;
}

@media screen and (max-width: 2000px) {
	#model-spec .box ul li {max-width: 500px;}
}

@media screen and (max-width: 1370px) {
	#model-spec .box {gap: 70px;}
}

@media screen and (max-width: 1284px) {
	#model-spec .read {font-size: 40px;}
	#model-spec .box ul li h4 {font-size: 20px;}
}

@media screen and (max-width: 820px) {
	#model-spec .box {align-items: flex-start;}
	#model-spec .box ul {grid-template-columns: repeat(1, 1fr);}
}

@media screen and (max-width: 640px) {
	#model-spec .box h3 {font-size: 100px;}
}

@media screen and (max-width: 430px) {
	#model-spec {
		margin-top: 0;
		margin-bottom: 80px;
	}
	#model-spec .read {
		font-size: 30px;
		margin-bottom: 50px;
	}
	#model-spec .box {gap: 30px;}
	#model-spec .box ul li h4 {font-size: 18px;}
	#model-spec .box h3 {font-size: 70px;}
}

/**********************************************************************************

モデルハウス　#model-about

**********************************************************************************/
#model-about .gallery-box {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

#model-about .gallery-box li {
	position: relative;
	aspect-ratio: 80 / 53;
	width: 100%;
	height: auto;
	overflow: hidden;
}

#model-about .gallery-box li h4 {
	font-size: 13px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	position: absolute;
	left: 25px;
	bottom: 15px;
	z-index: 2;
}

#model-about .gallery-box li img {
	height: 100%;
	object-fit: cover;
}

#model-about #map {
	filter: grayscale(100%);
	width: 100%;
	height: 400px;
}

.gmap-custom-pin {
	width: 100px;
	height: 100px;
	transform: translate(-50%, -100%);
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: auto;
}

@media screen and (max-width: 640px) {
	.gmap-custom-pin {
		width: 60px;
		height: 60px;
	}
}

#model-about .link-box {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin: 100px auto 0;
}

#model-about .link-box li:nth-child(2) a {background-color: var(--deepgreen);}
#model-about .link-box li:nth-child(2) a:hover {background-color: var(--black);}

@media screen and (max-width: 820px) {
	#model-about #map {height: 300px;}
}

@media screen and (max-width: 640px) {
	#model-about .gallery-box {grid-template-columns: repeat(1, 1fr);}
	
	#model-about .gallery-box li h4 {
		font-size: 12px;
		left: 10px;
		bottom: 10px;
	}
	
	#model-about .link-box {flex-direction: column;}
}

@media screen and (max-width: 430px) {
	#model-about #map {height: 200px;}
	#model-about .link-box {margin: 60px auto 0;}
}

/**********************************************************************************

性能　#spec-introduction

**********************************************************************************/
#spec-introduction {
	position: relative;
}

#spec-introduction .box01 {
	background-color: var(--black);
	position: relative;
	overflow: hidden;
}

#spec-introduction .box01 .inner {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 260px 0 190px;
	color: #fff;
}

#spec-introduction .box01 .inner .inner-box {
	width: 50%;
}

#spec-introduction .box01 .inner h4 {
	font-size: 24px;
	margin-bottom: 10px;
}

#spec-introduction .box01 .inner h3 {
	font-size: 60px;
	font-family: "Aboreto", system-ui;
	letter-spacing: 0.1em;
	color: var(--green);
	margin-bottom: 20px;
}

#spec-introduction .box01 .inner p {
	font-size: 18px;
	line-height: 1.7em;
}

#spec-introduction .box01 .anchor-link {
	width: 50%;
	max-width: 800px;
	height: 100%;
	position: absolute;
	top: 0;
	right: 10%;
	color: #fff;
}

#spec-introduction .box01 .anchor-link .link-circle {
	display: block;
	text-align: center;	
	width: 338px;
	height: 338px;
	position: absolute;
	border-radius: 50%;
}

#spec-introduction .box01 .anchor-link .link-circle svg {
	width: 338px;
	height: 338px;
}

#spec-introduction .box01 .anchor-link .link-taishin {
	top: -70px;
	right: 60px;
}

#spec-introduction .box01 .anchor-link .link-dannetsu {
	left: 0;
	bottom: 50px;
}

#spec-introduction .box01 .anchor-link .link-hoshou {
	right: 0;
	bottom: -50px;
}

#spec-introduction .box01 .anchor-link .link-circle:hover {
	opacity: 1;
	background-color: rgba(115, 113, 62, 0.6);	
}

#spec-introduction .box01 .anchor-link .link-circle .inner-con {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

#spec-introduction .box01 .anchor-link .link-circle .inner-con p {
	font-size: 20px;
	line-height: 1.5em;
}

#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #fff;
	position: relative;
	margin: 20px auto 0;
}

/* 横棒 */
#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 1px;
	background: var(--black);
	transform: translate(-50%, -50%);
}

/* 縦棒 */
#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1px;
	height: 14px;
	background: var(--black);
	transform: translate(-50%, -50%);
}


#spec-introduction .box01 .anchor-link .logo {
	display: block;
	text-align: center;	
	width: 338px;
	height: 338px;
	border-radius: 50%;	
	background-color: rgba(115, 113, 62, 0.8);
	position: absolute;
	top: 50%;
	right: 180px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

#spec-introduction .box01 .anchor-link .logo img {
	width: 70%;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

@media screen and (max-width: 1700px) {
	#spec-introduction .box01 .anchor-link {
		right: 5%;
	}
}

@media screen and (max-width: 1600px) {
	#spec-introduction .box01 .anchor-link {
		width: 55%;
		right: 3%;
	}
}

@media screen and (max-width: 1450px) {
	#spec-introduction .box01 .anchor-link {
		max-width: 650px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 300px;
		height: 300px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -50px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: 0;
		bottom: 50px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: 0;
		bottom: -30px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 130px;
	}
}

@media screen and (max-width: 1300px) {
	#spec-introduction .box01 .anchor-link {
		right: -2%;
	}
}

@media screen and (max-width: 1200px) {
	#spec-introduction .box01 .inner {
		padding: 200px 0 150px;
	}
	#spec-introduction .box01 .anchor-link {
		max-width: 550px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 260px;
		height: 260px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -40px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: 0;
		bottom: 50px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: 0;
		bottom: -30px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 100px;
	}
}

@media screen and (max-width: 1100px) {
	#spec-introduction .box01 .inner {
		padding: 180px 0 130px;
	}
	
	#spec-introduction .box01 .anchor-link {
		max-width: 480px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 220px;
		height: 220px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -20px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: 0;
		bottom: 70px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: 0;
		bottom: 20px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 100px;
	}
}

@media screen and (max-width: 1080px) {
	#spec-introduction .box01 .inner .inner-box {
		width: 60%;
	}
}

@media screen and (max-width: 1000px) {
	#spec-introduction .box01 .inner {
		padding: 180px 0 50px;
	}
	
	#spec-introduction .box01 .inner .inner-box {
		width: 100%;
	}
	
	#spec-introduction .box01 .anchor-link {
		position: relative;
		width: 100%;
		height: 740px;
		max-width: 800px;
		margin: 0 auto;
		right: auto;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 338px;
		height: 338px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -70px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: 0;
		bottom: 50px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: 0;
		bottom: -50px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 180px;
	}
}

@media screen and (max-width: 800px) {
	#spec-introduction .box01 .anchor-link {
		max-width: 650px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 300px;
		height: 300px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -10px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: 0;
		bottom: 50px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: 0;
		bottom: -30px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 130px;
	}
}

@media screen and (max-width: 640px) {
	#spec-introduction .box01 .inner {
		padding: 100px 0 30px;
	}
	
	#spec-introduction .box01 .anchor-link {
		max-width: 550px;
		height: 650px;
	}
	
	#spec-introduction .box01 .inner h4 {
		font-size: 18px;
	}

	#spec-introduction .box01 .inner h3 {
		font-size: 45px;
	}

	#spec-introduction .box01 .inner p {
		font-size: 14px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 260px;
		height: 260px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -10px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: -10px;
		bottom: 50px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: -10px;
		bottom: -30px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 100px;
	}
}

@media screen and (max-width: 530px) {
	#spec-introduction .box01 .anchor-link {
		max-width: 480px;
		height: 550px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 220px;
		height: 220px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: -10px;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: -10px;
		bottom: 70px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: -10px;
		bottom: 20px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 100px;
	}
}

@media screen and (max-width: 480px) {
	#spec-introduction .box01 .anchor-link {
		max-width: 360px;
		height: 430px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle,#spec-introduction .box01 .anchor-link .link-circle svg,#spec-introduction .box01 .anchor-link .logo {
		width: 160px;
		height: 160px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle .inner-con p {
		font-size: 16px;
	}
	
	#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus {
		width: 20px;
		height: 20px;
		margin: 10px auto 0;
	}

	#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus::before {
		width: 8px;
	}

	/* 縦棒 */
	#spec-introduction .box01 .anchor-link .link-circle .inner-con .circle-plus::after {
		height: 8px;
	}
	
	#spec-introduction .box01 .anchor-link .link-taishin {
		top: 0;
		right: 60px;
	}

	#spec-introduction .box01 .anchor-link .link-dannetsu {
		left: -10px;
		bottom: 70px;
	}

	#spec-introduction .box01 .anchor-link .link-hoshou {
		right: -10px;
		bottom: 20px;
	}
	
	#spec-introduction .box01 .anchor-link .logo {
		right: 80px;
	}
}

#spec-introduction .box02 {
	margin-bottom: 150px;
	display: flex;
	width: 100%;
	position: relative;
}

#spec-introduction .box02 .left-wrap {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	background-repeat: no-repeat;
}

#spec-introduction .box02 .left-wrap .left {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	width: 100%;
	max-width: 60%;
	padding: 95px 60px 70px;
}

#spec-introduction .box02 .left-wrap .left h3 {
	font-size: 30px;
	margin-bottom: 35px;
}

#spec-introduction .box02 .left-wrap .left h3 span {
	font-size: 48px;
}

#spec-introduction .box02 .left-wrap .left p {
	font-size: 18px;
	line-height: 2em;
	text-align: justify;
}

#spec-introduction .box02 .right {
	width: 40%;
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
}

#spec-introduction .box02 .right img {
	height: 100%;
	object-fit: cover;
	display: block;
}

@media screen and (max-width: 820px) {
	#spec-introduction .box02 {
		flex-direction: column;
	}
	
	#spec-introduction .box02 .left-wrap .left {
		max-width: 100%;
	}
	
	#spec-introduction .box02 .right {
		width: 100%;
		height: auto;
		aspect-ratio: 5 / 3;
		position: static;
	}
}

@media screen and (max-width: 640px) {
	#spec-introduction .box02 .left-wrap .left {
		padding: 60px 30px 50px;
	}

	#spec-introduction .box02 .left-wrap .left h3 {
		font-size: 20px;
		margin-bottom: 25px;
	}
	
	#spec-introduction .box02 .left-wrap .left h3 span {
		font-size: 36px;
	}
	
	#spec-introduction .box02 .left-wrap .left p {
		font-size: 14px;
	}
}

#spec-introduction .moreline {
	position: absolute;
	left: 35%;
	bottom: -50px;
	z-index: 2;
}

#spec-introduction .moreline::before {
	animation: moreline 2s infinite;	
	content: "";		
	background-color: var(--black);
	width: 1px;
	height: 100px;	
	position: absolute;
	bottom: -110px;
	left: 0;
	right: 0;	
	margin: auto;
}

#spec-introduction .moreline span {
	font-size: 14px;
	writing-mode: vertical-rl;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	width: 16px;
}

@keyframes moreline {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	51% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

@media screen and (max-width: 820px) {
	#spec-introduction .moreline {
		left: 25%;
		bottom: -100px;
	}	
}

@media screen and (max-width: 430px) {
	#spec-introduction .moreline::before {
		height: 60px;	
		bottom: -70px;
	}
}

/**********************************************************************************

性能　#spec-detail

**********************************************************************************/
#spec-detail {
	margin-top: -20px;
}

#spec-detail section {
	margin-bottom: 150px;
}

#spec-detail #spec-hoshou {
	margin-bottom: 0;
}

#spec-detail section .main-img {
	aspect-ratio: 4.5 / 1;
	overflow: hidden;
}

#spec-detail section .main-img img {
	height: 100%;
	object-fit: cover;
}

#spec-detail section .h3-box {
	width: 90%;
	max-width: 1280px;
	margin: -40px auto 0;
	display: flex;
	align-items: flex-end;
	gap: 35px;
}

#spec-detail section .h3-box .inner .line {
	width: 1px;
	height: 120px;
	margin: 0 auto;
	background-color: var(--black);
}

#spec-detail section .h3-box .inner h3 {
	font-size: 48px;
	width: 48px;
	writing-mode: vertical-rl;
	letter-spacing: 0.1em;
	margin-top: 20px;
	line-height: 1em;
}

#spec-detail section .h3-box h4 {
	font-size: 18px;
	color: var(--green);
	margin-bottom: 45px;
	white-space: nowrap;
}

@media screen and (max-width: 820px) {
	#spec-detail section .main-img {
		aspect-ratio: 5 / 2;
	}
}

@media screen and (max-width: 430px) {
	#spec-detail section {
		margin-bottom: 80px;
	}
	
	#spec-detail section .h3-box {
		gap: 25px;
	}
	
	#spec-detail section .h3-box .inner .line {
		height: 80px;
	}
	
	#spec-detail section .h3-box .inner h3 {
		font-size: 40px;
	}

	#spec-detail section .h3-box h4 {
		font-size: 16px;
		margin-bottom: 40px;
	}
}

#spec-taishin .box01 {
	width: 90%;
	max-width: 1280px;
	margin: 100px auto 0;
}

#spec-taishin .box01 p {
	width: 50%;
	text-align: justify;
	line-height: 2em;
}

#spec-taishin .box02 {
	width: 90%;
	max-width: 1280px;
	margin: -180px auto 0;
	position: relative;
}

#spec-taishin .box02 h5 {
	font-size: 24px;
	line-height: 1.5em;
	position: absolute;
	left: 0;
	bottom: 20px;
}

@media screen and (max-width: 1200px) {
	#spec-taishin .box02 {
		margin: -100px auto 0;
	}
	
	#spec-taishin .box02 h5 {
		font-size: 20px;
	}
}

@media screen and (max-width: 980px) {
	#spec-taishin .box02 h5 {
		font-size: 16px;
	}
}

@media screen and (max-width: 640px) {
	#spec-taishin .box01 p {
		width: 100%;
	}
	
	#spec-taishin .box02 {
		margin: 50px auto 0;
	}
	
	#spec-taishin .box02 h5 {
		font-size: 20px;
		top: 0;
		left: 20px;
		bottom: auto;
	}
}

@media screen and (max-width: 430px) {
	#spec-taishin .box01 {
		margin: 80px auto 0;
	}
	
	#spec-taishin .box02 h5 {
		font-size: 18px;
	}
}

#spec-dannetsu .box01 {
	width: 90%;
	max-width: 1280px;
	margin: -100px auto 0;
	display: flex;
	align-items: flex-end;
}

#spec-dannetsu .box01 p {
	text-align: justify;
	line-height: 2em;
	width: 100%;
}

#spec-dannetsu .box01 img {
	max-width: 580px;
}

#spec-dannetsu .box02 {
	width: 90%;
	max-width: 1280px;
	margin: 100px auto 0;
	display: flex;
	align-items: flex-start;
	gap: 50px;
}

#spec-dannetsu .box02 .left {
	max-width: 318px;
	text-align: center;
}

#spec-dannetsu .box02 .left h4 {
	font-size: 18px;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	width: fit-content;
	margin-bottom: 30px;
}

#spec-dannetsu .box02 .right li {
	width: 100%;
}

#spec-dannetsu .box02 .right li .inner {
	display: flex;
	justify-content: space-between;
}

#spec-dannetsu .box02 .right li .inner.sp {
	display: none;
}

#spec-dannetsu .box02 .right li:nth-child(odd) {
	background-color: var(--gray);
}

#spec-dannetsu .box02 .right li:nth-child(even) {
	background-color: var(--gray5);
}

#spec-dannetsu .box02 .right li .inner-left {
	padding: 25px 30px 20px;
	flex: 1;
}

#spec-dannetsu .box02 .right li .inner-left .midashi {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

#spec-dannetsu .box02 .right li .inner-left .midashi h5 {
	color: #fff;
	background-color: var(--black);
	padding: 5px 0 7px;
	text-align: center;
	width: 130px;
	position: relative;
	margin-left: 20px;
}

#spec-dannetsu .box02 .right li .inner-left .midashi h5::before {
	content: "";
	width: 20px;
	height: 100%;
	position: absolute;
	top: 0;
	left: -20px;
}

#spec-dannetsu .box02 .right li .inner-left .midashi h6 {
	font-size: 18px;
}

#spec-dannetsu .box02 .right li .inner-left .midashi h6,#spec-dannetsu .box02 .right li .inner-left p {
	line-height: 1.5em;
}

#spec-dannetsu .box02 .right li:first-child .inner-left .midashi h5::before {background-color: #f6d85c;}
#spec-dannetsu .box02 .right li:nth-child(2) .inner-left .midashi h5::before {background-color: #ed755a;}
#spec-dannetsu .box02 .right li:nth-child(3) .inner-left .midashi h5::before {background-color: #ec8f24;}
#spec-dannetsu .box02 .right li:nth-child(4) .inner-left .midashi h5::before {background-color: #5c8aaa;}

#spec-dannetsu .box02 .right li .inner-right {
	max-width: 150px;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

#spec-dannetsu .box02 .right li .inner-right img {
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 1300px) {
	#spec-dannetsu .box01 img {
		width: 40%;
	}
}

@media screen and (max-width: 1100px) {
	#spec-dannetsu .box01 {
		margin: -50px auto 0;
	}
}

@media screen and (max-width: 1037px) {
	#spec-dannetsu .box01 {
		margin: 0 auto;
	}
}

@media screen and (max-width: 898px) {
	#spec-dannetsu .box01 {
		margin: 50px auto 0;
	}
}

@media screen and (max-width: 820px) {
	#spec-dannetsu .box02 {
		flex-direction: column;
		align-items: center;
		width: 100%;
	}
	
	#spec-dannetsu .box02 .left h4 {
		text-align: center;
		margin: 0 auto 30px;
	}
}

@media screen and (max-width: 640px) {
	#spec-dannetsu .box01 {
		flex-direction: column;
		align-items: center;
		gap: 50px;
	}
	
	#spec-dannetsu .box01 img {
		width: 90%;
	}
	
	#spec-dannetsu .box02 .left {
		width: 70%;
	}
	
	#spec-dannetsu .box02 .right li .inner.pc {
		display: none;
	}
	
	#spec-dannetsu .box02 .right li .inner.sp {
		display: block;
	}
	
	#spec-dannetsu .box02 .right li .inner-left {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		padding: 0;
	}
	
	#spec-dannetsu .box02 .right li .inner-left .midashi {
		padding: 30px;
		margin-bottom: 0;
		flex-direction: column;
		align-items: flex-start;
	}

	#spec-dannetsu .box02 .right li .inner-left .midashi h6 {
		font-size: 16px;
	}
	
	#spec-dannetsu .box02 .right li .inner-left img {
		width: 150px;
	}
	
	#spec-dannetsu .box02 .right li .inner-right {
		max-width: none;
		aspect-ratio: auto;
		padding: 30px;
	}
	
	#spec-dannetsu .box02 .right li .inner-right p {
		line-height: 1.5em;
	}
}

#spec-hoshou .main-img img {
	object-position: bottom center;
}

#spec-hoshou .h3-wrap {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	align-items: flex-end;
	gap: 130px;
}

#spec-hoshou .h3-wrap p {
	margin-bottom: 45px;
	line-height: 1.5em;
}

#spec-hoshou .h3-wrap .h3-box {
	width: auto;
	margin: -40px 0 0 0;
}

#spec-hoshou .box01 {
	width: 90%;
	max-width: 1030px;
	margin: 100px auto 0;
}

#spec-hoshou .box02 {
	margin: 100px auto 0;
}

#spec-hoshou .box02 .inner-box {
	width: 100%;
	margin: 0 auto 150px;
}

#spec-hoshou .box02 .inner-box:last-child {
	margin-bottom: 0;
}

#spec-hoshou .box02 .inner-box .midashi {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}

#spec-hoshou .box02 .inner-box .midashi .line {
	position: absolute;
	top: 50%;
    left: 0;
	right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
	margin: 0 auto;
	width: 240px;
	height: 1px;
	background-color: var(--black);
}

#spec-hoshou .box02 .inner-box:nth-child(odd) .midashi .left,#spec-hoshou .box02 .inner-box:nth-child(even) .midashi .right {
	flex: 0 0 50%;
	overflow: hidden;
}

#spec-hoshou .box02 .inner-box:nth-child(odd) .midashi .left img,#spec-hoshou .box02 .inner-box:nth-child(even) .midashi .right img {
	height: 100%;
	object-fit: cover;
}

#spec-hoshou .box02 .inner-box:nth-child(odd) .midashi .right,#spec-hoshou .box02 .inner-box:nth-child(even) .midashi .left {
	flex: 1;
	text-align: center;
}

#spec-hoshou .box02 .inner-box .midashi h4 {
	font-size: 36px;
}

#spec-hoshou .box02 .inner-box .midashi h5 {
	font-size: 18px;
	color: #fff;
	background-color: var(--green);
	padding: 5px 10px;
	width: fit-content;
	margin: 10px auto 0;
}

#spec-hoshou .box02 .inner-box .midashi p {
	line-height: 1.7em;
	width: fit-content;
	margin: 20px auto 0;
	text-align: left;
}

#spec-hoshou .box02 .inner-box:first-child .zu {
	width: 90%;
	max-width: 1030px;
	margin: 60px auto 0;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box {
	width: 90%;
	max-width: 1280px;
	margin: 60px auto 0;
	display: flex;
	align-items: flex-start;
	gap: 30px;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner {
	display: flex;
	align-items: center;
	margin-top: 40px;
	gap: 16px;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner h5 {
	font-size: 18px;
	white-space: nowrap;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner ul {
	display: flex;
	align-items: center;
	gap: 20px;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner ul li {
	color: #fff;
	background-color: var(--black);
	padding: 15px 0;
	text-align: center;
	width: 170px;
	line-height: 1.5em;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box p {
	line-height: 1.7em;
}

#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box p span {
	font-size: 14px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 {
	width: 90%;
	max-width: 1170px;
	margin: 80px auto 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li {
	width: 100%;
	text-align: center;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li .num {
	font-size: 36px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
	position: relative;
	z-index: 1;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li .inner-box {
	background-color: var(--green);
	position: relative;
	width: 100%;
	height: 90px;
	margin-top: -20px;
	z-index: 0;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li h5 {
	font-size: 20px;
	color: #fff;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	line-height: 1.3em;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 {
	width: 90%;
	max-width: 1280px;
	margin: 90px auto 0;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5 {
	font-size: 24px;
	position: relative;
	text-align: center;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::after,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::after {
	content: '';
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 45%;
	height: 1px;
	background-color: var(--black);
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::before {
	left: 0;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::after,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::after {
	right: 0;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
	margin-top: 60px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li {
	position: relative;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap {
	display: flex;
	background-color: var(--gray);
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left {
	width: 100%;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .case {
	font-size: 20px;
	font-family: "Marcellus", serif;
	background-color: #fff;
	display: flex;
	align-items: flex-end;
	gap: 10px;
	padding: 5px 10px;
	width: fit-content;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .case span {
	font-size: 30px;
	color: var(--green);
	line-height: 1em;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .inner-box {
	padding: 15px 20px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .inner-box .name {
	font-size: 18px;
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .inner-box .name span {
	font-size: 14px;
	background-color: var(--green);
	color: #fff;
	padding: 5px 10px;	
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-top: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con.sp {
	display: none;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con h6 {
	background-color: #fff;
	padding: 10px;
	font-size: 15px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con p {
	font-size: 20px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con p span {
	color: var(--green);
	margin-left: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con p span::before {
	content: "▶";
	margin-right: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .right {
	overflow: hidden;
	max-width: 210px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .right img {
	height: 100%;
	object-fit: cover;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .note {
	display: flex;
	width: 100%;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .note h6 {
	display: flex;
	align-items: center;
	font-size: 20px;
	font-family: "Marcellus", serif;
	background-color: var(--green);
	color: #fff;
	padding: 10px 15px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .note p {
	display: flex;
	align-items: center;
	background-color: var(--black);
	color: #fff;
	width: 100%;
	padding: 10px 15px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .free {
	font-size: 14px;
	background-color: var(--red);
	color: #fff;
	text-align: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	padding-top: 12px;
	position: absolute;
	top: -20px;
	right: -20px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .free span {
	font-family: "Marcellus", serif;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
	margin-top: 50px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul li .img-box {
	position: relative;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul li .img-box h6 {
	text-align: center;
	width: 140px;
	background-color: #fff;
	padding: 5px 0;
	position: absolute;
	left: 10px;
	bottom: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul li p {
	font-size: 13px;
	line-height: 1.7em;
	margin-top: 10px;
}

#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 .note {
	line-height: 1.5em;
	margin-top: 60px;
}

#spec-hoshou .box02 .inner-box:nth-child(4) .inner01 {
	width: 90%;
	max-width: 930px;
	margin: 100px auto 0;
}

#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 {
	width: 90%;
	max-width: 1280px;
	margin: 70px auto 0;
	display: flex;
	align-items: flex-end;
	gap: 15px;
}

#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 .left h4 {
	font-size: 24px;
	line-height: 1.3em;
	margin-bottom: 15px;
}

#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 .left p {
	line-height: 1.7em;
	margin-bottom: 55px;
}

#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 .right {
	max-width: 730px;
}

@media screen and (max-width: 1400px) {
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul {
		grid-template-columns: repeat(4, 1fr);
		gap: 30px 14px;
	}
}

@media screen and (max-width: 1300px) {
	#spec-hoshou .h3-wrap {
		gap: 60px;
	}
	
	#spec-hoshou .h3-wrap p {
		margin-bottom: 30px;
	}
	
	#spec-hoshou .box02 .inner-box .midashi .line {
		width: 150px;
	}
}

@media screen and (max-width: 1200px) {
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::after,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::after {
		width: 40%;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media screen and (max-width: 1100px) {
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 1024px) {
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box {
		flex-direction: column;
		align-items: center;
		gap: 60px;
		margin-top: 0;
	}
}

@media screen and (max-width: 820px) {
	#spec-hoshou .h3-wrap {
		flex-direction: column;
		align-items: flex-start;
	}
	
	#spec-hoshou .h3-wrap p {
		margin-bottom: 0;
	}
	
	#spec-hoshou .box01 {
		margin: 60px auto 0;
	}
	
	#spec-hoshou .box02 {
		margin: 80px auto 0;
	}
	
	#spec-hoshou .box02 .inner-box {
		margin: 0 auto 80px;
	}
	
	#spec-hoshou .box02 .inner-box .midashi {
		flex-direction: column;
	}
	
	#spec-hoshou .box02 .inner-box .midashi .line {
		width: 1px;
		height: 100px;
		top: 60%;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(odd) .midashi .left,#spec-hoshou .box02 .inner-box:nth-child(even) .midashi .right {
		order: 1;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(odd) .midashi .right,#spec-hoshou .box02 .inner-box:nth-child(even) .midashi .left {
		padding: 80px 30px;
		order: 2;
	}
	
	#spec-hoshou .box02 .inner-box:first-child .zu {
		margin: 0 auto 0;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 {
		margin: 0 auto 0;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul {
		grid-template-columns: repeat(1, 1fr);
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul {
		grid-template-columns: repeat(2, 1fr);
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 {
		flex-direction: column;
		align-items: center;
		gap: 40px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 .left p {
		margin-bottom: 0;
	}
}

@media screen and (max-width: 640px) {
	#spec-hoshou .box02 .inner-box .midashi .line {
		width: 1px;
		height: 100px;
		top: 50%;
	}
	
	#spec-hoshou .box02 .inner-box .midashi h4 {
		font-size: 28px;
	}

	#spec-hoshou .box02 .inner-box .midashi h5 {
		font-size: 16px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box {
		gap: 40px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box p span {
		font-size: 12px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner ul {
		gap: 15px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(2) .zu-box .zu .zu-inner ul li {
		width: auto;
		padding: 15px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 {
		grid-template-columns: repeat(1, 1fr);
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li {
		max-width: 300px;
		margin: 0 auto;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li .num {
		font-size: 30px;
	}

	#spec-hoshou .box02 .inner-box:nth-child(3) .inner01 li h5 {
		font-size: 18px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .inner-box .name {
		font-size: 16px;
	}

	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .inner-wrap .left .inner-box .name span {
		font-size: 12px;	
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5 {
		font-size: 20px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con.pc {
		display: none;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con.sp {
		display: flex;
		flex-direction: row;
		align-items: center;
		background-color: var(--gray);
		padding: 15px 20px;
		margin-top: 0;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con h6 {
		font-size: 13px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .con p {
		font-size: 18px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 ul li .note h6 {
		font-size: 16px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 ul li p {
		font-size: 11px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 .left h4 {
		font-size: 20px;
	}
}

@media screen and (max-width: 430px) {
	#spec-hoshou .box02 .inner-box .midashi .line {
		height: 80px;
		top: 40%;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 {
		margin: 60px auto 0;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::before,#spec-hoshou .box02 .inner-box:nth-child(3) .inner02 h5::after,#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 h5::after {
		width: 35%;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(3) .inner03 .note {
		margin-top: 40px;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(4) .inner01 {
		margin: 80px auto 0;
	}
	
	#spec-hoshou .box02 .inner-box:nth-child(4) .inner02 {
		margin: 50px auto 0;
	}
}

/**********************************************************************************

会社情報　#company-story

**********************************************************************************/
#company-story {
	display: flex;
	align-items: center;
	margin: 150px auto 0;
	gap: 20%;
}

#company-story .left {
	max-width: 650px;
	width: 50%;
}

#company-story .right {
	width: 50%;
	padding-right: 30px;
}

#company-story .right h3 {
	font-size: 60px;
	font-family: "Aboreto", system-ui;
	letter-spacing: 0.1em;
	color: var(--green);
	margin-bottom: 20px;
}

#company-story .right h4 {
	font-size: 24px;
	margin-bottom: 60px;
}

#company-story .right p {
	line-height: 2em;
}

@media screen and (max-width: 2000px) {
	#company-story {
		gap: 10%;
	}
}

@media screen and (max-width: 1300px) {
	#company-story {
		align-items: flex-start;
		gap: 70px;
	}
}

@media screen and (max-width: 1024px) {
	#company-story {
		flex-direction: column;
	}
	
	#company-story .left {
		display: flex;
		max-width: none;
		width: 100%;
	}
	
	#company-story .left li {
		flex: 1;
		aspect-ratio: 1 / 1;
		overflow: hidden;
	}
	
	#company-story .left li img {
		height: 100%;
		object-fit: cover;
	}
	
	#company-story .right {
		width: 90%;
		margin: 0 auto;
		padding-right: 0;
	}
}

@media screen and (max-width: 640px) {
	#company-story .right h3 {
		font-size: 50px;
	}

	#company-story .right h4 {
		font-size: 20px;
	}
}

@media screen and (max-width: 430px) {
	#company-story {
		margin: 80px auto 0;
	}
	
	#company-story .right h3 {
		font-size: 40px;
		margin-bottom: 15px;
	}

	#company-story .right h4 {
		font-size: 18px;
		margin-bottom: 50px;
	}
}

/**********************************************************************************

会社情報　#company-detail

**********************************************************************************/
#company-detail {
	display: flex;
	margin: 100px auto 0;
}

#company-detail .left {
	flex: 0 0 60%;
}

#company-detail .left .box {
	padding: 100px 20% 50px;
	margin: 0 0 0 auto;
	width: fit-content;
}

#company-detail .left .box h3 {
	width: fit-content;
	font-size: 24px;
	letter-spacing: 0.1em;
	margin-bottom: 40px;
	display: flex;
	align-items: flex-end;
	gap: 15px;
}

#company-detail .left .box h3 span {
	font-size: 60px;
	font-family: "Aboreto", system-ui;	
	line-height: 0.8em;
	color: var(--green);
}

#company-detail .left .box table {
	margin-left: 30px;
}

#company-detail .left .box table tr th {
	padding-right: 40px;
	letter-spacing: 0.1em;
	line-height: 3em;
	white-space: nowrap;
}

#company-detail .left .box table tr td {
	letter-spacing: 0.1em;
	line-height: 3em;
}

#company-detail .right {
	position: relative;
	overflow: hidden;
	flex: 0 0 40%;
}

#company-detail .right img {
	position: absolute;
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 2000px) {
	#company-detail .left .box {
		padding: 100px 10% 50px;
	}
}

@media screen and (max-width: 1024px) {
	#company-detail {
		flex-direction: column;
	}
	
	#company-detail .sp {
		display: block;
		overflow: hidden;
		aspect-ratio: 3 / 1;
	}
	
	#company-detail .sp img {
		height: 100%;
		object-fit: cover;
	}
	
	#company-detail .left {
		flex: 0;
	}
	
	#company-detail .left .box {
		margin: 0 auto 0;
		width: 100%;
		padding: 100px 5% 50px;
	}
	
	#company-detail .left .box .pc {
		display: none;
	}
}

@media screen and (max-width: 640px) {
	#company-detail .left .box h3 {
		font-size: 20px;
	}
	
	#company-detail .left .box h3 span {
		font-size: 50px;
	}
	
	#company-detail .left .box table {
		margin-left: 0;
	}
	
	#company-detail .left .box table tr th {
		padding-right: 30px;
		padding-bottom: 20px;
		line-height: 2em;		
	}
	
	#company-detail .left .box table tr td {
		line-height: 2em;
		padding-bottom: 20px;
		letter-spacing: 0.05em;
	}
}

@media screen and (max-width: 430px) {
	#company-detail {
		margin: 80px auto 0;
	}
	
	#company-detail .left .box {
		padding: 60px 5% 50px;
	}
	
	#company-detail .left .box h3 {
		font-size: 18px;
	}
	
	#company-detail .left .box h3 span {
		font-size: 40px;
	}
}

/**********************************************************************************

会社情報　#company-access

**********************************************************************************/
#company-access {
	display: flex;
	margin: 0 auto;
}

#company-access #map {
	filter: grayscale(100%);
	flex: 0 0 60%;
}

#company-access .access-box {
	flex: 0 0 40%;
	background-color: var(--black);
	color: #fff;
}

#company-access .access-box .inner {
	padding: 70px 30px;
	margin: 0 auto;
	width: fit-content;
}

#company-access .access-box h3 {
	font-size: 30px;
	letter-spacing: 0.05em;
	display: flex;
	align-items: flex-end;
	gap: 15px;
	margin-bottom: 50px;
}

#company-access .access-box h3 span {
	font-size: 18px;
	font-family: "Marcellus", serif;
	color: var(--green);
}

#company-access .access-box h4 {
	font-size: 18px;
	margin-bottom: 30px;
}

#company-access .access-box p {
	line-height: 2em;
}

@media screen and (max-width: 1024px) {
	#company-access {
		flex-direction: column;
	}

	#company-access #map {
		flex: none;
		order: 2;
		width: 100%;
		height: 400px;
	}
	
	#company-access .access-box {
		flex: none;
		order: 1;
	}
}

@media screen and (max-width: 640px) {
	#company-access #map {
		height: 300px;
	}
	
	#company-access .access-box h3 {
		font-size: 24px;
		margin-bottom: 30px;
	}

	#company-access .access-box h3 span {
		font-size: 16px;
	}

	#company-access .access-box h4 {
		font-size: 16px;
		margin-bottom: 20px;
	}
	
	#company-access .access-box p {
		line-height: 1.7em;
	}
}

@media screen and (max-width: 430px) {
	#company-access .access-box .inner {
		padding: 50px 5%;
	}
}

/**********************************************************************************

会社情報　#company-link

**********************************************************************************/
#company-link {
	width: 90%;
	max-width: 630px;
	margin: 120px auto 0;
}

@media screen and (max-width: 430px) {
	#company-link {
		margin: 80px auto 0;
	}
}

/**********************************************************************************

プライバシーポリシー　#policy-inner

**********************************************************************************/
#policy-inner {
	width: 90%;
	max-width: 1280px;
	margin: 120px auto 0;
}

#policy-inner .list {
	margin-bottom: 50px;
}

#policy-inner .list:last-child {
	margin-bottom: 0;
}

#policy-inner .list h3 {
	font-size: 20px;
	margin-bottom: 10px;
}

#policy-inner .list p {
	line-height: 1.7em;
	text-align: justify;
}

#policy-inner .list ul {
	margin-top: 10px;
}

#policy-inner .list ul li {
	margin-bottom: 10px;
	position: relative;
	padding-left: 10px;
}

#policy-inner .list ul li:last-child {
	margin-bottom: 0;
}

#policy-inner .list ul li::before {
	content: "•"; 
	position: absolute;
	left: 0;
	top: 0.2em; 
	font-size: 0.7em; 
}

@media screen and (max-width: 640px) {
	#policy-inner .list h3 {
		font-size: 18px;
	}
}

@media screen and (max-width: 430px) {
	#policy-inner {
		margin: 60px auto 0;
	}
	
	#policy-inner .list {
		margin-bottom: 30px;
	}
}

/**********************************************************************************

お問い合わせ　#contact-inner

**********************************************************************************/
#contact-inner {
	margin: 120px auto 0;
}

#contact-inner .box01 {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	padding-bottom: 60px;
	border-bottom: solid 1px;
}

#contact-inner .box01 p {
	line-height: 2em;
	width: fit-content;
	margin: 0 auto;
}

#contact-inner .box02 {
	width: 90%;
	max-width: 980px;
	margin: 120px auto 100px;
}

#contact-inner .form-row {
	display: flex;
	align-items: center;
	gap: 40px;
	margin-bottom: 30px;
}

#contact-inner .form-row .form-flex, #contact-inner .form-row .form-flex p {
	display: flex;
	align-items: center;
	gap: 15px;
	flex-wrap: wrap;
}

#contact-inner .form-row .form-input.form-flex .wpcf7-form-control-wrap {
	max-width: 260px;
}

#contact-inner .form-row .form-input.form-flex .note {
	font-size: 14px;
}

#contact-inner .form-row.form-textarea {
	align-items: flex-start;
	margin-bottom: 60px;
}

#contact-inner .form-row.form-textarea .form-label {
	margin-top: 10px;
}

#contact-inner .form-row.form-center {
	text-align: center;
	margin-bottom: 60px;
}

#contact-inner .form-row.form-center {
	text-align: center;
	margin-bottom: 60px;
}

#contact-inner .form-row.form-center .form-input a {
	text-decoration: underline;
}

#contact-inner .form-row .form-label {
	flex: 0 0 25%;
	min-width: 0; 
}

#contact-inner .form-row .form-label span {
	font-size: 14px;
	color: var(--red);
}

#contact-inner .form-row .form-input {
	flex: 1 1 0%;
	min-width: 0; 
}

#contact-inner .form-row .form-input p {
	width: 100%;
}

#contact-inner .form-row .form-input .first p {
	margin-bottom: 20px;
}

input[type="text"],input[type="email"],input[type="tel"],textarea,input[type="date"],input[type="number"],.wpcf7 select {
	background-color: var(--gray4);
	padding: 10px;
	width: 100%;
}
.select-wrap {
	position: relative;
	display: inline-block;
}

.select-wrap::after {
	content: "▼";
	position: absolute;
	right: 0.8em;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--black);
	font-size: 0.8em;
}

.select-wrap select {
	padding-right: 2em; /* 矢印分の余白 */
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}

.wpcf7 input[type="checkbox"]{
	width: 20px;
	height: 20px;
	accent-color: var(--black); /* チェックと枠の色 */
	vertical-align: middle;
	margin-right: 8px;
	margin-bottom: 2px;
}

.wpcf7-form-control {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap:10px 20px;
}

.wpcf7-list-item {margin-left: 0!important;}

.submit {
	text-align: center;
	margin: 0 auto;
}

.submit input {
	margin: 0 auto;
	width: 340px;
	display: block;
	line-height: 1.5em;
	font-size: 18px;	
	color: #fff;
	padding: 25px 0;
	background-color: var(--green);
	transition: 0.5s;
}

.submit input:hover {
	opacity: 1;
	background-color: var(--black);
	transition: 0.5s;
}

#contact-inner .box03 {
	width: 90%;
	max-width: 860px;
	margin: 0 auto;
	color: #fff;
	background-color: var(--black);
	padding: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px 30px;
	flex-wrap: wrap;
}

#contact-inner .box03 a {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 36px;
	font-family: "Marcellus", serif;
	letter-spacing: 0.05em;
}

#contact-inner .box03 a img {
	width: 28px;
}

#contact-inner .box03 p {
	line-height: 1.5em;
}

@media screen and (max-width: 820px) {
	#contact-inner .form-row {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
		margin-bottom: 40px;
	}
	
	#contact-inner .form-row.form-textarea .form-label {
		margin-top: 0;
	}
	
	#contact-inner .form-row.form-textarea {
		align-items: stretch;
	}
	
	#contact-inner .form-row .form-label,
	#contact-inner .form-row .form-input {
		flex: none; 
		width: 100%;
		min-width: 0;
	}
	
	#contact-inner .form-row .form-input.form-flex p {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	#contact-inner .form-row .form-input.form-flex .wpcf7-form-control-wrap {
		max-width: 820px;
	}
	
	#contact-inner .box03 {
		text-align: center;
	}
}

@media screen and (max-width: 640px) {
	.submit input {
		width: 280px;
		padding: 15px 0;
	}
	
	input[type="date"] {
		padding: 15px 10px;
        width: 180px;
	}
}

@media screen and (max-width: 430px) {
	#contact-inner {
		margin: 80px auto 0;
	}
	
	#contact-inner .box02 {
		margin: 80px auto;
	}
	
	#contact-inner .box02 .form-row .form-label span,#contact-inner .form-row .form-input.form-flex .note {
		font-size: 12px;
	}
	
	#contact-inner .box03 a {
		font-size: 30px;
	}

	#contact-inner .box03 a img {
		width: 20px;
	}
}

/**********************************************************************************

お問い合わせ　#contact-thanks

**********************************************************************************/
#contact-thanks {
	text-align: center;
	margin: 200px auto 100px;
	width: 90%;
	max-width: 1280px;
}

#contact-thanks h3 {
	font-size: 36px;
	color: var(--green);
	margin-bottom: 50px;
}

#contact-thanks p {
	line-height: 1.7em;
}

@media screen and (max-width: 640px) {
	#contact-thanks {
		margin: 150px auto 80px;
	}
	
	#contact-thanks h3 {
		font-size: 24px;
		margin-bottom: 30px;
	}
}





