/* WordPress / Gutenberg wrappers.
   Never zero padding or margin on all .wp-block-group — that removed
   hero insets, folder-card padding, and .wrap centering site-wide. */

.wp-site-blocks,
.wp-block-post-content {
	margin: 0;
	padding: 0;
	overflow: visible;
}

.wp-block-post-content > .wp-block-group.alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

.wp-block-group.alignfull:not(.wrap) {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-block-group.is-layout-constrained > * {
	max-width: none;
}

/* ---------- Page gutters / centering (same as the static site) ---------- */
.wp-block-group.wrap,
.wrap.wp-block-group {
	width: min(var(--wrap), calc(100% - 2 * var(--space-gut))) !important;
	max-width: var(--wrap) !important;
	margin-inline: auto !important;
}

.wp-block-group.band {
	padding-block: var(--space-band) !important;
}
.wp-block-group.band--head {
	padding-block: clamp(2.6rem, 6vw, 4rem) !important;
}
.wp-block-group.band.band--green:has(.valley) {
	padding-block: 0 !important;
}

.wp-block-group.page-hero {
	padding: clamp(3rem, 7vw, 5rem) 0 clamp(3.4rem, 7vw, 5.4rem) !important;
}

.wp-block-group.hero__panel {
	padding: clamp(2.6rem, 5vw, 4.6rem) clamp(1.6rem, 4vw, 3.6rem) clamp(4.5rem, 7vw, 6.5rem) !important;
	padding-top: clamp(3.6rem, 7vw, 6rem) !important;
}

.hero h1.wp-block-heading {
	margin-bottom: 1.2rem;
}
.hero .hero__lede {
	margin-bottom: 2.2rem;
}

.wp-block-group.folders__intro-body {
	position: relative;
	z-index: 1;
	padding-block: clamp(5rem, 12vh, 8rem) !important;
	width: min(var(--wrap), calc(100% - 2 * var(--space-gut))) !important;
	max-width: var(--wrap) !important;
	margin-inline: auto !important;
}

.wp-block-group.folders__stack {
	padding-top: 12vh !important;
}

.wp-block-group.folder {
	padding-top: var(--header-h, 56px) !important;
}
.wp-block-group.folder__inner {
	padding-top: var(--tab-h, 2.6rem) !important;
}
.wp-block-group.folder__body {
	padding: clamp(1.4rem, 3.4vw, 3rem) !important;
	display: grid !important;
	grid-template-columns: 5fr 6fr;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

.wp-block-group.valley__body {
	padding-block: var(--space-band) !important;
	padding-left: clamp(2rem, 5vw, 4.5rem) !important;
	padding-right: max(var(--space-gut), calc((100% - var(--wrap)) / 2)) !important;
}

.wp-block-group.quote-card {
	padding: 1.8rem 1.8rem 1.4rem !important;
}

/* Keep our grids as grids — WP layout classes try to turn groups into flow/flex */
.wp-block-group.split,
.wp-block-group.mosaic,
.wp-block-group.strips,
.wp-block-group.craft-grid,
.wp-block-group.contact-grid,
.wp-block-group.valley,
.wp-block-group.story,
.wp-block-group.card-grid {
	display: grid !important;
}
.wp-block-group.craft-grid__col {
	display: flex !important;
	flex-direction: column;
	gap: clamp(.8rem, 1.6vw, 1.25rem);
}

/* Mosaic: figure-as-grid-item must stretch, or the tall photo leaves a cream gap */
.mosaic > .wp-block-image {
	margin: 0;
	overflow: hidden;
	box-shadow: var(--shadow-img);
}
.mosaic > .wp-block-image.mosaic__item--tall {
	grid-row: 1 / span 2;
	align-self: stretch;
	height: 100%;
}
.mosaic > .wp-block-image img,
.mosaic > .wp-block-image a,
.mosaic > .wp-block-image a img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wp-block-image,
.wp-block-image img {
	margin: 0;
}

.wp-block-image figcaption {
	display: none;
}

.wp-block-heading {
	font-family: var(--font-display);
}

.wp-block-quote {
	border: 0;
	padding: 0;
	margin: 0;
}

.quote-card .wp-block-quote {
	margin: 0 0 .9rem;
}
.quote-card .wp-block-quote p {
	margin: 0 0 .9rem;
	font-family: var(--font-display);
	font-size: 1.08rem;
	font-style: italic;
	color: var(--ink);
}
.quote-card cite {
	font-style: normal;
	font-size: .82rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--body-soft);
}

.wp-block-list {
	margin: 0 0 1.1em;
}

.hero__actions a.btn + a.btn {
	margin-left: .9rem;
}
.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
}

.form-card .hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.site-nav .current-menu-item > a::after,
.site-nav .current_page_item > a::after,
.site-nav a[aria-current="page"]::after {
	right: 0;
}

/* Sticky nav: WordPress wraps the header in a template-part div the same
   height as the bar, so position:sticky on .site-header never engages.
   Stick the wrapper instead. */
.wp-site-blocks > .wp-block-template-part:has(.site-header) {
	position: sticky;
	top: 0;
	z-index: 200;
	background: var(--cream);
}
.site-header {
	position: relative;
	top: auto;
}

.admin-bar .wp-site-blocks > .wp-block-template-part:has(.site-header) {
	top: 32px;
}
.admin-bar .site-header {
	top: auto;
}
@media screen and (max-width: 782px) {
	.admin-bar .wp-site-blocks > .wp-block-template-part:has(.site-header) {
		top: 46px;
	}
}

.folders__intro > .wp-block-image {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
}
.folders__intro > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 40%;
}

.folder__media.wp-block-image,
.folder__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
}
.folder__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.story__frame > .wp-block-image.story__img {
	position: absolute;
	inset: 0;
	margin: 0;
	width: 100%;
	height: 100%;
}
.story__frame > .wp-block-image.story__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity .8s ease, transform 1.6s var(--ease-out, ease);
}
.story__frame > .wp-block-image.story__img.is-active img {
	opacity: 1;
	transform: none;
}

.valley__media .wp-block-image,
.valley__media .wp-block-image img,
.hero__media .wp-block-image,
.hero__kb .wp-block-image,
.hero__kb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero__kb .wp-block-image,
.hero__media .wp-block-image {
	position: absolute;
	inset: 0;
	margin: 0;
	height: 100%;
}

.craft-grid .wp-block-image {
	margin: 0;
	overflow: hidden;
	box-shadow: var(--shadow-img);
}

.strips > .wp-block-image {
	margin: 0;
	overflow: hidden;
	box-shadow: var(--shadow-img);
}
.strips > .wp-block-image img {
	width: 100%;
	aspect-ratio: 3 / 4.6;
	object-fit: cover;
}
.strips > .wp-block-image:nth-child(2),
.strips > .wp-block-image:nth-child(4) {
	margin-top: 2.2rem;
}

.contact-sketch .wp-block-image {
	margin: 0;
}

.maker-photo.wp-block-image,
.wp-block-image.maker-photo {
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	box-shadow: var(--shadow-img);
}
.maker-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 18%;
}

.footer-nav.site-nav,
.site-footer .site-nav {
	display: block;
	margin-left: 0;
}

@media (max-width: 1020px) {
	.wp-block-group.contact-grid {
		grid-template-columns: 1fr 1fr !important;
	}
}

@media (max-width: 820px) {
	.wp-block-group.split,
	.wp-block-group.split--rev {
		grid-template-columns: 1fr !important;
	}
	.wp-block-group.contact-grid {
		grid-template-columns: 1fr !important;
	}
	.wp-block-group.hero__panel {
		width: 100%;
		min-height: 0;
		padding-block: 3.4rem calc(2.6rem + var(--stair, 58px)) !important;
		padding-inline: clamp(1.6rem, 4vw, 3.6rem) !important;
	}
	.wp-block-group.folder {
		padding-top: calc(var(--header-h, 56px) + .75rem) !important;
	}
	.wp-block-group.folder__body {
		grid-template-columns: 1fr !important;
		gap: 1.1rem;
		padding: 1.1rem !important;
	}
	.wp-block-group.folders__stack {
		padding-top: 6vh !important;
	}
	.wp-block-group.valley__body {
		padding: 2.6rem var(--space-gut) !important;
		grid-template-columns: 1fr !important;
	}
	.wp-block-group.page-hero {
		padding-bottom: calc(2.6rem + clamp(56px, 15vw, 88px)) !important;
	}
	.strips > .wp-block-image:nth-child(2),
	.strips > .wp-block-image:nth-child(4) {
		margin-top: clamp(1.4rem, 7vw, 2.6rem);
	}
	.mosaic > .wp-block-image.mosaic__item--tall {
		grid-column: 1;
		grid-row: 1 / span 2;
	}
}

@media (max-width: 560px) {
	.wp-block-group.form-card .row,
	.form-card .row {
		grid-template-columns: 1fr;
	}
}
