.pricing {
	padding: 100px 0;
	background: #D5DEE9;
	color: #131C2E;
}

/* Header */
.pricing__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	padding: 8px 16px;
	background: var(--color-white);
	border-radius: 40px;
	font-weight: 500;
	font-size: 16px;
	line-height: 150%;
	color: #131C2E;
}

.pricing__badge-dot {
	width: 12px;
	height: 12px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--color-primary);
}

.pricing__heading {
	max-width: 1062px;
	margin: 0 0 56px;
	color: #131C2E;
}

.pricing__heading span {
	color: var(--color-primary);
}

.pricing__grid {
	display: grid;
	/* minmax(0, ...) so a long unbroken word cannot widen its column. */
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.pricing__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 32px;
	background: #F8FAFC;
	border: none;
	backdrop-filter: blur(7.5px);
	border-radius: 20px;
}

.pricing__card--highlight {
	border: none;
	box-shadow: 0 0 0 5px #3B455A;
}

.pricing__card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin-bottom: 12px;
}

.pricing__card-title {
	margin: 0;
	font-size: 20px;
	line-height: 140%;
	font-weight: 600;
	color: #131C2E;
}

.pricing__label {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	padding: 4px 12px;
	background: #9ED1FF;
	border-radius: 8px;
	font-size: 16px;
	line-height: 150%;
	font-weight: 600;
	color: #131C2E;
}

.pricing__price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 8px;
	font-family: 'Unbounded', sans-serif;
	font-size: 56px;
	line-height: 130%;
	font-weight: 400;
	color: #131C2E;
}

.pricing__price-note {
	font-size: 20px;
	line-height: 140%;
	font-weight: 600;
	color: #3B455A;
}

.pricing__card-text {
	margin: 0 0 20px;
	font-size: 14px;
	line-height: 168%;
	font-weight: 500;
	color: #3B455A;
}

.pricing__card-text p {
	margin: 0 0 4px;
}

.pricing__card-text p:last-child {
	margin: 0;
}

.pricing__btn {
	justify-content: space-between;
	width: 100%;
	padding: 8px 15px 8px 27px;
}

.pricing__features {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.pricing__feature {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 14px;
	line-height: 150%;
	font-weight: 400;
	color: #3B455A;
}

.pricing__check {
	display: flex;
	flex-shrink: 0;
	/* Nudged down to sit on the first line of text. */
	margin-top: 4px;
	color: var(--color-primary);
}

@media (max-width: 1440px) {
	.pricing {
		padding: 60px 0;
	}

	.pricing__badge {
		margin: 0 0 12px;
		font-size: 14px;
	}

	.pricing__heading {
		max-width: 940px;
		margin: 0 0 40px;
		font-size: 24px;
	}

	.pricing__grid {
		gap: 16px;
	}

	.pricing__card {
		padding: 24px;
		border-radius: 16px;
	}

	.pricing__card-title {
		font-size: 18px;
	}

	/* A two-word badge breaking across lines would unbalance the card head. */
	.pricing__label {
		flex-shrink: 0;
		font-size: 14px;
		white-space: nowrap;
	}

	.pricing__price {
		font-size: 40px;
	}

	.pricing__price-note {
		font-size: 16px;
	}

	.pricing__card-text {
		margin: 0 0 16px;
	}

	.pricing__btn {
		padding: 8px 12px 8px 20px;
		font-size: 16px;
	}

	.pricing__features {
		margin-top: 20px;
	}
}

/*
 * Four across only survives the widest layouts: below this the cards lose
 * roughly a third of their width and the feature lines start breaking every
 * few words. Two per row keeps the text column readable.
 */
@media (max-width: 1280px) {
	.pricing__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pricing__heading {
		max-width: none;
	}
}

@media (max-width: 768px) {
	.pricing__heading {
		margin: 0 0 32px;
	}
}

/* Phone - a single column, since two would leave ~150px of text. */
@media (max-width: 600px) {
	.pricing {
		padding: 40px 0;
	}

	.pricing__badge {
		gap: 9px;
		padding: 3px 10px;
		font-size: 12px;
	}

	.pricing__badge-dot {
		width: 8px;
		height: 8px;
	}

	.pricing__heading {
		margin: 0 0 20px;
		font-size: 18px;
	}

	.pricing__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pricing__card {
		padding: 20px;
	}

	/* The ring sits outside the card, so it eats into a 16px gutter. */
	.pricing__card--highlight {
		box-shadow: 0 0 0 3px #3B455A;
	}

	.pricing__price {
		font-size: 32px;
	}

	.pricing__price-note {
		font-size: 14px;
	}

	.pricing__btn {
		padding: 8px 8px 8px 16px;
		font-size: 14px;
	}

	.pricing__features {
		gap: 10px;
		margin-top: 16px;
	}

	.pricing__feature {
		gap: 10px;
	}
}
