/**
 * Portfolio Statistics.
 *
 * Values mirror the previous Elementor counters: Roboto 700/50px numbers,
 * Roboto 500/18px labels, 5px gap, 20px/10px item padding, 3 / 2 / 1 columns
 * at desktop / tablet / mobile.
 *
 * Layout is an explicit grid: one stat - number plus label - is always one grid
 * cell, whatever the item count. The declarations that hold the structure
 * together are marked !important because the block is usually dropped inside an
 * Elementor container whose own flex/grid rules would otherwise reach the
 * children.
 *
 * The background stays transparent - it belongs to the section the shortcode
 * is dropped into.
 */

.mhw-stats {
	--mhw-stats-number-color: #AA923B;
	--mhw-stats-label-color: #FFFFFF;

	--mhw-stats-font-family: "Roboto", sans-serif;
	--mhw-stats-number-size: 50px;
	--mhw-stats-number-size-mobile: 40px;
	--mhw-stats-number-weight: 700;
	--mhw-stats-number-line-height: 1;

	--mhw-stats-label-size: 18px;
	--mhw-stats-label-size-mobile: 16px;
	--mhw-stats-label-weight: 500;
	--mhw-stats-label-line-height: 1.2;
	--mhw-stats-label-transform: none;
	--mhw-stats-label-letter-spacing: normal;

	--mhw-stats-gap: 5px;
	--mhw-stats-row-gap: 20px;
	--mhw-stats-column-gap: 0px;
	--mhw-stats-item-padding: 20px 10px;

	--mhw-stats-columns: 3;
	--mhw-stats-columns-tablet: 2;
	--mhw-stats-columns-mobile: 1;

	display: grid !important;
	grid-template-columns: repeat(var(--mhw-stats-columns), minmax(0, 1fr)) !important;
	align-items: start;
	justify-items: stretch;
	row-gap: var(--mhw-stats-row-gap);
	column-gap: var(--mhw-stats-column-gap);
	width: 100%;
	margin: 0;
	padding: 0;
	font-family: var(--mhw-stats-font-family);
}

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

/* One stat = one cell. display:block keeps number and label together even if a
   parent stylesheet tries to flatten the wrapper. */
.mhw-stats__item {
	display: block !important;
	grid-column: auto !important;
	width: auto !important;
	max-width: none !important;
	padding: var(--mhw-stats-item-padding);
	margin: 0;
	text-align: center;
}

/* A lone item on the last row sits in the middle column instead of hanging on
   the left. */
@media (min-width: 1025px) {
	.mhw-stats__item:last-child:nth-child(3n + 1) {
		grid-column: 2 !important;
	}
}

.mhw-stats__number {
	display: flex !important;
	align-items: baseline;
	justify-content: center;
	flex-wrap: nowrap;
	margin: 0;
	color: var(--mhw-stats-number-color);
	font-size: var(--mhw-stats-number-size);
	font-weight: var(--mhw-stats-number-weight);
	line-height: var(--mhw-stats-number-line-height);
}

.mhw-stats__prefix,
.mhw-stats__suffix,
.mhw-stats__value {
	display: inline-block;
	white-space: nowrap;
}

.mhw-stats__label {
	display: block !important;
	margin: var(--mhw-stats-gap) 0 0;
	color: var(--mhw-stats-label-color);
	font-size: var(--mhw-stats-label-size);
	font-weight: var(--mhw-stats-label-weight);
	line-height: var(--mhw-stats-label-line-height);
	text-transform: var(--mhw-stats-label-transform);
	letter-spacing: var(--mhw-stats-label-letter-spacing);
}

@media (max-width: 1024px) {
	.mhw-stats {
		grid-template-columns: repeat(var(--mhw-stats-columns-tablet), minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.mhw-stats {
		grid-template-columns: repeat(var(--mhw-stats-columns-mobile), minmax(0, 1fr)) !important;
	}

	.mhw-stats__number {
		font-size: var(--mhw-stats-number-size-mobile);
	}

	.mhw-stats__label {
		font-size: var(--mhw-stats-label-size-mobile);
	}
}
