/* GENERATED by design-system/build.mjs — do not edit.
 * Core-blocks design-system defaults (blockquote, table, code, separator, lists).
 * Consumes --ftm-scheme-* + type-style/radius vars. */

:root {
	--ftm-code-bg: var(--wp--custom--color--neutral--100, #f8f8f8);
	--ftm-code-font: ui-monospace, SFMono-Regular, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;
}

/* Blockquote */
.wp-block-quote {
	border-left: var(--wp--custom--border-width--strong) solid var(--ftm-scheme-accent);
	padding-left: 1.25rem;
	margin-left: 0;
}
.wp-block-quote p {
	font-family: var(--wp--custom--type-styles--quote--font-family);
	font-style: var(--wp--custom--type-styles--quote--font-style, italic);
	color: var(--ftm-scheme-heading);
}
.wp-block-quote cite {
	font-family: var(--wp--custom--type-styles--caption--font-family);
	font-size: var(--wp--custom--type-styles--caption--font-size);
	color: var(--ftm-scheme-muted);
	font-style: normal;
}

/* Pullquote — feature quote. DS-canonical replacement for the dropped core cosmetic
 * layer (wp-block-library-theme): accent top/bottom rules + the quote type role, larger. */
.wp-block-pullquote {
	border-top: var(--wp--custom--border-width--strong) solid var(--ftm-scheme-accent);
	border-bottom: var(--wp--custom--border-width--strong) solid var(--ftm-scheme-accent);
	padding: var(--wp--preset--spacing--large) 0;
	text-align: center;
}
.wp-block-pullquote blockquote {
	margin: 0;
}
.wp-block-pullquote p {
	font-family: var(--wp--custom--type-styles--quote--font-family);
	font-style: var(--wp--custom--type-styles--quote--font-style, italic);
	font-size: var(--wp--preset--font-size--heading-medium);
	line-height: 1.2;
	color: var(--ftm-scheme-heading);
}
.wp-block-pullquote cite {
	font-family: var(--wp--custom--type-styles--caption--font-family);
	font-size: var(--wp--custom--type-styles--caption--font-size);
	color: var(--ftm-scheme-muted);
	font-style: normal;
}

/* Table */
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}
.wp-block-table th,
.wp-block-table td {
	border: var(--wp--custom--border-width--hairline) solid var(--ftm-scheme-border);
	padding: 0.625rem 0.875rem;
	text-align: left;
}
.wp-block-table th {
	background-color: var(--wp--custom--color--neutral--100, #f8f8f8);
	color: var(--ftm-scheme-heading);
	font-weight: var(--wp--custom--type-styles--label--font-weight, 600);
}
.wp-block-table figcaption {
	color: var(--ftm-scheme-muted);
	font-size: var(--wp--custom--type-styles--caption--font-size);
}

/* Code / preformatted + inline code */
.wp-block-code,
.wp-block-preformatted,
pre {
	background-color: var(--ftm-code-bg);
	border-radius: var(--wp--custom--radius--sm);
	padding: 1rem 1.125rem;
	font-family: var(--ftm-code-font);
	font-size: 0.9375em;
	overflow: auto;
}
:not(pre) > code {
	background-color: var(--ftm-code-bg);
	border-radius: var(--wp--custom--radius--sm);
	padding: 0.125em 0.375em;
	font-family: var(--ftm-code-font);
	font-size: 0.9375em;
}

/* Separator */
.wp-block-separator:not(.is-style-dots) {
	border: none;
	border-top: var(--wp--custom--border-width--hairline) solid var(--ftm-scheme-border);
	opacity: 1;
}

/* Lists */
.wp-block-list {
	padding-left: 1.25rem;
}
.wp-block-list li {
	margin-bottom: 0.375rem;
}
.wp-block-list li::marker {
	color: var(--ftm-scheme-muted);
}

/* Responsive section grids (§9c). Core columns inside a page-section reflow as a
 * content-driven grid — many at desktop down to 1 on mobile — instead of WP's flex,
 * which only stacks at 600px (no graceful 3→2→1 middle the corpus shows). auto-fit +
 * a min card width (--ftps-grid-min density knob) collapses columns continuously by
 * available width; the gap is a fixed gutter from the scale. Tighten, don't constrict
 * — for columns too. Density per layout: roomier grids raise --ftps-grid-min. */
.page-section .wp-block-columns.is-layout-flex {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(var(--ftps-grid-min, 17rem), 100%), 1fr));
	gap: var(--wp--preset--spacing--large);
	align-items: start;
}
.page-section .wp-block-columns.is-layout-flex > .wp-block-column {
	min-width: 0;
}
.page-section-highlights .wp-block-columns.is-layout-flex { --ftps-grid-min: 13rem; }
/* Legacy slug (pre-rename grouped_callouts sections still in content). */
.page-section-grouped-callouts .wp-block-columns.is-layout-flex { --ftps-grid-min: 13rem; }
.page-section-hero .wp-block-columns.is-layout-flex,
.page-section-media-content .wp-block-columns.is-layout-flex { --ftps-grid-min: 22rem; }

/* Semantic spacing roles (§9) — front-end mirror of the DTCG space.* tokens (also in
 * the un-enqueued tokens.css) so blocks consume the ROLE, not a raw preset. Section
 * rhythm is the fluid large step (xxxlarge). */
:root {
	--ftps-space-section-rhythm: var(--wp--preset--spacing--xxxlarge);
	--ftps-space-stack: var(--wp--preset--spacing--normal);
	--ftps-space-inset: var(--wp--preset--spacing--large);
	--ftps-space-inline: var(--wp--preset--spacing--small);
}

/* Section rhythm — block-owned (§9b migration coupling). The page-section block consumes
 * the semantic role for its inter-section margin, replacing the central theme.json
 * styles.blocks override. Scoped to .page-section; the normal block-gap governs the rest.
 * Migrates verbatim into the page-section block's own stylesheet during the
 * ftm-page-sections → ftm-blocks consolidation. */
.page-section { margin-block-start: var(--ftps-space-section-rhythm); }
.page-section:first-child { margin-block-start: 0; }
