/**
 * page-chrome-contract.css
 *
 * Board/page heading geometry, opaque navbar base surface, and OP body spacing.
 * Loaded after theme CSS. Typography identity stays on masthead tokens; this
 * module normalizes size and vertical rhythm only.
 */

:root {
	--theme-page-heading-size: 28pt;
	--theme-page-heading-line-height: 1.15;
	--theme-page-heading-margin-block: 0;
	--theme-page-header-margin-block: 1em;
	--theme-page-header-padding-top: 0;
	--theme-page-subheading-size: 11pt;
	--theme-page-subheading-line-height: 1.35;
	--theme-home-heading-size: 40pt;
}

/* Board / thread / catalog page headings (not homepage branding). */
body.boardpage:not(.homepage) > header h1,
body.boardpage:not(.homepage) > header .thread-header-title h1,
body.homepage > header h1 {
	font-family: var(--theme-masthead-font-family, var(--theme-font-heading, "tahoma", Arial, sans-serif));
	font-weight: var(--theme-masthead-font-weight, var(--theme-heading-weight, normal));
	font-style: var(--theme-masthead-font-style, var(--theme-heading-style, normal));
	color: var(--theme-masthead-color, var(--theme-heading));
	text-shadow: var(--theme-masthead-text-shadow, var(--theme-heading-shadow, none));
	letter-spacing: var(--theme-masthead-letter-spacing, var(--theme-heading-letter-spacing, normal));
	word-spacing: var(--theme-masthead-word-spacing, var(--theme-heading-word-spacing, normal));
	text-transform: var(--theme-masthead-text-transform, var(--theme-heading-text-transform, none));
}

body.boardpage:not(.homepage) > header h1,
body.boardpage:not(.homepage) > header .thread-header-title h1 {
	font-size: var(--theme-page-heading-size);
	line-height: var(--theme-page-heading-line-height);
	margin-top: var(--theme-page-heading-margin-block);
	margin-bottom: var(--theme-page-heading-margin-block);
	/* Reserve masthead block height during webfont swap. */
	min-height: calc(var(--theme-page-heading-size) * var(--theme-page-heading-line-height));
}

body.boardpage:not(.homepage) > header,
body.boardpage:not(.homepage) > header.thread-page-header {
	margin: var(--theme-page-header-margin-block) 0;
	padding-top: var(--theme-page-header-padding-top);
}

body.boardpage:not(.homepage) > header .subtitle {
	font-size: var(--theme-page-subheading-size);
	line-height: var(--theme-page-subheading-line-height);
}

/* Homepage keeps distinct branding scale from style.css. */
body.homepage > header h1 {
	font-size: var(--theme-home-heading-size);
	line-height: var(--theme-page-heading-line-height);
	margin-top: var(--theme-page-heading-margin-block);
	margin-bottom: var(--theme-page-heading-margin-block);
	min-height: var(--theme-home-heading-min-height, calc(var(--theme-home-heading-size) * var(--theme-page-heading-line-height)));
}

/* Opaque navbar base: theme gradients/images may layer above this color. */
.top,
.top.boardlist,
div.boardlist.top {
	background-color: var(--theme-top-bg);
}

/* OP fileinfo → body spacing matches reply rhythm. */
.opMain > .body {
	margin-top: 0.8em;
}
