/*
 * CouncilWare Gateway — utilities.
 *
 * Single-purpose helpers, loaded last so they win. Anything here is safe for a
 * staff member to type into a CSS Classes field.
 *
 * Class names are cw-*, never gw-*: content authored on Gateway has to restyle
 * cleanly under the next council's theme instead of needing a find-and-replace.
 */

.cw-text-center { text-align: center; }
.cw-text-left { text-align: left; }

.cw-rounded { border-radius: var(--cw-radius); }
.cw-rounded-lg { border-radius: var(--cw-radius-lg); }
.cw-rounded-pill { border-radius: var(--cw-radius-pill); }

.cw-surface { background: var(--cw-surface); }
.cw-surface-alt { background: var(--cw-surface-alt); }

.cw-pad-s { padding: var(--cw-space-s); }
.cw-pad-m { padding: var(--cw-space-m); }
.cw-pad-l { padding: var(--cw-space-l); }

.cw-stack-s > * + * { margin-block-start: var(--cw-space-s); }
.cw-stack-m > * + * { margin-block-start: var(--cw-space-m); }
.cw-stack-l > * + * { margin-block-start: var(--cw-space-l); }

.cw-shadow-card { box-shadow: 0 2px 4px rgba(0, 63, 135, 0.06), 0 8px 24px rgba(0, 63, 135, 0.1); }

/* Full-bleed inside a wrapped container. */
.cw-bleed {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
