@charset "utf-8";
/**********************************************
*
* p-Mv
*
***********************************************/
.p-Mv {
	position: relative;
	width: 100%;
	height: 100svh;
	min-height: 560px;
	overflow: hidden;
	background: url(../images/common/bg-mv.webp) no-repeat center center / cover;
}

.p-Mv_inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	width: 100%;
	height: 100%;
	padding: clamp(120px, 18vh, 180px) 50px 74px 64px;
}

.p-Mv_copy {
	flex: 1;
	min-width: 0;
	color: #fff;
}

.p-Mv_copyEn {
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-shadow: 0px 0px 20px #00000033;
}

.p-Mv_copyJa {
	margin-top: 24px;
	margin-left: -3px;
	font-family: var(--font-serif);
	font-size: clamp(4.3rem, 1.346rem + 3.846vw, 6.6rem);
	font-weight: 500;
	line-height: 1.41;
	letter-spacing: 0.08em;
}

.p-Mv_copyJaLine {
	font-feature-settings: "palt";
}

.p-Mv_vertical {
	display: flex;
	align-items: flex-start;
	flex-direction: row-reverse;
	gap: 14px;
	flex-shrink: 0;
	margin-bottom: 11px;
}

.p-Mv_verticalItem {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	padding: 19px 0;
	background-color: #f4f4f4;
	font-family: var(--font-sans);
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.08em;
	color: #005085;
	writing-mode: vertical-rl;
}

@media (max-width: 767px) {
	.p-Mv {
		height: auto;
		background-image: url(../images/common/bg-mv_sp.webp);
	}

	.p-Mv_inner {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-end;
		gap: 43px;
		padding-bottom: 40px;
		padding: 138px 25px 37px 25px;
	}
	.p-Mv_copy {
		order: 2;
	}

	.p-Mv_copyEn {
		font-size: 1.8rem;
		letter-spacing: 0.03em;
	}

	.p-Mv_copyJa {
		font-size: 3.4rem;
		line-height: 1.35;
		margin-top: 11px;
		padding-left: 3px;
	}

	.p-Mv_vertical {
		order: 1;
		margin-left: auto;
		gap: 5px;
	}

	.p-Mv_verticalItem {
		font-size: 2rem;
		padding: 13px 0;
		width: 36px;
		letter-spacing: 0.045em;
	}
}

/**********************************************
*
* p-Intro
*
***********************************************/
.p-Intro {
	position: relative;
	padding: 112px 0 63px;
	overflow: hidden;
}

.p-Intro::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 256px;
	height: 433px;
	z-index: 1;
	background:
		linear-gradient(to top, #f4f4f4 0, transparent 51px),
		url(../images/common/bg-intro_01.svg) no-repeat;
}

.p-Intro::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 409px;
	height: 439px;
	z-index: 1;
	background:
		linear-gradient(to top, #f4f4f4 0, transparent 51px),
		url(../images/common/bg-intro_02.svg) no-repeat;
}

.p-Intro_inner {
	position: relative;
	z-index: 2;
	text-align: center;
}

.p-Intro_title {
	font-family: var(--font-serif);
	font-size: 3.6rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.08em;
	color: var(--color-text);
	margin-left: 28px;
}

.p-Intro_underline {
	position: relative;
	display: inline-block;
}

.p-Intro_underline::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 1.1rem;
	width: 100%;
	height: 2px;
	background-color: var(--color-primary);
}

.p-Intro_titleLarge {
	font-size: 4.8rem;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.p-Intro_highlight {
	color: var(--color-primary);
	font-style: normal;
}

.p-Intro_text {
	font-family: var(--font-sans);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.08em;
	color: var(--color-text);
	margin-top: 39px;
}

@media (max-width: 767px) {
	.p-Intro {
		padding: 81px 0 0;
	}

	.p-Intro::before {
		width: 100px;
		height: 160px;
		background-size: 100px 160px;
		bottom: auto;
		top: 0;
	}

	.p-Intro::after {
		width: 140px;
		height: 160px;
		background-size: 140px 160px;
		bottom: auto;
		top: 0;
	}

	.p-Intro_title {
		font-size: 2.2rem;
		line-height: 1.64;
		margin-left: 0;
	}

	.p-Intro_underline::after {
		height: 1px;
		bottom: 1px;
	}

	.p-Intro_text {
		font-size: 1.8rem;
		line-height: 1.8;
		text-align: left;
		letter-spacing: 0.05em;
		margin-top: 24px;
	}

	.p-Intro_titleLarge {
		font-size: 3rem;
		line-height: 1.39;
		margin-top: 10px;
		display: inline-block;
	}
}

/**********************************************
*
* .p-Services 
*
***********************************************/
.p-Services {
	position: relative;
	padding: 79px 0 150px;
}

.p-Services::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 208px;
	height: 553px;
	background: #ebebeb;
	clip-path: polygon(0 0, 100% 100%, 0 100%);
	z-index: 0;
	pointer-events: none;
}

.p-Services_inner {
	position: relative;
	z-index: 1;
	display: flex;
	gap: 58px;
}

.p-Services_heading {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	flex-shrink: 0;
	padding-top: 1rem;
	margin-left: 13px;
	margin-top: 27px;
}

.p-Services_title {
	writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 5.6rem;
	font-weight: 600;
	letter-spacing: 0.19em;
	line-height: 1.2;
	color: var(--color-text);
}

.p-Services_subtitle {
	writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: var(--color-primary);
	margin-top: 2px;
}

.p-Services_content {
	flex-grow: 1;
	border-top: 1px solid #c7c7c7;
	counter-reset: step-counter;
}

.p-Services_item {
	display: flex;
	align-items: center;
	padding: 40px 0;
	gap: 60px;
	border-bottom: 1px solid #c7c7c7;
	padding-left: 105px;
}

.p-Services_imageWrap {
	position: relative;
	width: 268px;
	height: 179px;
	flex-shrink: 0;
}

.p-Services_imageWrap::before {
	position: absolute;
	counter-increment: step-counter;
	content: counter(step-counter, decimal-leading-zero);
	top: 0;
	bottom: 0;
	left: -95px;
	display: flex;
	align-items: center;
	font-family: var(--font-serif);
	font-size: 8.8rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
	color: #ffffff;
	z-index: 1;
	pointer-events: none;
}

.p-Services_image {
	position: relative;
	width: 100%;
	height: auto;
	z-index: 2;
}

.p-Services_body {
	flex-grow: 1;
}

.p-Services_itemTitle {
	font-family: var(--font-serif);
	font-size: 3.2rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--color-text);
	padding-top: 9px;
}

.p-Services_itemText {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	line-height: 1.9;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--color-text);
	margin-top: 15px;
	padding-right: clamp(0px, 36.364vw - 363.636px, 80px);
}

@media (max-width: 1000px) {
	.p-Services_item {
		flex-direction: column;
		gap: 30px;
		padding-left: 0;
	}
}

@media (max-width: 767px) {
	.p-Services {
		padding: 79px 0 96px;
	}

	.p-Services::before {
		width: 188px;
		height: 309px;
		left: auto;
		right: 0;
		clip-path: polygon(100% 0, 100% 100%, 0 100%);
	}

	.p-Services_inner {
		flex-direction: column;
		gap: 43px;
	}

	.p-Services_heading {
		flex-direction: row-reverse;
		align-items: center;
		justify-content: flex-end;
		gap: 14px;
		padding-top: 0;
		margin-left: 0;
		margin-top: 2px;
	}

	.p-Services_title {
		writing-mode: horizontal-tb;
		font-size: 3.4rem;
		letter-spacing: 0.08em;
	}

	.p-Services_subtitle {
		writing-mode: horizontal-tb;
		font-size: 1.8rem;
		letter-spacing: 0.08em;
	}

	.p-Services_item {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 20px;
		row-gap: 20px;
		padding: 32px 0 29px;
	}

	.p-Services_imageWrap {
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		height: auto;
		margin-left: auto;
		min-width: 163px;
	}

	.p-Services_imageWrap::before {
		z-index: -1;
		font-size: 6.4rem;
		left: -68px;
	}

	.p-Services_body {
		display: contents;
	}

	.p-Services_itemTitle {
		grid-column: 1;
		grid-row: 1;
		font-size: 2.4rem;
		line-height: 1.43;
		margin-bottom: 0;
		width: 100%;
		padding-top: 6px;
	}

	.p-Services_itemText {
		grid-column: 1 / -1;
		grid-row: 2;
		font-size: 1.6rem;
		letter-spacing: 0.05em;
		line-height: 1.75;
		margin-top: 3px;
		padding-right: 0;
	}
}

/**********************************************
*
* p-TopStrength
*
***********************************************/
.p-TopStrength {
	position: relative;
	padding: 117px 0 125px;
	background-color: #2f2f2f;
	color: var(--color-text-second);
	overflow: hidden;
	background-image:
		linear-gradient(rgba(47, 47, 47, 0.8), rgba(47, 47, 47, 0.8)),
		url("../images/common/p-strength_01.webp"),
		url("../images/common/p-strength_02.webp"),
		url("../images/common/p-strength_03.webp");
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
	background-position:
		center,
		calc(50% + 460px) 57px,
		calc(50% - 570px) 616px,
		calc(50% + 458px) 969px;
	background-size:
		100% 100%,
		560px auto,
		280px auto,
		376px auto;
}

.p-TopStrength_subtitle {
	display: block;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.p-TopStrength_title {
	font-family: var(--font-serif);
	font-size: 5.6rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #fff;
	line-height: 1.2;
	margin-top: 21px;
}

.p-TopStrength_content {
	position: relative;
	margin-top: 75px;
}

.p-TopStrength_content::before {
	position: absolute;
	content: "";
	top: 0;
	left: -43px;
	margin: auto;
	width: 1246px;
	height: 1px;
	background: #5f5f5f;
}

.p-TopStrength_item {
	display: grid;
	grid-template-columns: 135fr 445fr 580fr;
	padding: 62px 0;
}

.p-TopStrength_item {
	position: relative;
}

.p-TopStrength_item::before {
	position: absolute;
	content: "";
	bottom: 0;
	left: -43px;
	margin: auto;
	width: 1246px;
	height: 1px;
	background: #5f5f5f;
}

.p-TopStrength_meta {
	padding-right: 20px;
	display: flex;
	align-items: center;
}

.p-TopStrength_tag {
	font-family: var(--font-serif);
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.p-TopStrength_body {
	padding-right: 20px;
	display: flex;
	align-items: center;
}

.p-TopStrength_itemTitle {
	font-family: var(--font-serif);
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.625;
	letter-spacing: 0.08em;
	margin-left: 5px;
}

.p-TopStrength_desc {
	padding-right: 30px;
}

.p-TopStrength_text {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.875;
	letter-spacing: 0.08em;
}

@media (max-width: 1000px) {
	.p-TopStrength_item {
		grid-template-columns: 1fr 1fr;
		row-gap: 20px;
	}
	.p-TopStrength_meta {
		grid-column: 1 / -1;
	}
	.p-TopStrength_body {
		grid-column: 1 / 2;
	}
	.p-TopStrength_desc {
		grid-column: 2 / 3;
	}
}

@media (max-width: 767px) {
	.p-TopStrength {
		padding: 79px 0 92px;
		background-image:
			linear-gradient(rgba(47, 47, 47, 0.8), rgba(47, 47, 47, 0.8)),
			url("../images/common/p-strength_01_sp.webp"),
			url("../images/common/p-strength_02_sp.webp"),
			url("../images/common/p-strength_03_sp.webp");
		background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
		background-position:
			center,
			calc(50% + 48px) 47px,
			calc(50% - 100px) 865px,
			calc(50% + 77px) 1335px;
		background-size:
			100% 100%,
			320px auto,
			196px auto,
			240px auto;
	}

	.p-TopStrength_title {
		font-size: 3.4rem;
		margin-top: 5px;
	}

	.p-TopStrength_subtitle {
		font-size: 1.8rem;
	}
	.p-TopStrength_content {
		margin-top: 59px;
	}

	.p-TopStrength_content::before {
		left: 0;
		width: 100%;
	}

	.p-TopStrength_item {
		display: block;
		padding: 40px 0;
	}

	.p-TopStrength_item::before {
		left: 0;
		width: 100%;
	}

	.p-TopStrength_meta {
		width: 100%;
		padding: 0;
	}

	.p-TopStrength_tag {
		font-size: 1.2rem;
	}

	.p-TopStrength_body {
		width: 100%;
	}

	.p-TopStrength_itemTitle {
		font-size: 2.4rem;
		line-height: 1.56;
		margin-top: 12px;
		margin-left: 0;
	}

	.p-TopStrength_desc {
		width: 100%;
		margin-top: 18px;
		padding-right: 0;
	}

	.p-TopStrength_text {
		font-size: 1.6rem;
		letter-spacing: 0.05em;
		line-height: 1.75;
	}
}

/**********************************************
*
* p-TopProjects
*
***********************************************/
.p-TopProjects {
	position: relative;
	padding: 0 0;
	overflow: hidden;
}

.p-TopProjects::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 308px;
	height: 812px;
	background: #ebebeb;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	z-index: 0;
	pointer-events: none;
}

.p-TopProjects_inner {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 79px;
}

.p-TopProjects_heading {
	flex-shrink: 0;
	margin-top: -10px;
}

.p-TopProjects_subtitle {
	display: block;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--color-primary);
	text-align: center;
}

.p-TopProjects_title {
	font-family: var(--font-serif);
	font-size: 5.6rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
	margin-top: 20px;
}

.p-TopProjects_nav {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 52px;
}

.p-TopProjects_navBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 40px;
	border: 1px solid var(--color-primary);
	border-radius: 9999px;
	background-color: transparent;
	transition: background-color 0.3s;
	cursor: pointer;
}

@media (hover: hover) {
	.p-TopProjects_navBtn:hover {
		background-color: var(--color-primary);
	}
}

.p-TopProjects_navBtn::after {
	content: "";
	width: 15px;
	height: 8.059px;
	mask-image: url(../images/common/icon-arrow.svg);
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	background-color: var(--color-primary);
	transition: background-color 0.3s;
}

@media (hover: hover) {
	.p-TopProjects_navBtn.-next::after {
		transform: rotate(180deg);
	}
	
	.p-TopProjects_navBtn:hover::after {
		background-color: var(--color-text-second);
	}
}

.p-TopProjects_content {
	width: 70%;
	flex-grow: 1;
}

.p-TopProjects_slider {
	position: relative;
	height: 700px;
}

.p-TopProjects_slider::before,
.p-TopProjects_slider::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 105px;
	background: linear-gradient(
		to bottom,
		var(--color-text-second) 0,
		transparent 100%
	);
	z-index: 2;
	pointer-events: none;
}

.p-TopProjects_slider::before {
	top: 0;
}

.p-TopProjects_slider::after {
	bottom: 0;
	transform: rotate(180deg);
}

.p-TopProjects_slide {
	display: grid;
	align-items: center;
	grid-template-columns: 400fr 360fr;
	gap: 80px;
	height: 400px;
}

.p-TopProjects_imageWrap {
	aspect-ratio: 1 / 1;
}

.p-TopProjects_image {
	width: 100%;
	max-width: 400px;
	height: auto;
}

.p-TopProjects_body {
	margin-top: 7px;
}

.p-TopProjects_tag {
	display: inline-block;
	padding: 0 11px;
	background-color: var(--color-primary);
	color: var(--color-text-second);
	font-family: var(--font-sans);
	font-size: 1.4rem;
	line-height: 1.6;
	font-weight: 500;
	border-radius: 9999px;
	letter-spacing: 0.08em;
}

.p-TopProjects_itemTitle {
	font-family: var(--font-serif);
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--color-text);
	letter-spacing: 0.08em;
	margin-top: 10px;
}

.p-TopProjects_text {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	line-height: 1.875;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--color-text);
	margin-top: 35px;
}

@media (max-width: 1000px) {
	.p-TopProjects_inner {
		flex-direction: column;
		margin-top: 60px;
	}

	.p-TopProjects_content {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.p-TopProjects {
		padding: 89px 0 78px;
		overflow: hidden;
	}

	.p-TopProjects::before {
		width: 216px;
		height: 309px;
	}

	.p-TopProjects_inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 46px;
	}

	.p-TopProjects_heading {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
	}

	.p-TopProjects_headingInner {
		order: 2;
	}

	.p-TopProjects_title {
		font-size: 3.4rem;
		margin-top: 0;
	}

	.p-TopProjects_subtitle {
		font-size: 1.8rem;
		margin-bottom: 4px;
	}

	.p-TopProjects_nav {
		display: contents;
	}

	.p-TopProjects_navBtn {
		width: 59px;
		height: 32px;
		margin-bottom: 3px;
	}

	.p-TopProjects_navBtn.-prev {
		order: 1;
	}

	.p-TopProjects_navBtn.-next {
		order: 3;
	}

	.p-TopProjects_navBtn.-prev::after,
	.p-TopProjects_navBtn.-next::after {
		width: 10px;
		height: 10px;
	}

	.p-TopProjects_navBtn.-prev::after {
		transform: rotate(-90deg);
	}

	.p-TopProjects_navBtn.-next::after {
		transform: rotate(90deg);
	}

	.p-TopProjects_content {
		width: 100%;
	}

	.p-TopProjects_slider {
		height: auto;
		width: 100dvw;
		margin-left: calc(50% - 50dvw);
		margin-right: calc(50% - 50dvw);
	}

	.p-TopProjects_slider::before,
	.p-TopProjects_slider::after {
		left: 0;
		width: 35px;
		height: 100%;
		background: linear-gradient(
			to right,
			var(--color-text-second) 0,
			transparent 100%
		);
	}

	.p-TopProjects_slider::after {
		right: 0;
		left: auto;
	}

	.p-TopProjects_slide {
		display: block;
		height: auto;
		width: 70%;
	}

	.p-TopProjects_body {
		max-width: 100%;
		padding-top: 15px;
	}

	.p-TopProjects_itemTitle {
		font-size: 2.4rem;
		margin-top: 10px;
		line-height: 1.4;
	}

	.p-TopProjects_text {
		font-size: 1.6rem;
		line-height: 1.5;
		margin-top: 10px;
	}
}

/**********************************************
*
* p-TopCompany
*
***********************************************/
.p-TopCompany {
	position: relative;
	margin-top: 152px;
	padding-bottom: 150px;
	overflow: hidden;
}

.p-TopCompany::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 224px;
	height: 730px;
	background: #ebebeb;
	clip-path: polygon(100% 100%, 100% 0, 0 100%);
	z-index: 0;
	pointer-events: none;
}

.p-TopCompany_inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	gap: 50px;
}

.p-TopCompany_heading {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	flex-shrink: 0;
	width: 15%;
	justify-content: flex-end;
	margin-right: 16px;
	margin-top: 16px;
}

.p-TopCompany_title {
	writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 5.6rem;
	font-weight: 600;
	letter-spacing: 0.17em;
	line-height: 1.2;
	color: var(--color-text);
}

.p-TopCompany_subtitle {
	writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: var(--color-primary);
}

.p-TopCompany_content {
	width: 75%;
	flex-grow: 1;
	border-top: 1px solid #c7c7c7;
	padding-top: 30px;
}

.p-TopCompany_sectionTitle {
	font-family: var(--font-serif);
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--color-primary);
	letter-spacing: 0.08em;
}

.p-TopCompany_locationList {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 13px;
}

.p-TopCompany_locationCard {
	display: flex;
	background-color: #e8e8e8;
	padding: 27px 30px;
}

.p-TopCompany_locationHeader {
	display: flex;
	align-items: center;
	width: 90px;
	flex-shrink: 0;
	border-right: 1px solid #cecece;
	padding-right: 2rem;
}

.p-TopCompany_locationName {
	font-family: var(--font-sans);
	font-size: 1.8rem;
	line-height: 1.333;
	font-weight: 500;
	color: var(--color-primary);
	letter-spacing: 0.08em;
}

.p-TopCompany_locationBody {
	flex-grow: 1;
	padding-left: 25px;
}

.p-TopCompany_address {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--color-text);
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.4px;
}

.p-TopCompany_mapLink {
	display: inline-flex;
	align-items: center;
	background-color: #005492;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	padding: 0 11px;
	border-radius: 9999px;
	letter-spacing: 0.08em;
	border: 1px solid transparent;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.p-TopCompany_mapLink::before {
	content: "";
	display: inline-block;
	width: 1rem;
	height: 1.2rem;
	background-color: currentColor;
	mask-image: url(../images/common/icon-location.svg);
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	margin-right: 3px;
}

@media (hover: hover) {
	.p-TopCompany_mapLink:hover {
		background-color: var(--color-text-second);
		border: 1px solid var(--color-primary);
		color: var(--color-primary);
	}
}

.p-TopCompany_contact {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	line-height: 1.5;
	letter-spacing: 0.08em;
	font-weight: 500;
	color: var(--color-text);
	display: flex;
	gap: 26px;
	margin-top: 5px;
}

.p-TopCompany_tel,
.p-TopCompany_fax {
	display: inline-flex;
	align-items: center;
}

.p-TopCompany_telLabel,
.p-TopCompany_faxLabel {
	font-size: 1.4rem;
	color: var(--color-primary);
	margin-right: 7px;
}

.p-TopCompany_grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 40px;
	margin-top: 32px;
}

.p-TopCompany_gridItem,
.p-TopCompany_fullItem {
	border-bottom: 1px solid #c7c7c7;
	padding: 23px 0 20px;
}

.p-TopCompany_gridItem:nth-child(1),
.p-TopCompany_gridItem:nth-child(2) {
	border-top: 1px solid #c7c7c7;
}

.p-TopCompany_itemLabel {
	font-family: var(--font-serif);
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--color-primary);
	letter-spacing: 0.08em;
}

.p-TopCompany_itemValue {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.875;
	color: var(--color-text);
	margin-top: 5px;
}

.p-TopCompany_fullList {
	display: flex;
	flex-direction: column;
}

@media (max-width: 767px) {
	.p-TopCompany {
		padding: 0 0 80px;
		margin-top: 0;
	}

	.p-TopCompany::before {
		width: 162px;
		height: 309px;
	}

	.p-TopCompany_inner {
		flex-direction: column;
		gap: 42px;
	}

	.p-TopCompany_heading {
		flex-direction: column-reverse;
		gap: 5px;
		width: 100%;
		margin-right: 0;
		margin-top: 0;
	}

	.p-TopCompany_title {
		writing-mode: horizontal-tb;
		font-size: 3.4rem;
		letter-spacing: 0.08em;
	}

	.p-TopCompany_subtitle {
		writing-mode: horizontal-tb;
		font-size: 1.8rem;
		letter-spacing: 0.08em;
	}

	.p-TopCompany_content {
		width: 100%;
		padding-top: 18px;
	}

	.p-TopCompany_locationList {
		margin-bottom: 15px;
		gap: 8px;
		margin-top: 10px;
	}

	.p-TopCompany_locationCard {
		flex-direction: column;
		align-items: flex-start;
		padding: 2rem;
		gap: 1.6rem;
	}

	.p-TopCompany_locationHeader {
		width: 100%;
		border-right: none;
		border-bottom: 1px solid #d9d9d9;
		padding-right: 0;
		padding-bottom: 1rem;
	}

	.p-TopCompany_locationBody {
		padding-left: 0;
		width: 100%;
	}

	.p-TopCompany_locationName {
		font-size: 1.6rem;
	}

	.p-TopCompany_address {
		line-height: 1.3;
		letter-spacing: 0.05em;
	}

	.p-TopCompany_mapLink {
		margin-top: 6px;
		padding: 3px 11px;
	}

	.p-TopCompany_contact {
		font-size: 1.6rem;
		letter-spacing: 0.03em;
		gap: 10px;
		justify-content: space-between;
		margin-top: 11px;
	}

	.p-TopCompany_telLabel,
	.p-TopCompany_faxLabel {
		font-size: 1.2rem;
		margin-right: 5px;
	}

	.p-TopCompany_grid {
		grid-template-columns: 1fr;
		border-top: 1px solid #c7c7c7;
		margin-top: 24px;
	}

	.p-TopCompany_gridItem {
		display: flex;
	}

	.p-TopCompany_itemLabel {
		min-width: 6.4em;
		font-size: 1.6rem;
		letter-spacing: 0.05em;
	}

	.p-TopCompany_gridItem,
	.p-TopCompany_fullItem {
		padding: 17px 0;
	}

	.p-TopCompany_itemValue {
		margin-top: 0;
		line-height: 1.85;
	}

	.p-TopCompany_itemValue.-narrow {
		line-height: 1.5;
		margin-top: 6px;
		margin-bottom: 2px;
	}

	.p-TopCompany_gridItem:nth-child(1),
	.p-TopCompany_gridItem:nth-child(2) {
		border-top: 0;
	}
}

/**********************************************
*
* .p-TopRecruit
*
***********************************************/
.p-TopRecruit {
	position: relative;
	padding: 0 0 150px;
	overflow: hidden;
}

.p-TopRecruit::before {
	content: "";
    position: absolute;
	top: -730px;
    right: 0;
    width: 448px;
    height: 1460px;
    background: #ebebeb;
    clip-path: polygon(100% 100%, 100% 0, 0 100%);
    z-index: 0;
    pointer-events: none;
}

.p-TopRecruit::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 283px;
	bottom: 0;
	width: 100%;
	background-color: #ebebeb;
	z-index: 0;
	pointer-events: none;
}

.p-TopRecruit_inner {
	position: relative;
	z-index: 1;
}

.p-TopRecruit_header {
	display: flex;
	justify-content: space-between;
}

.p-TopRecruit_visual {
	margin-right: -103px;
	flex-grow: 1;
}

.p-TopRecruit_headingImgWrap {
	aspect-ratio: 1183 / 400;
}

.p-TopRecruit_heading {
	width: 80px;
	flex-shrink: 0;
}

.p-TopRecruit_headingImg {
	width: 100%;
	height: auto;
	aspect-ratio: inherit;
	vertical-align: top;
}

.p-TopRecruit_title {
	writing-mode: vertical-rl;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	line-height: 1;
	color: var(--color-primary);
	margin-top: 71px;
}

.p-TopRecruit_content {
	display: grid;
	grid-template-columns: 1fr 300px;
	grid-template-rows: 211px auto auto;
	column-gap: 72px;
	align-items: end;
	margin-top: -150px;
}

.p-TopRecruit_copy {
	font-family: var(--font-serif);
	font-size: clamp(4.2rem, 1.821rem + 3.097vw, 5.6rem);
	font-weight: 600;
	color: var(--color-text);
	letter-spacing: 0.08em;
	line-height: 1.5;
	grid-column: 1;
	grid-row: 2;
}

.p-TopRecruit_highlight {
	color: var(--color-primary);
}

.p-TopRecruit_textWrap {
	margin-top: 33px;
	grid-column: 1;
	grid-row: 3;
}

.p-TopRecruit_text {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.75;
	color: var(--color-text);
	letter-spacing: 0.05em;
}

.p-TopRecruit_text:not(:last-child) {
	margin-bottom: 12px;
}

.p-TopRecruit_contentImgWrap {
	grid-column: 2;
	grid-row: 1 / 4;
	align-self: end;
	justify-self: end;
}

.p-TopRecruit_contentImg {
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.p-TopRecruit {
		padding: 0 0 80px;
	}

	.p-TopRecruit::after {
		top: auto;
		height: 75%;
	}

	.p-TopRecruit::before {
		top: -309px;
		width: 324px;
        height: 618px;
	}

	.p-TopRecruit_heading {
		width: 40px;
		margin-top: 16px;
	}

	.p-TopRecruit_title {
		font-size: 2rem;
		margin-top: 0;
	}

	.p-TopRecruit_visual {
		margin-right: -27px;
	}

	.p-TopRecruit_headingImgWrap {
		aspect-ratio: 620 / 400;
	}

	.p-TopRecruit_content {
		grid-template-columns: 1fr 90px;
		grid-template-rows: auto;
        max-width: 100%;
        margin-top: -25px;
        column-gap: 5px;
	}

	.p-TopRecruit_copy {
		grid-column: 1;
		grid-row: 1;
		font-size: clamp(2.4rem, 8vw, 3rem);
		margin-bottom: -2px;
	}

	.p-TopRecruit_contentImgWrap {
		grid-column: 2;
		grid-row: 1;
		position: relative;
		right: -6px;
	}

	.p-TopRecruit_textWrap {
		grid-column: 1 / -1;
		grid-row: 2;
		margin-top: 24px;
	}

	.p-TopRecruit_text {
		line-height: 1.5;
		letter-spacing: 0.08em;
	}

	.p-TopRecruit_text:not(:last-child) {
		margin-bottom: 12px;
	}
}

/**********************************************
*
* p-TopContact
*
***********************************************/
.p-TopContact {
	position: relative;
	padding: 80px 0 95px;
	color: var(--color-text-second);
	overflow: hidden;
	background: url(../images/common/bg-contact.webp) no-repeat left center /
		cover;
}

.p-TopContact_inner {
	max-width: 760px;
	width: 100%;
	margin-left: auto;
}

.p-TopContact_subtitle {
	display: block;
	font-family: var(--font-serif);
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.p-TopContact_title {
	font-family: var(--font-serif);
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.65;
	letter-spacing: 0.0795em;
	margin-top: 15px;
}

.p-TopContact_channels {
	display: flex;
	flex-direction: column;
	margin-top: 12px;
}

.p-TopContact_channel {
	display: flex;
	align-items: center;
	padding: 23px 0 16px;
	border-bottom: 1px solid #4e86ac;
}

.p-TopContact_channel.-mail {
	padding: 37px 0 26px;
}

.p-TopContact_channelLabel {
	width: 263px;
	flex-shrink: 0;
	font-family: var(--font-sans);
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.p-TopContact_channelAction {
	flex-grow: 1;
	display: flex;
	align-items: center;
}

.p-TopContact_telLink {
	display: inline-flex;
	align-items: center;
	font-family: var(--font-serif);
	font-size: 4.2rem;
	font-weight: 600;
	color: var(--color-text-second);
	letter-spacing: 0.05em;
	margin-left: 6px;
	line-height: 1.8;
}

.p-TopContact_telLink::before {
	content: "";
	display: inline-block;
	width: 32px;
	height: 32px;
	margin-top: 5px;
	background-color: currentColor;
	mask-image: url(../images/common/icon-tel.svg);
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	margin-right: 6px;
}

.p-TopContact_telLink.-fax::before {
	mask-image: url(../images/common/icon-fax.svg);
	margin-right: 7px;
}

.p-TopContact_mailBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 325px;
	height: 63px;
	background-color: #f4f4f4;
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: 2rem;
	font-weight: 700;
	border-radius: 9999px;
	letter-spacing: 0.08em;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
	margin-left: 12px;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.p-TopContact_mailIcon {
	display: inline-block;
	width: 22px;
	height: 17px;
	background-color: currentColor;
	mask-image: url(../images/common/icon-mail.svg);
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	margin-right: 1rem;
}

@media (hover: hover) {
	.p-TopContact_mailBtn:hover {
		background-color: var(--color-primary);
		color: var(--color-text-second);
		border: 1px solid var(--color-text-second);
	}
}

.p-TopContact_channelNote {
	flex-shrink: 0;
	width: 145px;
	font-family: var(--font-sans);
	font-size: 1.4rem;
	letter-spacing: 0.03em;
	line-height: 1.5;
	color: var(--color-text-second);
}

@media (max-width: 767px) {
	.p-TopContact {
		padding: 60px 0 36px;
		background: url(../images/common/bg-contact_sp.webp) no-repeat center
			center / cover;
	}

	.p-TopContact_inner {
		max-width: 100%;
	}

	.p-TopContact_subtitle {
		font-size: 1.8rem;
	}

	.p-TopContact_title {
		font-size: 2.2rem;
		letter-spacing: 0.05em;
		line-height: 1.727;
		margin-top: 6px;
	}

	.p-TopContact_channels {
		margin-top: 8px;
	}

	.p-TopContact_channel {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding: 32px 0px 26px;
		gap: 3px;
	}

	.p-TopContact_channel.-tel {
		padding-bottom: 31px;
	}

	.p-TopContact_channel.-mail {
		padding-top: 31px;
	}

	.p-TopContact_channelLabel {
		width: 100%;
		font-size: 1.8rem;
	}

	.p-TopContact_channelAction {
		width: 100%;
		padding-left: 0;
		justify-content: center;
	}

	.p-TopContact_channelAction.-tel {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		max-width: 325px;
		height: 60px;
		background-color: #f4f4f4;
		color: var(--color-primary);
		font-family: var(--font-sans);
		font-size: 2rem;
		font-weight: 700;
		border-radius: 9999px;
		letter-spacing: 0.08em;
		transition:
			background-color 0.3s,
			color 0.3s,
			transform 0.2s;
		box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
		color: var(--color-primary);
		margin-top: 10px;
	}

	.p-TopContact_telLink {
		font-size: 2.8rem;
		letter-spacing: 0.02em;
		margin-left: -4px;
	}

	.p-TopContact_channelAction.-tel .p-TopContact_telLink {
		color: var(--color-primary);
	}

	.p-TopContact_telLink::before {
		width: 25px;
		height: 25px;
		margin-right: 0;
	}

	.p-TopContact_mailBtn {
		width: 100%;
		max-width: 325px;
		height: 60px;
		font-size: 1.5rem;
		margin-left: 0;
		font-size: 2rem;
		margin-top: 10px;
	}

	.p-TopContact_channelNote {
		width: 100%;
		padding-left: 0;
		font-size: 1.4rem;
		margin-top: 12px;
	}
}

/**********************************************
*
* fade-in（Intersection Observer + CSS）
*
***********************************************/
.has-fadein .js-fadein {
	opacity: 0;
	transform: translateY(30px);
}

.has-fadein .js-fadein.is-inview {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
}

@media (prefers-reduced-motion: reduce) {
	.has-fadein .js-fadein {
		opacity: 1;
		transform: none;
	}

	.has-fadein .js-fadein.is-inview {
		transition: none;
	}
}


/**********************************************
* 
* Header
*
***********************************************/
.Header {
	position: static;
	transition:
		transform 0.4s ease,
		opacity 0.4s ease,
		visibility 0.4s ease;
	z-index: 100;
	width: 100%;
	padding: 20px clamp(20px, 2.3vw - 1.22px, 40px) 24px
		clamp(20px, 2.99vw - 1.22px, 40px);
	color: #fff;
	display: flex;
	justify-content: space-between;
	gap: 20px;
}

/* is-header-hidden */
.is-header-hidden .Header {
	position: fixed;
	top: calc(var(--header-height) * -1);
}

/* is-header-show */
.is-header-show .Header {
	position: fixed;
	transform: translateY(var(--header-height));
}

/* is-header-fixed */
.is-header-fixed .Header {
	background: #fff;
}

.Header_seoText {
	font-family: var(--font-sans);
	font-size: 1.2rem;
	line-height: 1.5;
	display: inline-block;
}

.Header_logoLink {
	margin-top: 16px;
	display: block;
}

.Header_logoSvg {
	max-width: 260px;
	width: 100%;
	height: auto;
}

.Header_contact {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
}

.Header_telLink,
.Header_inquiryLink {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 6px 10px;
	border-radius: 9999px;
	font-family: var(--font-serif);
	font-size: 1.6rem;
	font-weight: 800;
	letter-spacing: 0.032em;
	color: #fff;
	max-width: 180px;
	width: 100%;
	border: 1px solid transparent;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.Header_telLink {
	background-color: #005085;
	padding: 6px 10px 6px 10px;
}

@media (hover: hover) {
	.Header_telLink:hover {
		background-color: var(--color-text-second);
		border: 1px solid var(--color-primary);
		color: var(--color-primary);
	}

	.Header_inquiryLink:hover {
		background-color: var(--color-text-second);
		border: 1px solid #313a43;
		color: #313a43;
	}
}

.Header_telNum {
	position: relative;
	line-height: 1.2;
	letter-spacing: 0.02em;
	margin-left: 15px;
}

.Header_inquiryText {
	position: relative;
	margin-left: 21px;
}

.Header_telNum::before {
	position: absolute;
	content: "";
	left: -17px;
	top: 0;
	bottom: 0;
	margin: auto;
	background-color: currentColor;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	width: 16px;
	height: 16px;
	mask-image: url(../images/common/icon-tel.svg);
	filter: drop-shadow(0px 0px 20px #0000001a);
}

.Header_inquiryText::before {
	position: absolute;
	content: "";
	left: -19px;
	top: 0;
	bottom: 0;
	margin: auto;
	background-color: currentColor;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	width: 16px;
	height: 13px;
	mask-image: url(../images/common/icon-mail.svg);
}

.Header_inquiryLink {
	background-color: #313a43;
	font-size: 1.5rem;
}

.Header_telTime {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

/* Header_nav */
.Header_nav {
	margin-top: 10px;
}

.Header_navList {
	display: flex;
	align-items: center;
	gap: 24px;
	width: max-content;
}

.Header_navLink {
	position: relative;
	display: block;
	padding-bottom: 6px;
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.08em;
	color: inherit;
	transition: color 0.3s ease;
}

.Header_navLink::after {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background-color: currentColor;
	content: "";
}

@media (hover: hover) {
	.Header_navLink:hover {
		color: var(--color-primary);
	}
}

.HeaderSpButton {
	display: none;
}

/* is-header-show */
.is-header-show .Header {
	background-color: #fff;
	color: #333a43;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.is-header-show .Header_logoSvg path {
	fill: #333a43;
}

.is-header-show .Header_logoSvg .Header_logoSvgIcon {
	fill: #001976;
}

@media (max-width: 767px) {
	.Header {
		position: relative;
		align-items: center;
		padding: 29px 20px 20px 25px;
	}

	.Header_seoText {
		display: none;
	}

	.Header_logoLink {
		position: relative;
		z-index: 1000;
		margin-top: 0;
	}

	.Header_logoSvg {
		width: 190px;
		height: 35px;
	}

	.is-header-active .Header_logoSvg path {
		fill: #333a43;
	}

	.is-header-active .Header_logoSvg .Header_logoSvgIcon {
		fill: #001976;
	}

	.Header_navWrap {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: auto;
		padding-bottom: 100px;
		padding: 105px 25px 48px 25px;
		background: rgba(244, 244, 244, 0.94);
		z-index: 999;
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		margin-top: 0;
		transition:
			opacity 0.4s,
			visibility 0.4s;
		pointer-events: none;
	}

	.Header_navWrap[aria-hidden="false"] {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}

	.Header_nav {
		margin-top: 0;
	}

	.Header_navList {
		flex-wrap: wrap;
		gap: 20px 19px;
		width: 100%;
	}

	.Header_navItem {
		width: calc(50% - 10px);
	}

	.Header_navLink {
		font-size: 1.6rem;
		letter-spacing: 0.05em;
		color: #313a43;
		text-align: center;
		padding-bottom: 10px;
	}

	.Header_navLink::after {
		background-color: var(--color-primary);
	}

	.Header_contact {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		gap: 0;
	}

	.Header_telLink,
	.Header_inquiryLink {
		border-radius: 0;
		width: 50%;
		height: 56px;
		max-width: 50%;
		font-size: 1.8rem;
		letter-spacing: 0.05em;
	}

	.Header_telLink {
		gap: 0;
	}

	.Header_telNum {
		font-size: 2rem;
		letter-spacing: 0.02em;
	}

	.HeaderSpButton {
		position: fixed;
		right: 20px;
		top: 20px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 6px;
		flex-shrink: 0;
		width: 50px;
		height: 50px;
		margin-left: auto;
		background-color: var(--color-primary);
		cursor: pointer;
		z-index: 1000;
		border: 0;
	}

	.HeaderSpButton_icon {
		display: block;
		width: 24px;
		height: 2px;
		border-radius: 1px;
		background-color: #fff;
		transition:
			transform 0.4s,
			opacity 0.4s;
	}

	.HeaderSpButton[aria-expanded="true"] {
		gap: 3px;
	}

	.HeaderSpButton[aria-expanded="true"] .HeaderSpButton_icon.-top {
		transform: translateY(5px) rotate(35deg);
	}

	.HeaderSpButton[aria-expanded="true"] .HeaderSpButton_icon.-middle {
		opacity: 0;
	}

	.HeaderSpButton[aria-expanded="true"] .HeaderSpButton_icon.-bottom {
		transform: translateY(-5px) rotate(-35deg);
	}
}

/**********************************************
* 
* Footer
*
***********************************************/
/* Footer
***********************************************/
.p-Footer {
	background-color: #333333;
	color: #fff;
	padding: 80px 0 100px;
	position: relative;
}

.p-Footer_top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 4rem;
}

.p-Footer_info {
	display: flex;
	align-items: center;
	gap: 33px;
}

.p-Footer_logoImg {
	width: 229px;
	height: auto;
}

.p-Footer_address {
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--color-text-second);
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-Footer_bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	gap: 73px;
	margin-top: 61px;
}

.p-Footer_nav {
	flex-grow: 1;
	width: 100%;
}

.p-Footer_navList {
	display: flex;
	gap: 20px;
	width: 100%;
}

.p-Footer_navItem {
	width: 100%;
}

.p-Footer_navLink {
	max-width: 165px;
	width: 100%;
	display: block;
	font-family: var(--font-sans);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--color-text-second);
	letter-spacing: 0.05em;
	border-bottom: 1px solid #535353;
	padding: 9px 5px 9px 5px;
	transition: border-color 0.3s ease;
}

@media (hover: hover) {
	.p-Footer_navLink:hover {
		border-bottom: 1px solid var(--color-text-second);
	}
}

.p-Footer_copySmall {
	color: #bfbfbf;
	letter-spacing: 0.05em;
	white-space: nowrap;
	font-family: var(--font-serif);
	font-size: 1.2rem;
}

.p-Footer_pagetop {
	position: absolute;
	right: 0;
	bottom: -2rem;
	z-index: 10;
}

.p-Footer_pagetopLink {
	position: relative;
	position: fixed;
	right: 50px;
	bottom: 50px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background-color: #fff;
	border-radius: 50%;
	color: var(--color-text);
	font-family: var(--font-serif);
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
	padding-top: 15px;
	opacity: 0;
	visibility: hidden;
	border: 1px solid transparent;
	transition:
		border-color 0.3s ease,
		color 0.3s ease;
}

.p-Footer_pagetopLink::after {
	position: absolute;
	content: "";
	top: -17px;
	right: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	mask-image: url(../images/common/icon-arrow.svg);
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	background: currentColor;
	width: 11px;
	height: 6px;
}

.p-Footer_pagetopLink.is-active {
	opacity: 1;
	visibility: visible;
}

@media (hover: hover) {
	.p-Footer_pagetopLink:hover {
		border: 1px solid var(--color-primary);
		color: var(--color-primary);
	}
}

@media (max-width: 1000px) {
	.p-Footer_bottom {
		flex-direction: column;
		gap: 30px;
	}
}

@media (max-width: 767px) {
	.p-Footer {
		padding: 70px 0 73px;
	}

	.p-Footer_top {
		margin-bottom: 0;
		text-align: center;
		justify-content: center;
	}

	.p-Footer_info {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2rem;
	}

	.p-Footer_logoImg {
		width: 200px;
	}

	.p-Footer_logoText {
		font-size: 2.4rem;
	}

	.p-Footer_address {
		display: none;
	}

	.p-Footer_bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 3.5rem;
		margin-top: 19px;
	}

	.p-Footer_nav {
		width: 100%;
	}

	.p-Footer_navList {
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 10px;
	}

	.p-Footer_navItem {
		min-width: 100px;
		width: max-content;
	}

	.p-Footer_navLink {
		font-size: 1.5rem;
		padding-bottom: 10px;
		text-align: center;
	}

	.p-Footer_copy {
		margin: 2px auto 0;
	}

	.p-Footer_copySmall {
		margin-bottom: 0;
		text-align: center;
		margin: 3px auto 0;
	}

	.p-Footer_pagetop {
		right: 2rem;
		bottom: -4rem;
	}

	.p-Footer_pagetopLink {
		width: 50px;
		height: 50px;
		font-size: 1.2rem;
		right: 20px;
		bottom: 65px;
	}
}
