.contact-cta {
	position: relative;
	min-height: 600px;
	padding-block: 120px;
	overflow: hidden;
	background: var(--color-surface);
}

.contact-cta__marquee {
	top: 222px;
	height: 157px;
	--marquee-duration: 64s;
	color: transparent;
	font-family: var(--font-en);
	font-size: 157px;
	font-weight: 700;
	line-height: 1;
	-webkit-text-stroke: 1px var(--color-accent);
}

.contact-cta__marquee .text-marquee__group > span {
	width: auto;
	padding-right: 0.18em;
	flex: 0 0 auto;
}

.contact-cta__inner {
	position: relative;
	z-index: 1;
	text-align: center;
}

.contact-cta__inner > p:not(.section-heading-en) {
	margin: 40px 0 0;
	font-size: 16px;
	letter-spacing: 0.04em;
}

.contact-cta__button {
	display: flex;
	width: 280px;
	min-height: 76px;
	margin: 60px auto 0;
	padding: 20px 40px;
	align-items: center;
	justify-content: space-between;
	border: 1px solid #fff;
	border-radius: 4px;
	font-size: 20px;
	font-weight: 700;
	text-decoration: none;
}

.pc-only {
	display: initial;
}

@media (max-width: 899px) {
	.contact-cta {
		min-height: 426px;
		padding-block: 80px;
	}

	.contact-cta__marquee {
		top: 165px;
		height: 112px;
		font-size: 112px;
	}

	.contact-cta__inner {
		text-align: left;
	}

	.contact-cta__inner > p:not(.section-heading-en) {
		margin-top: 40px;
		font-size: 14px;
	}

	.contact-cta__button {
		width: 100%;
		min-height: 60px;
		margin-top: 40px;
		padding: 16px 24px;
		justify-content: center;
		--fill-swap-arrow-size: 12px;
		font-size: 14px;
	}

	.contact-cta__button-arrow {
		position: absolute;
		/* 1pxのborder内側を含め、Figmaの右端24px位置へ合わせる。 */
		right: 23px;
		top: 50%;
		transform: translateY(-50%);
	}

	@media (any-hover: hover) {
		.contact-cta__button:hover .contact-cta__button-arrow {
			transform: translateY(-50%) rotate(45deg);
		}
	}

	.contact-cta__button:focus-visible .contact-cta__button-arrow {
		transform: translateY(-50%) rotate(45deg);
	}

	.pc-only {
		display: none;
	}
}
