/**
 * Small, single-purpose utilities used by theme template parts.
 */

.btc-container {
	margin-inline: auto;
	max-width: var(--btc-content-wide);
	padding-inline: var(--btc-gutter);
}

.btc-container--narrow {
	max-width: var(--btc-content-narrow);
}

.btc-container--standard {
	max-width: var(--btc-content-standard);
}

.btc-container--max {
	max-width: var(--btc-content-max);
}

.btc-prose {
	max-width: 72ch;
}

.btc-visually-hidden {
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.btc-flow > * + * {
	margin-block-start: var(--btc-flow-space, var(--btc-space-md));
}

.btc-section {
	padding-block: var(--btc-space-xl);
}

.btc-section--white {
	background: var(--btc-colour-white);
}

.btc-section--green {
	background: var(--btc-colour-primary);
	color: var(--btc-colour-white);
}

.btc-section--green :where(h1, h2, h3, a) {
	color: inherit;
}

.btc-cluster {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--btc-space-sm);
}

.btc-stack {
	display: grid;
	gap: var(--btc-space-md);
}

.btc-grid {
	display: grid;
	gap: var(--btc-space-md);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.btc-surface {
	background: var(--btc-colour-surface);
}

.btc-surface--subtle {
	background: var(--btc-colour-surface-subtle);
}

.btc-skip-link {
	background: var(--btc-colour-focus);
	color: var(--btc-colour-white);
	font-weight: 700;
	left: var(--btc-space-sm);
	padding: var(--btc-space-xs) var(--btc-space-sm);
	position: fixed;
	top: var(--btc-space-sm);
	transform: translateY(-200%);
	z-index: 999;
}

.btc-skip-link:focus {
	color: var(--btc-colour-white);
	transform: translateY(0);
}
