/* ============================================
   セクション全体
============================================ */

.fs-cta {
	position: relative;
	left: 50%;

	width: 100vw;
	max-width: none;

	margin: 0;
	margin-left: -50vw;
	padding: 0;

	overflow: hidden;

	background-color: #f5f5f5;
}

.fs-cta,
.fs-cta *,
.fs-cta *::before,
.fs-cta *::after {
	box-sizing: border-box;
}


/* ============================================
   背景画像
============================================ */

.fs-cta__bg {
	position: absolute;
	inset: 0;
	z-index: 1;

	width: 100%;
	height: 100%;

	overflow: hidden;
}

.fs-cta__bg-picture {
	display: block;

	width: 100%;
	height: 100%;
}

.fs-cta__bg-image {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center center;
}


/* ============================================
   コンテンツ配置
============================================ */

.fs-cta__inner {
	position: relative;
	z-index: 2;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 440px;

	padding: 56px 24px;
}


/* ============================================
   半透明パネル
============================================ */

.fs-cta__panel {
	width: 100%;
	max-width: 900px;

	margin: 0 auto;
	padding: 48px 40px 44px;

	background-color: rgba(255, 255, 255, 0.7);

	text-align: center;
}


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

.fs-cta__title {
	margin: 0;
	padding: 0;

	color: #ff2a1f;

	font-size: 28px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.03em;

	white-space: nowrap;
}

.fs-cta__title-pc {
	display: inline;
}

.fs-cta__title-sp {
	display: none;
}


/* ============================================
   説明文
============================================ */

.fs-cta__description {
	margin: 18px 0 0;
	padding: 0;

	color: #222222;

	font-size: 19px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.03em;
}


/* ============================================
   実績メモ
============================================ */

.fs-cta__result-note {
	position: relative;

	display: inline-block;

	margin: 24px auto 0;
	padding: 0 24px;

	color: #222222;

	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.03em;
}

.fs-cta__result-note::before,
.fs-cta__result-note::after {
	position: absolute;
	top: 50%;

	width: 18px;
	height: 1px;

	background-color: #222222;

	content: "";
}

.fs-cta__result-note::before {
	left: 0;

	transform: translateY(-50%) rotate(45deg);
	transform-origin: left center;
}

.fs-cta__result-note::after {
	right: 0;

	transform: translateY(-50%) rotate(-45deg);
	transform-origin: right center;
}

.fs-cta__result-note-text {
	display: inline-block;
}


/* ============================================
   ボタン
============================================ */

.fs-cta__button-wrap {
	margin: 18px 0 0;
	padding: 0;
}

.fs-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	max-width: 476px;
	min-height: 64px;

	padding: 12px 24px;

	border-radius: 999px;

	color: #ffffff;
	background-color: #ff1200;

	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;

	text-align: center;
	text-decoration: none;

	white-space: nowrap;

	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.fs-cta__button:hover,
.fs-cta__button:focus-visible {
	color: #ffffff;

	opacity: 0.9;

	transform: translateY(-1px);
}


/* ============================================
   小さな注意文
============================================ */

.fs-cta__small-note {
	margin: 16px 0 0;
	padding: 0;

	color: #333333;

	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.02em;
}


/* ============================================
   スマートフォン
============================================ */

@media (max-width: 767px) {

	.fs-cta {
		position: relative;
		left: 50%;

		width: 100vw;
		height: auto;
		min-height: calc(100vw * 960 / 750);

		margin-left: -50vw;

		background-color: #f5f5f5;
		overflow: hidden;
	}


	/* ============================================
	   背景画像
	   コンテンツが画像比率より高くなった場合もCTA全体を覆う
	============================================ */

	.fs-cta__bg {
		position: absolute;
		inset: 0;

		width: 100%;
		height: 100%;

		overflow: hidden;

		transform: none;
	}

	.fs-cta__bg-picture {
		display: block;

		width: 100%;
		height: 100%;
	}

	.fs-cta__bg-image {
		display: block;

		width: 100%;
		height: 100%;
		max-width: none;

		margin: 0;
		padding: 0;

		object-fit: cover;
		object-position: center top;
	}


	/* ============================================
	   コンテンツ配置
	   固定heightを使わず、中身の高さに応じてCTA自体を伸ばす
	============================================ */

	.fs-cta__inner {
		position: relative;
		z-index: 2;

		display: flex;
		align-items: flex-start;
		justify-content: center;

		width: 100%;
		height: auto;
		min-height: calc(100vw * 960 / 750);

		padding: 92px 14px 54px;
	}


	/* ============================================
	   半透明パネル
	============================================ */

	.fs-cta__panel {
		width: 100%;
		max-width: none;

		margin: 0 auto;
		padding: 25px 18px 24px;

		background-color: rgba(255, 255, 255, 0.88);

		text-align: center;
	}


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

	.fs-cta__title {
		margin: 0;

		font-size: 20px;
		font-weight: 900;
		line-height: 1.4;
		letter-spacing: 0.015em;

		white-space: normal;

		-webkit-text-stroke: 0.15px currentColor;
	}

	.fs-cta__title-pc {
		display: none;
	}

	.fs-cta__title-sp {
		display: inline;
	}


	/* ============================================
	   説明文
	============================================ */

	.fs-cta__description {
		margin-top: 12px;

		font-size: 16px;
		font-weight: 600;
		line-height: 1.65;
		letter-spacing: 0.015em;
	}

	.fs-cta__description br {
		display: none;
	}


	/* ============================================
	   実績メモ
	============================================ */

	.fs-cta__result-note {
		margin-top: 16px;

		padding: 0 16px;

		font-size: 12px;
		font-weight: 800;
		line-height: 1.5;
		letter-spacing: 0;

		white-space: nowrap;
	}

	.fs-cta__result-note-text {
		display: inline-block;

		white-space: nowrap;
	}

	.fs-cta__result-note::before,
	.fs-cta__result-note::after {
		width: 12px;
	}


	/* ============================================
	   ボタン
	============================================ */

	.fs-cta__button-wrap {
		width: 100%;

		margin-top: 14px;
	}

	.fs-cta__button {
		width: 100%;
		max-width: 100%;
		min-height: 50px;

		padding: 10px 8px;

		font-size: 15px;
		font-weight: 800;
		line-height: 1.4;
		letter-spacing: 0;

		white-space: nowrap;
	}


	/* ============================================
	   小さな注意文
	============================================ */

	.fs-cta__small-note {
		margin-top: 14px;

		font-size: 12px;
		font-weight: 600;
		line-height: 1.8;
		letter-spacing: 0.01em;
	}

}
