.free {
	position: relative;
	aspect-ratio: 1400 / 604;
	overflow: hidden;
	background: #f6f4ee;
}

.free__bg {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: auto;
	max-width: none;
	display: block;
}

.free__label {
	position: absolute;
	left: 6.786vw;
	top: 7.714vw;
	margin: 0;
	font-size: 2.571vw;
	line-height: 1;
	font-weight: 700;
	color: var(--color-teal);
}

.free__price {
	position: absolute;
	left: 6.786vw;
	top: 10.929vw;
	margin: 0;
	font-size: 10.5vw;
	line-height: 1;
	font-weight: 700;
	color: var(--color-teal);
}

.free__desc {
	position: absolute;
	left: 31.429vw;
	top: 13.571vw;
	width: 24vw;
	margin: 0;
	font-size: 1.714vw;
	line-height: 1.667;
	color: #333333;
}

.free__points {
	position: absolute;
	left: 8.714vw;
	top: 23.571vw;
	display: flex;
	gap: 8.429vw;
}

.free__point {
	width: 8.929vw;
	text-align: center;
}

.free__point-icon {
	width: 8.929vw;
	height: 8.929vw;
	margin: 0 auto 0.5vw;
}

.free__point-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.free__point-label {
	margin: 0;
	font-size: 1.571vw;
	line-height: 1.3;
	font-weight: 700;
	color: var(--color-teal);
	white-space: nowrap;
}

@media (max-width: 768px) {
	.free {
		aspect-ratio: auto;
		height: auto;
		min-height: 0;
		padding-bottom: 40px;
	}

	.free__bg {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 750 / 649;
		object-fit: cover;
		margin-bottom: 24px;
	}

	.free__price-row {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 16px;
		margin: 0 20px;
	}

	.free__label {
		position: static;
		margin: 0;
		font-size: 1.9rem;
		line-height: 1.35;
		text-align: right;
	}

	.free__price {
		position: static;
		margin: 0;
		font-size: 5.8rem;
	}

	.free__desc {
		position: static;
		width: auto;
		margin: 16px 20px 0;
		font-size: 1.4rem;
		text-align: center;
	}

	.free__points {
		position: static;
		justify-content: center;
		margin: 28px 20px 0;
		gap: 16px;
	}

	.free__point {
		width: auto;
		flex: 1;
		max-width: 110px;
	}

	.free__point-icon {
		width: 70px;
		height: 70px;
		margin: 0 auto 8px;
	}

	.free__point-label {
		font-size: 1.3rem;
		white-space: normal;
	}
}
