/**
 * front-page
 * 対象 1 ページ / 代表ページ: /
 *
 * 自動生成: node _research/emit-page.mjs
 * クラス名は DOM 構造から機械的に導出（_build/page-class-map.json）
 * 手で編集しない
 */
.p-page {
	min-height: 100vh;
	min-height: 100dvh;
	overflow: clip;
}
.p-page {
	align-content:center;
	align-items:center;
	background:var(--an-color-white);
	flex-direction:column;
	flex-wrap:nowrap;
	height:100%;
	justify-content:flex-start;
	width:100%;
	max-width:100%;
}
.p-front__body-box {
	align-content:center;
	align-items:center;
	bottom:auto;
	filter:saturate(100%);
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	height:1079px;
	justify-content:flex-end;
	left:0;
	margin:0;
	position:fixed;
	top:0px;
	width:100%;
	z-index:0;
	max-width:100%;
}
.p-front__body-box > .an-image__bg-container::before {
	filter:none;
}
.p-page__main {
	align-content:center;
	align-items:center;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	justify-content:flex-start;
	padding:0px;
	width:100%;
	max-width:100%;
}
.p-front__sec1 {
	align-content:flex-end;
	align-items:flex-end;
	flex:none;
	flex-direction:row;
	flex-wrap:nowrap;
	gap:0px;
	height:100dvh;
	justify-content:space-between;
	margin:-80px 0px 0px;
	padding:0px 64px;
	width:2200px;
	max-width:100%;
}
.p-front__sec1 > * {
	--gap-h:0px;
	--gap-v:0px;
}
.p-front__sec1-box {
	align-content:flex-start;
	align-items:flex-start;
	border-bottom:0px solid #000000;
	border-left:0px solid #000000;
	border-right:0px solid #000000;
	border-top:0px solid #000000;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:24px;
	justify-content:flex-end;
	padding:0px 0px 80px;
	width:calc(88% - (var(--gap-h) * 0.12));
	max-width:calc(88% - (var(--gap-h) * 0.12));
}
.p-front__sec1-box > *,
.p-front__sec4-box-5 > * {
	--gap-h:0px;
	--gap-v:24px;
}
.p-front__sec1-text {
	color:var(--an-color-text);
	font-family:var(--an-font-base);
	font-size:56px;
	font-weight:600;
	height:auto;
	letter-spacing:0.1em;
	line-height:1.6;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__sec1-text-2 {
	color:var(--an-color-text);
	font-family:var(--an-font-base);
	font-size:18px;
	font-weight:500;
	height:auto;
	letter-spacing:0.1em;
	line-height:2;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__sec1-box-2 {
	align-content:flex-end;
	align-items:flex-end;
	flex:1;
	flex-direction:row;
	flex-wrap:nowrap;
	gap:40px;
	justify-content:flex-end;
	padding:0px;
	width:auto;
	max-width:100%;
	min-width:0;
}
.p-front__sec1-box-2 > *,
.p-front__service-2-box > *,
.p-front__service-2-box.an-appear > *,
.p-front__body-link > *,
.p-front__body-link:hover > * {
	--gap-h:40px;
	--gap-v:0px;
}
.p-front__sec1-link {
	align-content:center;
	align-items:center;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:8px;
	height:auto;
	justify-content:flex-start;
	padding:0px;
	transform-origin:top center;
}
.p-front__sec1-link:hover {
	opacity:1;
	--ha:1;
}
.p-front__sec1-link > *,
.p-front__sec1-link:hover > *,
.p-front__service-2-box-2 > *,
.p-front__faq-box-2 > * {
	--gap-h:0px;
	--gap-v:8px;
}
.p-front__sec1-text-3 {
	color:var(--an-color-text);
	font-family:var(--an-font-display);
	font-size:18px;
	font-weight:500;
	height:auto;
	letter-spacing:0.1em;
	line-height:1;
	padding:0px;
	text-align:left;
	width:auto;
	writing-mode:vertical-rl;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__sec1-text-3.an-appear {
	opacity:0;
	transition-delay:800ms;
	transition-duration:800ms;
}
.p-front__sec1-box-3 {
	background:var(--an-color-text);
	flex:none;
	height:64px;
	width:1px;
	max-width:100%;
}
.p-front__sec1-box-3.an-appear {
	flex:none;
	height:0px;
	transition-delay:800ms;
	transition-duration:800ms;
}
.p-front__sec1-link:hover .p-front__sec1-box-3 {
	flex:none;
	height:88px;
}
.p-front__service {
	align-content:center;
	align-items:center;
	-webkit-backdrop-filter:blur(24px);
	backdrop-filter:blur(24px);
	background:var(--an-color-white-64);
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	justify-content:flex-start;
	padding:0px;
	width:100%;
	max-width:100%;
}
.p-front__service-2 {
	-webkit-backdrop-filter:blur(0px);
	backdrop-filter:blur(0px);
	background:transparent;
	flex:none;
	justify-content:flex-start;
}
.p-front__service-2.an-appear,
.p-front__service-2-box.an-appear,
.p-front__faq-box.an-appear {
	opacity:0;
	transition-delay:400ms;
	transition-duration:800ms;
	translate:0px 16px;
}
.p-front__service-2-inner {
	align-content:flex-start;
	align-items:flex-start;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:80px;
	height:auto;
	justify-content:flex-start;
	padding:160px 40px 0px;
	width:1280px;
	max-width:100%;
}
.p-front__service-2-inner > *,
.p-front__sec4-inner > *,
.p-front__sec4-box-4 > *,
.p-front__faq-inner > *,
.p-front__sec6-inner > * {
	--gap-h:0px;
	--gap-v:80px;
}
.p-front__service-2-box {
	align-content:flex-start;
	align-items:flex-start;
	flex:none;
	flex-direction:row;
	flex-wrap:nowrap;
	gap:40px;
	justify-content:flex-start;
	padding:0px;
	width:auto;
	max-width:100%;
}
.p-front__service-2-box-2 {
	align-content:flex-start;
	align-items:flex-start;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:8px;
	justify-content:flex-start;
	padding:0px;
	width:calc(32% - (var(--gap-h) * 0.68));
	max-width:calc(32% - (var(--gap-h) * 0.68));
}
.p-front__service-2-text {
	color:var(--an-color-brand);
	flex:none;
	font-family:var(--an-font-display);
	font-size:72px;
	font-weight:500;
	height:auto;
	line-height:1;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__service-2-title {
	color:var(--an-color-text);
	flex:none;
	font-family:var(--an-font-base);
	font-size:14px;
	font-weight:500;
	height:auto;
	line-height:1;
	padding:1px;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__service-2-text-2 {
	color:var(--an-color-text);
	flex:1;
	font-family:var(--an-font-base);
	font-size:16px;
	font-weight:400;
	height:auto;
	line-height:2;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
	min-width:0;
}
.p-front__service-2-box-3 {
	align-content:center;
	align-items:center;
	flex:none;
	flex-wrap:nowrap;
	gap:40px;
	justify-content:flex-start;
	padding:0px;
	width:100%;
	max-width:100%;
}
.p-front__service-2-box-3 > *,
.p-front__faq-box > *,
.p-front__faq-box.an-appear > * {
	--gap-h:0px;
	--gap-v:40px;
}
.p-front__sec4-inner {
	align-content:flex-start;
	align-items:flex-start;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:80px;
	height:auto;
	justify-content:flex-start;
	padding:160px 40px;
	width:1280px;
	max-width:100%;
}
.p-front__sec4-box {
	align-content:stretch;
	align-items:stretch;
	flex:none;
	flex-direction:row;
	flex-wrap:nowrap;
	gap:80px;
	justify-content:flex-start;
	padding:0px;
	width:100%;
	max-width:100%;
}
.p-front__sec4-box > * {
	--gap-h:80px;
	--gap-v:0px;
}
.p-front__sec4-box-2 {
	align-content:center;
	align-items:center;
	border-radius:8px;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	height:auto;
	justify-content:center;
	width:560px;
	max-width:100%;
}
.p-front__sec4-box-3 {
	flex:none;
	height:0px;
	width:0px;
	max-width:100%;
}
.p-front__sec4-box-4 {
	align-content:flex-start;
	align-items:flex-start;
	flex:1;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:80px;
	justify-content:flex-start;
	padding:0px;
	width:auto;
	max-width:100%;
	min-width:0;
}
.p-front__sec4-box-5 {
	align-content:flex-start;
	align-items:flex-start;
	flex:1;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:24px;
	justify-content:center;
	padding:0px;
	width:auto;
	max-width:100%;
	min-width:0;
}
.p-front__sec4-title {
	color:var(--an-color-text);
	flex:1;
	font-family:var(--an-font-base);
	font-size:24px;
	font-weight:500;
	height:auto;
	line-height:1.8;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
	min-width:0;
}
.p-front__faq-inner {
	align-content:flex-start;
	align-items:flex-start;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:80px;
	height:auto;
	justify-content:flex-start;
	padding:0px 40px 80px;
	width:1280px;
	max-width:100%;
}
.p-front__faq-box {
	align-content:center;
	align-items:center;
	background:var(--an-color-white);
	border-radius:8px;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:40px;
	justify-content:flex-start;
	padding:48px 80px;
	width:1280px;
	max-width:100%;
}
.p-front__faq-box-2 {
	align-content:flex-start;
	align-items:flex-start;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:8px;
	justify-content:flex-start;
	padding:0px;
	width:100%;
	max-width:100%;
}
.p-front__faq-title {
	color:var(--an-color-text);
	flex:none;
	font-family:var(--an-font-base);
	font-size:14px;
	font-weight:500;
	height:auto;
	line-height:1;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__sec6 {
	background:var(--an-color-white);
	flex:none;
	justify-content:flex-start;
}
.p-front__sec6-inner {
	align-content:center;
	align-items:center;
	flex-direction:column;
	flex-wrap:nowrap;
	gap:80px;
	height:auto;
	justify-content:flex-start;
	padding:72px 40px 160px;
	width:100%;
	max-width:100%;
}
.p-front__sec6-box {
	align-content:center;
	align-items:center;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	height:auto;
	justify-content:center;
	width:100%;
	max-width:100%;
}
.p-front__sec6-button {
	background:transparent;
	border-bottom:1px solid  var(--an-color-accent);
	border-left:1px solid  var(--an-color-accent);
	border-radius:20px;
	border-right:1px solid  var(--an-color-accent);
	border-top:1px solid  var(--an-color-accent);
	box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2);
	color:var(--an-color-text);
	flex:none;
	font-family:var(--an-font-display);
	font-size:15px;
	font-weight:400;
	height:40px;
	justify-content:center;
	letter-spacing:0em;
	line-height:1.4;
	margin:4px;
	opacity:1;
	padding:0px;
	text-align:left;
	width:282px;
	max-width:calc(100% - 8px);
}
.p-front__sec6-text {
	color:var(--an-color-brand);
	font-family:var(--an-font-base);
	font-size:16px;
	font-weight:400;
	padding:0px 0px 2px;
	text-align:center;
	justify-content:center;
}
.p-front__body-box-2 {
	align-content:center;
	align-items:center;
	background:var(--an-color-white);
	border-bottom:0px solid var(--an-color-text);
	border-left:0px solid var(--an-color-text);
	border-right:0px solid var(--an-color-text);
	border-top:0px solid var(--an-color-text);
	bottom:0px;
	box-shadow:0px -4px 4px rgba(113, 113, 113, 0.08);
	display:none;
	flex:none;
	flex-direction:column;
	flex-wrap:nowrap;
	justify-content:flex-start;
	left:0px;
	margin:0;
	padding:8px 0px;
	position:fixed;
	right:0px;
	top:auto;
	width:100%;
	z-index:3;
	max-width:100%;
}
.p-front__body-box-2.an-appear {
	opacity:0;
	transition-delay:6000ms;
	transition-duration:400ms;
}
.p-front__body-link {
	align-content:center;
	align-items:center;
	background:var(--an-color-accent);
	border-bottom:0px solid var(--an-color-accent);
	border-left:0px solid var(--an-color-accent);
	border-radius:48px;
	border-right:0px solid var(--an-color-accent);
	border-top:0px solid var(--an-color-accent);
	flex:none;
	flex-direction:row;
	flex-wrap:nowrap;
	gap:40px;
	justify-content:center;
	padding:12px 48px;
	width:88%;
	max-width:88%;
}
.p-front__body-link:hover {
	background:var(--an-color-accent);
	--ha:1;
}
.p-front__body-text {
	border-bottom:0px solid var(--an-color-accent);
	border-left:0px solid var(--an-color-accent);
	border-right:0px solid var(--an-color-accent);
	border-top:0px solid var(--an-color-accent);
	color:var(--an-color-white);
	font-family:var(--an-font-base);
	font-size:14px;
	font-weight:500;
	height:auto;
	letter-spacing:0.05em;
	line-height:1.4;
	text-align:left;
	width:auto;
	justify-content:flex-start;
	max-width:100%;
}
.p-front__body-text:hover {
	color:var(--an-color-white);
	--ha:1;
}
.p-front__body-link:hover .p-front__body-text {
	color:var(--an-color-white);
}

@media (max-width: 1140px) {
	.p-front__sec4-box-2 {
		flex:none;
		width:240px;
		max-width:100%;
	}
	.p-front__faq-box {
		padding:48px 64px;
	}
	.p-front__faq-box > *,
	.p-front__faq-box.an-appear > * {
		--gap-h:0px;
		--gap-v:40px;
	}
	.p-front__body-box-2 {
		display:none;
	}
}

@media (max-width: 840px) {
	.p-front__sec1 {
		padding:0px 40px;
	}
	.p-front__sec1 > * {
		--gap-h:0px;
		--gap-v:0px;
	}
	.p-front__sec1-text {
		font-size:40px;
	}
	.p-front__sec1-text-2 {
		font-size:16px;
	}
	.p-front__service-2-inner,
	.p-front__sec4-inner,
	.p-front__faq-inner,
	.p-front__sec6-inner {
		gap:40px;
		padding:80px 40px;
	}
	.p-front__service-2-inner > *,
	.p-front__sec4-inner > *,
	.p-front__sec4-box > *,
	.p-front__sec4-box-4 > *,
	.p-front__faq-inner > *,
	.p-front__faq-box > *,
	.p-front__faq-box.an-appear > *,
	.p-front__sec6-inner > * {
		--gap-h:0px;
		--gap-v:40px;
	}
	.p-front__service-2-box {
		flex-direction:column;
		flex-wrap:nowrap;
		gap:24px;
	}
	.p-front__service-2-box > *,
	.p-front__service-2-box.an-appear > * {
		--gap-h:0px;
		--gap-v:24px;
	}
	.p-front__service-2-box-2 {
		flex:none;
		flex-direction:column;
		width:auto;
		max-width:100%;
	}
	.p-front__service-2-box-2 > *,
	.p-front__faq-box-2 > * {
		--gap-h:0px;
		--gap-v:8px;
	}
	.p-front__sec4-box {
		flex-direction:column;
		flex-wrap:nowrap;
		gap:40px;
	}
	.p-front__sec4-box-2 {
		flex:none;
		height:400px;
		width:100%;
		max-width:100%;
	}
	.p-front__sec4-box-4 {
		align-content:center;
		align-items:center;
		gap:40px;
		justify-content:flex-start;
	}
	.p-front__sec4-box-5 {
		gap:16px;
	}
	.p-front__sec4-box-5 > * {
		--gap-h:0px;
		--gap-v:16px;
	}
	.p-front__faq-box {
		gap:40px;
		padding:40px 32px;
	}
	.p-front__faq-box-2 {
		flex:none;
		flex-direction:column;
	}
	.p-front__body-box-2 {
		display:none;
	}
}

@media (max-width: 540px) {
	.p-front__sec1 {
		flex:none;
		height:88vh;
		padding:0px 24px;
	}
	.p-front__sec1 > * {
		--gap-h:0px;
		--gap-v:0px;
	}
	.p-front__sec1-text {
		font-size:28px;
	}
	.p-front__sec1-text-2 {
		font-size:13px;
	}
	.p-front__service-2 {
		margin:0px;
		max-width:100%;
	}
	.p-front__service-2-inner,
	.p-front__sec4-inner,
	.p-front__faq-inner {
		gap:40px;
		padding:64px 16px;
	}
	.p-front__service-2-inner > *,
	.p-front__sec4-inner > *,
	.p-front__faq-inner > *,
	.p-front__faq-box > *,
	.p-front__faq-box.an-appear > * {
		--gap-h:0px;
		--gap-v:40px;
	}
	.p-front__service-2-box,
	.p-front__sec4-box {
		gap:16px;
	}
	.p-front__service-2-box > *,
	.p-front__sec4-box > * {
		--gap-h:16px;
		--gap-v:0px;
	}
	.p-front__service-2-box.an-appear > *,
	.p-front__sec6-inner > * {
		--gap-h:0px;
		--gap-v:16px;
	}
	.p-front__service-2-text {
		font-size:48px;
	}
	.p-front__service-2-title,
	.p-front__service-2-text-2,
	.p-front__faq-title {
		font-size:14px;
	}
	.p-front__sec4-box-2 {
		flex:none;
		height:240px;
	}
	.p-front__sec4-box-4 {
		gap:24px;
	}
	.p-front__sec4-box-4 > * {
		--gap-h:0px;
		--gap-v:24px;
	}
	.p-front__sec4-box-5 {
		gap:8px;
	}
	.p-front__sec4-box-5 > * {
		--gap-h:0px;
		--gap-v:8px;
	}
	.p-front__sec4-title {
		font-size:20px;
	}
	.p-front__faq-box {
		padding:40px 16px;
	}
	.p-front__sec6-inner {
		gap:16px;
		padding:64px 16px;
	}
	.p-front__body-box-2 {
		display:flex;
	}
	.p-front__body-link {
		background:var(--an-color-brand);
		border-bottom:0px solid var(--an-color-accent) var(--an-color-brand);
		border-left:0px solid var(--an-color-accent) var(--an-color-brand);
		border-right:0px solid var(--an-color-accent) var(--an-color-brand);
		border-top:0px solid var(--an-color-accent) var(--an-color-brand);
		flex:none;
		width:88%;
		max-width:88%;
	}
	.p-front__body-link > *,
	.p-front__body-link:hover > * {
		--gap-h:40px;
		--gap-v:0px;
	}
	.p-front__body-text {
		border-bottom:0px solid var(--an-color-accent) var(--an-color-brand);
		border-left:0px solid var(--an-color-accent) var(--an-color-brand);
		border-right:0px solid var(--an-color-accent) var(--an-color-brand);
		border-top:0px solid var(--an-color-accent) var(--an-color-brand);
		font-size:15px;
	}
}

@media (max-width: 320px) {
	.p-front__service-2-inner,
	.p-front__sec4-inner,
	.p-front__faq-inner {
		padding:40px 16px;
	}
	.p-front__service-2-inner > *,
	.p-front__sec4-inner > *,
	.p-front__faq-inner > * {
		--gap-h:0px;
		--gap-v:80px;
	}
	.p-front__body-box-2 {
		display:flex;
	}
}
