/* layout.css — container widths, sections, grid. */

.hc-container {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.hc-prose-container {
	max-width: var(--prose);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.hc-section {
	padding-block: var(--space-section);
}
.hc-section--compact { padding-block: var(--space-block); }

/* Grid utilities */
.hc-grid { display: grid; gap: var(--space-item); }
.hc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.hc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.hc-grid--4 { grid-template-columns: repeat(4, 1fr); }

.hc-gap-block  { gap: var(--space-block); }
.hc-gap-item   { gap: var(--space-item); }

.hc-stack > * + * { margin-top: var(--space-item); }
.hc-stack--block > * + * { margin-top: var(--space-block); }

/* Row — horizontal spread */
.hc-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-item);
	align-items: center;
	justify-content: space-between;
}

/* End of article marker */
.hc-endrule {
	border: 0;
	border-top: 3px solid var(--c-ink);
	margin: var(--space-block) auto;
	max-width: var(--prose);
}

/* Section separator rule — thin, full container */
.hc-section-rule {
	border: 0;
	border-top: 1px solid var(--c-stone);
	margin: 0;
}
.hc-section-rule--ink { border-top-color: var(--c-ink); }
.hc-section-rule--thick { border-top-width: 3px; border-top-color: var(--c-ink); }
