/*
Theme Name: th child
Version: 2.0.0
Template: th
*/

/************************************************************/
/*　リセット
/************************************************************/
:root {
	--main: #91a241;
	--sub:  #53705b;
	--base: #f7f2eb;
	--act:  #db8410;
	--text: #333333;
	--line: #04ad4b;
	--border: #dde5f4;
	--shade: drop-shadow(2px 3px 6px rgba(41, 76, 122, 0.15)); /*filter用*/
	--font-jp: YakuHanJP, "Zen Kaku Gothic New", sans-serif;
	--font-en: "Jost", sans-serif;
	--font-mincho: "Shippori Mincho", serif;
	--font-awe: "Font Awesome 6 Free";
	--ease: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
*:focus {
	outline: none;
}
html{
	box-sizing: border-box;
	line-height:1;
	font-size: 62.5%; /*  50 56.25 62.5 68.75 75*/
	-webkit-font-smoothing: antialiased;
	outline: none;
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}
::placeholder {
	color: #ccc;
}
body {
	font-family: var(--font-jp);
	font-style: normal;
	font-weight: 500;
	-webkit-text-size-adjust: 100%;
	font-feature-settings: "palt" 1;
	overflow-x: hidden;
	counter-reset: count;
	animation: fadeIn 2.5s ease 0s 1 normal;
	color: var(--text);
	background: #fff;
	overflow-x: clip;
}


/*フォント*/
body,
p,
.articleBody p {
	font-size: 15px;
	font-weight: 500;
	line-height: 2;
}
a[href^="tel:"] {
	color: inherit;
	text-decoration: none;
}
@media screen and (max-width: 768px){
	body {
		font-size: 14px;
		font-weight: 500;
		line-height: 2;
		padding-top: 0;
	}
	p,
	.articleBody p {
		font-size: 14px;
		font-weight: 500;
		line-height: 2;
		padding: 0;
		margin: 0 auto 1em;
	}
	.articleBody p:last-of-type {
		margin-bottom: 0;
	}
}

/*カーソル*/
.custom_cursor {
	display: none;
	pointer-events: none;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	html.is-custom_cursor,
	html.is-custom_cursor * {
		cursor: none !important;
	}
	.custom_cursor {
		display: contents;
	}
	.custom_cursor--ball {
		width: 0;
		height: 0;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 10000;
		visibility: hidden;
		pointer-events: none;
	}
	.custom_cursor--ball::before {
		content: "";
		width: 24px;
		height: 24px;
		display: block;
		border-radius: 50%;
		background: #91a241;
		transform: translate(-50%, -50%) scale(1);
		transition: transform 0.3s ease-out;
	}
	.custom_cursor--ball-lg::before {
		opacity: 0.4;
	}
	.custom_cursor--ball-sm::before {
		width: 8px;
		height: 8px;
	}
	.custom_cursor.is-visible .custom_cursor--ball {
		visibility: visible;
	}
	.custom_cursor.is-hover .custom_cursor--ball-lg::before {
		transform: translate(-50%, -50%) scale(2);
	}
}

/*フォーム*/
button,
input,
select,
textarea {
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	font: inherit;
	color: inherit;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	outline: none;
	border-radius: 0;
	box-sizing: border-box;
}
select::-ms-expand {
	display: none;
}
button:focus {
	outline: none !important;
	box-shadow: none !important;
}

/*PC・タブレット・スマホ 表示*/
.pc { display:block !important; }
.tb { display:none !important; }
.sp { display:none !important; }
@media screen and (max-width: 768px){   
	.pc { display:none !important; }
	.tb { display:block !important; }
	.sp { display:none !important; }
}
@media screen and (max-width: 768px){   
	.pc { display:none !important; }
	.tb { display:none !important; }
	.sp { display:block !important; }
}

.pc_none { display:none !important; }
.tb_none { display:block!important; }
.sp_none { display:block !important; }
@media screen and (max-width: 768px){   
	.pc_none { display:block !important; }
	.tb_none { display:none !important; }
	.sp_none { display:block !important; }
}
@media screen and (max-width: 768px){   
	.pc_none { display:block !important; }
	.tb_none { display:block !important; }
	.sp_none { display:none !important; }
}


/************************************************************/
/*　スクロールアニメーション
/************************************************************/

/* JS有効時だけ初期状態を適用 */
.js .sa {
	opacity: 0;
	transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
		transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	will-change: opacity, transform;
	backface-visibility: hidden;
}
/* 表示 */
.js .sa.show {
	opacity: 1;
}
/* アニメーション定義 */
.js .fade-up {
	transform: translateY(30px);
}
.js .fade-up.show {
	transform: translateY(0);
}
.js .fade-down {
	transform: translateY(-30px);
}
.js .fade-down.show {
	transform: translateY(0);
}
.js .slide-left {
	transform: translateX(-30px);
}
.js .slide-left.show {
	transform: translateX(0);
}
.js .slide-right {
	transform: translateX(30px);
}
.js .slide-right.show {
	transform: translateX(0);
}
.js .zoom-in {
	transform: scale(0.9);
}
.js .zoom-in.show {
	transform: scale(1);
}
.js .rotate-in {
	transform: rotate(-5deg) scale(0.95);
}
.js .rotate-in.show {
	transform: rotate(0) scale(1);
}
/* フェードだけ */
.js .fade-in {
	transform: none;
}
/*ディレイ*/
.js .delay-1 { transition-delay: 0.3s; }
.js .delay-2 { transition-delay: 0.6s; }
.js .delay-3 { transition-delay: 0.9s; }
.js .delay-4 { transition-delay: 1.2s; }
.js .delay-5 { transition-delay: 1.5s; }
.js .delay-6 { transition-delay: 1.8s; }
.js .delay-7 { transition-delay: 2.1s; }
.js .delay-8 { transition-delay: 2.4s; }
.js .delay-9 { transition-delay: 2.7s; }
.js .delay-10 { transition-delay: 3.0s; }

/************************************************************/
/*　構成
/************************************************************/
#contents {
	padding: 0;
	margin: 0;
}
:where(.articleBody) {
	padding: 0;
	margin: 0;
}

body#sub {
	padding-top: 0;
}
body#sub.single {
	padding-top: 0;
}
@media screen and (max-width: 768px) {
	body#sub {
		padding-top: 0;
	}
	body#sub.single {
		padding-top: 0;
	}
}

/*ページトップ*/
.pagetop {
	opacity: 1;
	bottom: 60px;
}
.pagetop a {
	background: var(--main);
	color: #fff;
}

/*コンテンツ*/
#archive_wrap {
	width: 100%;
	max-width: 1200px;
	padding: 100px 0 150px;
	margin: 0 auto;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	column-gap: 50px;
}

/*アーカイブ*/
.archiveContent {
	width: 100%;
	padding: 0;
	margin: 0 auto;
}

.full-container,
.full-container .main {
	width: 100%;
	max-width: 100%;
}

/*固定ページ*/
.pageContent {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
}
.pageContent.full {
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0 auto;
}

/*1カラム*/
.pageContent.one-column {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
}
body#sub .pageContent.one-column .articleBody {
	width: 100%;
	padding: 100px 0 150px;
	margin: 0;
	position: relative;
}

/*2カラム*/
.pageContent.two-columns {
	width: 100%;
	max-width: 1200px;
	padding: 100px 0 150px;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	column-gap: 50px;
}
body#sub .pageContent.two-columns .articleBody {
	width: calc(100% - 50px - 250px);
	padding: 0;
	margin: 0;
	position: relative;
}
#sidebar {
	width: 250px;
	min-width: 250px;
	padding: 0;
	margin: 0;
	position: relative;
}

/*記事詳細ページ*/
body#sub.single .pageContent.two-columns {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 50px auto 150px;
	display: flex;
	justify-content: center;
	column-gap: 50px;
}
body#sub.single .pageContent.two-columns .articleBody {
	width: calc(100% - 50px - 250px);
	padding: 0;
	margin: 0;
	position: relative;
}

@media screen and (max-width: 1280px) {
	#archive_wrap {
		padding: 100px 30px 150px;
		box-sizing: border-box;
	}
	.pageContent {
		padding: 0 30px;
		box-sizing: border-box;
	}
	.pageContent.full {
		padding: 0;
	}
	.pageContent.one-column {
		padding: 0 30px;
		box-sizing: border-box;
	}
	.pageContent.two-columns {
		padding: 100px 30px 150px;
		box-sizing: border-box;
		column-gap: 40px;
	}
	body#sub .pageContent.two-columns .articleBody {
		width: calc(100% - 40px - 250px);
	}
	body#sub.single .pageContent.two-columns {
		padding: 0 30px;
		box-sizing: border-box;
		column-gap: 40px;
	}
	body#sub.single .pageContent.two-columns .articleBody {
		width: calc(100% - 40px - 250px);
	}
}
@media screen and (max-width: 1024px) {
	#archive_wrap {
		padding: 80px 30px 120px;
		flex-direction: column;
		row-gap: 60px;
	}
	body#sub .pageContent.one-column .articleBody {
		padding: 80px 0 120px;
	}
	.pageContent.two-columns {
		padding: 80px 30px 120px;
		flex-direction: column;
		row-gap: 60px;
	}
	body#sub .pageContent.two-columns .articleBody {
		width: 100%;
	}
	#sidebar {
		width: 100%;
		min-width: 0;
	}
	body#sub.single .pageContent.two-columns {
		margin: 40px auto 120px;
		flex-direction: column;
		row-gap: 60px;
	}
	body#sub.single .pageContent.two-columns .articleBody {
		width: 100%;
	}
}
@media screen and (max-width: 768px) {
	#archive_wrap {
		padding: 40px 20px 80px;
		row-gap: 50px;
	}
	.pageContent {
		padding: 0 20px;
	}
	.pageContent.full {
		padding: 0;
	}
	.pageContent.one-column {
		padding: 0 20px;
	}
	body#sub .pageContent.one-column .articleBody {
		padding: 60px 0 80px;
	}
	.pageContent.two-columns {
		padding: 60px 20px 80px;
		row-gap: 50px;
	}
	body#sub.single .pageContent.two-columns {
		padding: 0 20px;
		margin: 30px auto 80px;
		row-gap: 50px;
	}
	.pagetop {
		bottom: 20px;
	}
}
@media screen and (max-width: 375px) {
	#archive_wrap {
		padding: 50px 15px 70px;
		row-gap: 40px;
	}
	.pageContent {
		padding: 0 15px;
	}
	.pageContent.full {
		padding: 0;
	}
	.pageContent.one-column {
		padding: 0 15px;
	}
	body#sub .pageContent.one-column .articleBody {
		padding: 50px 0 70px;
	}
	.pageContent.two-columns {
		padding: 50px 15px 70px;
		row-gap: 40px;
	}
	body#sub.single .pageContent.two-columns {
		padding: 0 15px;
		row-gap: 40px;
	}
}

#contents .articleFooter {
	margin-top: 70px;
}
#contents .ttl {
	width: 100%;
	padding: 10px 15px;
	margin: 0 auto 30px;
	background: var(--text);
	border: none;
	border-radius: 0;
	font-family: var(--font-jp);
	font-size: 16px;
	line-height: 1;
	color: #fff;
	text-align: left;
}
#contents .relationList {
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0 auto;
	position: relative;
	list-style: none;
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	column-gap: 30px;
	grid-row-gap: 50px;
}
#contents .relationList > li {
	width: calc((100% - 60px) / 3);
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-direction: column;
	grid-row-gap: 15px;
}
#contents .relationList > li.none {
	width: 100%;
	text-align: center;
	justify-content: center;
	align-items: center;
}
.relationList > li > figure {
	width: 100%;
	padding: 0;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
	text-align: center;
}
.relationList > li > figure::before {
	content: '';
	display: block;
	padding-top: 65%;
}
.relationList > li > figure img {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	object-fit: cover;
	transform-origin: center;
	transition: var(--ease);
}
.relationList > li > figure:hover img {
	filter: brightness(1.05);
	transform: translate(-50%,-50%) scale(1.05);
	transform-origin: center;
	transition: var(--ease);
}
#contents .relationList > li > h3 {
	width: 100%;
	padding: 0;
	margin: 0 auto;
	border: none;
	background: none;
	position: relative;
	font-size: 13px;
	line-height: 1.5em;
	color: var(--text);
	font-weight: 500;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#contents .relationList > li > h3::before,
#contents .relationList > li > h3::after {
	display: none;
}
#contents .relationList > li > h3 a {
	font-family: var(--font-jp);
	font-size: 13px;
	line-height: 1.5em;
	color: var(--text);
	font-weight: 500;
	text-decoration: none;
	transition: var(--ease);
}
#contents .relationList > li > h3 a:hover {
	color: var(--act);
	transition: var(--ease);
}
.news-meta {
	width: 100%;
	padding: 0;
	margin: auto auto 0;
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	column-gap: 10px;
}
.news-meta > span {
	display: inline-block;
	padding: 3px 7px;
	margin: 0;
	background: var(--text);
	font-size: 10px;
	line-height: 1;
	color: #fff;
	font-weight: 400;
}
.news-meta > time {
	display: inline-block;
	padding: 0;
	margin: 0;
	font-family: var(--font-en);
	font-size: 12px;
	line-height: 1;
	color: var(--text);
}
.relationList > li.no-result {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: block;
	text-align: center;
}
@media screen and (max-width: 1024px) {
	#contents .relationList {
		column-gap: 20px;
		grid-row-gap: 40px;
	}
	#contents .relationList > li {
		width: calc((100% - 40px) / 3);
	}
}
@media screen and (max-width: 768px) {
	#contents .articleFooter {
		margin-top: 50px;
	}
	#contents .ttl {
		margin: 0 auto 20px;
		font-size: 15px;
	}
	#contents .relationList {
		column-gap: 15px;
		grid-row-gap: 30px;
	}
	#contents .relationList > li {
		width: calc((100% - 15px) / 2);
		grid-row-gap: 10px;
	}
	#contents .relationList > li > h3,
	#contents .relationList > li > h3 a {
		font-size: 12px;
	}
	.news-meta {
		column-gap: 8px;
	}
	.news-meta > time {
		font-size: 11px;
	}
}
@media screen and (max-width: 375px) {
	#contents .relationList {
		grid-row-gap: 25px;
	}
	#contents .relationList > li {
		width: 100%;
	}
	#contents .relationList > li > h3,
	#contents .relationList > li > h3 a {
		font-size: 13px;
	}
	.news-meta > time {
		font-size: 12px;
	}
}

/*前後の記事*/
.articlePager a:hover {
	background: none;
	box-shadow: none;
	color: var(--main);
}


/************************************************************/
/*　Gutenberg
/************************************************************/
/*グループ用*/
.mp0 { padding: 0 !important; margin: 0 !important; }

/************************************************************/
/*　共通
/************************************************************/

/************************************************************/
/*　タイトル
/************************************************************/


/************************************************************/
/*　ページタイトル
/************************************************************/


/************************************************************/
/*　見出し　＆　パンくず
/************************************************************/

h1,h2,h3,h4,h5,h6 {
	font-weight: 700;
}

#contents h2,
#contents h3,
#contents h4,
#contents h5 {
	position: relative;
	display: block;
	float: none;
	width: auto;
	max-width: none;
	height: auto;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	outline: none;
	background: none;
	box-shadow: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.6;
	text-align: left;
	text-decoration: none;
	text-indent: 0;
	text-shadow: none;
	text-transform: none;
	transform: none;
}
#contents h2::before,
#contents h2::after,
#contents h3::before,
#contents h3::after,
#contents h4::before,
#contents h4::after,
#contents h5::before,
#contents h5::after {
	content: none;
	display: none;
}
#contents h2 {
	padding: 0 0 18px;
	margin: 80px 0 32px;
	border-bottom: 1px solid var(--border);
	font-size: 26px;
	letter-spacing: 0.08em;
}
#contents h2::after {
	content: "";
	display: block;
	position: absolute;
	top: auto;
	right: auto;
	bottom: -1px;
	left: 0;
	width: 80px;
	height: 1px;
	margin: 0;
	border: none;
	background: var(--main);
	transform: none;
}
#contents h3 {
	padding: 0 0 0 22px;
	margin: 60px 0 24px;
	font-size: 21px;
	letter-spacing: 0.06em;
}
#contents h3::before {
	content: "";
	display: block;
	position: absolute;
	top: 0.3em;
	right: auto;
	bottom: auto;
	left: 0;
	width: 2px;
	height: 1em;
	margin: 0;
	border: none;
	background: var(--text);
	transform: none;
}
#contents h4 {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 0;
	margin: 48px 0 20px;
	font-size: 18px;
	letter-spacing: 0.06em;
}
#contents h4::before {
	content: "";
	display: block;
	position: static;
	flex-shrink: 0;
	width: 24px;
	height: 1px;
	margin: 0;
	border: none;
	background: var(--text);
	transform: none;
}
#contents h5 {
	padding: 0 0 0 18px;
	margin: 40px 0 16px;
	font-size: 16px;
	letter-spacing: 0.05em;
	line-height: 1.7;
}
#contents h5::before {
	content: "";
	display: block;
	position: absolute;
	top: 0.7em;
	right: auto;
	bottom: auto;
	left: 0;
	width: 6px;
	height: 6px;
	margin: 0;
	border: none;
	border-radius: 0;
	background: var(--main);
	transform: none;
}
#news-content p {
	padding: 0;
	margin: 0 auto 1em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#contents .articleBody > :is(h2, h3, h4, h5):first-child,
#contents #news-content > :is(h2, h3, h4, h5):first-child {
	margin-top: 0;
}
@media screen and (max-width: 1024px) {
	#contents h2 {
		margin: 70px 0 28px;
		font-size: 24px;
	}
	#contents h3 {
		font-size: 20px;
	}
	#contents h4 {
		font-size: 17px;
	}
}
@media screen and (max-width: 768px) {
	#news-content p {
		line-height: 1.9;
	}
	#contents h2 {
		padding: 0 0 14px;
		margin: 56px 0 24px;
		font-size: 20px;
		letter-spacing: 0.05em;
	}
	#contents h2::after {
		width: 56px;
	}
	#contents h3 {
		padding: 0 0 0 16px;
		margin: 44px 0 20px;
		font-size: 18px;
	}
	#contents h4 {
		gap: 10px;
		margin: 36px 0 16px;
		font-size: 16px;
	}
	#contents h4::before {
		width: 18px;
	}
	#contents h5 {
		padding: 0 0 0 14px;
		margin: 32px 0 14px;
		font-size: 15px;
	}
	#contents h5::before {
		width: 5px;
		height: 5px;
	}
}
@media screen and (max-width: 375px) {
	#news-content p {
		font-size: 14px;
	}
	#contents h2 {
		font-size: 18px;
	}
	#contents h3 {
		font-size: 17px;
	}
	#contents h4 {
		font-size: 15px;
	}
}

/*パンくず*/
.breadcrumbs {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: 100%;
	max-width: 1200px;
	padding: 5px 0;
	margin: 0 auto;
	position: relative;
	z-index: 5;
	color: var(--text);
	white-space: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.breadcrumbs::-webkit-scrollbar {
	display: none;
}
.breadcrumbs > li {
	flex-shrink: 0;
	white-space: nowrap;
}
@media screen and (max-width: 1280px) {
	.breadcrumbs {
		padding: 5px 30px;
		box-sizing: border-box;
	}
}
@media screen and (max-width: 768px) {
	.breadcrumbs {
		padding: 5px 20px;
		font-size: 12px;
		line-height: 1.6;
	}
}
@media screen and (max-width: 375px) {
	.breadcrumbs {
		padding: 5px 15px;
		font-size: 11px;
	}
}

/*============================================================*/
/* 目次 */
/*============================================================*/
#toc_container {
	position: relative;
	width: 100% !important;
	margin: 2.5em 0;
	padding: 30px 50px;
	border-top: solid 5px var(--main);
	font-size: 0.95em;
	background: #f9f9f9;
	box-shadow: 0 1.5px 2.4px rgba(0, 0, 0, 0.15);
}
#toc_container .toc_title {
	display: inline-block;
	position: relative;
	margin: 0 auto;
	padding: 5px 0 5px 58px;
	font-size: 23px;
	line-height: 1.7em;
	font-weight: bold;
}
#toc_container .toc_title:before {
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--main);
	color: #fff;
	font-family: var(--font-awe);
	font-size: 20px;
	font-weight: 900;
	text-align: center;
	line-height: 50px;
	content: "\f03a";
}
.toc_toggle {
	display: inline-block;
	vertical-align: middle;
	width: 75px;
	height: 25px;
	margin-left: 10px;
	border-radius: 5px;
	background: #cbcbcb;
	color: #fff;
	font-size: 14px;
	text-align: center;
	line-height: 25px;
}
#toc_container .toc_toggle a {
	color: #fff;
	text-decoration: none !important;
}
#toc_container ul {
	list-style-type: disc;
	padding: 0;
	margin: 20px auto 0;
	border: none;
}
#toc_container .toc_list {
	padding: 0;
	margin-bottom: 0;
	color: #585858;
	display: flex;
	flex-direction: column;
	grid-row-gap: 10px;
	list-style: none;
}
#toc_container .toc_list li,
.ez-toc-list li {
	padding: 0;
	margin: 0;
	list-style: none;
	font-weight: 700;
}
#toc_container .toc_list li a,
.ez-toc-list li a {
	color: var(--text);
}
#toc_container .toc_list li a:hover,
.ez-toc-list li a:hover {
	text-decoration: underline;
}
#toc_container .toc_list li ul {
	padding: 0;
	margin: 0;
	padding-left: 15px;
}
#toc_container .toc_list li ul li {
	padding: 0 0 0 1.5em;
	margin: 0;
	font-size: 0.95em;
	font-weight: normal;
	list-style: none;
	font-weight: 400;
	position: relative;
}
#toc_container .toc_list li ul li::before {
	content: '';
	display: block;
	width: 10px;
	height: 1px;
	background: var(--text);
	position: absolute;
	top: 1em;
	left: 0;
}
.toc_number {
	padding-right: 2px;
	font-family: var(--font-en);
	font-size: 1.1em;
	font-weight: 500;
}
#ez-toc-container p {
	margin: 0;
}
.ez-toc-list .active {
	background: #efefef;
}

/* ---------- 〜1280px : ノートPC ---------- */
@media screen and (max-width: 1280px) {
	#toc_container {
		padding: 30px 40px;
	}
}

/* ---------- 〜1024px : タブレット横 ---------- */
@media screen and (max-width: 1024px) {
	#toc_container {
		margin: 2em 0;
		padding: 26px 32px;
	}
	#toc_container .toc_title {
		font-size: 21px;
	}
}

/* ---------- 〜768px : スマホ〜タブレット縦 ---------- */
@media screen and (max-width: 768px) {
	#toc_container {
		box-sizing: border-box;
		margin: 1.8em 0;
		padding: 20px 20px;
		font-size: 0.9em;
	}
	#toc_container .toc_title {
		padding: 4px 0 4px 48px;
		font-size: 18px;
	}
	#toc_container .toc_title:before {
		width: 40px;
		height: 40px;
		font-size: 16px;
		line-height: 40px;
	}
	.toc_toggle {
		width: 65px;
		height: 24px;
		font-size: 12px;
		line-height: 24px;
	}
	#toc_container ul {
		margin: 16px auto 0;
	}
	#toc_container .toc_list {
		grid-row-gap: 8px;
	}
	#toc_container .toc_list li ul {
		margin: 4px;
		padding-left: 12px;
	}
}

/* ---------- 〜375px : 小型スマホ ---------- */
@media screen and (max-width: 375px) {
	#toc_container {
		margin: 1.5em 0;
		padding: 16px 14px;
		font-size: 0.85em;
	}
	#toc_container .toc_title {
		padding: 3px 0 3px 42px;
		font-size: 16px;
	}
	#toc_container .toc_title:before {
		width: 34px;
		height: 34px;
		font-size: 14px;
		line-height: 34px;
	}
	.toc_toggle {
		width: 58px;
		height: 22px;
		margin-left: 6px;
		font-size: 11px;
		line-height: 22px;
	}
	#toc_container ul {
		margin: 12px auto 0;
	}
	#toc_container .toc_list {
		grid-row-gap: 6px;
	}
	#toc_container .toc_list li ul {
		padding-left: 10px;
	}
}



/************************************************************/
/*　画像スライダー
/************************************************************/
.loop-slider {
	width: 100%;
	min-width: 100%;
	padding: 0;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
}
.slideGal {
	display: flex;
	gap: 0;
	padding: 0;
	margin: 0;
	list-style: none;
	background: #fff;
	width: max-content;
	animation: side-loop-left 60s linear infinite;
}
.delay .slideGal {
	animation: side-loop-left-delay 60s linear infinite;
}
.slideGal li {
	flex: 0 0 calc(100vw / 4);
	width: calc(100vw / 4);
	aspect-ratio: 16 / 9;
	box-sizing: border-box;
}
.slideGal li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@keyframes side-loop-left {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
@keyframes side-loop-left-delay {
	0% {
		transform: translateX(-12.5vw);
	}
	100% {
		transform: translateX(calc(-50% - 12.5vw));
	}
}
/*.loop-slider:hover .slideGal {
animation-play-state: paused;
}*/
/*== スマホ対応 ==*/
@media only screen and (max-width: 480px){
	.slideGal li {
		flex: 0 0 calc(100vw / 3);
		width: calc(100vw / 3);
		aspect-ratio: 16 / 9;
		box-sizing: border-box;
	}
}


/************************************************************/
/*　ページネーション
/************************************************************/

.pagination {
	margin: 80px 0 0;
	text-align: center;
}
.pagination .page-numbers {
	display: inline-flex;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.pagination .page-numbers li a,
.pagination .page-numbers li span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: auto;
	height: 42px;
	padding: 0;
	margin: 0;
	aspect-ratio: 1/1;
	border-radius: 50%;
	font-family: var(--font-en);
	font-size: 14px;
	line-height: 1;
	color: var(--text);
	background: #fff;
	border: 1px solid var(--text);
}
.pagination .page-numbers .current {
	background: var(--text);
	color: #fff;
}
.pagination .page-numbers li a:hover {
	background: var(--text);
	color: #fff;
}
.pagination .page-numbers li a.prev,
.pagination .page-numbers li a.next {
	width: 42px;
	height: 42px;
	aspect-ratio: 1/1;
}
.pagination .page-numbers .dots {
	width: auto;
	padding: 0 12px;
	border: none;
	background: transparent;
	color: var(--text);
	font-weight: 500;
}
@media screen and (max-width: 768px) {
	.pagination {
		margin: 50px 0 0;
	}
	.pagination .page-numbers {
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px;
	}
	.pagination .page-numbers li a,
	.pagination .page-numbers li span {
		height: 38px;
		font-size: 13px;
	}
	.pagination .page-numbers li a.prev,
	.pagination .page-numbers li a.next {
		width: 38px;
		height: 38px;
	}
	.pagination .page-numbers .dots {
		padding: 0 8px;
	}
}
@media screen and (max-width: 375px) {
	.pagination {
		margin: 40px 0 0;
	}
	.pagination .page-numbers {
		gap: 4px;
	}
	.pagination .page-numbers li a,
	.pagination .page-numbers li span {
		height: 34px;
		font-size: 12px;
	}
	.pagination .page-numbers li a.prev,
	.pagination .page-numbers li a.next {
		width: 34px;
		height: 34px;
	}
	.pagination .page-numbers .dots {
		padding: 0 4px;
	}
}

/************************************************************/
/*　ヘッダー
/************************************************************/
#header {
	width: 100%;
	height: 80px;
	padding: 0 max(30px, calc((100% - 1200px) / 2));
	margin: 0;
	position: sticky;
	top: 0;
	left: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	background: rgba(250, 248, 245, 0.94);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border-bottom: 1px solid #ebe5dd;
	font-family: "Zen Kaku Gothic New", sans-serif;
}
#logo {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
	flex-shrink: 0;
	line-height: 1;
}
#logo a {
	display: block;
	transition: opacity 0.3s;
}
#logo a:hover {
	opacity: 0.7;
}
#logo img {
	width: auto;
	height: 52px;
	display: block;
}
#mainNav {
	width: auto;
	padding: 0;
	margin: 0 0 0 auto;
	position: relative;
}
#mainNav .menu-header-menu {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	list-style: none;
}
#mainNav .menu-header-menu > li {
	width: auto;
	padding: 0 26px;
	margin: 0;
	position: relative;
}
#mainNav .menu-header-menu > li + li::before {
	content: "";
	width: 1px;
	height: 14px;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	background: #d8cfc4;
}
#mainNav .menu-header-menu > li > a {
	padding: 8px 0;
	position: relative;
	display: block;
	color: #3a332d;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	text-decoration: none;
	transition: color 0.3s;
}
#mainNav .menu-header-menu > li > a::after {
	content: "";
	width: 100%;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	background: #d2692f;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s;
}
#mainNav .menu-header-menu > li > a:hover {
	color: #d2692f;
}
#mainNav .menu-header-menu > li > a:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}
.headbtn {
	width: auto;
	padding: 0;
	margin: 0 0 0 30px;
	position: relative;
	flex-shrink: 0;
}
.headbtn a {
	height: 46px;
	padding: 0 30px;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	background: var(--act);
	border: 1px solid var(--act);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-decoration: none;
	transition: background 0.3s, color 0.3s;
}
.headbtn a i {
	font-size: 14px;
}
.headbtn a:hover {
	background: #fff;
	color: #d2692f;
}
#hamburger {
	display: none;
}

@media screen and (max-width: 1280px) {
	#logo img {
		height: 48px;
	}
	#mainNav .menu-header-menu > li {
		padding: 0 16px;
	}
	#mainNav .menu-header-menu > li > a {
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.headbtn {
		margin: 0 0 0 20px;
	}
	.headbtn a {
		height: 44px;
		padding: 0 20px;
		font-size: 15px;
		letter-spacing: 0.1em;
	}
}
@media screen and (max-width: 1024px) {
	html {
		scroll-padding-top: 70px;
	}
	#header {
		height: 70px;
		padding: 0 30px;
	}
	#logo img {
		height: 44px;
	}
	.headbtn {
		margin: 0 24px 0 auto;
	}
	.headbtn a {
		height: 42px;
	}
	#hamburger {
		width: 30px;
		height: 20px;
		padding: 0;
		margin: 0;
		position: relative;
		z-index: 1001;
		display: block;
		flex-shrink: 0;
		cursor: pointer;
	}
	#hamburger span {
		width: 100%;
		height: 1px;
		position: absolute;
		left: 0;
		background: #3a332d;
		transition: transform 0.4s, opacity 0.4s, top 0.4s;
	}
	#hamburger span:nth-child(1) {
		top: 0;
	}
	#hamburger span:nth-child(2) {
		top: 50%;
	}
	#hamburger span:nth-child(3) {
		top: 100%;
	}
	#hamburger.active span:nth-child(1) {
		top: 50%;
		transform: rotate(30deg);
	}
	#hamburger.active span:nth-child(2) {
		opacity: 0;
	}
	#hamburger.active span:nth-child(3) {
		top: 50%;
		transform: rotate(-30deg);
	}
	#mainNav {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	html {
		scroll-padding-top: 58px;
	}
	#header {
		height: 58px;
		padding: 0 20px;
	}
	#logo img {
		height: 38px;
	}
	.headbtn {
		margin: 0 16px 0 auto;
	}
	.headbtn a {
		height: 36px;
		padding: 0 14px;
		gap: 6px;
		font-size: 13px;
		letter-spacing: 0.08em;
	}
	.headbtn a i {
		font-size: 12px;
	}
	#hamburger {
		width: 28px;
		height: 18px;
	}
	#mainNav {
		padding: 90px 20px 40px;
	}
	#mainNav .menu-header-menu > li > a {
		padding: 20px 0;
		font-size: 15px;
	}
}
@media screen and (max-width: 375px) {
	html {
		scroll-padding-top: 54px;
	}
	#header {
		height: 54px;
		padding: 0 15px;
	}
	#logo img {
		height: 32px;
	}
	.headbtn {
		margin: 0 10px 0 auto;
	}
	.headbtn a {
		height: 32px;
		padding: 0 10px;
		gap: 5px;
		font-size: 12px;
		letter-spacing: 0.05em;
	}
	.headbtn a i {
		font-size: 11px;
	}
	#hamburger {
		width: 26px;
		height: 16px;
	}
	#mainNav {
		padding: 80px 15px 40px;
	}
}

/************************************************************/
/*　スマホ用ハンバーガーメニュー
/************************************************************/
html.is-menu-open {
	overflow: hidden;
}
#mobile-menu {
	width: 100%;
	height: 100dvh;
	padding: 0;
	margin: 0;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
	overflow-y: auto;
	background:
		radial-gradient(circle at 100% 0, color-mix(in srgb, var(--main) 16%, transparent) 0, transparent 45%),
		var(--base);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s ease, visibility 0.5s ease;
}
#mobile-menu.is-open {
	opacity: 1;
	visibility: visible;
}
#mobile-menu {
	scrollbar-width: none;
	-ms-overflow-style: none;
}
#mobile-menu::-webkit-scrollbar {
	display: none;
}
.panel_wrap {
	width: 100%;
	max-width: 1200px;
	min-height: 100%;
	padding: 110px 30px 36px;
	margin: 0 auto;
	position: relative;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}
.panel_content {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	flex: 1;
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 50px;
	align-items: start;
}
.panel_nav {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 44px 36px;
}
.panel_nav > div > p {
	padding: 0 0 14px;
	margin: 0;
	position: relative;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 19px;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.3;
}
.panel_nav > div > p span {
	margin: 8px 0 0;
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.25em;
}
.panel_nav > div > ul {
	padding: 0;
	margin: 12px 0 0;
	position: relative;
	list-style: none;
}
.panel_nav > div > ul > li {
	padding: 0;
	margin: 0;
	position: relative;
}
.panel_nav > div > ul > li > a {
	padding: 9px 0;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-decoration: none;
	transition: var(--ease);
}
.panel_nav > div > ul > li > a::before {
	content: "";
	width: 8px;
	height: 1px;
	display: block;
	flex-shrink: 0;
	background: var(--text);
	transition: var(--ease);
}
.panel_nav > div > ul > li > a:hover {
	color: var(--act);
}
.panel_nav > div > ul > li > a:hover::before {
	width: 16px;
	background: var(--act);
}
.panel_nav a[target="_blank"]::after,
.panel_side dd a::after,
.panel_btm a[target="_blank"]::after {
	content: "";
	width: 9px;
	height: 9px;
	display: inline-block;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.panel_side {
	width: 100%;
	padding: 34px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: #fff;
}
.panel_side > p {
	padding: 0;
	margin: 0 0 24px;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.panel_side > a {
	width: 100%;
	height: 54px;
	padding: 0 16px;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	box-sizing: border-box;
	border: 1px solid var(--act);
	background: var(--act);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-decoration: none;
	transition: var(--ease);
}
.panel_side > a + a {
	margin: 10px 0 0;
	border-color: var(--text);
	background: transparent;
	color: var(--text);
}
.panel_side > a::after {
	content: "";
	width: 20px;
	height: 6px;
	display: block;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.panel_side > a:hover {
	background: transparent;
	color: var(--act);
}
.panel_side > a + a:hover {
	border-color: var(--act);
	background: var(--act);
	color: #fff;
}
.panel_side > a:hover::after {
	transform: translateX(5px);
}
.panel_side > dl {
	padding: 24px 0 0;
	margin: 28px 0 0;
	position: relative;
	display: grid;
	gap: 20px;
	border-top: 1px solid var(--text);
}
.panel_side dt {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
}
.panel_side dd {
	padding: 0;
	margin: 8px 0 0;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.8;
}
.panel_side dd a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-en);
	font-size: 12px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	text-decoration: none;
	transition: var(--ease);
}
.panel_side dd a:hover {
	color: var(--act);
	border-color: var(--act);
}
.panel_btm {
	width: 100%;
	padding: 22px 0 0;
	margin: 50px 0 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid var(--text);
}
.panel_btm > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 12px;
	letter-spacing: 0.3em;
	line-height: 1;
}
.panel_btm > ul {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	list-style: none;
}
.panel_btm > ul > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.panel_btm > ul > li > a:hover {
	color: var(--act);
}
.panel_nav > div,
.panel_side,
.panel_btm {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
#mobile-menu.is-open .panel_nav > div,
#mobile-menu.is-open .panel_side,
#mobile-menu.is-open .panel_btm {
	opacity: 1;
	transform: translateY(0);
}
#mobile-menu.is-open .panel_nav > div:nth-child(1) {
	transition-delay: 0.15s;
}
#mobile-menu.is-open .panel_nav > div:nth-child(2) {
	transition-delay: 0.22s;
}
#mobile-menu.is-open .panel_nav > div:nth-child(3) {
	transition-delay: 0.29s;
}
#mobile-menu.is-open .panel_side {
	transition-delay: 0.36s;
}
#mobile-menu.is-open .panel_btm {
	transition-delay: 0.43s;
}

@media (prefers-reduced-motion: reduce) {
	#mobile-menu,
	.panel_nav > div,
	.panel_side,
	.panel_btm {
		transition: none;
	}
}
@media screen and (max-width: 768px) {
	.panel_wrap {
		padding: 90px 20px 30px;
	}
	.panel_content {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.panel_nav {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.panel_nav > div > p {
		padding: 0 0 12px;
		font-size: 17px;
	}
	.panel_nav > div > ul {
		margin: 8px 0 0;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 16px;
	}
	.panel_nav > div > ul > li > a {
		padding: 8px 0;
		gap: 8px;
		font-size: 13px;
		letter-spacing: 0.04em;
	}
	.panel_side {
		padding: 28px 22px;
	}
	.panel_btm {
		margin: 40px 0 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
	}
}
@media screen and (max-width: 375px) {
	.panel_wrap {
		padding: 80px 15px 26px;
	}
	.panel_nav > div > ul > li > a {
		font-size: 12px;
		letter-spacing: 0.02em;
	}
	.panel_side {
		padding: 24px 18px;
	}
	.panel_side > a {
		height: 50px;
		font-size: 14px;
	}
}


/************************************************************/
/*　フッター
/************************************************************/
#footer {
	width: 100%;
	padding: 100px 30px 0;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: var(--text);
	color: #fff;
}
.footer_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	display: grid;
	grid-template-columns: 360px 1fr;
}
.footer_info {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
}
.footer_info > a {
	width: 220px;
	display: block;
	transition: opacity 0.3s;
}
.footer_info > a:hover {
	opacity: 0.7;
}
.footer_info > a img {
	width: 100%;
	height: auto;
	display: block;
}
.footer_info > dl {
	padding: 0;
	margin: 44px 0 0;
	position: relative;
	display: grid;
	gap: 32px;
}
.footer_info > dl > div {
	padding: 0;
	margin: 0;
	position: relative;
}
.footer_info dt {
	padding: 0;
	margin: 0;
	color: rgba(255, 255, 255, 0.6);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
}
.footer_info dd {
	padding: 0;
	margin: 12px 0 0;
	color: #fff;
	font-family: var(--font-jp);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.8;
}
.footer_info dd a {
	padding: 0 2px 8px 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
	color: #fff;
	font-family: var(--font-en);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.footer_info dd a::before {
	content: "";
	width: 11px;
	height: 14px;
	display: block;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 15.2S1 9.6 1 6a5 5 0 0 1 10 0c0 3.6-5 9.2-5 9.2z' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3Ccircle cx='6' cy='6' r='1.8' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 15.2S1 9.6 1 6a5 5 0 0 1 10 0c0 3.6-5 9.2-5 9.2z' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3Ccircle cx='6' cy='6' r='1.8' fill='none' stroke='%23000' stroke-width='1.1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.footer_info dd a:hover {
	color: var(--act);
	border-color: var(--act);
}
.footer_nav {
	width: auto;
	padding: 0 0 0 60px;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, auto);
	justify-content: space-between;
	gap: 40px;
}
.footer_nav > div > p {
	padding: 0;
	margin: 0;
	position: relative;
	color: rgba(255, 255, 255, 0.6);
	font-family: var(--font-jp);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.3;
}
.footer_nav > div > ul {
	padding: 0;
	margin: 22px 0 0;
	position: relative;
	list-style: none;
}
.footer_nav > div > ul > li {
	padding: 0;
	margin: 0;
	position: relative;
}
.footer_nav > div > ul > li + li {
	margin: 10px 0 0;
}
.footer_nav > div > ul > li > a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	font-family: var(--font-jp);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-decoration: none;
	transition: var(--ease);
}
.footer_nav > div > ul > li > a::before {
	content: "";
	width: 8px;
	height: 1px;
	display: block;
	flex-shrink: 0;
	background: rgba(255, 255, 255, 0.5);
	transition: var(--ease);
}
.footer_nav > div > ul > li > a:hover {
	color: var(--act);
}
.footer_nav > div > ul > li > a:hover::before {
	background: var(--act);
}
.footer_nav a[target="_blank"]::after,
.footer_btm a[target="_blank"]::after {
	content: "";
	width: 9px;
	height: 9px;
	display: inline-block;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.footer_btm {
	width: 100%;
	max-width: 1200px;
	padding: 28px 0 34px;
	margin: 80px auto 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.footer_btm > ul {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	list-style: none;
}
.footer_btm > ul > li > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.8);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.footer_btm > ul > li > a:hover {
	color: var(--act);
}
.footer_btm > p {
	padding: 0;
	margin: 0;
	position: relative;
	color: rgba(255, 255, 255, 0.6);
	font-family: var(--font-en);
	font-size: 13px;
	letter-spacing: 0.15em;
	line-height: 1;
}
.footer_btm > p small {
	font-size: inherit;
}

@media screen and (max-width: 1280px) {
	.footer_inner {
		grid-template-columns: 320px 1fr;
	}
	.footer_nav {
		padding: 0 0 0 40px;
		gap: 30px;
	}
	.footer_nav > div > ul > li > a {
		font-size: 13px;
		letter-spacing: 0.05em;
	}
}
@media screen and (max-width: 1024px) {
	#footer {
		padding: 80px 30px 0;
	}
	.footer_inner {
		grid-template-columns: 1fr;
	}
	.footer_info > dl {
		margin: 36px 0 0;
		grid-template-columns: repeat(2, 1fr);
		gap: 30px;
	}
	.footer_nav {
		padding: 50px 0 0;
		margin: 50px 0 0;
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}
	.footer_btm {
		margin: 60px auto 0;
	}
}
@media screen and (max-width: 768px) {
	#footer {
		padding: 60px 20px 0;
	}
	.footer_info > a {
		width: 190px;
	}
	.footer_info > dl {
		grid-template-columns: 1fr;
		gap: 26px;
	}
	.footer_info dd {
		font-size: 13px;
	}
	.footer_nav {
		padding: 40px 0 0;
		margin: 40px 0 0;
		grid-template-columns: repeat(2, 1fr);
		gap: 36px 20px;
	}
	.footer_nav > div > p {
		font-size: 13px;
	}
	.footer_nav > div > ul {
		margin: 18px 0 0;
	}
	.footer_nav > div > ul > li + li {
		margin: 12px 0 0;
	}
	.footer_btm {
		padding: 24px 0 30px;
		margin: 44px auto 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
	}
	.footer_btm > ul > li > a {
		font-size: 12px;
	}
	.footer_btm > p {
		font-size: 11px;
	}
}
@media screen and (max-width: 375px) {
	#footer {
		padding: 50px 15px 0;
	}
	.footer_nav {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

/*固定バナー*/
.sideBtn {
	width: 60px;
	padding: 0;
	margin: 0;
	position: fixed;
	right: 0;
	bottom: 50px;
	z-index: 50;
	list-style: none;
}
.sideBtn > li {
	padding: 0;
	margin: 0;
	position: relative;
}
.sideBtn > li:first-child > a {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	background: var(--act);
	color: #fff;
	text-decoration: none;
	transition: var(--ease);
}
.sideBtn > li:first-child > a > strong {
	display: block;
	color: #fff;
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
}
.sideBtn > li:first-child > a:hover {
	opacity: 0.7;
}
.sideBtn > li.zeh_popBtn {
	background: #fff;
	cursor: pointer;
	transition: var(--ease);
}
.sideBtn > li.zeh_popBtn:hover {
	opacity: 0.7;
}
.sideBtn > li.zeh_popBtn img {
	width: 100%;
	height: auto;
	padding: 0;
	margin: 0;
	display: block;
}
.sideBtn > li:last-child {
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: var(--ease);
}
.sideBtn > li:last-child.is-show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.sideBtn > li:last-child > a {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	background: var(--text);
	color: #fff;
	text-decoration: none;
	transition: var(--ease);
}
.sideBtn > li:last-child > a::before {
	content: "";
	width: 10px;
	height: 14px;
	display: block;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 18'%3E%3Cpath d='M6 18V1M1 6l5-5 5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 18'%3E%3Cpath d='M6 18V1M1 6l5-5 5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.sideBtn > li:last-child > a > span {
	color: #fff;
	font-family: var(--font-en);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	white-space: nowrap;
}
.sideBtn > li:last-child > a:hover {
	opacity: 0.7;
}
.sideBtn > li:last-child > a:hover::before {
	transform: translateY(-3px);
}

@media screen and (max-width: 768px) {
	.sideBtn {
		width: 48px;
		bottom: 20px;
	}
	.sideBtn > li:not(:last-child) {
		display: none;
	}
	.sideBtn > li:last-child > a {
		gap: 4px;
	}
	.sideBtn > li:last-child > a > span {
		font-size: 8px;
		letter-spacing: 0.05em;
	}
}

/************************************************************/
/*　サイドバー
/************************************************************/
#sidebar .aside {
	width: 100%;
	padding: 0;
	margin: 0 0 56px;
	border: none;
	background: none;
}
#sidebar .aside:last-child {
	margin: 0;
}
#sidebar .aside > h2 {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: auto;
	padding: 0 0 16px;
	margin: 0 0 8px;
	border: none;
	border-bottom: 1px solid var(--border);
	border-radius: 0;
	background: none;
	color: #888;
	font-family: var(--font-jp);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
#sidebar .aside > h2::before {
	content: none;
}
#sidebar .aside > h2::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 40px;
	height: 1px;
	background: var(--text);
}
#sidebar .aside > h2 em {
	display: block;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 26px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1;
}
#sidebar .side-posts {
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
}
#sidebar .side-posts > li {
	padding: 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
#sidebar .side-posts > li > a {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	column-gap: 14px;
	align-items: center;
	padding: 14px 0;
	margin: 0;
	color: var(--text);
	text-decoration: none;
}
#sidebar .side-posts figure {
	width: 100%;
	padding: 0;
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--base);
}
#sidebar .side-posts figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ease);
}
#sidebar .side-posts > li > a:hover figure img {
	transform: scale(1.06);
}
#sidebar .side-posts-txt {
	padding: 0;
	margin: 0;
}
#sidebar .side-posts-txt > time {
	display: block;
	margin: 0 0 6px;
	color: #888;
	font-family: var(--font-en);
	font-size: 12px;
	letter-spacing: 0.1em;
	line-height: 1;
}
#sidebar .side-posts-txt > span {
	display: -webkit-box;
	overflow: hidden;
	color: var(--text);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	transition: var(--ease);
}
#sidebar .side-posts > li > a:hover .side-posts-txt > span {
	color: var(--act);
}
#sidebar .side-posts > li.current .side-posts-txt > time {
	color: var(--text);
}
#sidebar .side-posts > li.current .side-posts-txt > span {
	font-weight: 700;
}
#sidebar .side-more {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 13px 18px;
	margin: 20px 0 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-decoration: none;
	transition: var(--ease);
}
#sidebar .side-more::after {
	content: "";
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
	transition: var(--ease);
}
#sidebar .side-more:hover {
	background: var(--text);
	color: #fff;
}
#sidebar .side-more:hover::after {
	width: 26px;
}
#sidebar .side-menu {
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
}
#sidebar .side-menu li {
	padding: 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
#sidebar .side-menu li a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 15px 4px;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-decoration: none;
	transition: var(--ease);
}
#sidebar .side-menu li a::after {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	transition: var(--ease);
}
#sidebar .side-menu li a:hover {
	padding: 15px 4px 15px 10px;
	color: var(--act);
}
#sidebar .side-menu li.current-menu-item > a {
	font-weight: 700;
}
#sidebar .side-menu .sub-menu {
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--border);
	list-style: none;
}
#sidebar .side-menu .sub-menu li:last-child {
	border-bottom: none;
}
#sidebar .side-menu .sub-menu li a {
	padding: 12px 4px 12px 18px;
	color: #555;
	font-size: 13px;
}
#sidebar .side-menu .sub-menu li a:hover {
	padding: 12px 4px 12px 24px;
	color: var(--act);
}
@media screen and (max-width: 1024px) {
	#sidebar .aside {
		margin: 0 0 48px;
	}
	#sidebar .aside > h2 em {
		font-size: 22px;
	}
}
@media screen and (max-width: 768px) {
	#sidebar .aside {
		margin: 0 0 40px;
	}
	#sidebar .aside > h2 {
		gap: 6px;
		padding: 0 0 12px;
		font-size: 11px;
	}
	#sidebar .aside > h2 em {
		font-size: 20px;
	}
	#sidebar .side-posts > li > a {
		grid-template-columns: 72px minmax(0, 1fr);
		column-gap: 12px;
		padding: 12px 0;
	}
	#sidebar .side-more {
		padding: 12px 16px;
		margin: 16px 0 0;
		font-size: 12px;
	}
	#sidebar .side-menu li a {
		padding: 13px 4px;
		font-size: 13px;
	}
	#sidebar .side-menu li a:hover {
		padding: 13px 4px 13px 10px;
	}
}

/************************************************************/
/*　メインビジュアル
/************************************************************/
#fv {
	width: 100%;
	height: calc(100svh - 80px);
	min-height: 640px;
	max-height: 960px;
	padding: 0 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	background: var(--base);
}
.fv_slider {
	width: 70%;
	height: 100%;
	padding: 0;
	margin: 0;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	-webkit-mask-image: linear-gradient(to right, #000 65%, transparent 100%);
	mask-image: linear-gradient(to right, #000 65%, transparent 100%);
}
.fv_slider .swiper-wrapper,
.fv_slider .swiper-slide {
	width: 100%;
	height: 100%;
}
.fv_slider .swiper-slide {
	overflow: hidden;
}
.fv_slider picture {
	width: 100%;
	height: 100%;
	display: block;
}
.fv_slider img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transform: scale(1);
	transition: transform 0s 2s;
}
.fv_slider .swiper-slide-active img {
	transform: scale(1.08);
	transition: transform 7s linear;
}
.fv_inner {
	width: 25%;
	min-width: 300px;
	height: 100%;
	padding: 50px;
	margin: 0 0 0 auto;
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.fv_copy {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}
#fv .fv_catch {
	width: auto;
	padding: 0;
	margin: 0 auto;
	position: relative;
	display: flex;
	flex-direction: row-reverse;
	align-items: flex-start;
	gap: 0.5em;
	border: none;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: clamp(28px, 4.2svh, 40px);
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1.6;
}
#fv .fv_catch::before,
#fv .fv_catch::after {
	display: none;
}
#fv .fv_catch > span {
	display: block;
	font-style: normal;
	writing-mode: vertical-rl;
}
#fv .fv_catch > span:last-child {
	padding-top: 1.5em;
}
#fv .fv_catch strong {
	color: var(--main);
	font-weight: 400;
}
#fv .fv_catch b {
	color: var(--act);
	font-weight: 400;
}
#fv .fv_lead {
	padding: 0;
	margin: clamp(32px, 5svh, 56px) 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 2.2;
	text-align: center;
}
#fv .fv_en {
	padding: 0;
	margin: 0;
	position: absolute;
	bottom: 50px;
	font-style: normal;
	line-height: 1;
}
#fv .fv_en {
	left: 50px;
	color: #fff;
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.35em;
	text-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
	z-index: 10;
}
#fv .fv_area {
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.25em;
	margin: auto auto 0;
}
#fv .fv_char {
	display: inline-block;
	font-style: normal;
}
#fv.is-anim .fv_slider {
	opacity: 0;
}
#fv.is-anim.is-show .fv_slider {
	opacity: 1;
	transition: opacity 1.6s ease;
}
#fv.is-anim .fv_char {
	opacity: 0;
	filter: blur(8px);
	transform: translateY(-0.4em);
}
#fv.is-anim.is-show .fv_char {
	opacity: 1;
	filter: blur(0);
	transform: translateY(0);
	transition: opacity 1.4s ease, filter 1.4s ease, transform 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	transition-delay: calc(var(--i) * 0.08s + 0.4s);
}
#fv.is-anim .fv_lead,
#fv.is-anim .fv_area,
#fv.is-anim .fv_en {
	opacity: 0;
	transform: translateY(12px);
}
#fv.is-anim.is-show .fv_lead,
#fv.is-anim.is-show .fv_area,
#fv.is-anim.is-show .fv_en {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 1.2s ease, transform 1.2s ease;
}
#fv.is-anim.is-show .fv_lead {
	transition-delay: calc(var(--chars) * 0.08s + 0.8s);
}
#fv.is-anim.is-show .fv_area,
#fv.is-anim.is-show .fv_en {
	transition-delay: calc(var(--chars) * 0.08s + 1.4s);
}

@media screen and (max-width: 1280px) {
	#fv .fv_lead {
		font-size: 13px;
	}
}
@media screen and (max-width: 1024px) {
	#fv {
		height: calc(100svh - 70px);
		min-height: 560px;
	}
	.fv_slider {
		width: 72%;
	}
	#fv .fv_catch {
		font-size: clamp(26px, 3.8svh, 34px);
	}
	#fv .fv_lead {
		letter-spacing: 0.08em;
	}
	#fv .fv_en,
	#fv .fv_area {
		bottom: 50px;
	}
	#fv .fv_en {
		font-size: 12px;
		letter-spacing: 0.3em;
	}
	#fv .fv_area {
		font-size: 12px;
		letter-spacing: 0.2em;
	}
}
@media screen and (max-width: 1024px) {
	#fv {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 300px;
		height: auto;
		min-height: 0;
		max-height: none;
		padding: 0;
	}
	.fv_slider {
		grid-column: 1;
		grid-row: 1;
		align-self: stretch;
		width: auto;
		height: auto;
		min-height: 100%;
		position: relative;
		top: auto;
		left: auto;
	}
	.fv_inner {
		grid-column: 2;
		grid-row: 1;
		width: auto;
		min-width: 0;
		height: auto;
		padding: 70px 30px 60px;
		margin: 0;
	}
	#fv .fv_catch {
		font-size: 32px;
	}
	#fv .fv_lead {
		margin: 40px 0 0;
		letter-spacing: 0.08em;
	}
	#fv .fv_area {
		margin: 40px auto 0;
		font-size: 12px;
		letter-spacing: 0.2em;
	}
	#fv .fv_en {
		bottom: 30px;
		left: 30px;
		font-size: 12px;
		letter-spacing: 0.3em;
	}
}
@media screen and (max-width: 768px) {
	#fv {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 0 20px 50px;
	}
	.fv_slider {
		width: calc(100% + 40px);
		height: auto;
		min-height: 0;
		margin: 0 -20px;
		aspect-ratio: 4 / 3;
		-webkit-mask-image: linear-gradient(to bottom, #000 85%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 85%, transparent 100%);
	}
	.fv_inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		min-width: 0;
		height: auto;
		padding: 36px 0 0;
		margin: 0;
	}
	.fv_copy {
		margin: 0;
		position: static;
		align-items: center;
		transform: none;
	}
	#fv .fv_catch {
		font-size: 28px;
	}
	#fv .fv_lead {
		margin: 28px 0 0;
		font-size: 13px;
		letter-spacing: 0.08em;
		line-height: 2;
	}
	#fv .fv_area {
		margin: 28px 0 0;
		position: static;
		font-size: 12px;
		letter-spacing: 0.2em;
	}
	#fv .fv_en {
		margin: 14px 0 0;
		position: static;
		color: var(--main);
		font-size: 11px;
		letter-spacing: 0.25em;
		text-align: center;
		text-shadow: none;
	}
}
@media screen and (max-width: 375px) {
	#fv {
		padding: 0 15px 40px;
	}
	.fv_slider {
		width: calc(100% + 30px);
		margin: 0 -15px;
	}
	.fv_inner {
		padding: 30px 0 0;
	}
	#fv .fv_catch {
		font-size: 24px;
	}
	#fv .fv_lead {
		font-size: 12px;
		letter-spacing: 0.05em;
	}
	#fv .fv_area {
		font-size: 11px;
		letter-spacing: 0.15em;
	}
	#fv .fv_en {
		font-size: 10px;
		letter-spacing: 0.15em;
	}
}

/************************************************************/
/*　ページビジュアル
/************************************************************/
#pv {
	width: 100%;
	height: 420px;
	padding: 0 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	align-items: center;
	background: var(--base);
}
#pv::before {
	content: "";
	width: 62%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 0;
	background-image: var(--pv-bg, none);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	-webkit-mask-image: linear-gradient(to left, #000 65%, transparent 100%);
	mask-image: linear-gradient(to left, #000 65%, transparent 100%);
}
#pv > header {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
}
#pv > header > h1 {
	max-width: 560px;
	padding: 0;
	margin: 22px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 40px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.4;
}
#pv > header > h1::before,
#pv > header > h1::after {
	display: none;
}
#pv > header > h1.large {
	font-size: 46px;
}
#pv > header > em {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1;
	text-transform: uppercase;
}
#pv > header > em::before {
	content: "";
	width: 40px;
	height: 1px;
	display: block;
	flex-shrink: 0;
	background: var(--text);
}

@media screen and (max-width: 1280px) {
	#pv > header > h1 {
		font-size: 36px;
	}
	#pv > header > h1.large {
		font-size: 42px;
	}
}
@media screen and (max-width: 1024px) {
	#pv {
		height: 340px;
	}
	#pv::before {
		width: 66%;
	}
	#pv > header > h1 {
		max-width: 420px;
		margin: 18px 0 0;
		font-size: 30px;
	}
	#pv > header > h1.large {
		font-size: 34px;
	}
	#pv > header > em {
		gap: 12px;
		font-size: 13px;
	}
	#pv > header > em::before {
		width: 30px;
	}
}
@media screen and (max-width: 768px) {
	#pv {
		height: auto;
		padding: 50px 20px 40px;
	}
	#pv[style] {
		padding: 170px 20px 36px;
	}
	#pv::before {
		width: 100%;
		height: 210px;
		left: 0;
		right: auto;
		-webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
	}
	#pv > header > h1 {
		max-width: none;
		margin: 14px 0 0;
		font-size: 24px;
		letter-spacing: 0.1em;
	}
	#pv > header > h1.large {
		font-size: 27px;
	}
	#pv > header > em {
		gap: 10px;
		font-size: 11px;
		letter-spacing: 0.25em;
	}
	#pv > header > em::before {
		width: 24px;
	}
}
@media screen and (max-width: 375px) {
	#pv {
		padding: 44px 15px 36px;
	}
	#pv[style] {
		padding: 150px 15px 32px;
	}
	#pv::before {
		height: 190px;
	}
	#pv > header > h1 {
		font-size: 21px;
	}
	#pv > header > h1.large {
		font-size: 24px;
	}
}

/************************************************************/
/*　フォーム
/************************************************************/
#pageContact {
	--side: max(40px, calc((100% - 1000px) / 2));
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	padding: 100px var(--side);
	margin: 0;
}
.contact_box {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	column-gap: 50px;
	align-items: center;
	padding: 0;
	margin: 0 0 100px;
}
.contact_box_left {
	padding: 40px;
	margin: 0;
	background: var(--base);
	text-align: center;
}
.contact_box_left > .contact_label {
	display: block;
	margin: 0 0 12px;
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.4;
}
#pageContact .contact_tel {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 0 0 28px;
	margin: 0 0 28px;
	border-bottom: 1px solid var(--border);
	line-height: 1;
}
#pageContact .contact_tel > i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--main);
	color: #fff;
	font-size: 18px;
}
#pageContact .contact_tel > a {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 40px;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-decoration: none;
}
.contact_line {
	padding: 0;
	margin: 0;
}
#pageContact .contact_line > p {
	padding: 0;
	margin: 0 0 12px;
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
#pageContact .contact_line > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	max-width: 300px;
	padding: 14px 20px;
	margin: 0;
	background: var(--line);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-decoration: none;
	transition: var(--ease);
}
#pageContact .contact_line > a > i {
	font-size: 22px;
}
#pageContact .contact_line > a:hover {
	opacity: 0.8;
}
.contact_box_right {
	padding: 0;
	margin: 0;
}
#pageContact .contact_box_right > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2.1;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.contact_form {
	padding: 0;
	margin: 0;
}
#pageContact .contact_form > h2 {
	position: relative;
	width: auto;
	padding: 0 0 22px;
	margin: 0 0 50px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-align: center;
}
#pageContact .contact_form > h2::before {
	content: none;
}
#pageContact .contact_form > h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 40px;
	height: 1px;
	background: var(--text);
	transform: translateX(-50%);
}
#pageContact .table-contactform7 {
	width: 100%;
	padding: 0;
	margin: 0 0 40px;
	border: none;
	border-top: 1px solid var(--text);
	border-collapse: collapse;
	border-spacing: 0;
	background: none;
}
#pageContact .table-contactform7 tr {
	border: none;
	background: none;
}
#pageContact .table-contactform7 th,
#pageContact .table-contactform7 td {
	padding: 22px 0;
	margin: 0;
	border: none;
	border-bottom: 1px solid var(--border);
	background: none;
	text-align: left;
	vertical-align: top;
}
#pageContact .table-contactform7 th {
	width: 240px;
	padding: 34px 20px 22px 0;
	color: var(--text);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.5;
	white-space: nowrap;
}
#pageContact .table-contactform7 th > span {
	display: inline-block;
	vertical-align: middle;
}
#pageContact .table-contactform7 .required-contactform7 {
	padding: 3px 8px;
	margin: 0 10px 0 0;
	background: var(--act);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
#pageContact .table-contactform7 .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}
#pageContact .table-contactform7 input[type="text"],
#pageContact .table-contactform7 input[type="email"],
#pageContact .table-contactform7 input[type="tel"],
#pageContact .table-contactform7 textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 14px 16px;
	margin: 0;
	border: 1px solid var(--border);
	border-radius: 0;
	background: #fff;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	transition: var(--ease);
	-webkit-appearance: none;
	appearance: none;
}
#pageContact .table-contactform7 textarea {
	height: 220px;
	resize: vertical;
}
#pageContact .table-contactform7 input:focus,
#pageContact .table-contactform7 textarea:focus {
	border-color: var(--text);
	outline: none;
}
#pageContact .table-contactform7 ::placeholder {
	color: #aaa;
}
#pageContact .table-contactform7 .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 6px 0 0;
}
#pageContact .table-contactform7 .wpcf7-radio .wpcf7-list-item {
	display: block;
	margin: 0;
}
#pageContact .table-contactform7 .wpcf7-radio label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	margin: 0;
	border: 1px solid var(--border);
	background: #fff;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.4;
	cursor: pointer;
	transition: var(--ease);
}
#pageContact .table-contactform7 .wpcf7-radio label:hover {
	border-color: var(--text);
}
#pageContact .table-contactform7 .wpcf7-radio label:has(input:checked) {
	border-color: var(--main);
	background: var(--base);
	font-weight: 700;
}
#pageContact .table-contactform7 .wpcf7-radio input[type="radio"] {
	position: relative;
	display: block;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	padding: 0;
	margin: 0;
	border: 1px solid #bbb;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: var(--ease);
	-webkit-appearance: none;
	appearance: none;
}
#pageContact .table-contactform7 .wpcf7-radio input[type="radio"]:checked {
	border-color: var(--main);
	background: radial-gradient(circle, var(--main) 0 45%, #fff 50% 100%);
}
#pageContact .table-contactform7 .wpcf7-radio input[type="radio"]:focus-visible {
	outline: 2px solid var(--main);
	outline-offset: 2px;
}
#pageContact .table-contactform7 .wpcf7-radio .wpcf7-list-item-label {
	display: block;
}
#pageContact .table-contactform7 .wpcf7-not-valid-tip {
	margin: 8px 0 0;
	font-size: 13px;
}
#pageContact .contact_turnstile {
	display: flex;
	justify-content: center;
	padding: 0;
	margin: 0 0 30px;
}
#pageContact .contact_submit {
	padding: 0;
	margin: 0;
	text-align: center;
}
#pageContact .contact_submit input[type="submit"] {
	width: 100%;
	max-width: 320px;
	height: 64px;
	padding: 0 20px;
	margin: 0;
	border: 1px solid var(--text);
	border-radius: 0;
	background: var(--text);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.2em;
	cursor: pointer;
	transition: var(--ease);
	-webkit-appearance: none;
	appearance: none;
}
#pageContact .contact_submit input[type="submit"]:hover {
	background: #fff;
	color: var(--text);
}
#pageContact .contact_submit .wpcf7-spinner {
	display: block;
	margin: 12px auto 0;
}
#pageContact .wpcf7-response-output {
	padding: 14px 18px;
	margin: 30px 0 0;
	font-size: 14px;
	line-height: 1.7;
	text-align: center;
}
@media screen and (max-width: 1024px) {
	#pageContact {
		--side: 30px;
	}
	.contact_box {
		column-gap: 30px;
	}
	.contact_box_left {
		padding: 32px 24px;
	}
	#pageContact .contact_tel > a {
		font-size: 34px;
	}
	#pageContact .table-contactform7 th {
		width: 200px;
	}
}
@media screen and (max-width: 768px) {
	#pageContact {
		--side: 20px;
		padding: 70px var(--side);
	}
	.contact_box {
		grid-template-columns: 1fr;
		row-gap: 28px;
		margin: 0 0 70px;
	}
	.contact_box_right {
		grid-row: 1;
	}
	#pageContact .contact_box_right > p {
		font-size: 14px;
		line-height: 2;
	}
	.contact_box_left {
		padding: 28px 20px;
	}
	#pageContact .contact_tel {
		gap: 10px;
		padding: 0 0 22px;
		margin: 0 0 22px;
	}
	#pageContact .contact_tel > i {
		width: 36px;
		height: 36px;
		font-size: 15px;
	}
	#pageContact .contact_tel > a {
		font-size: 30px;
	}
	#pageContact .contact_form > h2 {
		padding: 0 0 16px;
		margin: 0 0 32px;
		font-size: 21px;
	}
	#pageContact .table-contactform7 th,
	#pageContact .table-contactform7 td {
		display: block;
		width: 100%;
	}
	#pageContact .table-contactform7 th {
		padding: 20px 0 10px;
		border-bottom: none;
		font-size: 13px;
	}
	#pageContact .table-contactform7 td {
		padding: 0 0 20px;
	}
	#pageContact .table-contactform7 input[type="text"],
	#pageContact .table-contactform7 input[type="email"],
	#pageContact .table-contactform7 input[type="tel"],
	#pageContact .table-contactform7 textarea {
		font-size: 16px;
	}
	#pageContact .table-contactform7 textarea {
		height: 180px;
	}
	#pageContact .table-contactform7 .wpcf7-radio {
		gap: 8px;
		padding: 0;
	}
	#pageContact .table-contactform7 .wpcf7-radio label {
		padding: 10px 14px;
		font-size: 13px;
	}
	#pageContact .contact_submit input[type="submit"] {
		height: 56px;
		font-size: 15px;
	}
}
@media screen and (max-width: 375px) {
	#pageContact {
		--side: 16px;
	}
	#pageContact .contact_tel > a {
		font-size: 26px;
	}
	#pageContact .table-contactform7 .wpcf7-radio {
		display: grid;
		grid-template-columns: 1fr;
	}
}

/************************************************************/
/*　サイトマップ
/************************************************************/
#contents .sitemap-menu {
	width: 100%;
	max-width: 1000px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	list-style: none;
	border-top: 1px solid #0f2246;
}
#contents .sitemap-menu li {
	padding: 0;
	margin: 0;
	position: relative;
	list-style: none;
}
#contents .sitemap-menu li::before {
	display: none;
}
#contents .sitemap-menu > li {
	padding: 0;
	margin: 0;
	position: relative;
	border-bottom: 1px solid #dfe5ec;
}
#contents .sitemap-menu > li > a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 24px 40px 24px 0;
	margin: 0;
	position: relative;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--text);
	text-decoration: none;
	transition: 0.3s;
}
#contents .sitemap-menu > li > a::before {
	content: "";
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	display: block;
	background: var(--sub);
	border-radius: 50%;
}
#contents .sitemap-menu > li > a::after {
	content: "";
	width: 8px;
	height: 8px;
	display: block;
	position: absolute;
	top: 50%;
	right: 6px;
	border-top: 1px solid #0f2246;
	border-right: 1px solid #0f2246;
	transform: translateY(-50%) rotate(45deg);
	transition: 0.3s;
}
#contents .sitemap-menu > li > a:hover {
	color: var(--sub);
}
#contents .sitemap-menu > li > a:hover::after {
	right: 0;
	border-color: var(--sub);
}
#contents .sitemap-menu .sub-menu {
	display: block;
	padding: 0 0 20px 22px;
	margin: -6px 0 0;
	position: relative;
	list-style: none;
}
#contents .sitemap-menu .sub-menu li a {
	display: block;
	padding: 10px 0 10px 18px;
	margin: 0;
	position: relative;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--text);
	text-decoration: none;
	transition: 0.3s;
}
#contents .sitemap-menu .sub-menu li a::before {
	content: "";
	width: 10px;
	height: 1px;
	display: block;
	position: absolute;
	top: 21px;
	left: 0;
	background: var(--sub);
	transition: 0.3s;
}
#contents .sitemap-menu .sub-menu li a:hover {
	color: var(--sub);
}
#contents .sitemap-menu .sub-menu li a:hover::before {
	width: 14px;
}
#contents .sitemap-menu .sub-menu .sub-menu {
	display: block;
	padding: 0 0 6px 18px;
	margin: 0;
	border-left: 1px solid #dfe5ec;
}
#contents .sitemap-menu .sub-menu .sub-menu li a {
	padding: 6px 0 6px 14px;
	font-size: 14px;
	color: #5a6878;
}
#contents .sitemap-menu .sub-menu .sub-menu li a::before {
	width: 6px;
	top: 17px;
	background: #c8d2dd;
}
#contents .sitemap-menu .sub-menu .sub-menu li a:hover {
	color: var(--sub);
}
#contents .sitemap-menu .sub-menu .sub-menu li a:hover::before {
	width: 8px;
	background: var(--sub);
}

/************************************************************/
/*　記事詳細
/************************************************************/
#contents .articleHeader {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 16px;
	width: 100%;
	padding: 0;
	margin: 0 0 50px;
	position: relative;
}
#contents .articleHeader .post-taxonomy {
	order: 1;
	padding: 0;
	margin: 0 0 16px;
	position: relative;
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 5px;
}
#contents .articleHeader .post-taxonomy a {
	display: inline-block;
	padding: 5px 14px;
	margin: 0;
	position: relative;
	background: #0f2246;
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0.08em;
	color: #fff;
	text-decoration: none;
	transition: 0.3s;
}
#contents .articleHeader .post-taxonomy a:hover {
	background: var(--sub);
}
#contents .articleHeader .articleHeader__info {
	order: 2;
	padding: 0;
	margin: 0 0 16px;
	position: relative;
}
#contents .articleHeader .articleHeader__info .entry-date {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	margin: 0;
	position: relative;
	font-size: 13px;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #8a96a3;
}
#contents .articleHeader .articleHeader__info .entry-date i {
	font-size: 12px;
	color: var(--sub);
}
#contents .articleHeader .articleHeader__info .list-label a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 5px 8px;
	margin: 0;
	background: var(--text);
	color: #fff;
	font-size: 12px;
	line-height: 1;
	text-decoration: none;
	border-radius: 0;
	transition: var(--ease);
}
#contents .articleHeader .articleHeader__info .list-label a:hover {
	background: var(--act);
	transition: var(--ease);
}
#contents .articleHeader h1.articleHeader__title {
	order: 3;
	width: 100%;
	padding: 0 0 24px;
	margin: 0 0 32px;
	position: relative;
	border: none;
	background: none;
	border-bottom: 2px solid #ccc;
	font-family: var(--font-mincho);
	font-size: 28px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--text);
}
#contents .articleHeader h1.articleHeader__title::before {
	display: none;
}
#contents .articleHeader h1.articleHeader__title::after {
	content: "";
	width: 60px;
	height: 2px;
	display: block;
	position: absolute;
	left: 0;
	bottom: -2px;
	background: var(--grad);
}
#contents .articleHeader .post-thumbnail {
	order: 4;
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #f4f7fa;
}
#contents .articleHeader .post-thumbnail img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
#contents .snsList a {
	width: 3.5rem;
	height: 3.5rem;
	text-decoration: none;
	transition: all .5s;
	cursor: pointer;
}
@media screen and (max-width: 1024px) {
	#contents .articleHeader h1.articleHeader__title {
		font-size: 25px;
	}
}
@media screen and (max-width: 768px) {
	#contents .articleHeader {
		gap: 0 12px;
		margin: 0 0 35px;
	}
	#contents .articleHeader .post-taxonomy,
	#contents .articleHeader .articleHeader__info {
		margin: 0 0 12px;
	}
	#contents .articleHeader .post-taxonomy a {
		padding: 4px 10px;
		font-size: 11px;
		letter-spacing: 0.05em;
	}
	#contents .articleHeader .articleHeader__info .entry-date {
		font-size: 12px;
	}
	#contents .articleHeader h1.articleHeader__title {
		padding: 0 0 16px;
		margin: 0 0 24px;
		font-size: 21px;
		line-height: 1.55;
	}
	#contents .articleHeader h1.articleHeader__title::after {
		width: 48px;
	}
	#contents .snsList a {
		width: 3rem;
		height: 3rem;
	}
}
@media screen and (max-width: 375px) {
	#contents .articleHeader {
		margin: 0 0 30px;
	}
	#contents .articleHeader h1.articleHeader__title {
		padding: 0 0 14px;
		margin: 0 0 20px;
		font-size: 19px;
	}
	#contents .snsList a {
		width: 2.75rem;
		height: 2.75rem;
	}
}


/************************************************************/
/*　共通
/************************************************************/

/*見出しヘッダー*/
#contents .sec_head {
	width: 100%;
	padding: 0;
	margin: 0 0 70px;
	position: relative;
	display: grid;
	grid-template-columns: 220px 1fr;
	align-items: center;
}
#contents .sec_head > p {
	width: auto;
	padding: 0 0 1em;
	margin: 0;
	position: relative;
	justify-self: start;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 18px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1;
}
#contents .sec_head > p::after {
	content: "";
	width: 60px;
	height: 1px;
	position: absolute;
	top: 2em;
	left: 0;
	background: var(--text);
}
#contents .sec_head > p span {
	margin: 44px 0 0;
	display: block;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.2em;
}
#contents .sec_head > h2 {
	width: auto;
	padding: 20px 0 20px 60px;
	margin: 0;
	position: relative;
	border: none;
	border-left: 1px solid var(--text);
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 38px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.5;
}
#contents .sec_head > h2::before,
#contents .sec_head > h2::after {
	display: none;
}
@media screen and (max-width: 1280px) {
	#contents .sec_head {
		grid-template-columns: 180px 1fr;
	}
	#contents .sec_head > h2 {
		padding: 20px 0 20px 44px;
		font-size: 34px;
	}
}
@media screen and (max-width: 1024px) {
	#contents .sec_head {
		margin: 0 0 50px;
		grid-template-columns: 160px 1fr;
	}
	#contents .sec_head > p {
		font-size: 16px;
	}
	#contents .sec_head > p span {
		margin: 40px 0 0;
		font-size: 14px;
	}
	#contents .sec_head > h2 {
		padding: 16px 0 16px 40px;
		font-size: 30px;
	}
}
@media screen and (max-width: 768px) {
	#contents .sec_head {
		margin: 0 0 40px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}
	#contents .sec_head > p {
		font-size: 14px;
	}
	#contents .sec_head > p::after {
		width: 40px;
	}
	#contents .sec_head > p span {
		margin: 34px 0 0;
		font-size: 13px;
	}
	#contents .sec_head > h2 {
		padding: 0;
		margin: 24px 0 0;
		border-left: none;
		font-size: 24px;
		letter-spacing: 0.1em;
	}
}
@media screen and (max-width: 375px) {
	#contents .sec_head > h2 {
		font-size: 19px;
		letter-spacing: 0.08em;
	}
}

/*画像出現アニメーション*/
.js-reveal-down {
	clip-path: inset(0 0 100% 0);
	transition: clip-path 1.2s cubic-bezier(0.77, 0, 0.175, 1) var(--delay, 0s);
}
.js-reveal-down.is-show {
	clip-path: inset(0 0 0 0);
}
@media (prefers-reduced-motion: reduce) {
	.js-reveal-down {
		clip-path: none;
		transition: none;
	}
}

/************************************************************/
/*　トップページ　無料相談
/************************************************************/
#topConsultation {
	width: 100%;
	padding: 50px 50px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	isolation: isolate;
	background: var(--text);
}
#topConsultation::before {
	content: "";
	width: 140%;
	height: 260%;
	position: absolute;
	top: -80%;
	left: -20%;
	z-index: 0;
	background:
		radial-gradient(circle at 18% 35%, color-mix(in srgb, var(--main) 38%, transparent) 0, transparent 32%),
		radial-gradient(circle at 78% 55%, color-mix(in srgb, var(--act) 24%, transparent) 0, transparent 28%),
		radial-gradient(circle at 50% 85%, color-mix(in srgb, var(--sub) 45%, transparent) 0, transparent 38%);
	filter: blur(40px);
	pointer-events: none;
	animation: consultGlow 18s ease-in-out infinite alternate;
}
#topConsultation::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	background:
		radial-gradient(circle, rgba(255, 255, 255, 0.1) 0, transparent 40%) 0 0 / 260px 200px,
		radial-gradient(circle, rgba(255, 255, 255, 0.07) 0, transparent 45%) 80px 60px / 340px 280px,
		radial-gradient(circle, rgba(255, 255, 255, 0.06) 0, transparent 40%) 160px 120px / 180px 240px;
	filter: blur(8px);
	opacity: 0.7;
	mix-blend-mode: screen;
	pointer-events: none;
	animation: consultKomorebi 30s linear infinite;
}
@keyframes consultGlow {
	0% {
		transform: translate(0, 0) rotate(0deg);
	}
	50% {
		transform: translate(-6%, 4%) rotate(8deg);
	}
	100% {
		transform: translate(4%, -3%) rotate(-6deg);
	}
}
@keyframes consultKomorebi {
	0% {
		background-position: 0 0, 80px 60px, 160px 120px;
	}
	100% {
		background-position: 260px 200px, -260px 340px, 340px -120px;
	}
}
.consult_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 220px 1fr auto;
	align-items: center;
}
#contents .consult_inner > p,
#footer-cta .consult_inner > p {
	width: auto;
	padding: 0 0 20px;
	margin: 0;
	position: relative;
	justify-self: start;
	color: #fff;
	font-family: var(--font-en);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1;
	white-space: nowrap;
}
#contents .consult_inner > p::after,
#footer-cta .consult_inner > p::after {
	content: "";
	width: 60px;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	background: #fff;
}
.consult_body {
	width: auto;
	padding: 10px 40px 10px 60px;
	margin: 0;
	position: relative;
	border-left: 1px solid rgba(255, 255, 255, 0.4);
}
#contents .consult_body > h2,
#footer-cta .consult_body > h2 {
	padding: 0;
	margin: 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: #fff;
	font-family: var(--font-mincho);
	font-size: 32px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.12em;
	line-height: 1.7;
}
#contents .consult_body > h2::before,
#contents .consult_body > h2::after,
#footer-cta .consult_body > h2::before,
#footer-cta .consult_body > h2::after {
	display: none;
}
#contents .consult_body > p,
#footer-cta .consult_body > p {
	padding: 0;
	margin: 20px 0 0;
	position: relative;
	color: rgba(255, 255, 255, 0.85);
	font-family: var(--font-jp);
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.8;
}
#contents .consult_body > p span,
#footer-cta .consult_body > p span {
	display: inline-block;
}
#contents .consult_body > p span + span::before,
#footer-cta .consult_body > p span + span::before {
	content: "／";
	margin: 0 1em;
	color: rgba(255, 255, 255, 0.85);
}
.consult_cta {
	width: 360px;
	padding: 0;
	margin: 0;
	position: relative;
	text-align: center;
}
#contents .consult_cta > p,
#footer-cta .consult_cta > p {
	padding: 0;
	margin: 0 0 18px;
	position: relative;
	color: #fff;
	font-family: var(--font-jp);
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1;
}
#contents .consult_cta > p::before,
#contents .consult_cta > p::after,
#footer-cta .consult_cta > p::before,
#footer-cta .consult_cta > p::after {
	content: "";
	width: 1px;
	height: 18px;
	margin: 0 20px;
	display: inline-block;
	vertical-align: middle;
	background: #fff;
}
#contents .consult_cta > p::before,
#footer-cta .consult_cta > p::before {
	transform: rotate(-30deg);
}
#contents .consult_cta > p::after,
#footer-cta .consult_cta > p::after {
	transform: rotate(30deg);
}
.consult_cta > a {
	width: 100%;
	height: 64px;
	padding: 0 20px;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	box-sizing: border-box;
	background: var(--act);
	border: 1px solid var(--act);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-decoration: none;
	transition: var(--ease);
}
.consult_cta > a::after {
	content: "";
	width: 26px;
	height: 7px;
	display: block;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: skewX(45deg);
	transition: var(--ease);
}
.consult_cta > a:hover {
	background: transparent;
	color: var(--act);
}
.consult_cta > a:hover::after {
	transform: translateX(6px) skewX(45deg);
}
@media (prefers-reduced-motion: reduce) {
	#topConsultation::before,
	#topConsultation::after {
		animation: none;
	}
}
@media screen and (max-width: 1280px) {
	#topConsultation {
		padding: 50px 40px;
	}
	.consult_inner {
		grid-template-columns: 200px 1fr auto;
	}
	.consult_body {
		padding: 10px 30px 10px 44px;
	}
	#contents .consult_body > h2,
	#footer-cta .consult_body > h2 {
		font-size: 28px;
	}
	#contents .consult_body > p,
	#footer-cta .consult_body > p {
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.consult_cta {
		width: 320px;
	}
	.consult_cta > a {
		font-size: 17px;
	}
}
@media screen and (max-width: 1024px) {
	#topConsultation {
		padding: 45px 30px;
	}
	.consult_inner {
		grid-template-columns: 200px 1fr;
	}
	.consult_body {
		padding: 10px 0 10px 40px;
	}
	#contents .consult_body > h2,
	#footer-cta .consult_body > h2 {
		font-size: 26px;
	}
	.consult_cta {
		width: 100%;
		max-width: 400px;
		margin: 36px auto 0;
		grid-column: 1 / -1;
	}
}
@media screen and (max-width: 768px) {
	#topConsultation {
		padding: 40px 20px;
	}
	.consult_inner {
		grid-template-columns: 1fr;
		text-align: center;
	}
	#contents .consult_inner > p,
	#footer-cta .consult_inner > p {
		padding: 0 0 16px;
		justify-self: center;
		font-size: 14px;
	}
	#contents .consult_inner > p::after,
	#footer-cta .consult_inner > p::after {
		width: 40px;
		left: 50%;
		transform: translateX(-50%);
	}
	.consult_body {
		padding: 0;
		margin: 32px 0 0;
		border-left: none;
	}
	#contents .consult_body > h2,
	#footer-cta .consult_body > h2 {
		font-size: 22px;
		letter-spacing: 0.08em;
		text-align: center;
	}
	#contents .consult_body > p,
	#footer-cta .consult_body > p {
		margin: 16px 0 0;
		font-size: 13px;
	}
	#contents .consult_body > p span + span::before,
	#footer-cta .consult_body > p span + span::before {
		margin: 0 0.6em;
	}
	.consult_cta {
		max-width: none;
		margin: 36px 0 0;
	}
	#contents .consult_cta > p,
	#footer-cta .consult_cta > p {
		margin: 0 0 14px;
		font-size: 13px;
	}
	#contents .consult_cta > p::before,
	#contents .consult_cta > p::after,
	#footer-cta .consult_cta > p::before,
	#footer-cta .consult_cta > p::after {
		height: 15px;
		margin: 0 14px;
	}
	.consult_cta > a {
		width: fit-content;
		height: 58px;
		gap: 18px;
		font-size: 16px;
		white-space: nowrap;
		margin: 0 auto;
	}
}
@media screen and (max-width: 375px) {
	#topConsultation {
		padding: 36px 15px;
	}
	#contents .consult_body > h2,
	#footer-cta .consult_body > h2 {
		font-size: 19px;
		letter-spacing: 0.05em;
	}
	#contents .consult_body > p,
	#footer-cta .consult_body > p {
		font-size: 12px;
		letter-spacing: 0.05em;
	}
	#contents .consult_body > p span + span::before,
	#footer-cta .consult_body > p span + span::before {
		margin: 0 0.4em;
	}
	#contents .consult_cta > p,
	#footer-cta .consult_cta > p {
		font-size: 12px;
		letter-spacing: 0.15em;
	}
	.consult_cta > a {
		height: 54px;
		gap: 14px;
		font-size: 15px;
		letter-spacing: 0.1em;
	}
}


/************************************************************/
/*　トップページ　HOMES
/************************************************************/
#topHomes {
	width: 100%;
	padding: 100px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: var(--base);
}
.homes_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
}
.homes_list {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	list-style: none;
}
.homes_list > li {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
}
.homes_list > li:nth-child(2) figure {
	--delay: 0.15s;
}
.homes_list > li:nth-child(3) figure {
	--delay: 0.3s;
}
.homes_list > li > a {
	display: block;
	color: var(--text);
	text-decoration: none;
}
.homes_list figure {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 39 / 20;
	overflow: hidden;
}
.homes_list figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.homes_list > li > a:hover figure img {
	transform: scale(1.05);
}
#contents .homes_list a > figure + p {
	padding: 0;
	margin: 22px 0 0;
	position: relative;
	color: var(--main);
	font-family: var(--font-jp);
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.4;
}
#contents .homes_list a > figure + p span {
	font-family: var(--font-en);
}
#contents .homes_list a > figure + p span::after {
	content: "／";
	margin: 0 0.6em;
	font-family: var(--font-jp);
}
#contents .homes_list a > h3 {
	padding: 0;
	margin: 12px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 32px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
#contents .homes_list a > h3::before,
#contents .homes_list a > h3::after {
	display: none;
}
#contents .homes_list a > h3 + p {
	padding: 0;
	margin: 18px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.homes_list a > span {
	padding: 0 16px 14px 0;
	margin: 28px 0 0;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 28px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	transition: var(--ease);
}
.homes_list a > span::after {
	content: "";
	width: 24px;
	height: 6px;
	display: block;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: skewX(45deg);
	transition: var(--ease);
}
.homes_list a:hover > span {
	color: var(--act);
	border-color: var(--act);
}
.homes_list a:hover > span::after {
	transform: translateX(6px) skewX(45deg);
}

@media screen and (max-width: 1280px) {
	.homes_list {
		gap: 20px;
	}
	#contents .homes_list a > h3 {
		font-size: 28px;
	}
	#contents .homes_list a > h3 + p {
		font-size: 14px;
		letter-spacing: 0.08em;
	}
}
@media screen and (max-width: 1024px) {
	#topHomes {
		padding: 80px 30px;
	}
	#contents .homes_list a > figure + p {
		margin: 18px 0 0;
		font-size: 13px;
	}
	#contents .homes_list a > h3 {
		font-size: 24px;
	}
	#contents .homes_list a > h3 + p {
		margin: 14px 0 0;
		font-size: 13px;
		letter-spacing: 0.05em;
	}
	.homes_list a > span {
		margin: 22px 0 0;
		gap: 20px;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
}
@media screen and (max-width: 768px) {
	#topHomes {
		padding: 60px 20px;
	}
	.homes_list {
		grid-template-columns: 1fr;
		gap: 50px;
	}
	.homes_list > li:nth-child(n) figure {
		--delay: 0s;
	}
	#contents .homes_list a > figure + p {
		font-size: 14px;
	}
	#contents .homes_list a > h3 {
		font-size: 26px;
	}
	#contents .homes_list a > h3 + p {
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#topHomes {
		padding: 50px 15px;
	}
	.homes_list {
		gap: 40px;
	}
	#contents .homes_list a > figure + p {
		font-size: 13px;
	}
	#contents .homes_list a > h3 {
		font-size: 22px;
	}
	#contents .homes_list a > h3 + p {
		font-size: 13px;
		letter-spacing: 0.05em;
	}
	.homes_list a > span {
		font-size: 13px;
	}
}


/************************************************************/
/*　トップページ　私たちについて
/************************************************************/
#topAbout {
	width: 100%;
	padding: 120px 30px 160px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	background: var(--base);
}
#topAbout::before {
	content: "ABOUT US";
	position: absolute;
	bottom: 30px;
	left: 30px;
	z-index: 0;
	color: color-mix(in srgb, var(--text) 5%, transparent);
	font-family: var(--font-en);
	font-size: 160px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
	pointer-events: none;
}
#topAbout::after {
	content: "";
	width: 30%;
	height: calc(100% - 320px);
	position: absolute;
	top: 180px;
	right: 0;
	z-index: 0;
	background: color-mix(in srgb, var(--main) 12%, var(--base));
	pointer-events: none;
}
.about_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 440px;
	gap: 60px;
	align-items: start;
}
.about_txt {
	width: auto;
	padding: 40px 0 0;
	margin: 0;
	position: relative;
}
.about_body {
	width: auto;
	padding: 0;
	margin: 0 0 0 280px;
	position: relative;
}
#contents .about_body > p {
	padding: 0;
	margin: 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 2.4;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.about_body > a {
	padding: 0 16px 14px 0;
	margin: 44px 0 0;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 28px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.about_body > a::after {
	content: "";
	width: 24px;
	height: 6px;
	display: block;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: skewX(45deg);
	transition: var(--ease);
}
.about_body > a:hover {
	color: var(--act);
	border-color: var(--act);
}
.about_body > a:hover::after {
	transform: translateX(6px) skewX(45deg);
}
.about_img {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
}
.about_img > figure {
	padding: 0;
	margin: 0;
	position: relative;
	overflow: hidden;
}
.about_img > figure:first-child {
	width: 100%;
	aspect-ratio: 4 / 5;
}
.about_img > figure:last-child {
	width: 56%;
	margin: -38% 0 0 -15%;
	z-index: 1;
	aspect-ratio: 1 / 1;
	box-sizing: border-box;
	border: 10px solid var(--base);
	--delay: 0.3s;
}
.about_img > figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

@media screen and (max-width: 1280px) {
	#topAbout::before {
		font-size: 130px;
	}
	.about_inner {
		grid-template-columns: 1fr 400px;
		gap: 50px;
	}
	.about_body {
		margin: 0 0 0 224px;
	}
	#contents .about_body > p {
		font-size: 14px;
		letter-spacing: 0.08em;
	}
}
@media screen and (max-width: 1024px) {
	#topAbout {
		padding: 80px 30px 130px;
	}
	#topAbout::before {
		bottom: 24px;
		font-size: 110px;
	}
	#topAbout::after {
		width: 40%;
		height: 360px;
		top: auto;
		bottom: 110px;
	}
	.about_inner {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.about_txt {
		padding: 0;
	}
	.about_body {
		margin: 0 0 0 200px;
	}
	.about_body > a {
		margin: 36px 0 0;
		gap: 20px;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.about_img {
		max-width: 640px;
		margin: 60px 0 0 auto;
	}
	.about_img > figure:first-child {
		width: 80%;
		margin: 0 0 0 auto;
		aspect-ratio: 3 / 2;
	}
	.about_img > figure:last-child {
		width: 44%;
		margin: -18% 0 0 0;
	}
}
@media screen and (max-width: 768px) {
	#topAbout {
		padding: 60px 20px 100px;
	}
	#topAbout::before {
		bottom: 20px;
		left: 20px;
		font-size: 72px;
	}
	#topAbout::after {
		width: 50%;
		height: 240px;
		bottom: 90px;
	}
	.about_body {
		margin: 0;
	}
	#contents .about_body > p {
		font-size: 14px;
		line-height: 2.2;
	}
	.about_img {
		max-width: none;
		margin: 40px 0 0;
	}
	.about_img > figure:first-child {
		width: 88%;
	}
	.about_img > figure:last-child {
		width: 50%;
		margin: -24% 0 0 0;
		border-width: 6px;
		--delay: 0.2s;
	}
}
@media screen and (max-width: 375px) {
	#topAbout {
		padding: 50px 15px 80px;
	}
	#topAbout::before {
		left: 15px;
		font-size: 56px;
	}
	#contents .about_body > p {
		font-size: 13px;
		letter-spacing: 0.05em;
	}
	.about_body > a {
		font-size: 13px;
	}
}


/************************************************************/
/*　トップページ　施工事例
/************************************************************/
#topWorks {
	width: 100%;
	padding: 100px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	background: var(--base);
}
.works_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
}
.works_head {
	width: 100%;
	padding: 0;
	margin: 0 0 40px;
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
}
#contents .works_head > p {
	width: auto;
	padding: 0 0 1em;
	margin: 0;
	position: relative;
	grid-column: 1;
	justify-self: start;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 18px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1;
}
#contents .works_head > h2 {
	padding: 0;
	margin: 28px 0 0;
	position: relative;
	grid-column: 1;
	display: flex;
	align-items: center;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 48px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1.3;
}
#contents .works_head > h2::before,
#contents .works_head > h2::after {
	display: none;
}
#contents .works_head > h2 span {
	padding: 6px 0 6px 40px;
	margin: 0 0 0 30px;
	border-left: 1px solid var(--text);
	font-size: 17px;
	letter-spacing: 0.15em;
	line-height: 1.6;
}
.works_head > a {
	padding: 0 16px 14px 0;
	margin: 0;
	position: relative;
	grid-column: 2;
	grid-row: 1 / 3;
	display: inline-flex;
	align-items: center;
	gap: 28px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.works_head > a::after {
	content: "";
	width: 24px;
	height: 6px;
	display: block;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: skewX(45deg);
	transition: var(--ease);
}
.works_head > a:hover {
	color: var(--act);
	border-color: var(--act);
}
.works_head > a:hover::after {
	transform: translateX(6px) skewX(45deg);
}
.works_nav {
	width: 100%;
	padding: 0;
	margin: 0 0 -28px;
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}
.works_nav > button {
	width: 48px;
	height: 28px;
	padding: 0;
	margin: 0;
	position: relative;
	border: 1px solid var(--text);
	border-radius: 4px;
	background: none;
	color: var(--text);
	cursor: pointer;
	transition: var(--ease);
}
.works_nav > button:first-of-type {
	transform: scaleX(-1);
}
.works_nav > button::after {
	content: "";
	width: 16px;
	height: 5px;
	position: absolute;
	top: 50%;
	left: 50%;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform: translate(-50%, -70%);
}
.works_nav > button:hover {
	border-color: var(--act);
	background: var(--act);
	color: #fff;
}
.works_pager {
	padding: 0;
	margin: 0 16px 0 0;
	position: relative;
	order: -1;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1;
}
.works_pager > span:nth-child(2) {
	width: 80px;
	height: 1px;
	position: relative;
	display: block;
	background: color-mix(in srgb, var(--text) 25%, transparent);
}
.works_pager > span:nth-child(2)::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: var(--text);
	transform: scaleX(var(--progress, 0));
	transform-origin: left;
	transition: transform 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}
.works_slider {
	--gap: 30px;
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: 46% 1fr;
	gap: var(--gap);
	align-items: end;
}
.works_main {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	list-style: none;
}
.works_main > li {
	padding: 0;
	margin: 0;
	position: relative;
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, visibility 0.8s ease;
}
.works_main > li.is-active {
	opacity: 1;
	visibility: visible;
}
.works_sub {
	--count: 2;
	--delay: 0.15s;
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	overflow: hidden;
}
.works_sub > ul {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	align-items: flex-end;
	gap: var(--gap);
	list-style: none;
	transition: transform 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}
.works_sub > ul > li {
	width: calc((100% - var(--gap) * (var(--count) - 1)) / var(--count));
	padding: 0;
	margin: 0;
	position: relative;
	flex-shrink: 0;
}
.works_slider li > a {
	display: block;
	color: var(--text);
	text-decoration: none;
}
.works_slider figure {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: color-mix(in srgb, var(--text) 6%, var(--base));
}
.works_slider figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.works_slider li > a:hover figure img {
	transform: scale(1.05);
}
#contents .works_slider a > h3 {
	height: 66px;
	padding: 0;
	margin: 20px 0 0;
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 18px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.5;
	transition: var(--ease);
}
#contents .works_main a > h3 {
	font-size: 22px;
}
#contents .works_slider a > h3 span {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
#contents .works_slider a > h3::before {
	display: none;
}
#contents .works_slider a > h3::after {
	content: "";
	width: 24px;
	height: 7px;
	margin: 0.6em 0 0;
	position: static;
	display: block;
	flex-shrink: 0;
	border: none;
	border-radius: 0;
	box-shadow: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform: none;
	transition: var(--ease);
}
.works_slider li > a:hover h3 {
	color: var(--act);
}
#contents .works_slider li > a:hover h3::after {
	transform: translateX(6px);
}

@media (prefers-reduced-motion: reduce) {
	.works_main > li,
	.works_sub > ul,
	.works_pager > span:nth-child(2)::after {
		transition: none;
	}
}

#topWorks > a {
	display: none;
}

@media screen and (max-width: 1280px) {
	#contents .works_head > h2 {
		font-size: 44px;
	}
	.works_slider {
		--gap: 24px;
	}
	#contents .works_slider a > h3 {
		height: 60px;
		font-size: 17px;
	}
	#contents .works_main a > h3 {
		font-size: 20px;
	}
}
@media screen and (max-width: 1024px) {
	#topWorks {
		padding: 80px 30px;
	}
	.works_head {
		margin: 0 0 30px;
	}
	#contents .works_head > p {
		font-size: 16px;
	}
	#contents .works_head > h2 {
		margin: 24px 0 0;
		font-size: 38px;
	}
	#contents .works_head > h2 span {
		padding: 4px 0 4px 28px;
		margin: 0 0 0 24px;
		font-size: 15px;
	}
	.works_head > a {
		gap: 20px;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.works_nav {
		margin: 0 0 -28px;
	}
	.works_slider {
		grid-template-columns: 58% 1fr;
	}
	.works_sub {
		--count: 1;
	}
	#contents .works_slider a > h3 {
		height: 54px;
		margin: 16px 0 0;
		font-size: 16px;
	}
	#contents .works_main a > h3 {
		font-size: 18px;
	}
}
@media screen and (max-width: 768px) {
	#topWorks {
		padding: 60px 20px;
	}
	.works_inner {
		display: flex;
		flex-direction: column;
	}
	.works_head {
		margin: 0 0 24px;
		grid-template-columns: 1fr;
		grid-row-gap: 10px;
	}
	#contents .works_head > p {
		font-size: 14px;
		margin: 0;
		padding: 0;
	}
	#contents .works_head > p::after {
		width: 40px;
	}
	#contents .works_head > h2 {
		margin: 20px 0 0;
		flex-direction: column;
		align-items: flex-start;
		font-size: 32px;
	}
	#contents .works_head > h2 span {
		padding: 0;
		margin: 12px 0 0;
		border-left: none;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.works_head > a {
		display: none;
	}
	.works_nav {
		margin: 24px 0 0;
		order: 1;
		justify-content: space-between;
	}
	.works_nav > button {
		width: 44px;
		height: 26px;
	}
	.works_pager {
		margin: 0;
		order: 0;
		gap: 10px;
		font-size: 12px;
	}
	.works_pager > span:nth-child(2) {
		width: 60px;
	}
	.works_slider {
		--gap: 16px;
		grid-template-columns: 1fr;
		row-gap: 24px;
	}
	.works_sub {
		--count: 2;
		--delay: 0s;
	}
	#contents .works_slider a > h3 {
		height: 42px;
		margin: 12px 0 0;
		font-size: 14px;
		letter-spacing: 0.05em;
	}
	#contents .works_main a > h3 {
		height: 52px;
		margin: 16px 0 0;
		font-size: 17px;
		letter-spacing: 0.1em;
	}
	#contents .works_slider a > h3::after {
		width: 18px;
	}
	
	/*スマホボタン*/
	#topWorks > a {
		padding: 0 16px 14px 0;
		margin: 36px 0 0;
		position: relative;
		grid-column: 2;
		grid-row: 1 / 3;
		display: inline-flex;
		align-items: center;
		gap: 20px;
		border-bottom: 1px solid var(--text);
		color: var(--text);
		font-family: var(--font-jp);
		font-size: 14px;
		font-weight: 500;
		letter-spacing: 0.1em;
		line-height: 1;
		text-decoration: none;
		transition: var(--ease);
	}
	#topWorks > a::after {
		content: "";
		width: 24px;
		height: 6px;
		display: block;
		border-right: 1px solid currentColor;
		border-bottom: 1px solid currentColor;
		transform: skewX(45deg);
		transition: var(--ease);
	}
	#topWorks > a:hover {
		color: var(--act);
		border-color: var(--act);
	}
	#topWorks > a:hover::after {
		transform: translateX(6px) skewX(45deg);
	}
}
@media screen and (max-width: 375px) {
	#topWorks {
		padding: 50px 15px;
	}
	#contents .works_head > h2 {
		font-size: 28px;
	}
	#contents .works_head > h2 span {
		font-size: 13px;
	}
	.works_head > a {
		font-size: 13px;
	}
	#contents .works_slider a > h3 {
		height: 39px;
		font-size: 13px;
	}
	#contents .works_main a > h3 {
		height: 45px;
		font-size: 15px;
	}
}

/************************************************************/
/*　トップページ　パララックス
/************************************************************/
.img_parallax {
	width: 100%;
	height: clamp(220px, 40vw, 640px);
	padding: 0;
	margin: 0;
	position: relative;
	overflow: hidden;
}
.img_parallax::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.25);
	pointer-events: none;
}
.img_parallax img {
	width: 100%;
	max-width: none;
	height: calc(100% + 240px);
	position: absolute;
	top: -120px;
	left: 0;
	display: block;
	object-fit: cover;
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	.img_parallax img {
		height: 100%;
		top: 0;
		will-change: auto;
	}
}
@media screen and (max-width: 768px) {
	.img_parallax {
		height: clamp(200px, 56vw, 320px);
	}
}


/************************************************************/
/*　トップページ　プロダクト
/************************************************************/
#topProduct {
	width: 100%;
	padding: 100px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: var(--base);
}
.product_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
}
#contents #topProduct .sec_head > h2 span {
	display: inline-block;
}
.product_list {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	list-style: none;
}
.product_list > li {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
}
.product_list > li:nth-child(2) figure {
	--delay: 0.15s;
}
.product_list > li:nth-child(3) figure {
	--delay: 0.3s;
}
.product_list > li > a {
	display: block;
	color: var(--text);
	text-decoration: none;
}
.product_list figure {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.product_list figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.product_list > li > a:hover figure img {
	transform: scale(1.05);
}
#contents .product_list a > h3 {
	padding: 0;
	margin: 26px 0 0;
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 20px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 34px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.3;
}
#contents .product_list a > h3::before,
#contents .product_list a > h3::after {
	display: none;
}
#contents .product_list a > h3 span {
	color: var(--main);
	font-family: var(--font-en);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.1em;
}
#contents .product_list a > h3 + p {
	padding: 0;
	margin: 22px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .product_list a > p + p {
	padding: 0;
	margin: 18px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.product_list a > span {
	padding: 0 4px 12px 0;
	margin: 28px 0 0;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	transition: var(--ease);
}
.product_list a > span::after {
	content: "";
	width: 18px;
	height: 6px;
	display: block;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.product_list a:hover > span {
	color: var(--act);
	border-color: var(--act);
}
.product_list a:hover > span::after {
	transform: translateX(5px);
}

@media screen and (max-width: 1280px) {
	.product_list {
		gap: 28px;
	}
	#contents .product_list a > h3 {
		font-size: 30px;
	}
	#contents .product_list a > h3 + p {
		font-size: 20px;
	}
	#contents .product_list a > p + p {
		font-size: 13px;
		letter-spacing: 0.05em;
	}
}
@media screen and (max-width: 1024px) {
	#topProduct {
		padding: 80px 30px;
	}
	.product_list {
		gap: 20px;
	}
	#contents .product_list a > h3 {
		margin: 20px 0 0;
		gap: 14px;
		font-size: 24px;
	}
	#contents .product_list a > h3 span {
		font-size: 14px;
	}
	#contents .product_list a > h3 + p {
		margin: 16px 0 0;
		font-size: 17px;
	}
	#contents .product_list a > p + p {
		margin: 14px 0 0;
		font-size: 13px;
		line-height: 1.9;
	}
	.product_list a > span {
		margin: 22px 0 0;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
}
@media screen and (max-width: 768px) {
	#topProduct {
		padding: 60px 20px;
	}
	.product_list {
		grid-template-columns: 1fr;
		gap: 50px;
	}
	.product_list > li:nth-child(n) figure {
		--delay: 0s;
	}
	#contents .product_list a > h3 {
		font-size: 26px;
	}
	#contents .product_list a > h3 + p {
		font-size: 18px;
	}
	#contents .product_list a > p + p {
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#topProduct {
		padding: 50px 15px;
	}
	.product_list {
		gap: 40px;
	}
	#contents .product_list a > h3 {
		font-size: 22px;
	}
	#contents .product_list a > h3 span {
		font-size: 13px;
	}
	#contents .product_list a > h3 + p {
		font-size: 16px;
	}
	#contents .product_list a > p + p {
		font-size: 13px;
		letter-spacing: 0.03em;
	}
	.product_list a > span {
		font-size: 13px;
	}
}

/*リンク*/
.product_links {
	width: 100%;
	padding: 0;
	margin: 90px 0 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px 50px;
	list-style: none;
}
.product_links > li {
	width: auto;
	padding: 0;
	margin: 0;
	position: relative;
}
.product_links > li:nth-child(even) figure {
	--delay: 0.15s;
}
.product_links > li > a {
	padding: 0 0 20px;
	margin: 0;
	position: relative;
	display: block;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	text-decoration: none;
	transition: var(--ease);
}
.product_links figure {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 15 / 7;
	overflow: hidden;
}
.product_links figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.product_links > li > a:hover figure img {
	transform: scale(1.05);
}
#contents .product_links a > p {
	padding: 0 10px;
	margin: 18px 0 0;
	position: relative;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1;
}
#contents .product_links a > h3 {
	padding: 0 70px 0 10px;
	margin: 20px 0 0;
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 20px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 28px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.4;
	transition: var(--ease);
}
#contents .product_links a > h3 span {
	color: var(--main);
	font-family: var(--font-en);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.1em;
}
#contents .product_links a > h3::before,
#contents .product_links a > h3::after {
	display: none;
}
.product_links > li > a::after {
	content: "";
	width: 34px;
	height: 9px;
	position: absolute;
	right: 10px;
	bottom: 34px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.product_links > li > a:hover {
	color: var(--act);
	border-color: var(--act);
}
#contents .product_links > li > a:hover h3 {
	color: var(--act);
}
.product_links > li > a:hover::after {
	transform: translateX(6px);
}

@media screen and (max-width: 1280px) {
	.product_links {
		gap: 50px 36px;
	}
	#contents .product_links a > h3 {
		font-size: 25px;
	}
}
@media screen and (max-width: 1024px) {
	.product_links {
		margin: 70px 0 0;
		gap: 40px 24px;
	}
	.product_links > li > a {
		padding: 0 0 16px;
	}
	#contents .product_links a > p {
		padding: 0 6px;
		margin: 14px 0 0;
		font-size: 12px;
	}
	#contents .product_links a > h3 {
		padding: 0 50px 0 6px;
		margin: 10px 0 0;
		font-size: 21px;
	}
	.product_links > li > a::after {
		width: 26px;
		height: 7px;
		right: 6px;
		bottom: 28px;
	}
}
@media screen and (max-width: 768px) {
	.product_links {
		margin: 60px 0 0;
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.product_links > li:nth-child(even) figure {
		--delay: 0s;
	}
	#contents .product_links a > h3 {
		font-size: 22px;
	}
}
@media screen and (max-width: 375px) {
	.product_links {
		gap: 30px;
	}
	#contents .product_links a > p {
		font-size: 11px;
		letter-spacing: 0.15em;
	}
	#contents .product_links a > h3 {
		padding: 0 44px 0 6px;
		font-size: 19px;
	}
	.product_links > li > a::after {
		width: 22px;
		height: 6px;
		bottom: 25px;
	}
}

/************************************************************/
/*　トップページ　来店予約
/************************************************************/
#topReserve {
	width: 100%;
	padding: 100px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	background: var(--base);
}
.visit_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	display: grid;
	grid-template-columns: 1fr 460px;
	align-items: center;
}
.visit_inner > figure {
	padding: 0;
	margin: 0 -80px 0 calc((100vw - min(1200px, 100vw - 60px)) / -2);
	position: relative;
	z-index: 0;
	grid-area: 1 / 1;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.visit_inner > figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.visit_body {
	width: auto;
	min-width: 500px;
	padding: 70px 0 70px 70px;
	margin: 0;
	position: relative;
	z-index: 1;
	grid-area: 1 / 2;
	background: var(--base);
}
#contents .visit_body > p:first-child {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	align-items: center;
	gap: 20px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1;
}
#contents .visit_body > p:first-child::after {
	content: "";
	width: 60px;
	height: 1px;
	display: block;
	background: var(--text);
}
#contents .visit_body > h2 {
	padding: 0;
	margin: 28px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 36px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.12em;
	line-height: 1.6;
}
#contents .visit_body > h2::before,
#contents .visit_body > h2::after {
	display: none;
}
#contents .visit_body > h2 + p {
	padding: 0;
	margin: 28px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 2.1;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.visit_body > a {
	width: 100%;
	max-width: 380px;
	height: 64px;
	padding: 0 20px;
	margin: 40px 0 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	box-sizing: border-box;
	background: var(--act);
	border: 1px solid var(--act);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-decoration: none;
	transition: var(--ease);
}
.visit_body > a::after {
	content: "";
	width: 24px;
	height: 7px;
	display: block;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.visit_body > a:hover {
	background: transparent;
	color: var(--act);
}
.visit_body > a:hover::after {
	transform: translateX(6px);
}
#contents .visit_body > a + p {
	padding: 0;
	margin: 16px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
}

@media screen and (max-width: 1280px) {
	.visit_inner {
		grid-template-columns: 1fr 420px;
	}
	.visit_inner > figure {
		margin: 0 -70px 0 calc((100vw - min(1200px, 100vw - 60px)) / -2);
	}
	.visit_body {
		padding: 60px 0 60px 60px;
	}
	#contents .visit_body > h2 {
		font-size: 32px;
	}
	#contents .visit_body > h2 + p {
		font-size: 14px;
	}
}
@media screen and (max-width: 1024px) {
	#topReserve {
		padding: 80px 30px;
	}
	.visit_inner {
		grid-template-columns: 1fr 360px;
	}
	.visit_inner > figure {
		margin: 0 -60px 0 -30px;
		aspect-ratio: 4 / 3;
	}
	.visit_body {
		padding: 50px 0 50px 50px;
	}
	#contents .visit_body > p:first-child {
		gap: 14px;
		font-size: 12px;
		letter-spacing: 0.2em;
	}
	#contents .visit_body > p:first-child::after {
		width: 40px;
	}
	#contents .visit_body > h2 {
		margin: 22px 0 0;
		font-size: 26px;
		letter-spacing: 0.1em;
	}
	#contents .visit_body > h2 + p {
		margin: 22px 0 0;
		font-size: 13px;
		letter-spacing: 0.05em;
		line-height: 2;
	}
	.visit_body > a {
		height: 58px;
		margin: 32px 0 0;
		font-size: 16px;
	}
}
@media screen and (max-width: 768px) {
	#topReserve {
		padding: 60px 20px;
	}
	.visit_inner {
		grid-template-columns: 1fr;
	}
	.visit_inner > figure {
		margin: 0 -20px;
		grid-area: 1 / 1;
		aspect-ratio: 3 / 2;
	}
	.visit_body {
		min-width: 100%;
		padding: 32px 24px 0 24px;
		margin: -50px 0 0;
		grid-area: 2 / 1;
	}
	#contents .visit_body > h2 {
		font-size: 24px;
	}
	#contents .visit_body > h2 + p {
		font-size: 14px;
	}
	.visit_body > a {
		max-width: none;
	}
}
@media screen and (max-width: 375px) {
	#topReserve {
		padding: 50px 15px;
	}
	.visit_inner > figure {
		margin: 0 -15px;
	}
	.visit_body {
		padding: 28px 16px 0 0;
	}
	#contents .visit_body > p:first-child {
		font-size: 11px;
		letter-spacing: 0.15em;
	}
	#contents .visit_body > h2 {
		font-size: 21px;
	}
	#contents .visit_body > h2 + p {
		font-size: 13px;
	}
	.visit_body > a {
		height: 54px;
		font-size: 15px;
	}
}


/************************************************************/
/*　トップページ　アクセス
/************************************************************/
#topAccess {
	width: 100%;
	padding: 100px 30px;
	margin: 0;
	position: relative;
	box-sizing: border-box;
	background: var(--base);
	border-bottom: 1px solid var(--text);
}
.access_inner {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	position: relative;
	display: grid;
	grid-template-columns: 300px 1fr;
	align-items: start;
}
#contents .access_head > p {
	padding: 0 0 1em;
	margin: 0;
	position: relative;
	display: inline-block;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1;
}
#contents .access_head > p::after {
	content: "";
	width: 50px;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	background: var(--text);
}
#contents .access_head > h2 {
	padding: 0;
	margin: 36px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 44px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1.3;
}
#contents .access_head > h2::before,
#contents .access_head > h2::after {
	display: none;
}
.access_list {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
}
.access_list > li {
	padding: 0 40px 0 0;
	margin: 0;
	position: relative;
}
.access_list > li + li {
	padding: 0 0 0 70px;
	border-left: 1px solid var(--text);
}
#contents .access_list > li > p {
	padding: 0;
	margin: 0;
	position: relative;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}
#contents .access_list > li > h3 {
	padding: 0;
	margin: 18px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 34px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.12em;
	line-height: 1.4;
}
#contents .access_list > li > h3::before,
#contents .access_list > li > h3::after {
	display: none;
}
.access_list > li > address {
	padding: 0;
	margin: 24px 0 0;
	position: relative;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.9;
}
.access_list > li > a {
	padding: 0 4px 12px 0;
	margin: 28px 0 0;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	transition: var(--ease);
}
.access_list > li > a::after {
	content: "";
	width: 12px;
	height: 12px;
	display: block;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 11L11 1M3 1h8v8' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.access_list > li > a:hover {
	color: var(--act);
	border-color: var(--act);
}
.access_list > li > a:hover::after {
	transform: translate(3px, -3px);
}

@media screen and (max-width: 1280px) {
	.access_inner {
		grid-template-columns: 240px 1fr;
	}
	#contents .access_head > h2 {
		font-size: 38px;
	}
	.access_list > li + li {
		padding: 0 0 0 50px;
	}
	#contents .access_list > li > h3 {
		font-size: 30px;
	}
	.access_list > li > address {
		font-size: 15px;
	}
}
@media screen and (max-width: 1024px) {
	#topAccess {
		padding: 80px 30px;
	}
	.access_inner {
		grid-template-columns: 1fr;
	}
	.access_head {
		margin: 0 0 50px;
	}
	#contents .access_head > p {
		font-size: 16px;
	}
	#contents .access_head > h2 {
		margin: 28px 0 0;
		font-size: 34px;
	}
	.access_list > li + li {
		padding: 0 0 0 40px;
	}
	#contents .access_list > li > p {
		font-size: 17px;
	}
	#contents .access_list > li > h3 {
		margin: 14px 0 0;
		font-size: 26px;
	}
	.access_list > li > address {
		margin: 20px 0 0;
	}
	.access_list > li > a {
		margin: 24px 0 0;
		font-size: 15px;
	}
}
@media screen and (max-width: 768px) {
	#topAccess {
		padding: 60px 20px;
	}
	.access_head {
		margin: 0 0 36px;
	}
	#contents .access_head > p {
		font-size: 14px;
	}
	#contents .access_head > p::after {
		width: 40px;
	}
	#contents .access_head > h2 {
		margin: 22px 0 0;
		font-size: 30px;
	}
	.access_list {
		grid-template-columns: 1fr;
	}
	.access_list > li {
		padding: 0;
	}
	.access_list > li + li {
		padding: 36px 0 0;
		margin: 36px 0 0;
		border-left: none;
		border-top: 1px solid var(--text);
	}
	#contents .access_list > li > p {
		font-size: 16px;
	}
	#contents .access_list > li > h3 {
		font-size: 24px;
	}
	.access_list > li > address {
		font-size: 14px;
	}
	.access_list > li > a {
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#topAccess {
		padding: 50px 15px;
	}
	#contents .access_head > h2 {
		font-size: 26px;
	}
	#contents .access_list > li > h3 {
		font-size: 22px;
	}
	.access_list > li > address {
		font-size: 13px;
		letter-spacing: 0.05em;
	}
}


/************************************************************/
/*　施工事例
/************************************************************/
#works_header {
	width: 100%;
	padding: 0;
	margin: 0 0 70px;
	position: relative;
	display: grid;
	grid-template-columns: 1fr 420px;
	column-gap: 60px;
	align-items: center;
}
#contents #works_header > h2 {
	padding: 0 0 18px;
	margin: 0;
	position: relative;
	grid-column: 1;
	justify-self: start;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 40px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1;
}
#contents #works_header > h2::before {
	display: none;
}
#contents #works_header > h2::after {
	content: "";
	width: 50px;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	background: var(--text);
}
#contents #works_header > p {
	padding: 0;
	margin: 30px 0 0;
	position: relative;
	grid-column: 1;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 2.2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
/*リスト*/
.works_list {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 50px;
	list-style: none;
}
.works_list > li {
	padding: 0;
	margin: 0;
	position: relative;
	display: flex;
	flex-direction: column;
}
.works_list > li > figure {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: color-mix(in srgb, var(--text) 6%, var(--base));
	border: 1px solid var(--border);
}
.works_list > li > figure > a {
	width: 100%;
	height: 100%;
	display: block;
}
.works_list > li > figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.works_list > li > figure > a:hover img {
	transform: scale(1.05);
}
/*成約状況*/
.works_list > li.soldout > figure::after,
.works_list > li.meeting > figure::after {
	padding: 7px 14px;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	color: #fff;
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
	pointer-events: none;
}
.works_list > li.soldout > figure::after {
	content: "ご成約済み";
	background: #d0324b;
}
.works_list > li.meeting > figure::after {
	content: "商談中";
	background: var(--act);
	font-family: var(--font-jp);
}
.works_list > li.soldout > figure img {
	filter: grayscale(100%);
}

#contents .works_list > li > h3 {
	padding: 0;
	margin: 18px 0 0;
	position: relative;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .works_list > li > h3::before,
#contents .works_list > li > h3::after {
	display: none;
}
.works_list > li > h3 > a {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	color: var(--text);
	text-decoration: none;
	transition: var(--ease);
}
.works_list > li > h3 > a::after {
	content: "";
	width: 22px;
	height: 7px;
	margin: 0.6em 0 0;
	display: block;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transition: var(--ease);
}
.works_list > li > h3 > a:hover {
	color: var(--act);
}
.works_list > li > h3 > a:hover::after {
	transform: translateX(6px);
}
#contents .works_list > li > p {
	width: 100%;
	padding: 14px 0 0;
	margin: auto auto 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
#contents .works_list > li > p a {
	padding: 5px 10px;
	display: block;
	border: 1px solid color-mix(in srgb, var(--text) 30%, transparent);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.3;
	text-decoration: none;
	transition: var(--ease);
}
#contents .works_list > li > p a:hover {
	border-color: var(--act);
	color: var(--act);
}

#contents .works_none {
	padding: 60px 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	text-align: center;
}

@media screen and (max-width: 1280px) {
	#works_header {
		grid-template-columns: 1fr 380px;
		column-gap: 40px;
	}
	.works_list {
		gap: 50px 24px;
	}
	#contents .works_list a > h3 {
		font-size: 17px;
	}
}
@media screen and (max-width: 1024px) {
	#works_header {
		margin: 0 0 56px;
		grid-template-columns: 1fr;
	}
	#contents #works_header > h2 {
		font-size: 34px;
	}
	.sf_area {
		margin: 32px 0 0;
		grid-column: 1;
		grid-row: auto;
	}
	.works_list {
		grid-template-columns: repeat(2, 1fr);
		gap: 44px 24px;
	}
	#contents .works_list a > h3 {
		margin: 14px 0 0;
		font-size: 16px;
	}
}
@media screen and (max-width: 768px) {
	#works_header {
		margin: 0 0 44px;
	}
	#contents #works_header > h2 {
		padding: 0 0 14px;
		font-size: 28px;
	}
	#contents #works_header > h2::after {
		width: 40px;
	}
	#contents #works_header > p {
		margin: 22px 0 0;
		font-size: 14px;
		line-height: 2;
	}
	.works_list {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}
@media screen and (max-width: 375px) {
	#contents #works_header > h2 {
		font-size: 24px;
	}
	#contents #works_header > p {
		font-size: 13px;
	}
	#contents .works_list a > h3 {
		font-size: 15px;
	}
}

/*検索機能*/
.sf_area {
	width: 100%;
	padding: 32px;
	margin: 0;
	position: relative;
	grid-column: 2;
	grid-row: 1 / 3;
	box-sizing: border-box;
	background: var(--base);
}
.sf_area form {
	width: 100%;
	padding: 0;
	margin: 0;
	position: relative;
	display: grid;
	gap: 20px;
}
.sf_area dl {
	padding: 0;
	margin: 0;
	position: relative;
}
.sf_area dt {
	padding: 0;
	margin: 0 0 10px;
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1;
}
.sf_area dt::before {
	content: "";
	width: 12px;
	height: 1px;
	display: block;
	flex-shrink: 0;
	background: var(--text);
}
.sf_area dd {
	padding: 0;
	margin: 0;
	position: relative;
}
.sf_area select {
	width: 100%;
	height: 50px;
	padding: 0 44px 0 16px;
	margin: 0;
	box-sizing: border-box;
	border: 1px solid color-mix(in srgb, var(--text) 30%, transparent);
	border-radius: 0;
	background-color:#fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23333' stroke-width='1.2'/%3E%3C/svg%3E");
	background-position: right 16px center;
	background-size: 12px 8px;
	background-repeat: no-repeat;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: var(--ease);
}
.sf_area select:hover,
.sf_area select:focus {
	border-color: var(--text);
	outline: none;
}
.sf_area .search_btn {
	padding: 0;
	margin: 6px 0 0;
	position: relative;
}
.sf_area .search_btn::after {
	content: "";
	width: 20px;
	height: 6px;
	position: absolute;
	top: 50%;
	right: 20px;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 7'%3E%3Cpath d='M0 6.5h23L17 .5' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform: translateY(-70%);
	pointer-events: none;
	transition: var(--ease);
}
.sf_area .search_btn:hover::after {
	transform: translate(5px, -70%);
}
.sf_area input[type="submit"] {
	width: 100%;
	height: 54px;
	padding: 0 44px;
	margin: 0;
	border: 1px solid var(--text);
	border-radius: 0;
	background: var(--text);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.15em;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: var(--ease);
}
.sf_area input[type="submit"]:hover {
	border-color: var(--act);
	background: var(--act);
}

@media screen and (max-width: 1024px) {
	.sf_area {
		padding: 28px;
		margin: 32px 0 0;
		grid-column: 1;
		grid-row: auto;
	}
	.sf_area form {
		grid-template-columns: 1fr 1fr 240px;
		align-items: end;
		gap: 16px;
	}
	.sf_area .search_btn {
		margin: 0;
	}
	.sf_area select,
	.sf_area input[type="submit"] {
		height: 50px;
	}
}
@media screen and (max-width: 768px) {
	.sf_area {
		padding: 24px 20px;
		margin: 28px 0 0;
	}
	.sf_area form {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.sf_area .search_btn {
		margin: 4px 0 0;
	}
	.sf_area dt {
		margin: 0 0 8px;
		font-size: 12px;
	}
	.sf_area select {
		font-size: 16px;
	}
}
@media screen and (max-width: 375px) {
	.sf_area {
		padding: 20px 16px;
	}
	.sf_area input[type="submit"] {
		font-size: 14px;
	}
}



/************************************************************/
/*　施工事例　詳細
/************************************************************/

.works-content {
	width: 100%;
	max-width: 900px;
	padding: 100px 0;
	margin: 0 auto;
}
.works_head {
	position: relative;
	width: 100%;
	padding: 0 0 34px;
	margin: 0 0 40px;
	border-bottom: 1px solid var(--text);
}
.works_label {
	display: flex;
	align-items: center;
	gap: 14px;
	width: auto;
	padding: 0;
	margin: 0 0 24px;
	color: #888;
	font-family: var(--font-jp);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}
.works_label span {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	letter-spacing: 0.3em;
}
.works_label span::before {
	content: "";
	display: block;
	width: 40px;
	height: 1px;
	background: var(--text);
}
.works_tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	padding: 0;
	margin: 0 0 18px;
	list-style: none;
}
.works_tags li {
	padding: 0;
	margin: 0;
	font-size: 12px;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
.works_tags a {
	display: inline-block;
	padding: 6px 14px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	text-decoration: none;
	transition: var(--ease);
}
.works_tags a::before {
	content: "#";
	margin: 0 2px 0 0;
}
.works_tags a:hover {
	background: var(--text);
	color: #fff;
}
.works_tags .state_detail {
	display: inline-block;
	padding: 7px 16px;
	margin: 0;
	background: var(--text);
	color: #fff;
	font-weight: 500;
}
.works_tags .state_detail_meeting {
	background: var(--act);
}
.works_tags .state_detail_sold {
	background: #d0324b;
}
#contents .works_head h1 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 30px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .works_head h1::before,
#contents .works_head h1::after {
	content: none;
}
.works_gallery {
	width: 100%;
	padding: 0;
	margin: 0 0 70px;
}
.works_gallery_main {
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0;
	overflow: hidden;
}
.works_gallery_main .swiper-slide {
	width: 100%;
	padding: 0;
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--base);
}
.works_gallery_main .swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.works_gallery_main .swiper-button-prev,
.works_gallery_main .swiper-button-next {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 56px;
	height: 56px;
	padding: 0;
	margin: -28px 0 0;
	border: none;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.45);
	color: #fff;
	cursor: pointer;
	transition: var(--ease);
}
.works_gallery_main .swiper-button-prev {
	left: 0;
	right: auto;
}
.works_gallery_main .swiper-button-next {
	right: 0;
	left: auto;
}
.works_gallery_main .swiper-button-prev::after,
.works_gallery_main .swiper-button-next::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	font-size: 0;
}
.works_gallery_main .swiper-button-prev::after {
	transform: translate(-30%, -50%) rotate(-135deg);
}
.works_gallery_main .swiper-button-next::after {
	transform: translate(-70%, -50%) rotate(45deg);
}
.works_gallery_main .swiper-button-prev:hover,
.works_gallery_main .swiper-button-next:hover {
	background: var(--text);
}
.works_gallery_bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	margin: 16px 0 14px;
}
.works_gallery_en {
	width: auto;
	padding: 0;
	margin: 0;
	color: #888;
	font-family: var(--font-en);
	font-size: 12px;
	letter-spacing: 0.3em;
	line-height: 1;
}
.works_gallery_pagination {
	position: static;
	display: flex;
	align-items: baseline;
	gap: 10px;
	width: auto;
	padding: 0;
	margin: 0;
	color: #888;
	font-family: var(--font-en);
	font-size: 13px;
	letter-spacing: 0.1em;
	line-height: 1;
}
.works_gallery_pagination .swiper-pagination-current {
	color: var(--text);
	font-size: 22px;
}
/*サムネイル*/
.works_gallery_thumbs {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 10px;
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
}
.works_gallery_thumbs li {
	position: relative;
	padding: 0;
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	opacity: 0.4;
	cursor: pointer;
	transition: var(--ease);
}
.works_gallery_thumbs li::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--text);
	transition: var(--ease);
}
.works_gallery_thumbs li:hover {
	opacity: 0.8;
}
.works_gallery_thumbs li.is-active {
	opacity: 1;
}
.works_gallery_thumbs li.is-active::after {
	width: 100%;
}
.works_gallery_thumbs li img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*スペック*/
.land_data {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	padding: 30px 40px;
	margin: 0 0 40px;
	border: none;
	background: var(--base);
}
.land_data > div {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 10px;
	min-width: 0;
	padding: 0 0 0 40px;
	margin: 0 0 0 40px;
	border-left: 1px solid var(--text);
}
.land_data > div:first-child {
	padding: 0;
	margin: 0;
	border-left: none;
}
.land_data dt {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	margin: 0;
	color: #888;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}
.land_data dt::before {
	content: "";
	display: block;
	width: 16px;
	height: 1px;
	background: var(--text);
}
.land_data dd {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
	word-break: break-all;
}
@media screen and (max-width: 1024px) {
	.land_data {
		padding: 26px 30px;
	}
	.land_data > div {
		padding: 0 0 0 30px;
		margin: 0 0 0 30px;
	}
	.land_data dd {
		font-size: 21px;
	}
}
@media screen and (max-width: 768px) {
	.land_data {
		flex-direction: column;
		padding: 6px 20px;
		margin: 0 0 28px;
	}
	.land_data > div {
		gap: 8px;
		padding: 16px 0;
		margin: 0;
		border-left: none;
		border-top: 1px solid var(--text);
	}
	.land_data > div:first-child {
		padding: 16px 0;
		border-top: none;
	}
	.land_data dt {
		font-size: 11px;
	}
	.land_data dd {
		font-size: 18px;
	}
}
@media screen and (max-width: 375px) {
	.land_data {
		padding: 4px 16px;
	}
	.land_data dd {
		font-size: 16px;
	}
}

/*スペック*/
.works_spec {
	width: 100%;
	padding: 0;
	margin: 80px 0 0;
}
#contents .works_spec h2 {
	display: flex;
	align-items: baseline;
	gap: 20px;
	width: auto;
	padding: 0;
	margin: 0 0 30px;
	border: none;
	border-radius: 0;
	background: none;
	color: #888;
	font-family: var(--font-jp);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}
#contents .works_spec h2::before,
#contents .works_spec h2::after {
	content: none;
}
#contents .works_spec h2 span {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 36px;
	font-weight: 400;
	letter-spacing: 0.12em;
}
.works_spec dl {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 40px;
	width: 100%;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--text);
}
.works_spec dl > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 16px;
	padding: 18px 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
.works_spec dl > div.item_wide {
	grid-column: 1 / -1;
}
.works_spec dt {
	padding: 0;
	margin: 0;
	color: #888;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.8;
}
.works_spec dd {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	word-break: break-all;
}
@media screen and (max-width: 1024px) {
	#contents .works_head h1 {
		font-size: 26px;
	}
	.works_gallery {
		margin: 0 0 60px;
	}
	.works_spec {
		margin: 70px 0 0;
	}
	#contents .works_spec h2 span {
		font-size: 32px;
	}
}
@media screen and (max-width: 768px) {
	.works_head {
		padding: 0 0 24px;
		margin: 0 0 28px;
	}
	.works_head::after {
		width: 80px;
	}
	.works_label {
		gap: 10px;
		margin: 0 0 18px;
		font-size: 11px;
	}
	.works_label span {
		gap: 10px;
		font-size: 12px;
	}
	.works_label span::before {
		width: 28px;
	}
	.works_tags {
		gap: 6px;
		margin: 0;
	}
	.works_tags li {
		font-size: 11px;
	}
	.works_tags a {
		padding: 5px 10px;
	}
	.works_tags .state_detail {
		padding: 6px 12px;
	}
	#contents .works_head h1 {
		font-size: 21px;
		letter-spacing: 0.05em;
	}
	.works_gallery {
		margin: 0 0 50px;
	}
	.works_gallery_main .swiper-slide {
		aspect-ratio: 4 / 3;
	}
	.works_gallery_main .swiper-button-prev,
	.works_gallery_main .swiper-button-next {
		width: 40px;
		height: 40px;
		margin: -20px 0 0;
	}
	.works_gallery_main .swiper-button-prev::after,
	.works_gallery_main .swiper-button-next::after {
		width: 8px;
		height: 8px;
	}
	.works_gallery_bar {
		margin: 12px 0 10px;
	}
	.works_gallery_pagination .swiper-pagination-current {
		font-size: 18px;
	}
	.works_gallery_thumbs {
		grid-template-columns: repeat(4, 1fr);
		gap: 6px;
	}
	.works_spec {
		margin: 56px 0 0;
	}
	#contents .works_spec h2 {
		gap: 14px;
		margin: 0 0 20px;
		font-size: 12px;
	}
	#contents .works_spec h2 span {
		font-size: 26px;
	}
	.works_spec dl {
		grid-template-columns: 1fr;
	}
	.works_spec dl > div {
		grid-template-columns: 90px 1fr;
		gap: 12px;
		padding: 14px 0;
	}
	.works_spec dt {
		font-size: 12px;
	}
	.works_spec dd {
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#contents .works_head h1 {
		font-size: 19px;
	}
	.works_gallery_main .swiper-button-prev,
	.works_gallery_main .swiper-button-next {
		width: 36px;
		height: 36px;
		margin: -18px 0 0;
	}
	#contents .works_spec h2 span {
		font-size: 22px;
	}
	.works_spec dl > div {
		grid-template-columns: 76px 1fr;
		gap: 10px;
	}
	.works_spec dd {
		font-size: 13px;
	}
}

/*土地情報*/
.property-content #news-content .table-scroll-wrap {
	width: 100%;
	padding: 0;
	margin: 50px 0;
}
.property-content #news-content table {
	width: 100%;
	padding: 0;
	margin: 50px 0;
	border: none;
	border-top: 1px solid var(--text);
	border-bottom: 1px solid var(--text);
	border-collapse: collapse;
	border-spacing: 0;
	background: none;
}
.property-content #news-content .table-scroll table {
	margin: 0;
}
.property-content #news-content table tr {
	border: none;
	background: none;
}
.property-content #news-content table tr + tr td {
	border-top: 1px solid var(--base);
}
.property-content #news-content table td {
	padding: 10px 24px;
	margin: 0;
	border: none;
	background: #fff;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	text-align: left;
	vertical-align: middle;
	word-break: break-all;
	border-bottom: 1px solid #e6dccd;
}
.property-content #news-content table tr:last-of-type td {
	border-bottom: 1px solid var(--text);
}
.property-content #news-content table td p {
	font-size: 13px;
	font-weight: 500;
}
.property-content #news-content table td:nth-child(odd) {
	width: 170px;
	padding: 10px 20px 10px 24px;
	background: var(--base);
	color: var(--text);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.6;
	border-bottom: 1px solid #e6dccd;
}
.property-content #news-content table td:nth-child(odd) p {
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}
.property-content #news-content table th p,
.property-content #news-content table td p {
	margin-bottom: 1em;
}
.property-content #news-content table th p:last-of-type,
.property-content #news-content table td p:last-of-type {
	margin-bottom: 0;
}
@media screen and (max-width: 1024px) {
	.property-content #news-content table td {
		padding: 18px 20px;
	}
	.property-content #news-content table td:nth-child(odd) {
		width: 140px;
		padding: 18px 16px 18px 20px;
	}
}
@media screen and (max-width: 768px) {
	.property-content #news-content .table-scroll-wrap,
	.property-content #news-content table {
		margin: 36px 0;
	}
	.property-content #news-content .table-scroll table {
		margin: 0;
	}
	.property-content #news-content table td {
		padding: 14px;
		font-size: 14px;
	}
	.property-content #news-content table td:nth-child(odd) {
		width: 96px;
		padding: 14px 10px 14px 14px;
		font-size: 12px;
		letter-spacing: 0.08em;
	}
}
@media screen and (max-width: 375px) {
	.property-content #news-content table td {
		padding: 12px 10px;
		font-size: 13px;
	}
	.property-content #news-content table td:nth-child(odd) {
		width: 80px;
		padding: 12px 8px 12px 10px;
		font-size: 11px;
	}
}

#pageStaff {
	width: 100%;
	max-width: 1280px;
	padding: 0 40px;
	margin: 0 auto;
}
#pageStaff > header {
	display: flex;
	align-items: baseline;
	gap: 24px;
	padding: 0;
	margin: 0 0 50px;
}
#contents #pageStaff > header > h2 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 56px;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1;
}
#contents #pageStaff > header > h2::before,
#contents #pageStaff > header > h2::after {
	content: none;
}
#contents #pageStaff > header > p {
	padding: 0;
	margin: 0;
	color: #888;
	font-size: 14px;
	letter-spacing: 0.15em;
	line-height: 1;
}
#pageStaff .staffmain_img01,
#pageStaff .staffmain_img02 {
	width: 100%;
	padding: 0;
	margin: 0 0 90px;
	overflow: hidden;
}
#pageStaff .staffmain_img02 {
	margin: 0;
}
#pageStaff .staffmain_img01 img,
#pageStaff .staffmain_img02 img {
	display: block;
	width: 100%;
	height: auto;
}
#pageStaff .staffGroup {
	width: 100%;
	padding: 0;
	margin: 0 0 90px;
}
#contents #pageStaff .staffGroup > h3 {
	position: relative;
	display: block;
	width: 100%;
	padding: 20px;
	margin: 0 0 20px;
	border: none;
	border-radius: 0;
	background: var(--text);
	color: #fff;
	font-family: var(--font-jp);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.3em;
	line-height: 1.4;
	text-align: center;
}
#contents #pageStaff .staffGroup > h3::before,
#contents #pageStaff .staffGroup > h3::after {
	content: none;
}
#pageStaff .staffList {
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
}
#pageStaff .staffList > li {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: 60px;
	padding: 50px 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
#pageStaff .staffList > li:last-child {
	border-bottom: none;
}
#pageStaff .staffList > li > figure {
	grid-row: 1 / 3;
	width: 100%;
	padding: 0;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--base);
}
#pageStaff .staffList > li > figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ease);
}
#pageStaff .staffList > li:hover > figure img {
	transform: scale(1.04);
}
#pageStaff .staffListInfo {
	grid-column: 2;
	padding: 10px 0 0;
	margin: 0;
}
#contents #pageStaff .staffListInfo > .post {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	margin: 0 0 12px;
	color: #888;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.4;
}
#contents #pageStaff .staffListInfo > .post::before {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 24px;
	height: 1px;
	background: var(--text);
}
#contents #pageStaff .staffListInfo > h4 {
	width: auto;
	padding: 0;
	margin: 0 0 24px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
#contents #pageStaff .staffListInfo > h4::before,
#contents #pageStaff .staffListInfo > h4::after {
	content: none;
}
#pageStaff .staffListInfo > .hobby {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	margin: 0;
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}
#pageStaff .hobby > dt {
	flex-shrink: 0;
	padding: 3px 12px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
#pageStaff .hobby > dd {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.7;
}
#pageStaff .staffList_cmt {
	grid-column: 2;
	padding: 0;
	margin: 28px 0 0;
}
#contents #pageStaff .staffList_cmt > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#pageStaff .staffGroup_construction .staffList,
#pageStaff .staffGroup_design .staffList {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px 40px;
	padding: 40px 0 0;
}
#pageStaff .staffGroup_construction .staffList > li,
#pageStaff .staffGroup_design .staffList > li {
	display: flex;
	flex-direction: column;
	padding: 0;
	border-bottom: none;
}
#pageStaff .staffGroup_construction .staffList > li > figure,
#pageStaff .staffGroup_design .staffList > li > figure {
	margin: 0 0 22px;
}
#pageStaff .staffGroup_construction .staffListInfo,
#pageStaff .staffGroup_design .staffListInfo {
	padding: 0;
}
#contents #pageStaff .staffGroup_construction .staffListInfo > h4,
#contents #pageStaff .staffGroup_design .staffListInfo > h4 {
	margin: 0 0 16px;
	font-size: 22px;
}
#pageStaff .staffGroup_construction .staffList_cmt,
#pageStaff .staffGroup_design .staffList_cmt {
	margin: 18px 0 0;
}
#contents #pageStaff .staffGroup_construction .staffList_cmt > p,
#contents #pageStaff .staffGroup_design .staffList_cmt > p {
	font-size: 14px;
	line-height: 1.9;
}
@media screen and (max-width: 1024px) {
	#pageStaff {
		padding: 0 30px;
	}
	#contents #pageStaff > header > h2 {
		font-size: 46px;
	}
	#contents #pageStaff .staffGroup > h3 {
		font-size: 20px;
	}
	#pageStaff .staffList > li {
		grid-template-columns: 260px minmax(0, 1fr);
		column-gap: 40px;
		padding: 40px 0;
	}
	#contents #pageStaff .staffListInfo > h4 {
		margin: 0 0 20px;
		font-size: 24px;
	}
	#pageStaff .staffList_cmt {
		margin: 22px 0 0;
	}
	#contents #pageStaff .staffList_cmt > p {
		font-size: 14px;
		line-height: 1.9;
	}
	#pageStaff .staffGroup_construction .staffList,
	#pageStaff .staffGroup_design .staffList {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 50px 30px;
		padding: 30px 0 0;
	}
	#pageStaff .staffGroup_construction .staffList > li,
	#pageStaff .staffGroup_design .staffList > li {
		padding: 0;
	}
	#contents #pageStaff .staffGroup_construction .staffListInfo > h4,
	#contents #pageStaff .staffGroup_design .staffListInfo > h4 {
		margin: 0 0 16px;
		font-size: 20px;
	}
	#pageStaff .staffGroup_construction .staffList_cmt,
	#pageStaff .staffGroup_design .staffList_cmt {
		margin: 18px 0 0;
	}
}
@media screen and (max-width: 768px) {
	#pageStaff {
		padding: 0 20px;
	}
	#pageStaff > header {
		flex-wrap: wrap;
		gap: 14px;
		margin: 0 0 32px;
	}
	#contents #pageStaff > header > h2 {
		font-size: 34px;
	}
	#contents #pageStaff > header > p {
		font-size: 12px;
	}
	#pageStaff .staffmain_img01 {
		margin: 0 0 60px;
	}
	#pageStaff .staffGroup {
		margin: 0 0 60px;
	}
	#contents #pageStaff .staffGroup > h3 {
		padding: 16px;
		margin: 0 0 10px;
		font-size: 17px;
		letter-spacing: 0.2em;
	}
	#pageStaff .staffList > li {
		grid-template-columns: 38% minmax(0, 1fr);
		grid-template-rows: auto;
		column-gap: 18px;
		align-items: start;
		padding: 30px 0;
	}
	#pageStaff .staffList > li > figure {
		grid-row: auto;
	}
	#pageStaff .staffListInfo {
		padding: 0;
	}
	#pageStaff .staffList_cmt {
		grid-column: 1 / -1;
		margin: 18px 0 0;
	}
	#contents #pageStaff .staffListInfo > .post {
		margin: 0 0 8px;
		font-size: 11px;
	}
	#contents #pageStaff .staffListInfo > .post::before {
		width: 18px;
	}
	#contents #pageStaff .staffListInfo > h4 {
		margin: 0 0 12px;
		font-size: 18px;
	}
	#pageStaff .staffListInfo > .hobby {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding: 10px 0;
	}
	#pageStaff .hobby > dt {
		padding: 3px 8px;
	}
	#pageStaff .hobby > dd {
		font-size: 13px;
	}
	#contents #pageStaff .staffList_cmt > p {
		font-size: 13px;
		line-height: 1.9;
	}
	#pageStaff .staffGroup_construction .staffList,
	#pageStaff .staffGroup_design .staffList {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 36px 16px;
		padding: 20px 0 0;
	}
	#pageStaff .staffGroup_construction .staffList > li,
	#pageStaff .staffGroup_design .staffList > li {
		display: flex;
		flex-direction: column;
		padding: 0;
		border-bottom: none;
	}
	#pageStaff .staffGroup_construction .staffList > li > figure,
	#pageStaff .staffGroup_design .staffList > li > figure {
		margin: 0 0 14px;
	}
	#contents #pageStaff .staffGroup_construction .staffListInfo > h4,
	#contents #pageStaff .staffGroup_design .staffListInfo > h4 {
		margin: 0 0 10px;
		font-size: 16px;
	}
	#pageStaff .staffGroup_construction .staffList_cmt,
	#pageStaff .staffGroup_design .staffList_cmt {
		margin: 12px 0 0;
	}
	#contents #pageStaff .staffGroup_construction .staffList_cmt > p,
	#contents #pageStaff .staffGroup_design .staffList_cmt > p {
		font-size: 12px;
		line-height: 1.8;
	}
}
@media screen and (max-width: 375px) {
	#pageStaff {
		padding: 0 16px;
	}
	#contents #pageStaff > header > h2 {
		font-size: 28px;
	}
	#contents #pageStaff .staffGroup > h3 {
		padding: 14px;
		font-size: 16px;
	}
	#pageStaff .staffList > li {
		grid-template-columns: 36% minmax(0, 1fr);
		column-gap: 14px;
	}
	#contents #pageStaff .staffListInfo > h4 {
		font-size: 16px;
	}
	#pageStaff .staffGroup_construction .staffList,
	#pageStaff .staffGroup_design .staffList {
		gap: 30px 12px;
	}
	#contents #pageStaff .staffGroup_construction .staffListInfo > h4,
	#contents #pageStaff .staffGroup_design .staffListInfo > h4 {
		font-size: 15px;
	}
}


/************************************************************/
/*　スタッフ紹介　詳細
/************************************************************/
.staff-content {
	width: 100%;
	max-width: 900px;
	padding: 0;
	margin: 0 auto;
}
.staff_profile {
	position: relative;
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: 60px;
	align-items: start;
	width: 100%;
	padding: 0;
	margin: 0 0 50px;
}
.staff_profile > figure {
	grid-row: 1 / 3;
	width: 100%;
	padding: 0;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--base);
}
.staff_profile > figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.staff_profileInfo {
	grid-column: 2;
	padding: 10px 0 0;
	margin: 0;
}
#contents .staff_profileInfo > .staff_label {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 0;
	margin: 0 0 28px;
	color: #888;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}
#contents .staff_profileInfo > .staff_label span {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	letter-spacing: 0.3em;
}
#contents .staff_profileInfo > .staff_label span::before {
	content: "";
	display: block;
	width: 40px;
	height: 1px;
	background: var(--text);
}
#contents .staff_profileInfo > .post {
	padding: 0;
	margin: 0 0 10px;
	color: #888;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
#contents .staff_profileInfo > h1 {
	width: auto;
	padding: 0;
	margin: 0 0 30px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 34px;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.4;
}
#contents .staff_profileInfo > h1::before,
#contents .staff_profileInfo > h1::after {
	content: none;
}
.staff_profileInfo > .hobby {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	margin: 0;
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}
.staff_profileInfo > .hobby > dt {
	flex-shrink: 0;
	padding: 3px 12px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
.staff_profileInfo > .hobby > dd {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.7;
}
.staff_message {
	grid-column: 2;
	width: 100%;
	padding: 30px 32px;
	margin: 30px 0 0;
	background: var(--base);
}
#contents .staff_message > .staff_message_en {
	padding: 0;
	margin: 0 0 18px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 13px;
	letter-spacing: 0.3em;
	line-height: 1;
}
#contents .staff_message > .staff_message_txt {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
@media screen and (max-width: 1024px) {
	.staff_profile {
		grid-template-columns: 280px minmax(0, 1fr);
		column-gap: 40px;
	}
	#contents .staff_profileInfo > h1 {
		margin: 0 0 24px;
		font-size: 28px;
	}
	.staff_message {
		padding: 26px 26px;
		margin: 24px 0 0;
	}
	#contents .staff_message > .staff_message_txt {
		font-size: 14px;
		line-height: 1.9;
	}
}
@media screen and (max-width: 768px) {
	.staff-content {
		padding: 60px 0;
	}
	.staff_profile {
		grid-template-columns: 38% minmax(0, 1fr);
		grid-template-rows: auto;
		column-gap: 18px;
		padding: 0 0 30px;
		margin: 0 0 30px;
	}
	.staff_profile::after {
		width: 80px;
	}
	.staff_profile > figure {
		grid-row: auto;
	}
	.staff_profileInfo {
		padding: 0;
	}
	#contents .staff_profileInfo > .staff_label {
		gap: 10px;
		margin: 0 0 16px;
		font-size: 11px;
	}
	#contents .staff_profileInfo > .staff_label span {
		gap: 10px;
		font-size: 12px;
	}
	#contents .staff_profileInfo > .staff_label span::before {
		width: 24px;
	}
	#contents .staff_profileInfo > .post {
		margin: 0 0 6px;
		font-size: 11px;
	}
	#contents .staff_profileInfo > h1 {
		margin: 0 0 14px;
		font-size: 20px;
		letter-spacing: 0.1em;
	}
	.staff_profileInfo > .hobby {
		gap: 8px;
		padding: 10px 0;
	}
	.staff_profileInfo > .hobby > dt {
		padding: 3px 8px;
	}
	.staff_profileInfo > .hobby > dd {
		font-size: 13px;
	}
	.staff_message {
		grid-column: 1 / -1;
		padding: 26px 20px;
		margin: 20px 0 0;
	}
	#contents .staff_message > .staff_message_en {
		margin: 0 0 12px;
		font-size: 12px;
	}
	#contents .staff_message > .staff_message_txt {
		font-size: 14px;
		line-height: 1.9;
	}
}
@media screen and (max-width: 375px) {
	.staff_profile {
		grid-template-columns: 36% minmax(0, 1fr);
		column-gap: 14px;
	}
	#contents .staff_profileInfo > h1 {
		font-size: 18px;
	}
	.staff_message {
		padding: 22px 16px;
	}
	#contents .staff_message > .staff_message_txt {
		font-size: 13px;
	}
}



/************************************************************/
/*　お知らせ
/************************************************************/
.news_archive {
	width: 100%;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--text);
	list-style: none;
}
.news_archive > li {
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	column-gap: 50px;
	align-items: start;
	padding: 40px 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
.news_archive > li.none {
	display: block;
	padding: 60px 0;
	color: #888;
	font-size: 14px;
	text-align: center;
}
.news_archive > li > figure {
	width: 100%;
	padding: 0;
	margin: 0;
	overflow: hidden;
	background: var(--base);
}
.news_archive > li > figure a {
	display: block;
	width: 100%;
}
.news_archive > li > figure img {
	display: block;
	width: 100%;
	height: auto;
	transition: var(--ease);
}
.news_archive > li:hover > figure img {
	transform: scale(1.05);
}
.news_info {
	padding: 4px 0 0;
	margin: 0;
}
.news_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	padding: 0;
	margin: 0 0 16px;
}
#contents .news_meta > .news_date {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 0;
	margin: 0;
	line-height: 1;
}
#contents .news_meta > .news_date span {
	color: #888;
	font-size: 11px;
	letter-spacing: 0.1em;
}
#contents .news_meta > .news_date time {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	letter-spacing: 0.1em;
}
.news_tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.news_tags > li {
	padding: 4px 10px;
	margin: 0;
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
#contents .news_info > h2 {
	width: auto;
	padding: 0;
	margin: 0 0 14px;
	border: none;
	border-radius: 0;
	background: none;
	font-family: var(--font-mincho);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .news_info > h2::before,
#contents .news_info > h2::after {
	content: none;
}
#contents .news_info > h2 a {
	color: var(--text);
	text-decoration: none;
	transition: var(--ease);
}
#contents .news_info > h2 a:hover {
	opacity: 0.6;
}
#contents .news_info > .news_excerpt {
	padding: 0;
	margin: 0 0 24px;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.news_btn {
	padding: 0;
	margin: 0;
}
.news_btn a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 12px 26px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-decoration: none;
	transition: var(--ease);
}
.news_btn a::after {
	content: "";
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
	transition: var(--ease);
}
.news_btn a:hover {
	background: var(--act);
	border: 1px solid var(--act);
	color: #fff;
}
.news_pagination {
	width: 100%;
	padding: 0;
	margin: 60px 0 0;
}
.news_pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.news_pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	margin: 0;
	border: 1px solid var(--border);
	color: var(--text);
	font-family: var(--font-en);
	font-size: 14px;
	letter-spacing: 0.1em;
	text-decoration: none;
	transition: var(--ease);
}
.news_pagination a.page-numbers:hover {
	border-color: var(--text);
}
.news_pagination .page-numbers.current {
	border-color: var(--text);
	background: var(--text);
	color: #fff;
}
.news_pagination .page-numbers.dots {
	min-width: auto;
	border: none;
}
@media screen and (max-width: 1024px) {
	.news_archive > li {
		grid-template-columns: 260px minmax(0, 1fr);
		column-gap: 30px;
		padding: 34px 0;
	}
	#contents .news_info > h2 {
		font-size: 18px;
	}
}
@media screen and (max-width: 768px) {
	.news_archive > li {
		grid-template-columns: 1fr;
		padding: 28px 0;
	}
	.news_archive > li > figure {
		margin: 0 0 16px;
	}
	.news_info {
		padding: 0;
	}
	.news_meta {
		gap: 6px 14px;
		margin: 0 0 12px;
	}
	#contents .news_meta > .news_date time {
		font-size: 13px;
	}
	#contents .news_info > h2 {
		margin: 0 0 10px;
		font-size: 17px;
	}
	#contents .news_info > .news_excerpt {
		margin: 0 0 18px;
		font-size: 13px;
	}
	.news_btn a {
		padding: 10px 20px;
		font-size: 12px;
	}
	.news_pagination {
		margin: 40px 0 0;
	}
	.news_pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		padding: 0 8px;
		font-size: 13px;
	}
}
@media screen and (max-width: 375px) {
	#contents .news_info > h2 {
		font-size: 16px;
	}
	.news_pagination .nav-links {
		gap: 6px;
	}
	.news_pagination .page-numbers {
		min-width: 34px;
		height: 34px;
	}
}


/************************************************************/
/*　よくある質問
/************************************************************/
.faqCategoryNav {
	width: 100%;
	padding: 0;
	margin: 0 0 70px;
}
.faqCategoryNav > ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.faqCategoryNav > ul > li {
	padding: 0;
	margin: 0;
}
.faqCategoryNav > ul > li > a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 20px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-decoration: none;
	transition: var(--ease);
}
.faqCategoryNav > ul > li > a::after {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	margin: -4px 0 0;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
}
.faqCategoryNav > ul > li > a:hover {
	background: var(--text);
	color: #fff;
}
.faqCategory {
	width: 100%;
	padding: 0;
	margin: 0 0 80px;
	scroll-margin-top: 120px;
}
.faqCategory:last-child {
	margin: 0;
}
#contents .faqCategory > .faqCategory__title {
	position: relative;
	width: auto;
	padding: 0 0 16px;
	margin: 0;
	border: none;
	border-bottom: 1px solid var(--border);
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
#contents .faqCategory > .faqCategory__title::before {
	content: none;
}
#contents .faqCategory > .faqCategory__title::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 60px;
	height: 1px;
	background: var(--text);
}
.faqList {
	width: 100%;
	padding: 0;
	margin: 0;
}
.faqList > dl {
	padding: 0;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
.faqList > dl > dt {
	position: relative;
	padding: 24px 64px 24px 52px;
	margin: 0;
	color: var(--text);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.7;
	cursor: pointer;
	transition: var(--ease);
}
.faqList > dl > dt::before {
	content: "Q";
	position: absolute;
	top: 22px;
	left: 8px;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.2;
}
.faqList > dl > dt:hover {
	opacity: 0.7;
}
.faqList > dl > dt > span {
	position: absolute;
	top: 50%;
	right: 16px;
	width: 16px;
	height: 16px;
	margin: -8px 0 0;
}
.faqList > dl > dt > span::before,
.faqList > dl > dt > span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--text);
	transition: var(--ease);
}
.faqList > dl > dt > span::after {
	transform: rotate(90deg);
}
.faqList > dl > dt.active > span::after {
	transform: rotate(0deg);
}
.faqList > dl > dd {
	position: relative;
	display: none;
	padding: 24px 28px 24px 52px;
	margin: 0 0 24px;
	background: var(--base);
}
.faqList > dl > dd::before {
	content: "A";
	position: absolute;
	top: 20px;
	left: 16px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.2;
}
#contents .faqList > dl > dd p {
	padding: 0;
	margin: 0 0 1em;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#contents .faqList > dl > dd p:last-child {
	margin: 0;
}
@media screen and (max-width: 1024px) {
	.faqCategoryNav {
		margin: 0 0 60px;
	}
	.faqCategory {
		margin: 0 0 70px;
	}
	#contents .faqCategory > .faqCategory__title {
		font-size: 22px;
	}
}
@media screen and (max-width: 768px) {
	.faqCategoryNav {
		margin: 0 0 44px;
	}
	.faqCategoryNav > ul {
		gap: 8px;
	}
	.faqCategoryNav > ul > li > a {
		gap: 10px;
		padding: 10px 14px;
		font-size: 13px;
	}
	.faqCategory {
		margin: 0 0 56px;
		scroll-margin-top: 80px;
	}
	#contents .faqCategory > .faqCategory__title {
		padding: 0 0 12px;
		font-size: 19px;
	}
	#contents .faqCategory > .faqCategory__title::after {
		width: 40px;
	}
	.faqList > dl > dt {
		padding: 18px 44px 18px 38px;
		font-size: 15px;
	}
	.faqList > dl > dt::before {
		top: 17px;
		left: 4px;
		font-size: 20px;
	}
	.faqList > dl > dt > span {
		right: 8px;
		width: 14px;
		height: 14px;
		margin: -7px 0 0;
	}
	.faqList > dl > dd {
		padding: 18px 16px 18px 38px;
		margin: 0 0 18px;
	}
	.faqList > dl > dd::before {
		top: 15px;
		left: 12px;
		font-size: 20px;
	}
	#contents .faqList > dl > dd p {
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	.faqList > dl > dt {
		padding: 16px 36px 16px 32px;
		font-size: 14px;
	}
	.faqList > dl > dt::before {
		top: 15px;
		left: 2px;
		font-size: 18px;
	}
	.faqList > dl > dd {
		padding: 16px 12px 16px 32px;
	}
	.faqList > dl > dd::before {
		left: 10px;
		font-size: 18px;
	}
	#contents .faqList > dl > dd p {
		font-size: 13px;
	}
}


/*============================================================*/
/* 10の記事 */
/*============================================================*/
.custom_visual {
	position: relative;
	display: grid;
	grid-template-columns: 380px 120px minmax(0, 1fr);
	align-items: center;
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto 120px;
}
.custom_visual > figure {
	grid-column: 2 / 4;
	grid-row: 1;
	width: 100%;
	padding: 0;
	margin: 0;
	overflow: hidden;
}
.custom_visual > figure img {
	display: block;
	width: 100%;
	height: auto;
}
.custom_v_txt {
	position: relative;
	z-index: 1;
	grid-column: 1 / 3;
	grid-row: 1;
	padding: 56px 50px;
	margin: 0;
	background: #fff;
	filter: var(--shade);
}
#contents .custom_v_txt > h3 {
	display: flex;
	flex-direction: column-reverse;
	gap: 14px;
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .custom_v_txt > h3::before,
#contents .custom_v_txt > h3::after {
	content: none;
}
#contents .custom_v_txt > h3 > span {
	display: block;
	color: var(--main);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1;
}
#contents .custom_v_txt > p {
	padding: 0;
	margin: 24px 0 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2;
}
#article_list {
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
}
.article_steps {
	width: 100%;
	padding: 0;
	margin: 0;
	list-style: none;
}
.article_steps > li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 70px;
	align-items: center;
	padding: 0 0 90px;
	margin: 0 0 90px;
	border-bottom: 1px solid var(--border);
}
.article_steps > li:last-child {
	padding: 0;
	margin: 0;
	border-bottom: none;
}
.article_steps > li:nth-child(even) > .article_txt {
	order: 2;
}
.article_txt {
	padding: 0;
	margin: 0;
}
#contents .article_txt > .article_step {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	margin: 0 0 20px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 56px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
}
#contents .article_txt > .article_step > span {
	color: var(--main);
	font-size: 16px;
	letter-spacing: 0.3em;
}
#contents .article_txt > .article_step::after {
	content: "";
	display: block;
	flex: 0 0 60px;
	align-self: center;
	height: 1px;
	margin: 0 0 0 8px;
	background: var(--border);
}
#contents .article_txt > h3 {
	width: auto;
	padding: 0;
	margin: 0 0 18px;
	border: none;
	border-radius: 0;
	background: none;
	font-family: var(--font-mincho);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#contents .article_txt > h3::before,
#contents .article_txt > h3::after {
	content: none;
}
#contents .article_txt > h3 a {
	color: var(--text);
	text-decoration: none;
	transition: var(--ease);
}
#contents .article_txt > h3 a:hover {
	opacity: 0.6;
}
#contents .article_txt > .article_desc {
	padding: 0;
	margin: 0 0 30px;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.article_btn {
	padding: 0;
	margin: 0;
}
.article_btn a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 12px 26px;
	margin: 0;
	border: 1px solid var(--text);
	color: var(--text);
	font-family: var(--font-en);
	font-size: 13px;
	letter-spacing: 0.15em;
	line-height: 1.4;
	text-decoration: none;
	transition: var(--ease);
}
.article_btn a::after {
	content: "";
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
	transition: var(--ease);
}
.article_btn a:hover {
	background: var(--text);
	color: #fff;
}
.article_steps > li > figure {
	width: 100%;
	padding: 0;
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--base);
}
.article_steps > li > figure a {
	display: block;
	width: 100%;
	height: 100%;
}
.article_steps > li > figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ease);
}
.article_steps > li:hover > figure img {
	transform: scale(1.05);
}
@media screen and (max-width: 1024px) {
	.custom_visual {
		grid-template-columns: 320px 80px minmax(0, 1fr);
		margin: 0 auto 90px;
	}
	.custom_v_txt {
		padding: 40px 32px;
	}
	#contents .custom_v_txt > h3 {
		font-size: 21px;
	}
	#contents .custom_v_txt > p {
		font-size: 14px;
		line-height: 1.9;
	}
	.article_steps > li {
		column-gap: 40px;
		padding: 0 0 70px;
		margin: 0 0 70px;
	}
	#contents .article_txt > .article_step {
		font-size: 46px;
	}
	#contents .article_txt > h3 {
		font-size: 21px;
	}
}
@media screen and (max-width: 768px) {
	.custom_visual {
		grid-template-columns: 1fr;
		margin: 0 auto 64px;
	}
	.custom_visual > figure {
		grid-column: 1;
	}
	.custom_v_txt {
		grid-column: 1;
		grid-row: 2;
		padding: 32px 22px;
		margin: -40px 15px 0;
	}
	#contents .custom_v_txt > h3 {
		gap: 10px;
		font-size: 19px;
	}
	#contents .custom_v_txt > h3 > span {
		font-size: 12px;
	}
	#contents .custom_v_txt > p {
		margin: 18px 0 0;
		font-size: 14px;
	}
	.article_steps > li {
		grid-template-columns: 1fr;
		padding: 0 0 56px;
		margin: 0 0 56px;
	}
	.article_steps > li > figure {
		order: -1;
		margin: 0 0 24px;
	}
	#contents .article_txt > .article_step {
		margin: 0 0 14px;
		font-size: 40px;
	}
	#contents .article_txt > .article_step > span {
		font-size: 12px;
	}
	#contents .article_txt > h3 {
		margin: 0 0 14px;
		font-size: 19px;
	}
	#contents .article_txt > .article_desc {
		margin: 0 0 24px;
		font-size: 13px;
		line-height: 1.9;
	}
	.article_btn a {
		padding: 10px 20px;
		font-size: 12px;
	}
}
@media screen and (max-width: 375px) {
	.custom_v_txt {
		padding: 26px 18px;
		margin: -30px 10px 0;
	}
	#contents .custom_v_txt > h3 {
		font-size: 17px;
	}
	#contents .custom_v_txt > p {
		font-size: 13px;
	}
	#contents .article_txt > .article_step {
		font-size: 34px;
	}
	#contents .article_txt > h3 {
		font-size: 17px;
	}
}


/*============================================================*/
/* YouMeProject */
/*============================================================*/
#pageYoume {
	width: 100%;
	max-width: none;
	padding: 100px 0;
	margin: 0;
}
#pageYoume > section {
	--side: max(40px, calc((100% - 1200px) / 2));
	box-sizing: border-box;
	width: 100%;
	padding: 0 var(--side);
	margin: 0 0 140px;
}
#pageYoume > section:last-child {
	margin: 0;
}
#pageYoume > section.youme_vr {
	padding: 100px var(--side);
	background: var(--base);
}
#pageYoume figure {
	padding: 0;
	margin: 0;
}
#pageYoume figure img {
	display: block;
	width: 100%;
	height: auto;
}
.youme_fv_head {
	padding: 0;
	margin: 0;
}
#pageYoume .youme_fv_head > h1 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 72px;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.1;
}
#pageYoume .youme_fv_head > h1::before,
#pageYoume .youme_fv_head > h1::after {
	content: none;
}
#pageYoume .youme_fv_head > p {
	padding: 0;
	margin: 18px 0 0;
	color: #888;
	font-size: 16px;
	letter-spacing: 0.15em;
	line-height: 1.6;
}
.youme_fv_visual {
	position: relative;
	padding: 0;
	margin: 50px 0 0;
}
.youme_fv_visual > figure {
	overflow: hidden;
}
.youme_fv_txt {
	position: relative;
	z-index: 1;
	width: 540px;
	max-width: calc(100% - 80px);
	padding: 50px 56px;
	margin: -140px 0 0 auto;
	background: #fff;
	filter: var(--shade);
}
#pageYoume .youme_fv_txt > h3 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
#pageYoume .youme_fv_txt > h3 + h3 {
	margin: 4px 0 0;
}
#pageYoume .youme_fv_txt > h3::before,
#pageYoume .youme_fv_txt > h3::after {
	content: none;
}
#pageYoume .youme_fv_txt > p {
	padding: 0;
	margin: 22px 0 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.youme_points {
	display: grid;
	gap: 120px;
	counter-reset: youme;
}
.youme_point {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	column-gap: 70px;
	align-items: center;
	padding: 0;
	margin: 0;
	counter-increment: youme;
}
.youme_point:nth-child(even) {
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}
.youme_point:nth-child(even) > .youme_point_txt {
	order: 2;
}
.youme_point_txt {
	padding: 0;
	margin: 0;
}
.youme_point_txt::before {
	content: counter(youme, decimal-leading-zero);
	display: block;
	margin: 0 0 14px;
	color: transparent;
	font-family: var(--font-en);
	font-size: 72px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
	-webkit-text-stroke: 1px var(--text);
}
.youme_point_txt > span {
	display: block;
	margin: 0 0 12px;
	color: var(--main);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.4;
}
#pageYoume .youme_point_txt > h3 {
	width: auto;
	padding: 0;
	margin: 0 0 22px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
#pageYoume .youme_point_txt > h3::before,
#pageYoume .youme_point_txt > h3::after {
	content: none;
}
#pageYoume .youme_point_txt > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.youme_point > figure {
	aspect-ratio: 8 / 5;
	overflow: hidden;
	background: var(--base);
}
#pageYoume .youme_point > figure img {
	height: 100%;
	object-fit: cover;
}
.youme_head {
	padding: 0;
	margin: 0 0 50px;
	text-align: center;
}
#pageYoume .youme_head > h2 {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 14px;
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
#pageYoume .youme_head > h2::before,
#pageYoume .youme_head > h2::after {
	content: none;
}
#pageYoume .youme_head > h2 > span {
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1;
}
#pageYoume .youme_lead {
	width: auto;
	padding: 0;
	margin: 0 0 50px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.8;
	text-align: center;
}
#pageYoume .youme_lead::before,
#pageYoume .youme_lead::after {
	content: none;
}
.youme_vr_body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 60px;
	align-items: center;
}
#pageYoume .youme_vr_txt > figure {
	margin: 0 0 28px;
}
#pageYoume .youme_vr_txt > p {
	padding: 0;
	margin: 0 0 1.2em;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#pageYoume .youme_vr_txt > p:last-child {
	margin: 0;
}
.youme_safety_gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	padding: 0;
	margin: 0 0 60px;
	list-style: none;
}
.youme_safety_gallery > li {
	padding: 0;
	margin: 0;
	aspect-ratio: 350 / 280;
	overflow: hidden;
}
.youme_safety_gallery > li > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.youme_safety_intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	column-gap: 50px;
	align-items: center;
	padding: 0;
	margin: 0 0 60px;
}
#pageYoume .youme_safety_intro > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 16px;
	letter-spacing: 0.05em;
	line-height: 2.1;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.youme_safety_list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.youme_safety_list > dl {
	padding: 32px 36px;
	margin: 0;
	background: var(--base);
}
.youme_safety_list > dl > dt {
	padding: 0 0 14px;
	margin: 0 0 16px;
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.5;
}
.youme_safety_list > dl > dd {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
@media screen and (max-width: 1024px) {
	#pageYoume > section {
		--side: 30px;
		margin: 0 0 110px;
	}
	#pageYoume > section.youme_vr {
		padding: 80px var(--side);
	}
	#pageYoume .youme_fv_head > h1 {
		font-size: 56px;
	}
	.youme_fv_txt {
		width: 460px;
		padding: 40px;
		margin: -100px 0 0 auto;
	}
	#pageYoume .youme_fv_txt > h3 {
		font-size: 21px;
	}
	.youme_points {
		gap: 90px;
	}
	.youme_point {
		column-gap: 40px;
	}
	.youme_point_txt::before {
		font-size: 56px;
	}
	#pageYoume .youme_point_txt > h3 {
		font-size: 22px;
	}
	#pageYoume .youme_point_txt > p {
		font-size: 14px;
		line-height: 1.9;
	}
	#pageYoume .youme_head > h2 {
		font-size: 26px;
	}
	.youme_vr_body {
		column-gap: 40px;
	}
	#pageYoume .youme_vr_txt > figure {
		margin: 0 0 24px;
	}
	.youme_safety_intro {
		grid-template-columns: minmax(0, 1fr) 320px;
		column-gap: 36px;
	}
	.youme_safety_list > dl {
		padding: 28px;
	}
}
@media screen and (max-width: 768px) {
	#pageYoume {
		padding: 70px 0;
	}
	#pageYoume > section {
		--side: 20px;
		margin: 0 0 90px;
	}
	#pageYoume > section.youme_vr {
		padding: 64px var(--side);
	}
	#pageYoume .youme_fv_head > h1 {
		font-size: 40px;
	}
	#pageYoume .youme_fv_head > p {
		margin: 12px 0 0;
		font-size: 14px;
		letter-spacing: 0.1em;
	}
	.youme_fv_visual {
		margin: 30px 0 0;
	}
	.youme_fv_txt {
		width: auto;
		max-width: none;
		padding: 30px 22px;
		margin: -40px 15px 0;
	}
	#pageYoume .youme_fv_txt > h3 {
		font-size: 19px;
		letter-spacing: 0.06em;
	}
	#pageYoume .youme_fv_txt > p {
		margin: 16px 0 0;
		font-size: 14px;
	}
	.youme_points {
		gap: 64px;
	}
	.youme_point,
	.youme_point:nth-child(even) {
		grid-template-columns: 1fr;
		grid-row-gap: 20px;
	}
	.youme_point > figure {
		order: -1;
		margin: 0 0 24px;
	}
	.youme_point_txt::before {
		margin: 0 0 10px;
		font-size: 44px;
	}
	#pageYoume .youme_point_txt > h3 {
		margin: 0 0 16px;
		font-size: 20px;
	}
	#pageYoume .youme_point_txt > p {
		font-size: 14px;
	}
	.youme_head {
		margin: 0 0 32px;
	}
	#pageYoume .youme_head > h2 {
		gap: 10px;
		font-size: 21px;
	}
	#pageYoume .youme_head > h2 > span {
		font-size: 12px;
	}
	#pageYoume .youme_lead {
		margin: 0 0 28px;
		font-size: 16px;
		text-align: left;
	}
	.youme_vr_body {
		grid-template-columns: 1fr;
		row-gap: 28px;
	}
	#pageYoume .youme_vr_txt > figure {
		margin: 0 0 20px;
	}
	#pageYoume .youme_vr_txt > p {
		font-size: 14px;
		line-height: 1.9;
	}
	.youme_safety_gallery {
		gap: 8px;
		margin: 0 0 40px;
	}
	.youme_safety_intro {
		grid-template-columns: 1fr;
		row-gap: 24px;
		margin: 0 0 40px;
	}
	#pageYoume .youme_safety_intro > p {
		font-size: 14px;
		line-height: 1.9;
	}
	.youme_safety_list {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.youme_safety_list > dl {
		padding: 24px 20px;
	}
	.youme_safety_list > dl > dt {
		padding: 0 0 12px;
		margin: 0 0 12px;
		font-size: 16px;
	}
	.youme_safety_list > dl > dd {
		font-size: 13px;
	}
}
@media screen and (max-width: 375px) {
	#pageYoume > section {
		--side: 16px;
	}
	#pageYoume .youme_fv_head > h1 {
		font-size: 34px;
	}
	.youme_fv_txt {
		padding: 24px 16px;
		margin: -30px 10px 0;
	}
	#pageYoume .youme_fv_txt > h3 {
		font-size: 17px;
	}
	.youme_point_txt::before {
		font-size: 38px;
	}
	#pageYoume .youme_point_txt > h3 {
		font-size: 18px;
	}
	#pageYoume .youme_head > h2 {
		font-size: 19px;
	}
	.youme_safety_list > dl {
		padding: 20px 16px;
	}
}


/*============================================================*/
/* 会社概要 */
/*============================================================*/
#pageCompany {
	width: 100%;
	max-width: none;
	padding: 100px 0;
	margin: 0;
}
#pageCompany > .company_sec {
	--side: max(40px, calc((100% - 1100px) / 2));
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	column-gap: 60px;
	align-items: start;
	width: 100%;
	padding: 0 var(--side);
	margin: 0 0 120px;
}
#pageCompany > .company_sec:last-child {
	margin: 0;
}
.company_head {
	padding: 0;
	margin: 0;
}
#pageCompany .company_head > h2 {
	position: relative;
	display: flex;
	flex-direction: column-reverse;
	gap: 12px;
	width: auto;
	padding: 0 0 18px;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
}
#pageCompany .company_head > h2::before {
	content: none;
}
#pageCompany .company_head > h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 1px;
	background: var(--text);
}
#pageCompany .company_head > h2 > span {
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1;
}
.company_body {
	min-width: 0;
	padding: 0;
	margin: 0;
}
#pageCompany .company_greeting > p {
	padding: 0;
	margin: 0 0 1.4em;
	color: var(--text);
	font-size: 16px;
	letter-spacing: 0.08em;
	line-height: 2.2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#pageCompany .company_greeting > p:last-child {
	margin: 0;
}
.company_table {
	width: 100%;
	padding: 0;
	margin: 0;
	border: none;
	border-top: 1px solid var(--text);
	border-collapse: collapse;
	border-spacing: 0;
	background: none;
}
.company_table tr {
	border: none;
	background: none;
}
.company_table th,
.company_table td {
	padding: 22px 0;
	margin: 0;
	border: none;
	border-bottom: 1px solid var(--border);
	background: none;
	color: var(--text);
	text-align: left;
	vertical-align: top;
	letter-spacing: 0.05em;
	line-height: 1.9;
}
.company_table th {
	width: 180px;
	padding: 22px 24px 22px 0;
	color: #888;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	white-space: nowrap;
}
.company_table td {
	font-size: 15px;
	word-break: break-all;
}
.company_table td ul {
	padding: 0;
	margin: 0;
	list-style: none;
}
.company_table td li {
	position: relative;
	padding: 0 0 0 18px;
	margin: 0 0 6px;
}
.company_table td li:last-child {
	margin: 0;
}
.company_table td li::before {
	content: "";
	position: absolute;
	top: 0.95em;
	left: 0;
	width: 8px;
	height: 1px;
	background: var(--text);
}
.company_zeh {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 28px 32px;
	margin: 50px 0 30px;
	background: var(--base);
}
#pageCompany .company_zeh > figure {
	flex-shrink: 0;
	width: 110px;
	padding: 0;
	margin: 0;
}
#pageCompany .company_zeh > figure img {
	display: block;
	width: 100%;
	height: auto;
}
#pageCompany .company_zeh > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
.company_tablepress {
	width: 100%;
	padding: 0;
	margin: 0 0 30px;
}
.company_tablepress table {
	width: 100%;
	margin: 0;
	border: none;
	border-top: 1px solid var(--text);
	border-collapse: collapse;
}
.company_tablepress th,
.company_tablepress td {
	padding: 14px 16px;
	border: none;
	border-bottom: 1px solid var(--border);
	background: none;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.8;
	text-align: left;
	vertical-align: middle;
}
.company_tablepress thead th {
	background: var(--base);
	font-weight: 700;
}
#pageCompany .company_sii {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	word-break: break-all;
}
#pageCompany .company_sii a {
	color: var(--main);
	text-decoration: underline;
	transition: var(--ease);
}
#pageCompany .company_sii a:hover {
	opacity: 0.6;
}
@media screen and (max-width: 1024px) {
	#pageCompany > .company_sec {
		--side: 30px;
		grid-template-columns: 200px minmax(0, 1fr);
		column-gap: 40px;
		margin: 0 0 100px;
	}
	#pageCompany .company_head > h2 {
		font-size: 23px;
	}
	.company_table th {
		width: 150px;
	}
}
@media screen and (max-width: 768px) {
	#pageCompany {
		padding: 70px 0;
	}
	#pageCompany > .company_sec {
		--side: 20px;
		grid-template-columns: 1fr;
		margin: 0 0 70px;
	}
	.company_head {
		margin: 0 0 28px;
	}
	#pageCompany .company_head > h2 {
		gap: 10px;
		padding: 0 0 14px;
		font-size: 21px;
	}
	#pageCompany .company_head > h2 > span {
		font-size: 12px;
	}
	#pageCompany .company_greeting > p {
		font-size: 14px;
		letter-spacing: 0.05em;
		line-height: 2;
	}
	.company_table th,
	.company_table td {
		display: block;
		width: 100%;
	}
	.company_table th {
		padding: 16px 0 4px;
		border-bottom: none;
		font-size: 12px;
	}
	.company_table td {
		padding: 0 0 16px;
		font-size: 14px;
	}
	.company_zeh {
		gap: 18px;
		padding: 20px;
		margin: 36px 0 24px;
	}
	#pageCompany .company_zeh > figure {
		width: 80px;
	}
	#pageCompany .company_zeh > p {
		font-size: 15px;
	}
	.company_tablepress th,
	.company_tablepress td {
		padding: 12px 10px;
		font-size: 13px;
	}
	#pageCompany .company_sii {
		font-size: 13px;
	}
}
@media screen and (max-width: 375px) {
	#pageCompany > .company_sec {
		--side: 16px;
	}
	#pageCompany .company_head > h2 {
		font-size: 19px;
	}
	.company_zeh {
		padding: 16px;
	}
	#pageCompany .company_zeh > figure {
		width: 68px;
	}
	#pageCompany .company_zeh > p {
		font-size: 14px;
	}
}


/*============================================================*/
/* Bino */
/*============================================================*/
#pageBino {
	--yellow: #c99a3a;
	--red: #c0573f;
	--blue: #3d6b94;
	--green: #5b8650;
	width: 100%;
	max-width: none;
	padding: 0 0 100px;
	margin: 0;
	overflow: hidden;
}
#pageBino .Yellow {
	--cat: var(--yellow);
}
#pageBino .Red {
	--cat: var(--red);
}
#pageBino .Blue {
	--cat: var(--blue);
}
#pageBino .Green {
	--cat: var(--green);
}
#pageBino figure {
	padding: 0;
	margin: 0;
}
#pageBino figure img {
	display: block;
	width: 100%;
	height: auto;
}
#pageBino h1,
#pageBino h2,
#pageBino h3,
#pageBino h4 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
}
#pageBino h1::before,
#pageBino h1::after,
#pageBino h2::before,
#pageBino h2::after,
#pageBino h3::before,
#pageBino h3::after,
#pageBino h4::before,
#pageBino h4::after {
	content: none;
}
#lpPage > section {
	--side: max(40px, calc((100% - 1200px) / 2));
	box-sizing: border-box;
	width: 100%;
	padding: 0 var(--side);
	margin: 0 0 140px;
}
#lpPage > section:last-child {
	margin: 0;
}
#lpVisual {
	position: relative;
	width: 100%;
	height: 100vh;
	min-height: 600px;
	max-height: 960px;
	padding: 0;
	margin: 0 0 120px;
	overflow: hidden;
	background: var(--text);
}
#lpVisual::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.5) 100%);
	pointer-events: none;
}
#lpVisual .lpVisualSwiper {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
#lpVisual .swiper-slide {
	width: 100%;
	height: 100%;
	overflow: hidden;
}
#lpVisual .swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 7s linear;
}
#lpVisual .swiper-slide-active img {
	transform: scale(1.08);
}
#lpHead {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	width: 100%;
	padding: 30px 40px;
	margin: 0;
}
#lpHead .lpLogo {
	width: 200px;
	padding: 0;
	margin: 0;
}
#lpHead .lpLogo img {
	display: block;
	width: 100%;
	height: auto;
}
#lpHead > ul {
	display: flex;
	gap: 18px;
	padding: 0;
	margin: 0;
	list-style: none;
}
#lpHead > ul > li {
	padding: 0;
	margin: 0;
}
#lpHead > ul > li a {
	display: block;
	width: 26px;
	transition: var(--ease);
}
#lpHead > ul > li a:hover {
	opacity: 0.6;
}
#lpHead > ul > li img {
	display: block;
	width: 100%;
	height: auto;
}
#lpVisual .mv_info {
	position: absolute;
	bottom: 80px;
	left: max(40px, calc((100% - 1200px) / 2));
	z-index: 2;
	padding: 0;
	margin: 0;
	color: #fff;
}
#lpVisual .mv_info > em {
	display: block;
	margin: 0 0 22px;
	font-family: var(--font-en);
	font-size: 18px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1.6;
}
#pageBino #lpVisual .mv_info > h1 {
	color: #fff;
	font-family: var(--font-mincho);
	font-size: 56px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.4;
}
#lpAbout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 70px;
	align-items: center;
}
#lpAbout .lpAboutTxt {
	padding: 0;
	margin: 0;
}
#pageBino #lpAbout .lpAboutTxt > h2 {
	width: 200px;
	margin: 0 0 30px;
}
#pageBino #lpAbout .lpAboutTxt > h2 img {
	display: block;
	width: 100%;
	height: auto;
}
#pageBino #lpAbout .lpAboutCatch {
	padding: 0;
	margin: 0 0 30px;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.8;
}
#pageBino #lpAbout .lpAboutInfo {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 15px;
	letter-spacing: 0.05em;
	line-height: 2.2;
}
#lpPage > #lpGallery {
	--side: 0px;
}
#lpGallery .lpGallerySwiper {
	width: 100%;
	overflow: visible;
}
#lpGallery .swiper-slide {
	overflow: hidden;
	opacity: 0.5;
	transition: opacity 0.6s;
}
#lpGallery .swiper-slide-active {
	opacity: 1;
}
#lpGallery .swiper-slide figure {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
#pageBino #lpGallery .swiper-slide figure img {
	height: 100%;
	object-fit: cover;
}
#lpGallery .lpGalleryNav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	box-sizing: border-box;
	width: 100%;
	max-width: 1280px;
	padding: 0 40px;
	margin: 28px auto 0;
}
#lpGallery .swiper-pagination {
	position: static;
	display: flex;
	flex: 1;
	gap: 6px;
	width: auto;
	transform: none;
}
#lpGallery .swiper-pagination-bullet {
	flex: 1;
	width: auto;
	max-width: 60px;
	height: 2px;
	margin: 0;
	border-radius: 0;
	background: var(--border);
	opacity: 1;
	transition: var(--ease);
}
#lpGallery .swiper-pagination-bullet-active {
	background: var(--text);
}
#lpGallery .lpGalleryArrows {
	display: flex;
	gap: 10px;
}
#lpGallery .swiper-button-prev,
#lpGallery .swiper-button-next {
	position: relative;
	top: auto;
	right: auto;
	left: auto;
	width: 52px;
	height: 52px;
	padding: 0;
	margin: 0;
	border: 1px solid var(--text);
	border-radius: 50%;
	background: #fff;
	color: var(--text);
	cursor: pointer;
	transition: var(--ease);
}
#lpGallery .swiper-button-prev::after,
#lpGallery .swiper-button-next::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	font-size: 0;
}
#lpGallery .swiper-button-prev::after {
	transform: translate(-30%, -50%) rotate(-135deg);
}
#lpGallery .swiper-button-next::after {
	transform: translate(-70%, -50%) rotate(45deg);
}
#lpGallery .swiper-button-prev:hover,
#lpGallery .swiper-button-next:hover {
	background: var(--text);
	color: #fff;
}
#lpPage > #lpSkipfloor {
	padding: 100px var(--side);
	background: var(--base);
	text-align: center;
}
#pageBino #lpSkipfloor > h2 {
	margin: 0 0 36px;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 40px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.5;
	text-align: center;
}
#pageBino #lpSkipfloor > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 16px;
	letter-spacing: 0.08em;
	line-height: 2.4;
}
#pageBino .lpHead_sec {
	padding: 0;
	margin: 0 0 56px;
	text-align: center;
}
#pageBino .lpHead_sec > h2 {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 14px;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
#pageBino .lpHead_sec > h2 > span {
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1;
}
#lpOwnerVoice {
	--voice-red: #e96e7c;
	--voice-yellow: #f9db6b;
	--voice-blue: #42a0c8;
}
#pageBino #lpOwnerVoice .lpHead_sec {
	margin: 0 0 70px;
}
#pageBino #lpOwnerVoice .lpHead_sec > h2 {
	gap: 16px;
	font-family: var(--font-mincho);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.15em;
}
#pageBino #lpOwnerVoice .lpHead_sec > h2 > span {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 72px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1;
}
.lpOwnerVoiceList {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 70px 70px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.lpOwnerVoiceList > li {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0;
}
.lpOwnerVoiceList > li.Red {
	--voice: var(--voice-red);
}
.lpOwnerVoiceList > li.Yellow {
	--voice: var(--voice-yellow);
}
.lpOwnerVoiceList > li.Blue {
	--voice: var(--voice-blue);
}
.lpOwnerVoiceList > li > figure {
	aspect-ratio: 682 / 443;
	margin: 0;
	overflow: hidden;
	background: var(--base);
}
#pageBino .lpOwnerVoiceList > li > figure img {
	height: 100%;
	object-fit: cover;
	transition: var(--ease);
}
.lpOwnerVoiceList > li:hover > figure img {
	transform: scale(1.05);
}
#pageBino .lpOwnerVoiceList > li > h3 {
	flex: 1;
	padding: 60px 54px 56px;
	background: var(--voice);
	color: #222;
	font-family: var(--font-jp);
	font-size: 22px;
	font-weight: 900;
	letter-spacing: 0.04em;
	line-height: 1.6;
}
#pageBino .lpOwnerVoiceList > li > h3 > span {
	display: table;
	padding: 3px 18px;
	margin: 0 0 16px;
	border: 1px solid #222;
	background: none;
	color: #222;
	font-family: var(--font-en);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-transform: uppercase;
}
#lpAbout2 {
	text-align: center;
}
#pageBino #lpAbout2 > h2 {
	margin: 0 0 50px;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 40px;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.5;
	text-align: center;
}
#pageBino #lpAbout2 > p {
	padding: 0;
	margin: 0 0 1.8em;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 17px;
	letter-spacing: 0.12em;
	line-height: 2.4;
}
#pageBino #lpAbout2 > p:last-child {
	margin: 0;
}
.lpLineupCont {
	padding: 0;
	margin: 0 0 80px;
}
.lpLineupCont:last-child {
	margin: 0;
}
#pageBino .lpLineupCat_title {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 0 0 20px;
	margin: 0 0 30px;
	border-bottom: 2px solid var(--cat);
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
#pageBino .lpLineupCat_title img {
	display: block;
	width: 60px;
	height: auto;
}
.lpLineupCont > ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.lpLineupCont > ul > li {
	display: flex;
	flex-direction: column;
	padding: 28px 26px 22px;
	margin: 0;
	border: 1px solid var(--border);
	background: #fff;
	transition: var(--ease);
}
.lpLineupCont > ul > li:hover {
	border-color: var(--cat);
}
#pageBino .lpLineupCont > ul > li > h4 {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 26px;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.2;
}
#pageBino .lpLineupCont > ul > li > .lpLineupCatch {
	padding: 0;
	margin: 8px 0 18px;
	color: var(--cat);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
}
.lpLineupCont > ul > li > figure {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 18px;
}
#pageBino .lpLineupCont > ul > li > figure img {
	width: auto;
	max-width: 100%;
	max-height: 200px;
}
.lpLineupInfo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	padding: 14px 0 0;
	margin: 0;
	border-top: 1px solid var(--border);
}
.lpLineupInfo > .size {
	color: var(--text);
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 1.5;
}
.lpLineupInfo > .lpLineupCat {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--cat);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
.lpLineupInfo > .lpLineupCat img {
	display: block;
	width: 34px;
	height: auto;
}
#lpLineupOther > ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	padding: 0;
	margin: 0 0 40px;
	list-style: none;
}
#lpLineupOther > ul > li {
	padding: 0;
	margin: 0;
}
#lpLineupOther > ul > li > figure {
	aspect-ratio: 1 / 1;
	margin: 0 0 14px;
	overflow: hidden;
}
#pageBino #lpLineupOther > ul > li > figure img {
	height: 100%;
	object-fit: cover;
}
#pageBino #lpLineupOther > ul > li > h3 {
	color: var(--text);
	font-family: var(--font-en);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-align: center;
}
#pageBino #lpLineupOther > .lpLineupOtherNote {
	padding: 22px 20px;
	margin: 0;
	border-top: 1px solid var(--text);
	border-bottom: 1px solid var(--text);
	color: var(--text);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.7;
	text-align: center;
}
#pageBino #lpMovie > h2 {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 16px;
	margin: 0 0 50px;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
}
#pageBino #lpMovie > h2 > img {
	display: block;
	width: auto;
	height: 70px;
}
#pageBino #lpMovie > h2 > span {
	padding: 0 0 6px;
}
#pageBino #lpMovie > h2 b {
	color: var(--main);
	font-size: 34px;
}
#lpMovie > ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	padding: 0;
	margin: 0;
	list-style: none;
}
#lpMovie > ul > li {
	padding: 0;
	margin: 0;
}
#pageBino #lpMovie > ul > li > h3 {
	display: flex;
	justify-content: center;
	margin: 0 0 14px;
}
#pageBino #lpMovie > ul > li > h3 img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 56px;
}
#lpMovie > ul > li > figure {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--text);
}
#lpMovie > ul > li > figure iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}
@media screen and (max-width: 1280px) {
	#lpVisual .mv_info {
		left: 40px;
	}
}
@media screen and (max-width: 1024px) {
	#lpPage > section {
		--side: 30px;
		margin: 0 0 110px;
	}
	#lpPage > #lpGallery {
		--side: 0px;
	}
	#lpVisual {
		height: 520px;
		min-height: 520px;
		margin: 0 0 100px;
	}
	#lpHead {
		padding: 24px 30px;
	}
	#lpHead .lpLogo {
		width: 170px;
	}
	#lpVisual .mv_info {
		bottom: 60px;
		left: 30px;
	}
	#pageBino #lpVisual .mv_info > h1 {
		font-size: 44px;
	}
	#lpAbout {
		column-gap: 40px;
	}
	#pageBino #lpAbout .lpAboutCatch {
		font-size: 22px;
	}
	#pageBino #lpAbout .lpAboutInfo {
		font-size: 14px;
		line-height: 2;
	}
	#lpGallery .lpGalleryNav {
		padding: 0 30px;
	}
	#lpPage > #lpSkipfloor {
		padding: 80px var(--side);
	}
	#pageBino #lpSkipfloor > h2,
	#pageBino #lpAbout2 > h2 {
		font-size: 34px;
	}
	#pageBino .lpHead_sec > h2 {
		font-size: 26px;
	}
	#pageBino #lpOwnerVoice .lpHead_sec > h2 > span {
		font-size: 58px;
	}
	.lpOwnerVoiceList {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 30px;
	}
	#pageBino .lpOwnerVoiceList > li > h3 {
		padding: 40px 36px 42px;
		font-size: 19px;
	}
	.lpLineupCont > ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
	#lpLineupOther > ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	#lpMovie > ul {
		gap: 20px;
	}
	#pageBino #lpMovie > h2 > img {
		height: 56px;
	}
	#pageBino #lpMovie > ul > li > h3 img {
		height: 46px;
	}
}
@media screen and (max-width: 768px) {
	#pageBino {
		padding: 0 0 70px;
	}
	#lpPage > section {
		--side: 20px;
		margin: 0 0 80px;
	}
	#lpPage > #lpGallery {
		--side: 0px;
	}
	#lpVisual {
		height: 400px;
		min-height: 400px;
		max-height: 400px;
		margin: 0 0 70px;
	}
	#lpHead {
		padding: 18px 20px;
	}
	#lpHead .lpLogo {
		width: 130px;
	}
	#lpHead > ul {
		gap: 14px;
	}
	#lpHead > ul > li a {
		width: 22px;
	}
	#lpVisual .mv_info {
		bottom: 44px;
		left: 20px;
	}
	#lpVisual .mv_info > em {
		margin: 0 0 14px;
		font-size: 13px;
	}
	#pageBino #lpVisual .mv_info > h1 {
		font-size: 30px;
		letter-spacing: 0.1em;
	}
	#lpAbout {
		grid-template-columns: 1fr;
		row-gap: 30px;
	}
	#pageBino #lpAbout .lpAboutTxt > h2 {
		width: 150px;
		margin: 0 0 22px;
	}
	#pageBino #lpAbout .lpAboutCatch {
		margin: 0 0 20px;
		font-size: 19px;
	}
	#pageBino #lpAbout .lpAboutInfo {
		font-size: 13px;
	}
	#lpGallery .lpGalleryNav {
		gap: 20px;
		padding: 0 20px;
		margin: 20px auto 0;
	}
	#lpGallery .swiper-button-prev,
	#lpGallery .swiper-button-next {
		width: 42px;
		height: 42px;
	}
	#lpPage > #lpSkipfloor {
		padding: 60px var(--side);
	}
	#pageBino #lpSkipfloor > h2,
	#pageBino #lpAbout2 > h2 {
		margin: 0 0 28px;
		font-size: 26px;
	}
	#pageBino #lpSkipfloor > p {
		font-size: 13px;
		letter-spacing: 0.04em;
		line-height: 2.1;
		text-align: left;
	}
	#pageBino .lpHead_sec {
		margin: 0 0 36px;
	}
	#pageBino .lpHead_sec > h2 {
		gap: 10px;
		font-size: 21px;
	}
	#pageBino .lpHead_sec > h2 > span {
		font-size: 12px;
	}
	#pageBino #lpOwnerVoice .lpHead_sec {
		margin: 0 0 40px;
	}
	#pageBino #lpOwnerVoice .lpHead_sec > h2 {
		gap: 10px;
		font-size: 16px;
	}
	#pageBino #lpOwnerVoice .lpHead_sec > h2 > span {
		font-size: 40px;
	}
	.lpOwnerVoiceList {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	#pageBino .lpOwnerVoiceList > li > h3 {
		padding: 28px 24px 30px;
		font-size: 17px;
	}
	#pageBino .lpOwnerVoiceList > li > h3 > span {
		padding: 2px 12px;
		margin: 0 0 12px;
		font-size: 13px;
	}
	#pageBino #lpAbout2 > p {
		font-size: 14px;
		letter-spacing: 0.06em;
		line-height: 2.2;
	}
	.lpLineupCont {
		margin: 0 0 56px;
	}
	#pageBino .lpLineupCat_title {
		gap: 10px;
		padding: 0 0 12px;
		margin: 0 0 20px;
		font-size: 19px;
	}
	#pageBino .lpLineupCat_title img {
		width: 46px;
	}
	.lpLineupCont > ul {
		gap: 12px;
	}
	.lpLineupCont > ul > li {
		padding: 18px 14px 14px;
	}
	#pageBino .lpLineupCont > ul > li > h4 {
		font-size: 19px;
	}
	#pageBino .lpLineupCont > ul > li > .lpLineupCatch {
		margin: 6px 0 12px;
		font-size: 12px;
	}
	#pageBino .lpLineupCont > ul > li > figure img {
		max-height: 130px;
	}
	.lpLineupInfo {
		flex-direction: column;
		align-items: flex-start;
		padding: 10px 0 0;
	}
	.lpLineupInfo > .size {
		font-size: 11px;
	}
	.lpLineupInfo > .lpLineupCat {
		font-size: 11px;
	}
	.lpLineupInfo > .lpLineupCat img {
		width: 25px;
	}
	#lpLineupOther > ul {
		gap: 12px;
		margin: 0 0 28px;
	}
	#pageBino #lpLineupOther > ul > li > h3 {
		font-size: 12px;
	}
	#pageBino #lpLineupOther > .lpLineupOtherNote {
		padding: 18px 10px;
		font-size: 14px;
	}
	#pageBino #lpMovie > h2 {
		gap: 8px;
		margin: 0 0 32px;
		font-size: 18px;
	}
	#pageBino #lpMovie > h2 b {
		font-size: 24px;
	}
	#pageBino #lpMovie > h2 > img {
		height: 40px;
	}
	#lpMovie > ul {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}
@media screen and (max-width: 375px) {
	#lpPage > section {
		--side: 16px;
	}
	#lpPage > #lpGallery {
		--side: 0px;
	}
	#lpHead {
		padding: 16px;
	}
	#lpHead .lpLogo {
		width: 110px;
	}
	#lpVisual .mv_info {
		left: 16px;
	}
	#pageBino #lpVisual .mv_info > h1 {
		font-size: 26px;
	}
	#pageBino #lpSkipfloor > h2,
	#pageBino #lpAbout2 > h2 {
		font-size: 22px;
	}
	#pageBino #lpOwnerVoice .lpHead_sec > h2 > span {
		font-size: 34px;
	}
	#pageBino .lpOwnerVoiceList > li > h3 {
		padding: 24px 18px 26px;
		font-size: 16px;
	}
	.lpLineupCont > ul {
		gap: 8px;
	}
	.lpLineupCont > ul > li {
		padding: 14px 10px 12px;
	}
	#pageBino .lpLineupCont > ul > li > h4 {
		font-size: 16px;
	}
	#pageBino #lpMovie > h2 > img {
		height: 32px;
	}
}


/*============================================================*/
/* 規格住宅 */
/*============================================================*/
#standard {
	width: 100%;
	max-width: none;
	padding: 100px 0;
	margin: 0;
}
#standard > #stdPoint,
#standard > .stdList {
	--side: max(40px, calc((100% - 1200px) / 2));
	box-sizing: border-box;
	width: 100%;
	padding: 0 var(--side);
	margin: 0 0 140px;
}
#standard > .stdList {
	margin: 0;
}
#standard figure {
	padding: 0;
	margin: 0;
}
#standard figure img {
	display: block;
	width: 100%;
	height: auto;
}
#standard h2,
#standard h3 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
}
#standard h2::before,
#standard h2::after,
#standard h3::before,
#standard h3::after {
	content: none;
}
#stdPoint > header {
	padding: 0;
	margin: 0 0 60px;
	text-align: center;
}
#standard #stdPoint > header > h2 {
	position: relative;
	padding: 0 0 24px;
	margin: 0 0 22px;
	font-family: var(--font-mincho);
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-align: center;
}
#standard #stdPoint > header > h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 40px;
	height: 1px;
	background: var(--text);
	transform: translateX(-50%);
}
#standard #stdPoint > header > p {
	padding: 0;
	margin: 0;
	color: #888;
	font-size: 15px;
	letter-spacing: 0.08em;
	line-height: 1.8;
}
.stdPointList {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px 40px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.stdPointList > li {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0;
}
.stdPointList > li > figure {
	order: -1;
	aspect-ratio: 700 / 430;
	margin: 0 0 24px;
	overflow: hidden;
	background: var(--base);
}
#standard .stdPointList > li > figure img {
	height: 100%;
	object-fit: cover;
}
.stdPointList > li > em {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: var(--text);
	color: #fff;
	font-family: var(--font-en);
	font-size: 22px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
}
.stdPoint_info {
	padding: 0;
	margin: 0;
}
#standard .stdPoint_info > h3 {
	position: relative;
	padding: 10px 0 14px;
	margin: 0 0 16px;
	border-bottom: 1px solid var(--border);
	font-family: var(--font-mincho);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
#standard .stdPoint_info > h3::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 40px;
	height: 1px;
	background: var(--text);
}
#standard .stdPoint_info > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
.stdList {
	display: grid;
	gap: 120px;
	list-style: none;
}
.stdList > li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 120px 420px;
	align-items: center;
	padding: 0;
	margin: 0;
}
.stdList > li > figure {
	grid-column: 1 / 3;
	grid-row: 1;
	overflow: hidden;
}
.stdList_info {
	position: relative;
	z-index: 1;
	grid-column: 2 / 4;
	grid-row: 1;
	padding: 50px 46px;
	margin: 0;
	background: #fff;
	filter: var(--shade);
}
.stdList > li:nth-child(even) {
	grid-template-columns: 420px 120px minmax(0, 1fr);
}
.stdList > li:nth-child(even) > figure {
	grid-column: 2 / 4;
}
.stdList > li:nth-child(even) > .stdList_info {
	grid-column: 1 / 3;
}
#standard .stdList_info > h3 {
	margin: 0 0 22px;
	font-family: var(--font-mincho);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.8;
}
#standard .stdList_info > p {
	position: relative;
	padding: 22px 0 0;
	margin: 0;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#standard .stdList_info > p::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 40px;
	height: 1px;
	background: var(--text);
}
@media screen and (max-width: 1024px) {
	#standard > #stdPoint,
	#standard > .stdList {
		--side: 30px;
	}
	#standard > #stdPoint {
		margin: 0 0 110px;
	}
	#standard #stdPoint > header > h2 {
		font-size: 27px;
	}
	.stdPointList {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 50px 30px;
	}
	.stdList {
		gap: 90px;
	}
	.stdList > li {
		grid-template-columns: minmax(0, 1fr) 80px 360px;
	}
	.stdList > li:nth-child(even) {
		grid-template-columns: 360px 80px minmax(0, 1fr);
	}
	.stdList_info {
		padding: 36px 32px;
	}
	#standard .stdList_info > h3 {
		font-size: 18px;
	}
}
@media screen and (max-width: 768px) {
	#standard {
		padding: 70px 0;
	}
	#standard > #stdPoint,
	#standard > .stdList {
		--side: 20px;
	}
	#standard > #stdPoint {
		margin: 0 0 80px;
	}
	#stdPoint > header {
		margin: 0 0 40px;
	}
	#standard #stdPoint > header > h2 {
		padding: 0 0 18px;
		margin: 0 0 16px;
		font-size: 21px;
	}
	#standard #stdPoint > header > p {
		font-size: 13px;
		text-align: left;
	}
	.stdPointList {
		grid-template-columns: 1fr;
		gap: 44px;
	}
	.stdPointList > li > figure {
		margin: 0 0 18px;
	}
	.stdPointList > li > em {
		width: 52px;
		height: 52px;
		font-size: 18px;
	}
	#standard .stdPoint_info > h3 {
		padding: 12px 0 12px;
		margin: 0 0 14px;
		font-size: 19px;
	}
	#standard .stdPoint_info > p {
		font-size: 13px;
	}
	.stdList {
		gap: 60px;
	}
	.stdList > li,
	.stdList > li:nth-child(even) {
		grid-template-columns: 1fr;
	}
	.stdList > li > figure,
	.stdList > li:nth-child(even) > figure {
		grid-column: 1;
		grid-row: 1;
	}
	.stdList_info,
	.stdList > li:nth-child(even) > .stdList_info {
		grid-column: 1;
		grid-row: 2;
		padding: 28px 22px;
		margin: -40px 15px 0;
	}
	#standard .stdList_info > h3 {
		margin: 0 0 16px;
		font-size: 17px;
		line-height: 1.7;
	}
	#standard .stdList_info > p {
		padding: 16px 0 0;
		font-size: 13px;
		line-height: 1.9;
	}
}
@media screen and (max-width: 375px) {
	#standard > #stdPoint,
	#standard > .stdList {
		--side: 16px;
	}
	#standard #stdPoint > header > h2 {
		font-size: 19px;
	}
	.stdList_info,
	.stdList > li:nth-child(even) > .stdList_info {
		padding: 24px 16px;
		margin: -30px 10px 0;
	}
	#standard .stdList_info > h3 {
		font-size: 16px;
	}
}


/*============================================================*/
/* ご相談の流れ */
/*============================================================*/
#flow_wrap {
	width: 100%;
	max-width: none;
	padding: 100px 0;
	margin: 0;
}
#flow_wrap > .flow_visual,
#flow_wrap > .flow_steps {
	--side: max(40px, calc((100% - 1200px) / 2));
	box-sizing: border-box;
	width: 100%;
	padding: 0 var(--side);
}
#flow_wrap figure {
	padding: 0;
	margin: 0;
}
#flow_wrap figure img {
	display: block;
	width: 100%;
	height: auto;
}
#flow_wrap h2,
#flow_wrap h3 {
	width: auto;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
}
#flow_wrap h2::before,
#flow_wrap h2::after,
#flow_wrap h3::before,
#flow_wrap h3::after {
	content: none;
}
.flow_visual {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 120px 400px;
	align-items: center;
	margin: 0 0 120px;
}
.flow_visual > figure {
	grid-column: 1 / 3;
	grid-row: 1;
	overflow: hidden;
}
.flow_v_txt {
	position: relative;
	z-index: 1;
	grid-column: 2 / 4;
	grid-row: 1;
	padding: 56px 50px;
	margin: 0;
	background: #fff;
	filter: var(--shade);
}
#flow_wrap .flow_v_txt > h3:first-child {
	position: relative;
	padding: 0 0 22px;
	margin: 0 0 22px;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
}
#flow_wrap .flow_v_txt > h3:first-child::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 1px;
	background: var(--text);
}
#flow_wrap .flow_v_txt > h3:last-child {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.9;
}
.flow_steps {
	margin: 0;
}
.flow_step {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	column-gap: 60px;
	align-items: start;
	padding: 50px 0 80px;
	margin: 0;
	border-top: 1px solid var(--text);
}
.flow_step:last-child {
	padding: 50px 0 0;
}
.flow_step_head {
	position: sticky;
	top: 120px;
	padding: 0;
	margin: 0;
}
#flow_wrap .flow_step_head > .flow_step_no {
	padding: 0;
	margin: 0 0 22px;
	color: var(--text);
	font-family: var(--font-en);
	font-size: 40px;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1;
}
#flow_wrap .flow_step_head > h2 {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
#flow_wrap .flow_step_head > h2 > span {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid var(--text);
}
.flow_step_body {
	display: grid;
	gap: 36px;
	padding: 0;
	margin: 0;
}
.flow_item {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	column-gap: 32px;
	align-items: start;
	padding: 0 0 36px;
	margin: 0;
	border-bottom: 1px solid var(--border);
}
.flow_step_body > .flow_item:last-child {
	padding: 0;
	border-bottom: none;
}
.flow_item > figure {
	aspect-ratio: 330 / 220;
	overflow: hidden;
	background: var(--base);
}
#flow_wrap .flow_item > figure img {
	height: 100%;
	object-fit: cover;
}
.flow_item_txt {
	padding: 0;
	margin: 0;
}
#flow_wrap .flow_item_txt > h3 {
	display: flex;
	flex-direction: column-reverse;
	gap: 8px;
	margin: 0 0 16px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.5;
}
#flow_wrap .flow_item_txt > h3 > span {
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1;
}
#flow_wrap .flow_item_txt > p {
	padding: 0;
	margin: 0 0 1em;
	color: var(--text);
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.9;
	text-align: justify;
	text-justify: inter-ideograph;
	word-break: break-all;
}
#flow_wrap .flow_item_txt > p:last-child {
	margin: 0;
}
#flow_wrap .flow_attention {
	padding: 18px 24px;
	margin: 0;
	background: var(--base);
	color: var(--text);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.6;
	text-align: center;
}
@media screen and (max-width: 1024px) {
	#flow_wrap > .flow_visual,
	#flow_wrap > .flow_steps {
		--side: 30px;
	}
	.flow_visual {
		grid-template-columns: minmax(0, 1fr) 80px 340px;
		margin: 0 0 90px;
	}
	.flow_v_txt {
		padding: 40px 34px;
	}
	#flow_wrap .flow_v_txt > h3:first-child {
		font-size: 22px;
	}
	#flow_wrap .flow_v_txt > h3:last-child {
		font-size: 15px;
	}
	.flow_step {
		grid-template-columns: 200px minmax(0, 1fr);
		column-gap: 36px;
		padding: 40px 0 64px;
	}
	.flow_step:last-child {
		padding: 40px 0 0;
	}
	#flow_wrap .flow_step_head > .flow_step_no {
		font-size: 32px;
	}
	.flow_item {
		grid-template-columns: 200px minmax(0, 1fr);
		column-gap: 24px;
	}
	#flow_wrap .flow_item_txt > h3 {
		font-size: 18px;
	}
}
@media screen and (max-width: 768px) {
	#flow_wrap {
		padding: 70px 0;
	}
	#flow_wrap > .flow_visual,
	#flow_wrap > .flow_steps {
		--side: 20px;
	}
	.flow_visual {
		grid-template-columns: 1fr;
		margin: 0 0 64px;
	}
	.flow_visual > figure {
		grid-column: 1;
	}
	.flow_v_txt {
		grid-column: 1;
		grid-row: 2;
		padding: 28px 22px;
		margin: -40px 15px 0;
	}
	#flow_wrap .flow_v_txt > h3:first-child {
		padding: 0 0 16px;
		margin: 0 0 16px;
		font-size: 19px;
	}
	#flow_wrap .flow_v_txt > h3:last-child {
		font-size: 14px;
	}
	.flow_step {
		grid-template-columns: 1fr;
		padding: 32px 0 50px;
	}
	.flow_step:last-child {
		padding: 32px 0 0;
	}
	.flow_step_head {
		position: static;
		margin: 0 0 28px;
	}
	#flow_wrap .flow_step_head > .flow_step_no {
		margin: 0 0 16px;
		font-size: 28px;
	}
	#flow_wrap .flow_step_head > h2 {
		gap: 6px;
		font-size: 12px;
	}
	#flow_wrap .flow_step_head > h2 > span {
		padding: 5px 10px;
	}
	.flow_step_body {
		gap: 28px;
	}
	.flow_item {
		grid-template-columns: 1fr;
		row-gap: 16px;
		padding: 0 0 28px;
	}
	#flow_wrap .flow_item_txt > h3 {
		margin: 0 0 12px;
		font-size: 17px;
	}
	#flow_wrap .flow_item_txt > p {
		font-size: 13px;
	}
	#flow_wrap .flow_attention {
		padding: 16px;
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#flow_wrap > .flow_visual,
	#flow_wrap > .flow_steps {
		--side: 16px;
	}
	.flow_v_txt {
		padding: 24px 16px;
		margin: -30px 10px 0;
	}
	#flow_wrap .flow_v_txt > h3:first-child {
		font-size: 17px;
	}
	#flow_wrap .flow_step_head > .flow_step_no {
		font-size: 24px;
	}
	#flow_wrap .flow_item_txt > h3 {
		font-size: 16px;
	}
}


/************************************************************/
/*　採用情報
/************************************************************/
#pageRecruit {
	--side: max(40px, calc((100% - 1000px) / 2));
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	padding: 100px var(--side);
	margin: 0;
}
.recruit_intro {
	padding: 0;
	margin: 0 0 90px;
	text-align: center;
}
#pageRecruit .recruit_intro > h2 {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 18px;
	width: auto;
	padding: 0;
	margin: 0 0 36px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-mincho);
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
}
#pageRecruit .recruit_intro > h2::before,
#pageRecruit .recruit_intro > h2::after {
	content: none;
}
#pageRecruit .recruit_intro > h2 > span {
	display: block;
	color: var(--main);
	font-family: var(--font-en);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1;
}
#pageRecruit .recruit_intro > p {
	padding: 0;
	margin: 0;
	color: var(--text);
	font-size: 16px;
	letter-spacing: 0.08em;
	line-height: 2.2;
}
.recruit_info {
	padding: 0;
	margin: 0;
}
#pageRecruit .recruit_info > h3 {
	position: relative;
	width: auto;
	padding: 0 0 0 22px;
	margin: 0 0 24px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text);
	font-family: var(--font-jp);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
#pageRecruit .recruit_info > h3::before {
	content: "";
	position: absolute;
	top: 0.3em;
	left: 0;
	width: 3px;
	height: 1em;
	background: var(--text);
}
#pageRecruit .recruit_info > h3::after {
	content: none;
}
.recruit_table {
	width: 100%;
	padding: 0;
	margin: 0;
	border: none;
	border-top: 1px solid var(--text);
	border-collapse: collapse;
	border-spacing: 0;
	background: none;
}
.recruit_table tr {
	border: none;
	background: none;
}
.recruit_table th,
.recruit_table td {
	padding: 24px 0;
	margin: 0;
	border: none;
	border-bottom: 1px solid var(--border);
	background: none;
	color: var(--text);
	text-align: left;
	vertical-align: top;
	letter-spacing: 0.05em;
	line-height: 1.9;
}
.recruit_table th {
	position: relative;
	width: 220px;
	padding: 24px 24px 24px 22px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.recruit_table th::before {
	content: "";
	position: absolute;
	top: 36px;
	left: 0;
	width: 10px;
	height: 1px;
	background: var(--main);
}
.recruit_table td {
	font-size: 15px;
	word-break: break-all;
}
@media screen and (max-width: 1024px) {
	#pageRecruit {
		--side: 30px;
	}
	#pageRecruit .recruit_intro > h2 {
		font-size: 28px;
	}
	.recruit_table th {
		width: 180px;
	}
}
@media screen and (max-width: 768px) {
	#pageRecruit {
		--side: 20px;
		padding: 70px var(--side);
	}
	.recruit_intro {
		margin: 0 0 60px;
	}
	#pageRecruit .recruit_intro > h2 {
		gap: 12px;
		margin: 0 0 24px;
		font-size: 22px;
		letter-spacing: 0.1em;
	}
	#pageRecruit .recruit_intro > h2 > span {
		font-size: 12px;
	}
	#pageRecruit .recruit_intro > p {
		font-size: 14px;
		letter-spacing: 0.05em;
		line-height: 2;
		text-align: justify;
		text-justify: inter-ideograph;
		word-break: break-all;
	}
	#pageRecruit .recruit_intro > p br {
		display: none;
	}
	#pageRecruit .recruit_info > h3 {
		padding: 0 0 0 16px;
		margin: 0 0 18px;
		font-size: 19px;
	}
	.recruit_table th,
	.recruit_table td {
		display: block;
		width: 100%;
	}
	.recruit_table th {
		padding: 18px 0 4px 18px;
		border-bottom: none;
		font-size: 13px;
	}
	.recruit_table th::before {
		top: 30px;
		width: 8px;
	}
	.recruit_table td {
		padding: 0 0 18px 18px;
		font-size: 14px;
	}
}
@media screen and (max-width: 375px) {
	#pageRecruit {
		--side: 16px;
	}
	#pageRecruit .recruit_intro > h2 {
		font-size: 20px;
	}
}
/* 追加したハーフ幅クラスの指定 */
.half-width {
    width: 50% !important;
    max-width: 100%;
}

/* スマホ表示では100%幅に戻す（推奨） */
@media screen and (max-width: 768px) {
    .half-width {
        width: 100% !important;
    }
}