/**
 * Structural component primitives.
 */

:root {
	--section-stack-gap: 40px;
	--component-inline-gap: 16px;
	--component-block-padding: 20px;
}

.component-section {
	display: grid;
	gap: var(--section-stack-gap);
	width: 100%;
}

.component-section > * {
	min-width: 0;
}

.component-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--component-inline-gap);
	width: 100%;
}

.component-card {
	display: grid;
	gap: var(--component-inline-gap);
	padding: var(--component-block-padding);
	width: 100%;
}

.component-card > * {
	min-width: 0;
}

.component-card > *:first-child,
.component-section > *:first-child {
	margin-top: 0;
}

.component-card > *:last-child,
.component-section > *:last-child {
	margin-bottom: 0;
}

.component-density-compact.component-card,
.component-density-compact.component-cluster {
	gap: max(0.5rem, calc(var(--component-inline-gap) * 0.875));
}

.component-density-roomy.component-card,
.component-density-roomy.component-cluster {
	gap: calc(var(--component-inline-gap) * 1.125);
}

.hero-header.component-section {
	align-content: start;
}

.footer-widgets.component-section {
	align-items: start;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 980px) {
	.footer-widgets.component-section.footer-widgets--columns-2,
	.footer-widgets.component-section.footer-widgets--columns-4,
	.footer-widgets.component-section.footer-widgets--columns-5 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--columns-3,
	.footer-widgets.component-section.footer-widgets--columns-6 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.footer-widgets.component-section.footer-widgets--columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--columns-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--columns-6 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}


.navigation.component-card .nav-links {
	display: grid;
	gap: var(--component-inline-gap);
}

.breadcrumbs.component-card {
	padding-block: max(0.5rem, calc(var(--component-block-padding) * 0.75));
}

.search-form.component-cluster .search-label {
	flex: 1 1 16rem;
}

.search-form.component-cluster .search-submit {
	flex: 0 0 auto;
}

@media (min-width: 782px) {
	.navigation--post-navigation.component-card .nav-links,
	.navigation--comments-navigation.component-card .nav-links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--columns-2,
	.footer-widgets.component-section.footer-widgets--columns-3,
	.footer-widgets.component-section.footer-widgets--columns-4,
	.footer-widgets.component-section.footer-widgets--columns-5,
	.footer-widgets.component-section.footer-widgets--columns-6 {
		grid-auto-flow: row;
	}
}

@media (max-width: 979px) {
	.search-form.component-cluster .search-submit {
		width: 100%;
	}
}


/* Hero placeholder primitives
--------------------------------------------- */
.site-hero--empty .hero-content,
.hero-content--empty {
	min-height: 48px;
}

.hero-placeholder {
	min-height: 24px;
	width: 100%;
}

/* Footer widget column layout -------------------------------------------- */
.footer-widgets.component-section {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--site-grid-gap);
	align-items: start;
	justify-content: stretch;
	width: 100%;
}

.footer-widgets__column {
	min-width: 0;
	width: 100%;
}

.footer-widgets__column--empty {
	min-height: 0;
}

@media (min-width: 640px) {
	.footer-widgets.component-section.footer-widgets--configured-columns-2,
	.footer-widgets.component-section.footer-widgets--configured-columns-3,
	.footer-widgets.component-section.footer-widgets--configured-columns-4,
	.footer-widgets.component-section.footer-widgets--configured-columns-5,
	.footer-widgets.component-section.footer-widgets--configured-columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.footer-widgets.component-section.footer-widgets--configured-columns-3,
	.footer-widgets.component-section.footer-widgets--configured-columns-5,
	.footer-widgets.component-section.footer-widgets--configured-columns-6 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--configured-columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1200px) {
	.footer-widgets.component-section.footer-widgets--configured-columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--configured-columns-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.footer-widgets.component-section.footer-widgets--configured-columns-6 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}
