/**
 * BayFirst Numbered Cards
 */

.bf-numbered-cards,
.wp-block-bayfirst-numbered-cards {
	--bf-nc-green: var(--wp--preset--color--ti-accent, #02461b);
	--bf-nc-orange: #e07400;
	--bf-nc-orange-bright: var(--wp--preset--color--ti-accent-secondary, #f68521);
	--bf-nc-fg: var(--wp--preset--color--ti-fg, #1e1e1e);
	--bf-nc-cols-mobile: 1;
	--bf-nc-cols-tablet: 2;
	--bf-nc-cols-desktop: 2;

	width: 100%;
	box-sizing: border-box;
	counter-reset: bf-numbered-card;
}

.bf-numbered-cards__list {
	display: grid;
	grid-template-columns: repeat(var(--bf-nc-cols-mobile, 1), minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	align-items: stretch;
}

@media (min-width: 768px) and (max-width: 959px) {
	.bf-numbered-cards__list {
		grid-template-columns: repeat(var(--bf-nc-cols-tablet, 2), minmax(0, 1fr));
		gap: 1.75rem;
	}
}

@media (min-width: 960px) {
	.bf-numbered-cards__list {
		grid-template-columns: repeat(var(--bf-nc-cols-desktop, 2), minmax(0, 1fr));
		gap: 2rem;
	}
}

.bf-numbered-card,
.wp-block-bayfirst-numbered-card {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem 1rem;
	box-sizing: border-box;
	height: 100%;
	margin: 0;
	padding: 1.25rem 1.25rem 1.5rem;
	background: #fff;
	box-shadow: 0 4px 20px rgba(206, 202, 200, 0.9);
	counter-increment: bf-numbered-card;
}

.bf-numbered-card__marker {
	flex: 0 0 auto;
	min-width: 2.5rem;
	padding-top: 0.1rem;
	line-height: 1;
}

.bf-numbered-card__marker::before {
	content: counter(bf-numbered-card);
	display: block;
	font-family: Metropolis, sans-serif;
	font-size: clamp(3.5rem, 6vw, 5rem);
	font-weight: 700;
	line-height: 1;
	color: #ff8400;
}

.bf-numbered-card__content {
	flex: 1 1 auto;
	min-width: 0;
	padding-top: 0.35rem;
}

.bf-numbered-card__content > *:first-child {
	margin-top: 0;
}

.bf-numbered-card__content > *:last-child {
	margin-bottom: 0;
}

.bf-numbered-card__content h1,
.bf-numbered-card__content h2,
.bf-numbered-card__content h3,
.bf-numbered-card__content h4,
.bf-numbered-card__content .wp-block-heading {
	margin-top: 0;
	margin-bottom: 0.5rem;
	color: var(--bf-nc-green);
	font-family: Metropolis, sans-serif;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 700;
	line-height: 1.2;
}

.bf-numbered-card__content p,
.bf-numbered-card__content .wp-block-paragraph {
	margin: 0 0 1rem;
	color: var(--bf-nc-fg);
	font-size: 1rem;
	line-height: 1.5;
}

.bf-numbered-card__content .wp-block-buttons {
	margin-top: 0.25rem;
}

.bf-numbered-card__content .wp-block-button__link {
	background-color: var(--bf-nc-green);
	color: #fff !important;
	border-radius: 4px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
}

.bf-numbered-card__content .wp-block-button__link:hover,
.bf-numbered-card__content .wp-block-button__link:focus-visible {
	filter: brightness(0.95);
	color: #fff !important;
}

/*
 * List layout — cardless numbered steps (always 1 column, number left of content).
 */
.bf-numbered-cards--layout-list .bf-numbered-cards__list {
	grid-template-columns: 1fr !important;
	gap: 1.75rem;
}

@media (min-width: 768px) {
	.bf-numbered-cards--layout-list .bf-numbered-cards__list {
		gap: 2rem;
	}
}

.bf-numbered-cards--layout-list .bf-numbered-card,
.bf-numbered-cards--layout-list .wp-block-bayfirst-numbered-card {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 1rem 1.25rem;
	height: auto;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.bf-numbered-cards--layout-list .bf-numbered-card__marker {
	margin: 0;
	padding-top: 0;
}

.bf-numbered-cards--layout-list .bf-numbered-card__marker::before {
	font-size: clamp(3.5rem, 5vw, 4.5rem);
	line-height: 1;
}

.bf-numbered-cards--layout-list .bf-numbered-card__content {
	padding-top: 0.45rem;
}

.bf-numbered-cards--layout-list .bf-numbered-card__content h1,
.bf-numbered-cards--layout-list .bf-numbered-card__content h2,
.bf-numbered-cards--layout-list .bf-numbered-card__content h3,
.bf-numbered-cards--layout-list .bf-numbered-card__content h4,
.bf-numbered-cards--layout-list .bf-numbered-card__content .wp-block-heading {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
}

/*
 * Card internal layout by breakpoint + cards-per-row (Cards mode only):
 * - Desktop: always number left of content (flex row).
 * - Tablet/mobile with 2+ cols: stack number over title.
 * - Tablet with 1 col: same as desktop (flex row).
 * - Mobile with 1 col: number floats left; title beside it; body wraps under.
 */

/* Tablet: stack only when more than one card per row (Cards mode) */
@media (min-width: 768px) and (max-width: 959px) {
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-2 .bf-numbered-card,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-2 .wp-block-bayfirst-numbered-card,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-3 .bf-numbered-card,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-3 .wp-block-bayfirst-numbered-card {
		flex-direction: column;
		gap: 0.35rem;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-2 .bf-numbered-card__marker::before,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-3 .bf-numbered-card__marker::before {
		font-size: 4.375rem;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-2 .bf-numbered-card__content,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--t-3 .bf-numbered-card__content {
		padding-top: 0;
	}
}

/* Mobile: stack when 2 cards per row (Cards mode) */
@media (max-width: 767px) {
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-2 .bf-numbered-card,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-2 .wp-block-bayfirst-numbered-card {
		flex-direction: column;
		gap: 0.35rem;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-2 .bf-numbered-card__marker::before {
		font-size: 4.375rem;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-2 .bf-numbered-card__content {
		padding-top: 0;
	}

	/* Mobile 1-up: number left, title beside, body wraps under full width */
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card,
	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .wp-block-bayfirst-numbered-card {
		display: block;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card__marker {
		float: left;
		margin-right: 0.85rem;
		margin-bottom: 0.15rem;
		padding-top: 0;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card__marker::before {
		font-size: 4.375rem;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card__content {
		display: block;
		padding-top: 0.2rem;
		overflow: visible;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card__content > :not(:first-child) {
		clear: both;
	}

	.bf-numbered-cards:not(.bf-numbered-cards--layout-list).bf-numbered-cards--m-1 .bf-numbered-card::after {
		content: "";
		display: table;
		clear: both;
	}
}
