/* Containers, sections, grids, shared text patterns. */

@layer layout {
	.sw-container {
		max-width: var(--container);
		margin-inline: auto;
		padding-inline: var(--gutter);
	}

	.sw-section { padding-block: var(--section-pad); }
	.sw-section--alt { background: var(--surface); }

	.sw-section > .sw-container > h2:first-of-type,
	.sw-band > .sw-container > h2 { margin-bottom: 1.25rem; }

	.sw-grid { display: grid; gap: 24px; margin-top: 2.5rem; }
	.sw-grid--3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
	.sw-grid--4 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

	/* label/body split used by services + about + contact */
	.sw-split {
		display: grid;
		grid-template-columns: minmax(220px, 1fr) 2fr;
		gap: clamp(32px, 5vw, 72px);
		align-items: start;
	}
	@media (max-width: 800px) {
		.sw-split { grid-template-columns: 1fr; }
	}

	.sw-split__label h2 { position: sticky; top: 100px; }
	.sw-split__body h3 { margin-top: 1.75rem; margin-bottom: 0.5rem; }
	.sw-split__body p { margin-block: 1rem; }
	.sw-split__body ul { margin-block: 0.75rem 1.5rem; }
	.sw-split__body .sw-lead { margin-top: 0; }

	.sw-eyebrow {
		font-family: var(--font-mono);
		font-size: 0.8125rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.14em;
		color: var(--accent-text);
		display: flex;
		align-items: center;
		gap: 10px;
		margin-bottom: 1.25rem;
	}
	.sw-eyebrow::before {
		content: "";
		width: 9px; height: 9px;
		background: var(--accent);
		flex-shrink: 0;
	}

	.sw-lead {
		font-size: clamp(1.0625rem, 1.6vw, 1.1875rem);
		line-height: 1.6;
	}

	.sw-note { font-size: 0.9rem; color: var(--muted); }

	.sw-section__more { margin-top: 2rem; font-family: var(--font-mono); font-size: 0.9375rem; }
}
