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

:host {
	display: block;
}

.pricing {
	padding-block: var(--g-spacing-3xl);
}

.pricing__title {
	margin: 0 0 var(--g-spacing-sm);
	font: var(--g-typography-h3-font);
	text-align: center;
	color: var(--g-color-content-default);
}

.pricing__subtitle {
	margin: 0 auto var(--g-spacing-2xl);
	font: var(--g-typography-body-lg-font);
	text-align: center;
	color: var(--g-color-content-subtle);
	max-width: 55ch;
}

.pricing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--g-spacing-lg);
	align-items: start;
	padding: 0;
	margin: 0;
	list-style: none;
}

.pricing__tier {
	display: flex;
	flex-direction: column;
	gap: var(--g-spacing-lg);
	padding: var(--g-spacing-xl);
	border: 1px solid var(--g-color-border-default);
	border-radius: var(--g-border-radius-md, 0.5rem);
	background: var(--g-color-background-default);
}

.pricing__tier--highlighted {
	border-color: var(--g-color-border-primary);
	background: var(--g-color-background-subtle);
	box-shadow: var(--g-box-shadow-lg);
}

.pricing__tier-header {
	display: flex;
	flex-direction: column;
	gap: var(--g-spacing-sm);
}

.pricing__tier-name {
	margin: 0;
	font: var(--g-typography-body-lg-font);
	color: var(--g-color-content-default);
}

.pricing__price-wrap {
	display: flex;
	align-items: baseline;
	gap: var(--g-spacing-xs);
}

.pricing__price {
	font: var(--g-typography-h2-font);
	color: var(--g-color-content-default);
}

.pricing__period {
	font-size: var(--g-typography-body-default-font-size);
	color: var(--g-color-content-subtle);
}

.pricing__tier-desc {
	margin: 0;
	font: var(--g-typography-body-sm);
	color: var(--g-color-content-subtle);
}

.pricing__features {
	display: flex;
	flex-direction: column;
	gap: var(--g-spacing-sm);
	padding: 0;
	margin: 0;
	list-style: none;
	flex: 1;
}

.pricing__feature {
	display: flex;
	align-items: center;
	gap: var(--g-spacing-sm);
	font-size: var(--g-typography-body-default-font-size);
	color: var(--g-color-content-default);
}

.pricing__feature--excluded {
	color: var(--g-color-content-subtle);
	text-decoration: line-through;
}

.pricing__feature-icon {
	font: var(--g-typography-body-sm);
	color: var(--g-color-content-primary);
	flex-shrink: 0;
}

.pricing__feature--excluded .pricing__feature-icon {
	color: var(--g-color-content-subtle);
}

.pricing__cta {
	margin-top: auto;
}

.pricing__cta grantcodes-button {
	width: 100%;
}
