/* Padding and borders count inside a declared width.

   Core blocks set this on themselves, so a theme block that does not gets
   sized as content-box: a panel with 12px padding and a 1px border rendered
   26px wider than a sibling constrained to the same max-width, which is why
   the sliding panel overhung the content below it. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Only what theme.json cannot express. Everything else is a preset. */

.bhb-issue-line,
.bhb-today,
.bhb-build-count { display: inline-block; }

/* Featured images keep their proportions: WordPress prints width and height
   attributes, so a width rule alone stretches them. */
.wp-block-post-featured-image img { height: auto; }

/* Skip link, which block themes do not style for you. */
.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	padding: 12px 20px;
	background: var(--wp--preset--color--parchment);
	color: var(--wp--preset--color--ink-text);
	outline: 2px solid var(--wp--preset--color--brass);
}

/* Keep the footer on the floor.

   A short page - a 404, an empty archive - otherwise ends wherever the content
   does, leaving the footer stranded halfway up the window.

   Scoped to .wp-site-blocks deliberately: that wrapper exists only on the front
   end. The editor canvas has its own wrapper and must never be given a viewport
   height, or the canvas grows a scrollbar of its own. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
}

/* The auto margin does the pushing, so nothing else needs a height. */
.wp-site-blocks > footer {
	margin-top: auto;
}
