/*
Theme Name: Poop Ninjas
Template: twentytwentyfive
Author: Poop Ninjas
Description: Child theme of Twenty Twenty-Five carrying the Poop Ninjas design tokens (palette, type scale, spacing scale, radius, shadow, layout).
Version: 1.0.4
*/

/* Font-size presets that theme.json cannot attach line-height/weight/letter-spacing/text-transform to directly. */
.has-display-font-size {
	line-height: 1.05;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.has-eyebrow-font-size {
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.has-small-font-size {
	line-height: 1.5;
	font-weight: 400;
}

/* Gutter: 24px mobile (set as the root padding in theme.json), 40px from tablet width up. */
@media (min-width: 768px) {
	body {
		--wp--style--root--padding-left: var(--wp--custom--gutter--desktop);
		--wp--style--root--padding-right: var(--wp--custom--gutter--desktop);
	}
}

/* Pattern support: layout properties that cannot live in block attributes without
   failing Gutenberg block validation when the page is opened in the editor. */
.pn-overlap {
	position: relative;
	z-index: 1;
}

.pn-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}

.pn-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	width: fit-content;
}

.pn-mark svg {
	display: block;
}

/* Header, main and footer are top-level siblings, so WordPress inserts its global
   block-gap between them and the body background shows through as a seam. Every
   section here carries its own vertical padding, so that gap is never wanted. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Footer logo. The supplied brand file is pure black on transparent and the
   footer is charcoal, so it needs inverting to render as white artwork —
   the mark is a single-colour silhouette, so invert is lossless here. */
.pn-footer-logo {
	margin: 0 0 var(--wp--preset--spacing--40);
}

.pn-footer-logo img {
	display: block;
	width: 220px;
	max-width: 100%;
	height: auto;
	filter: invert(1);
}

/* The approved design set text-wrap on its headings and body copy; porting to
   blocks dropped it because theme.json has no property for it. Without this the
   homepage H1 breaks as "Yard is Just a / Ninja Away", stranding the article.
   Shrinking the type does NOT fix that break — only balancing does. */
/* WordPress global styles emit `h1..h6, p { text-wrap: pretty }` inline, which
   ties this on specificity and wins on source order, so :root is needed to
   outrank it. The `p` half is already pretty by default -- no rule needed. */
:root h1,
:root h2,
:root h3 {
	text-wrap: balance;
}
