/* ==========================================================================
   MODERN PLASTER: front-end and editor styles
   --------------------------------------------------------------------------
   Colours, fonts and sizes come from theme.json (Appearance > Editor > Styles),
   so changing them there re-skins everything below.

   Light sections: give any group or columns block an Ivory, Limestone, Sand or
   White background (or the class "is-light-scheme") and the text, labels,
   buttons and rules inside switch to the navy / maple light-section style.
   ========================================================================== */

/* 1. TOKENS ================================================================ */
:root,
:is(.has-ink-background-color, .has-ink-2-background-color, .has-ink-3-background-color, .has-ink-deep-background-color, .is-dark-scheme, .wp-block-cover:not(.is-light)) {
	--mp-text: var(--wp--preset--color--bone);
	--mp-dim: var(--wp--preset--color--stone);
	--mp-heading: var(--wp--preset--color--parchment);
	--mp-eyebrow: var(--wp--preset--color--bone);
	--mp-accent: var(--wp--preset--color--bronze);
	--mp-label: var(--wp--preset--color--bronze-soft);
	--mp-line: rgba(214, 190, 150, 0.18);
	--mp-btn: var(--wp--preset--color--bronze-soft);
	--mp-btn-hover-bg: var(--wp--preset--color--bronze);
	--mp-btn-hover-text: var(--wp--preset--color--ink);
	--mp-plain-hover: var(--wp--preset--color--ivory);
	--mp-link-hover: var(--wp--preset--color--bronze-soft);
	--mp-field-bg: rgba(39, 33, 27, 0.6);
	--mp-field-bg-focus: rgba(39, 33, 27, 0.9);
	--mp-leaf: url("../brand/leaf-white.png");
}
:root {
	--mp-ink: var(--wp--preset--color--ink);
	--mp-ink-2: var(--wp--preset--color--ink-2);
	--mp-ink-3: var(--wp--preset--color--ink-3);
	--mp-ivory: var(--wp--preset--color--ivory);
	--mp-sand: var(--wp--preset--color--sand);
	--mp-bronze: var(--wp--preset--color--bronze);
	--mp-bronze-soft: var(--wp--preset--color--bronze-soft);
	--mp-navy: var(--wp--preset--color--navy);
	--mp-maple: var(--wp--preset--color--maple);
	--mp-display: var(--wp--preset--font-family--playfair-display);
	--mp-sans: var(--wp--preset--font-family--jost);
	--mp-gutter: var(--wp--custom--gutter);
	--mp-section-y: var(--wp--custom--section-y);
	--mp-header-h: var(--wp--custom--header-height, 84px);
	--mp-wide: var(--wp--style--global--wide-size, 1224px);
	--mp-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--mp-dur: 0.6s;
	--mp-tracking: 0.32em;
	--mp-radius: 2px;
}
:is(.has-ivory-background-color, .has-limestone-background-color, .has-sand-background-color, .has-white-background-color, .is-light-scheme) {
	--mp-text: var(--wp--preset--color--charcoal);
	--mp-dim: var(--wp--preset--color--umber);
	--mp-heading: var(--wp--preset--color--navy);
	--mp-eyebrow: var(--wp--preset--color--navy);
	--mp-accent: var(--wp--preset--color--maple);
	--mp-label: var(--wp--preset--color--maple);
	--mp-line: rgba(44, 62, 87, 0.16);
	--mp-btn: var(--wp--preset--color--navy);
	--mp-btn-hover-bg: var(--wp--preset--color--navy);
	--mp-btn-hover-text: var(--wp--preset--color--ivory);
	--mp-plain-hover: var(--wp--preset--color--maple);
	--mp-link-hover: var(--wp--preset--color--maple);
	--mp-field-bg: rgba(255, 255, 255, 0.55);
	--mp-field-bg-focus: #fff;
	--mp-leaf: url("../brand/leaf-color.png");
	color: var(--mp-text);
}
:is(.has-ink-background-color, .has-ink-2-background-color, .has-ink-3-background-color, .has-ink-deep-background-color, .is-dark-scheme, .wp-block-cover:not(.is-light)) {
	color: var(--mp-text);
}

/* 2. BASE ================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--mp-header-h) + var(--wp-admin--admin-bar--height, 0px));
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
::selection { background: var(--mp-bronze); color: var(--mp-ink); }
:focus-visible { outline: 2px solid var(--mp-bronze); outline-offset: 3px; }
a { text-decoration-color: var(--mp-accent); text-underline-offset: 0.25em; }
:where(.wp-site-blocks) :where(p),
:where(.wp-site-blocks) :where(.wp-block-list) > li { color: var(--mp-dim); }
h1 em, h2 em, h3 em, h4 em { font-style: italic; }
/* WordPress makes text inside photo sections inherit one colour; restore the soft body text and labels */
:root .wp-block-cover :is(p, li):not(.has-text-color) { color: var(--mp-dim); }
:root .wp-block-cover p.is-style-eyebrow:not(.has-text-color) { color: var(--mp-eyebrow); }
:root .wp-block-cover p.is-style-numeral:not(.has-text-color) { color: var(--mp-accent); }
:root .wp-block-cover :is(h1, h2, h3, h4, h5, h6):not(.has-text-color) { color: var(--mp-heading); }
:root .wp-block-cover.hero p.is-style-lede:not(.has-text-color) { color: #ddd4c6; }
:root .wp-block-cover.page-hero p.is-style-lede:not(.has-text-color) { color: #d6ccbd; }

/* Header, main and footer sit flush; designed sections butt up against each other */
:root :where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-block-post-content > .alignfull,
.mp-entry > .alignfull { margin-block: 0 !important; }
.wp-block-post-content > .alignfull { overflow-x: clip; }

/* Plain pages (no designed sections): give the text some air */
.mp-entry > :first-child:not(.alignfull) { margin-block-start: var(--wp--preset--spacing--70) !important; }
.mp-entry > :last-child:not(.alignfull) { margin-block-end: var(--wp--preset--spacing--80) !important; }
.mp-entry > .alignfull + :not(.alignfull),
.mp-entry > :not(.alignfull) + .alignfull { margin-block-start: var(--wp--preset--spacing--70) !important; }

/* Text rhythm inside sections, matching the original spacing */
:root :where(h1, h2, h3, h4).wp-block-heading { margin-block-end: 0.5em; }
:root .wp-block-heading + * { margin-block-start: 0; }
:root .is-style-eyebrow { margin-block-end: 1.4rem; }
:root .is-style-eyebrow + * { margin-block-start: 0; }
:root .is-style-tags + .wp-block-buttons { margin-block-start: 2rem; }
/* A closing paragraph keeps its bottom margin, as on the original site */
:root :is(.wp-block-column, .reveal) > p:last-child:not([class*="__"]):not(.is-style-numeral) { margin-block-end: 1.2em; }
:root .is-style-pillars > .wp-block-column > p:last-child { margin-block-end: 0; }

/* Columns stack at tablet width, like the original site */
@media (max-width: 900px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: wrap !important; }
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}

/* 3. TYPOGRAPHY HELPERS (Styles panel: Eyebrow, Lead, Statement, Numeral, Display) */
.is-style-eyebrow {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	font-family: var(--mp-sans);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--label);
	line-height: 1.5;
	letter-spacing: var(--mp-tracking);
	text-transform: uppercase;
	color: var(--mp-eyebrow);
}
.is-style-eyebrow::after {
	content: "";
	width: 4.5rem;
	height: 1px;
	background: var(--mp-accent);
	opacity: 0.85;
	flex: none;
}
.is-style-eyebrow.has-text-align-center { justify-content: center; }
@media (min-width: 761px) {
	.is-style-eyebrow { white-space: nowrap; }
}
.is-style-display { text-transform: uppercase; letter-spacing: -0.01em; line-height: 0.98; }
.is-style-lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.6; color: var(--mp-dim); }
p.is-style-lede { max-width: 44ch; }
p.is-style-lede.has-text-align-center { margin-inline: auto; }
p.is-style-statement {
	font-family: var(--mp-display);
	font-size: var(--wp--preset--font-size--title);
	font-weight: 400;
	line-height: 1.25;
	max-width: 30ch;
	color: var(--mp-heading);
}
.is-style-numeral {
	font-family: var(--mp-display);
	font-style: italic;
	color: var(--mp-accent);
	font-size: 1.4rem;
	line-height: 1.3;
}
:root .is-style-numeral + * { margin-block-start: 0.4rem; }
.has-small-font-size { line-height: 1.6; }

/* Placeholder copy awaiting the client's confirmation: flagged for logged-in editors only */
.ph { border-bottom: 1px dashed var(--mp-accent); cursor: help; }
body:not(.logged-in) .ph { border-bottom: 0; cursor: inherit; }

/* 4. HEADER & NAVIGATION =================================================== */
.site-header-part {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	z-index: 100;
	height: var(--mp-header-h);
	border-bottom: 1px solid transparent;
	transition: background var(--mp-dur) var(--mp-ease), height var(--mp-dur) var(--mp-ease), border-color var(--mp-dur);
}
.site-header-part.is-scrolled {
	background: rgba(19, 16, 13, 0.94);
	background: color-mix(in srgb, var(--mp-ink) 94%, transparent);
	border-bottom-color: var(--mp-line);
	height: 70px;
}
/* Blur lives on a pseudo-element: on the header itself it would trap the fixed mobile menu inside the bar */
.site-header-part.is-scrolled::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.site-header-part > .site-header { height: 100%; }
:root .site-header { padding-block: 0; }
.site-header__inner { height: 100%; gap: 2rem; }
.site-header__logo { position: relative; z-index: 100001; margin: 0; flex: none; }
.site-header__logo img { width: 128px !important; height: auto; }
.site-header__logo a { display: block; }

.site-nav { color: var(--wp--preset--color--bone); }
.site-nav .wp-block-navigation__container { gap: clamp(1.1rem, 2vw, 2.2rem); align-items: center; }
.site-nav .wp-block-navigation-item__content { transition: color 0.3s var(--mp-ease); }

/* Top-level links: a bronze rule draws in on hover and on the current page */
.site-nav .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-cta) > .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.5rem;
}
.site-nav .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-cta) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 0.2rem;
	height: 1px;
	background: var(--mp-bronze);
	transition: right 0.4s var(--mp-ease);
}
.site-nav .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-cta) > .wp-block-navigation-item__content:hover::after,
.site-nav .wp-block-navigation__container > .wp-block-navigation-item:is(.current-menu-item, .current-menu-ancestor):not(.nav-cta) > .wp-block-navigation-item__content::after { right: 0; }
.site-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }

/* Finishes drop-down */
.site-nav .wp-block-navigation__submenu-icon { color: var(--mp-bronze); width: 0.6em; height: 0.6em; margin-left: 0.4em; }
.site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation__submenu-container {
	background: rgba(27, 23, 19, 0.98) !important;
	color: var(--wp--preset--color--bone) !important;
	border: 1px solid var(--mp-line) !important;
	min-width: 240px !important;
	padding: 0.9rem 0;
	left: -1.25rem;
	transform: translateY(6px);
	transition: opacity 0.3s var(--mp-ease), transform 0.3s var(--mp-ease), visibility 0.3s;
}
.site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container { transform: none; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--mp-display);
	font-size: 1.15rem;
	text-transform: none;
	letter-spacing: 0;
	padding: 0.55rem 1.25rem !important;
}
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--mp-bronze-soft); }

/* "Discuss Your Project" button in the menu */
.site-nav .nav-cta > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.75rem 1.15rem;
	border: 1px solid currentColor;
	border-radius: var(--mp-radius);
	color: var(--mp-bronze-soft);
	letter-spacing: 0.26em;
	transition: background 0.35s var(--mp-ease), color 0.35s var(--mp-ease), border-color 0.35s;
}
.site-nav .nav-cta > .wp-block-navigation-item__content::after { content: "→"; font-size: 1rem; letter-spacing: 0; transition: transform 0.35s var(--mp-ease); }
.site-nav .nav-cta > .wp-block-navigation-item__content:hover { background: var(--mp-bronze); color: var(--mp-ink); border-color: var(--mp-bronze); }
.site-nav .nav-cta > .wp-block-navigation-item__content:hover::after { transform: translateX(4px); }
.site-nav .wp-block-navigation__container > .nav-cta { margin-left: clamp(0.2rem, 0.5vw, 0.5rem); }

/* Menu button (three fine lines) */
.site-nav .wp-block-navigation__responsive-container-open { padding: 0.6rem; margin-right: -0.6rem; color: var(--wp--preset--color--bone); }
.site-nav .wp-block-navigation__responsive-container-open svg { display: none; }
.site-nav .wp-block-navigation__responsive-container-open::before {
	content: "";
	display: block;
	width: 26px;
	height: 13px;
	background:
		linear-gradient(currentColor, currentColor) top / 100% 1px no-repeat,
		linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
		linear-gradient(currentColor, currentColor) bottom / 100% 1px no-repeat;
}
/* Tablets use the full-screen menu too (WordPress switches at 600px; the design switches at 1080px) */
@media (min-width: 600px) and (max-width: 1080px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Full-screen menu */
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(var(--mp-header-h) + 1rem) var(--mp-gutter) 2rem !important;
}
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; align-items: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation__container { gap: 0.4rem !important; align-items: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--mp-display);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
}
.site-nav .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 0.5rem 1rem !important; gap: 0 !important; }
.site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1.3rem;
	padding: 0.25rem 0 !important;
	color: var(--wp--preset--color--stone);
}
.site-nav .is-menu-open .nav-cta { margin-top: 1.6rem; }
.site-nav .is-menu-open .nav-cta > .wp-block-navigation-item__content {
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	text-transform: uppercase;
	letter-spacing: 0.26em;
	line-height: 1.4;
}
.site-nav .wp-block-navigation__responsive-container-close {
	position: fixed !important;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + (var(--mp-header-h) - 24px) / 2) !important;
	right: var(--mp-gutter) !important;
	color: var(--wp--preset--color--bone);
}

/* 5. BUTTONS =============================================================== */
.wp-block-button__link,
.form__submit {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	transition: background 0.35s var(--mp-ease), color 0.35s var(--mp-ease), border-color 0.35s;
}
.wp-block-button__link::after,
.form__submit::after {
	content: "→";
	font-size: 1rem;
	letter-spacing: 0;
	transition: transform 0.35s var(--mp-ease);
}
.wp-block-button__link:hover::after,
.form__submit:hover::after { transform: translateX(4px); }
:root .wp-block-buttons { gap: 1rem 1.6rem; }

/* Outline (the site's standard button) */
:root .wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid currentColor;
	padding: 1rem 1.6rem;
}
:root .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) { color: var(--mp-btn); }
:root .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover {
	background: var(--mp-btn-hover-bg);
	color: var(--mp-btn-hover-text);
	border-color: var(--mp-btn-hover-bg);
}

/* Text link with an underline */
:root .wp-block-button.is-style-plain > .wp-block-button__link {
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	padding: 0.7rem 0 0.8rem;
}
:root .wp-block-button.is-style-plain > .wp-block-button__link:not(.has-text-color) { color: var(--mp-btn); }
:root .wp-block-button.is-style-plain > .wp-block-button__link:hover { background: transparent; color: var(--mp-plain-hover); }

/* 6. BANNERS =============================================================== */

/* --- Home banner -------------------------------------------------------- */
.wp-block-cover.hero {
	padding: 0 var(--mp-gutter) !important;
	align-items: center;
	isolation: isolate;
}
.wp-block-cover.hero .wp-block-cover__image-background {
	transform-origin: 40% 55%;
	animation: mp-hero-zoom 12s ease-in-out infinite alternate;
	will-change: transform;
}
@keyframes mp-hero-zoom { from { transform: scale(1); } to { transform: scale(1.28); } }
.wp-block-cover.hero::before {
	content: "";
	position: absolute;
	z-index: 2;
	left: calc(var(--mp-gutter) * 0.6);
	top: 7rem;
	bottom: -30vh;
	width: min(46vw, 640px);
	border: 1px solid rgba(191, 156, 107, 0.35);
	border-bottom: 0;
	border-radius: 999px 999px 0 0;
	pointer-events: none;
}
.wp-block-cover.hero::after {
	content: "Scroll";
	position: absolute;
	z-index: 3;
	bottom: 2rem;
	right: var(--mp-gutter);
	display: block;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: var(--mp-tracking);
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
	writing-mode: vertical-rl;
	padding-bottom: calc(60px + 1rem);
	background: linear-gradient(var(--mp-bronze), var(--mp-bronze)) center bottom / 1px 60px no-repeat;
	pointer-events: none;
}
.wp-block-cover.hero .wp-block-cover__inner-container {
	z-index: 3;
	width: 100% !important;
	max-width: var(--mp-wide);
	margin-inline: auto !important;
	padding-block: calc(var(--mp-header-h) + 3rem) 6rem;
}
.wp-block-cover.hero .wp-block-cover__inner-container > * { max-width: 760px; }
.wp-block-cover.hero .wp-block-cover__inner-container > p.is-style-lede { max-width: 48ch; }
:root .hero h1.wp-block-heading { margin-block-end: 1.6rem; }
.hero h1 em {
	display: block;
	text-transform: none;
	font-size: 0.56em;
	margin-top: 0.3em;
	color: var(--mp-heading);
	letter-spacing: -0.01em;
}
.hero p.is-style-lede { color: #ddd4c6; max-width: 48ch; }
:root .hero .is-style-lede { margin-block-end: 2.6rem; }
:root .hero .is-style-lede + * { margin-block-start: 0; }

/* Mobile: an arched gallery composition. The photo sits in the brand's arch inside two fine
   bronze outlines, with centred editorial type overlapping its faded base. */
@media (max-width: 760px) {
	.wp-block-cover.hero {
		--arch-w: min(70vw, 370px);
		display: block;
		min-height: 0 !important;
		padding: calc(var(--mp-header-h) + 1.4rem) 0 calc(3.5rem + 2.6rem + 60px) !important;
		text-align: center;
	}
	.wp-block-cover.hero .wp-block-cover__background {
		opacity: 1 !important;
		background:
			radial-gradient(ellipse 80% 45% at 50% 32%, rgba(191, 156, 107, 0.16) 0%, rgba(19, 16, 13, 0) 70%),
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 .92  0 0 0 0 .8  0 0 0 .063 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
			var(--mp-ink) !important;
	}
	.wp-block-cover.hero .wp-block-cover__image-background {
		position: relative !important;
		inset: auto !important;
		z-index: 2 !important;
		display: block;
		width: var(--arch-w) !important;
		height: auto !important;
		max-width: none;
		aspect-ratio: 3 / 3.75;
		margin: 0 auto !important;
		border-radius: 999px 999px 0 0;
		object-position: 46% 55% !important;
		-webkit-mask-image: linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.5) 18%, #000 40%);
		mask-image: linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.5) 18%, #000 40%);
		transform: none;
		animation: mp-hero-fade 1.4s var(--mp-ease) both;
	}
	/* Outer (faint) arch */
	.wp-block-cover.hero::before {
		z-index: 2;
		left: 50%;
		transform: translateX(-50%);
		top: calc(var(--mp-header-h) + 1.4rem - 23px);
		bottom: auto;
		width: calc(var(--arch-w) + 46px);
		aspect-ratio: 3 / 3.75;
		height: auto;
		border-color: rgba(191, 156, 107, 0.22);
		-webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
		animation: mp-hero-fade 1.4s var(--mp-ease) 0.25s both;
	}
	/* Inner (brighter) arch */
	.wp-block-cover.hero .wp-block-cover__background::after {
		content: "";
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		top: calc(var(--mp-header-h) + 1.4rem - 12px);
		width: calc(var(--arch-w) + 24px);
		aspect-ratio: 3 / 3.7;
		border: 1px solid rgba(191, 156, 107, 0.6);
		border-bottom: 0;
		border-radius: 999px 999px 0 0;
		-webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
		animation: mp-hero-fade 1.4s var(--mp-ease) 0.25s both;
	}
	.wp-block-cover.hero::after {
		right: auto;
		left: 50%;
		transform: translateX(-50%);
		bottom: 3.5rem;
		writing-mode: horizontal-tb;
		font-size: 0.58rem;
		padding: 0 0 calc(44px + 0.7rem);
		background-size: 1px 44px;
		animation: mp-hero-rise-x 1s var(--mp-ease) 1.2s both;
	}
	.wp-block-cover.hero .wp-block-cover__inner-container {
		position: relative;
		z-index: 3;
		max-width: none;
		padding: 0 var(--mp-gutter) !important;
		margin-top: -2.2rem !important;
	}
	.wp-block-cover.hero .wp-block-cover__inner-container > * { max-width: none; margin-inline: auto; }
	.hero .is-style-eyebrow {
		justify-content: center;
		font-size: 0.58rem;
		letter-spacing: 0.22em;
		line-height: 1.9;
		max-width: 40ch;
		margin-inline: auto;
		color: var(--mp-bronze-soft);
		white-space: normal;
	}
	:root .hero .is-style-eyebrow { margin-block-end: 0.9rem; }
	:root .wp-block-cover.hero p.is-style-eyebrow:not(.has-text-color) { color: var(--mp-bronze-soft); }
	.hero .is-style-eyebrow::after { display: none; }
	.wp-block-cover.hero h1.is-style-display {
		font-size: clamp(1.7rem, 8vw, 2.4rem) !important;
		letter-spacing: 0.035em;
		line-height: 1.04;
	}
	:root .hero h1.wp-block-heading { margin-block-end: 1rem; }
	.hero h1 em { font-size: 0.74em; letter-spacing: 0; margin-top: 0.4em; }
	/* Brand leaf between hairlines, under the headline */
	.hero h1::after {
		content: "";
		display: block;
		width: 150px;
		height: 18px;
		margin: 1rem auto 0;
		background:
			url("../brand/leaf-white.png") center / 15px auto no-repeat,
			linear-gradient(var(--mp-bronze), var(--mp-bronze)) left center / 52px 1px no-repeat,
			linear-gradient(var(--mp-bronze), var(--mp-bronze)) right center / 52px 1px no-repeat;
		opacity: 0.75;
	}
	.hero p.is-style-lede { font-size: 0.98rem; line-height: 1.5; max-width: 40ch; }
	.wp-block-cover.hero .wp-block-cover__inner-container > p.is-style-lede { max-width: 40ch; }
	:root .wp-block-cover.hero p.is-style-lede:not(.has-text-color) { color: #cfc5b6; }
	:root .hero .is-style-lede { margin-block-end: 1.5rem; }
	.hero .wp-block-buttons { flex-direction: column; gap: 1.1rem; align-items: center; justify-content: center; }
	.hero .wp-block-button:not(.is-style-plain) .wp-block-button__link {
		padding: 0.9rem 1.5rem;
		font-size: 0.66rem;
		letter-spacing: 0.3em;
		justify-content: center;
		box-shadow: 0 12px 30px -14px rgba(191, 156, 107, 0.55);
	}
	/* Choreographed entrance: arch first, then the type rises in sequence */
	.wp-block-cover.hero .wp-block-cover__inner-container > * { animation: mp-hero-rise 1s var(--mp-ease) both; }
	.wp-block-cover.hero .wp-block-cover__inner-container > :nth-child(1) { animation-delay: 0.5s; }
	.wp-block-cover.hero .wp-block-cover__inner-container > :nth-child(2) { animation-delay: 0.65s; }
	.wp-block-cover.hero .wp-block-cover__inner-container > :nth-child(3) { animation-delay: 0.85s; }
	.wp-block-cover.hero .wp-block-cover__inner-container > :nth-child(4) { animation-delay: 1s; }
}
@keyframes mp-hero-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mp-hero-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes mp-hero-rise-x { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translateX(-50%); } }
/* Short phones: shrink the arch so the main button stays on the first screen */
@media (max-width: 760px) and (max-height: 780px) {
	.wp-block-cover.hero { --arch-w: min(60vw, 330px); padding-top: calc(var(--mp-header-h) + 1rem) !important; }
	.wp-block-cover.hero::before { top: calc(var(--mp-header-h) + 1rem - 23px); }
	.wp-block-cover.hero .wp-block-cover__background::after { top: calc(var(--mp-header-h) + 1rem - 12px); }
}
@media (max-width: 760px) and (max-height: 700px) {
	.wp-block-cover.hero { --arch-w: min(48vw, 280px); padding-top: calc(var(--mp-header-h) + 0.6rem) !important; }
	.wp-block-cover.hero::before { top: calc(var(--mp-header-h) + 0.6rem - 23px); }
	.wp-block-cover.hero .wp-block-cover__background::after { top: calc(var(--mp-header-h) + 0.6rem - 12px); }
	:root .hero .is-style-lede { margin-block-end: 1.2rem; }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
	.wp-block-cover.hero .wp-block-cover__image-background,
	.wp-block-cover.hero::before,
	.wp-block-cover.hero::after,
	.wp-block-cover.hero .wp-block-cover__background::after,
	.wp-block-cover.hero .wp-block-cover__inner-container > * { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-cover.hero .wp-block-cover__image-background { animation: none; }
}

/* --- Page banners (inner pages) ---------------------------------------- */
.wp-block-cover.page-hero {
	padding: calc(var(--mp-header-h) + 4rem) var(--mp-gutter) calc(clamp(3rem, 6vw, 5.5rem) + 1.5rem) !important;
	isolation: isolate;
}
.wp-block-cover.page-hero .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: var(--mp-wide);
	margin-inline: auto !important;
}
.page-hero h1.wp-block-heading { font-size: var(--wp--preset--font-size--headline); max-width: 16ch; }
.page-hero p.is-style-lede { color: #d6ccbd; }
/* Nudge a banner photo so a strong vertical edge doesn't line up with the text column */
.page-hero--shift .wp-block-cover__image-background { transform: scale(1.25); transform-origin: 85% 50%; }
@media (max-width: 760px) {
	.wp-block-cover.page-hero .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(19, 16, 13, 0.97) 0%, rgba(19, 16, 13, 0.82) 55%, rgba(19, 16, 13, 0.5) 100%) !important;
		opacity: 1 !important;
	}
}

/* Plain banners (contact, privacy, new pages, 404) */
.page-hero--plain {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 72svh;
	padding: calc(var(--mp-header-h) + 4rem) var(--mp-gutter) calc(clamp(3rem, 6vw, 5.5rem) + 1.5rem) !important;
	background: radial-gradient(ellipse at 80% 0%, #2a231c 0%, var(--mp-ink) 60%);
	color: var(--mp-text);
}
.page-hero--short { min-height: 52svh; }
.page-hero--plain > .page-hero__content {
	width: 100%;
	max-width: var(--mp-wide);
	margin-inline: auto !important;
}
:root .page-hero__content > * { margin-block: 0; }
:root .page-hero__content > .breadcrumb,
:root .wp-block-cover.page-hero .breadcrumb { margin-block-end: 1.6rem; }
:root .page-hero__content > .is-style-eyebrow { margin-block-end: 1.4rem; }
:root .page-hero__content > h1 { margin-block-end: 0.5em; }
:root .page-hero__content .wp-block-buttons { margin-block-start: 1.2em; }
.page-hero__content > h1 { font-size: var(--wp--preset--font-size--headline); max-width: 16ch; color: var(--mp-heading); }
.page-hero--plain .is-style-lede { color: #d6ccbd; }

/* Breadcrumbs */
.breadcrumb {
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
	line-height: 1.6;
}
.breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.breadcrumb li { color: inherit; }
.breadcrumb li + li::before { content: "/"; margin-right: 0.6rem; opacity: 0.5; }
.breadcrumb a { text-decoration: none; color: inherit; }
.breadcrumb a:hover { color: var(--mp-bronze-soft); }
:root .breadcrumb + * { margin-block-start: 0; }

/* Privacy policy notice bar */
.legal-banner {
	padding: calc(var(--mp-header-h) + 0.9rem) var(--mp-gutter) 0.9rem !important;
	text-align: center;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--small);
}
.legal-banner p { color: #fff; margin: 0; max-width: none !important; }
.legal-banner + .page-hero--plain { padding-top: 3rem !important; }
.legal h2.wp-block-heading { font-size: 1.9rem; }
:root .legal h2.wp-block-heading { margin-block-start: 2.4rem; }
.legal :is(p, li) { color: var(--mp-dim); }

/* Bands: the consultation band and the texture section */
.wp-block-cover.alignfull { padding-left: var(--mp-gutter); padding-right: var(--mp-gutter); }
.wp-block-cover.band { min-height: 0; }

/* 7. SECTION LAYOUTS ======================================================= */
.section { position: relative; }

/* Section heading: title on the left, short paragraph on the right */
:root .section-head + * { margin-block-start: clamp(2rem, 4vw, 3.5rem); }
:root .section-head .wp-block-heading { margin: 0; }
.section-head > p { max-width: 38ch; margin: 0; color: var(--mp-dim); }

/* Media frames */
.wp-block-image img[style*="aspect-ratio"],
.wp-block-image:is(.is-style-tag, .is-style-offset) img { width: 100%; }
.wp-block-image:is(.is-style-tag, .is-style-offset) { position: relative; }
.wp-block-image:is(.is-style-tag, .is-style-offset) img { background: var(--mp-ink-3); }
.wp-block-image:is(.is-style-tag, .is-style-offset) figcaption,
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip) figure.wp-block-image figcaption {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	top: auto;
	right: auto;
	z-index: 1;
	width: auto;
	max-width: calc(100% - 2rem);
	max-height: none;
	overflow: visible;
	margin: 0;
	padding: 0.35rem 0.7rem;
	font-family: var(--mp-sans);
	font-size: 0.65rem;
	line-height: 1.5;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-align: left;
	background: rgba(19, 16, 13, 0.72);
	color: var(--mp-sand);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.wp-block-image.is-style-offset { z-index: 0; }
.wp-block-image.is-style-offset::before {
	content: "";
	position: absolute;
	inset: 1.5rem -1.5rem -1.5rem 1.5rem;
	z-index: -1;
	border: 1px solid var(--mp-line);
	pointer-events: none;
}
@media (max-width: 760px) {
	.wp-block-image.is-style-offset::before { inset: 0.9rem -0.6rem -0.9rem 0.9rem; }
	.wp-block-image.is-style-offset { margin-right: 0.6rem; }
}
.frame--jose img { object-position: 58% 42%; }

/* Finish cards: the whole card is clickable through its "Explore" link */
.wp-block-columns.finishes { column-gap: clamp(1rem, 2vw, 2rem); row-gap: 3rem; }
@media (min-width: 901px) {
	.wp-block-columns.finishes > .card:nth-child(2) { margin-top: 4rem; }
}
.card { position: relative; }
:root .card > * { margin-block: 0; }
.card .wp-block-image { overflow: hidden; }
.card .wp-block-image img { transition: transform 1.4s var(--mp-ease); }
.card:hover .wp-block-image img { transform: scale(1.04); }
:root .card > .card__index { margin-block-start: 1.6rem; }
.card__index { font-family: var(--mp-display); font-style: italic; color: var(--mp-accent); font-size: 1.1rem; line-height: 1.5; }
:root .card > .card__title { margin-block: 0.2rem 0.7rem; }
.card__title.wp-block-heading { font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.6rem); transition: color 0.3s var(--mp-ease); }
.card:hover .card__title { color: var(--mp-bronze-soft); }
.card__text { font-size: 0.98rem; }
:root .card > .card__text { margin-block-end: 1.2rem; }
.card__price { font-family: var(--mp-display); font-style: italic; font-size: 1.15rem; color: var(--mp-heading); }
:root .card > .card__price { margin-block: -0.4rem 1rem; }
.card__link {
	font-family: var(--mp-sans);
	font-size: 0.7rem;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--mp-label);
}
.card__link a { color: inherit; text-decoration: none; }
.card__link a::after { content: " →"; letter-spacing: 0; }
.card__link a::before { content: ""; position: absolute; inset: 0; z-index: 2; }

/* Pillars: three ruled columns */
.wp-block-columns.is-style-pillars { gap: 0 !important; border-top: 1px solid var(--mp-line); }
.wp-block-columns.is-style-pillars > .wp-block-column { padding: 2.4rem 2rem 2.4rem 0; border-right: 1px solid var(--mp-line); }
.wp-block-columns.is-style-pillars > .wp-block-column + .wp-block-column { padding-left: 2rem; }
.wp-block-columns.is-style-pillars > .wp-block-column:last-child { border-right: 0; }
.is-style-pillars h3.wp-block-heading { font-size: 1.9rem; }
:root .is-style-pillars .is-style-numeral + * { margin-block-start: 0.8rem; }
:root .is-style-pillars h3.wp-block-heading { margin-block-end: 0.8rem; }
@media (max-width: 900px) {
	.wp-block-columns.is-style-pillars > .wp-block-column,
	.wp-block-columns.is-style-pillars > .wp-block-column + .wp-block-column {
		padding: 2rem 0;
		border-right: 0;
		border-bottom: 1px solid var(--mp-line);
	}
}

/* Three-up text grid */
.wp-block-columns.grid-3 { gap: clamp(1.25rem, 2.5vw, 2.5rem); }

/* Numbered steps */
.wp-block-group.is-style-steps {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 2rem !important;
	counter-reset: step;
}
.wp-block-group.is-style-steps.steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.wp-block-group.is-style-steps > * {
	counter-increment: step;
	border-top: 1px solid var(--mp-line);
	padding-top: 1.4rem;
	margin: 0 !important;
}
.wp-block-group.is-style-steps > *::before {
	content: "0" counter(step);
	display: block;
	font-family: var(--mp-display);
	font-style: italic;
	font-size: 1.3rem;
	line-height: 1.4;
	color: var(--mp-accent);
}
.is-style-steps h3.wp-block-heading { font-size: 1.6rem; }
:root .is-style-steps h3.wp-block-heading { margin-block: 0.5rem 0.6rem; }
.is-style-steps p { font-size: 0.97rem; }
:root .is-style-steps p { margin-block: 0; }
@media (max-width: 1000px) {
	.wp-block-group.is-style-steps { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) {
	.wp-block-group.is-style-steps,
	.wp-block-group.is-style-steps.steps--2 { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Colour swatches: change a chip's colour under Styles > Color > Background */
.wp-block-group.swatches {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
	gap: 1rem !important;
}
.wp-block-group.swatches.swatches--4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
:root .swatch > * { margin: 0; }
.swatch__chip {
	aspect-ratio: 1;
	min-height: 0;
	padding: 0 !important;
	border-radius: var(--mp-radius);
	position: relative;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.swatch__chip::after { /* mineral mottling, pure CSS */
	content: "";
	position: absolute;
	inset: -20%;
	background:
		radial-gradient(ellipse 40% 30% at 30% 35%, rgba(255, 255, 255, 0.18), transparent 70%),
		radial-gradient(ellipse 35% 45% at 72% 62%, rgba(0, 0, 0, 0.12), transparent 70%),
		radial-gradient(ellipse 25% 20% at 60% 20%, rgba(255, 255, 255, 0.1), transparent 70%),
		radial-gradient(ellipse 30% 25% at 20% 80%, rgba(0, 0, 0, 0.08), transparent 70%);
	filter: blur(6px);
	pointer-events: none;
}
.swatch--sheen .swatch__chip::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(125deg, transparent 30%, rgba(255, 255, 255, 0.22) 48%, transparent 62%);
	pointer-events: none;
}
:root .swatch > .swatch__name { margin-top: 0.6rem; }
.swatch__name { font-size: var(--wp--preset--font-size--small); line-height: 1.4; color: var(--mp-text); overflow-wrap: anywhere; }
.swatch__note {
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.6;
	color: var(--mp-text);
	opacity: 0.7;
}

/* Key facts (prices, sample size, brands) */
.wp-block-group.facts {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
	gap: 0 !important;
	border-top: 1px solid var(--mp-line);
}
.wp-block-group.facts.facts--stack { grid-template-columns: minmax(0, 1fr) !important; }
:root .facts > * { margin: 0; padding: 1.4rem 1.4rem 1.4rem 0; border-bottom: 1px solid var(--mp-line); }
:root .facts > * > * { margin: 0; }
:root .facts .facts__value { margin-top: 0.4rem; }
.facts__label {
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	line-height: 1.5;
	color: var(--mp-label);
}
.facts__value { font-family: var(--mp-display); font-size: 1.35rem; line-height: 1.3; color: var(--mp-text); }
.facts__lead .facts__value { font-size: clamp(2.6rem, 2rem + 2.4vw, 3.8rem); line-height: 1.05; color: var(--mp-heading); }
:root .facts__note { margin-block-start: 1rem; }
:root .brands { margin-block-start: 2rem; }

/* Applications list as pill tags */
ul.is-style-tags { display: flex; flex-wrap: wrap; gap: 0.6rem; list-style: none; padding: 0; margin-left: 0; }
:root .is-style-tags li {
	margin: 0;
	border: 1px solid var(--mp-line);
	border-radius: 999px;
	padding: 0.5rem 1rem;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--mp-dim);
}
:is(.has-ivory-background-color, .has-limestone-background-color, .has-sand-background-color, .has-white-background-color, .is-light-scheme) .is-style-tags li { color: var(--mp-text); }

/* Plain link lists (footer) */
ul.is-style-plain { list-style: none; padding: 0; margin-left: 0; display: grid; gap: 0.55rem; }
:root ul.is-style-plain > li { margin: 0; overflow-wrap: anywhere; }
.is-style-plain a { text-decoration: none; }

/* Accordions (native details: no JavaScript needed) */
.accordion { border-top: 1px solid var(--mp-line); }
:root .accordion > * { margin-block: 0; }
.wp-block-details { border-bottom: 1px solid var(--mp-line); }
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 0;
	font-family: var(--mp-sans);
	font-size: 0.74rem;
	font-weight: 400;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--mp-text);
	transition: color 0.3s var(--mp-ease);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	flex: none;
	font-size: 1.4rem;
	font-weight: 200;
	line-height: 1;
	letter-spacing: 0;
	color: var(--mp-accent);
	transition: transform 0.3s var(--mp-ease);
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details summary:hover { color: var(--mp-link-hover); }
:is(.has-ivory-background-color, .has-limestone-background-color, .has-sand-background-color, .has-white-background-color, .is-light-scheme) .wp-block-details summary:hover { color: var(--mp-navy); }
.wp-block-details > :not(summary) { max-width: 62ch; color: var(--mp-dim); }
:root .wp-block-details > summary + * { margin-block-start: 0; }
:root .wp-block-details > :last-child:not(summary) { margin-block-end: 1.6rem; }
.accordion--faq .wp-block-details summary {
	font-family: var(--mp-display);
	font-size: 1.45rem;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
}

/* Galleries: mosaic, texture strip, project grid */
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip, .is-style-works) figure.wp-block-image:has(figcaption)::before { display: none; }
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip) figure.wp-block-image { overflow: hidden; }
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip, .is-style-works) figure.wp-block-image img { transition: transform 1.4s var(--mp-ease); background: var(--mp-ink-3); }
.wp-block-gallery.has-nested-images.is-style-mosaic figure.wp-block-image a:hover img { transform: scale(1.04); }

.wp-block-gallery.has-nested-images.is-style-mosaic {
	display: grid !important;
	grid-template-columns: 1.15fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: clamp(0.75rem, 1.4vw, 1.25rem) !important;
	height: clamp(520px, 62vw, 820px);
}
.wp-block-gallery.has-nested-images.is-style-mosaic:has(> figure:nth-child(4)) { height: auto; grid-auto-rows: clamp(240px, 30vw, 400px); grid-template-rows: none; }
.wp-block-gallery.has-nested-images.is-style-mosaic > figure.wp-block-image { width: auto !important; height: 100%; margin: 0 !important; }
.wp-block-gallery.has-nested-images.is-style-mosaic > figure.wp-block-image:first-child { grid-row: 1 / 3; }
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip) figure.wp-block-image a { display: block; height: 100%; overflow: hidden; }
.wp-block-gallery.has-nested-images:is(.is-style-mosaic, .is-style-strip) figure.wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}
@media (max-width: 760px) {
	.wp-block-gallery.has-nested-images.is-style-mosaic { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; height: auto; }
	.wp-block-gallery.has-nested-images.is-style-mosaic > figure.wp-block-image:first-child { grid-row: auto; }
	.wp-block-gallery.has-nested-images.is-style-mosaic > figure.wp-block-image { aspect-ratio: 4 / 3; height: auto; }
}

.wp-block-gallery.has-nested-images.is-style-strip {
	display: grid !important;
	grid-template-columns: 2fr 1fr 1fr;
	gap: clamp(0.75rem, 1.4vw, 1.25rem) !important;
}
.wp-block-gallery.has-nested-images.is-style-strip > figure.wp-block-image {
	width: auto !important;
	height: clamp(260px, 32vw, 460px);
	margin: 0 !important;
}
@media (max-width: 760px) {
	.wp-block-gallery.has-nested-images.is-style-strip { grid-template-columns: 1fr 1fr; }
	.wp-block-gallery.has-nested-images.is-style-strip > figure.wp-block-image:first-child { grid-column: 1 / -1; }
	.wp-block-gallery.has-nested-images.is-style-strip > figure.wp-block-image { height: 240px; }
}

.wp-block-gallery.has-nested-images.is-style-works {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.5vw, 1.4rem) !important;
	align-items: start;
}
.wp-block-gallery.has-nested-images.is-style-works > figure.wp-block-image {
	grid-column: span 6;
	width: auto !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	justify-content: flex-start !important;
	align-self: start !important;
}
.wp-block-gallery.has-nested-images.is-style-works > figure.wp-block-image:nth-child(-n+3) { grid-column: span 4; }
.wp-block-gallery.has-nested-images.is-style-works figure.wp-block-image img {
	flex: none !important;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.wp-block-gallery.has-nested-images.is-style-works > figure.wp-block-image:nth-child(-n+3) img { aspect-ratio: 3 / 4; }
.wp-block-gallery.has-nested-images.is-style-works figure.wp-block-image figcaption {
	position: static;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	width: auto;
	max-height: none;
	overflow: visible;
	margin: 0;
	padding: 0.8rem 0 0;
	background: none;
	text-align: left;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--mp-dim);
}
.wp-block-gallery.has-nested-images.is-style-works figure.wp-block-image figcaption strong {
	font-family: var(--mp-display);
	font-weight: 400;
	font-size: 1.25rem;
	line-height: 1.3;
	color: var(--mp-text);
}
@media (max-width: 900px) {
	.wp-block-gallery.has-nested-images.is-style-works { grid-template-columns: minmax(0, 1fr); }
	.wp-block-gallery.has-nested-images.is-style-works > figure.wp-block-image,
	.wp-block-gallery.has-nested-images.is-style-works > figure.wp-block-image:nth-child(-n+3) { grid-column: auto; }
}

/* Two photos side by side (microcement appearance) */
.wp-block-columns.image-pair { gap: 1rem !important; }

/* Maple leaf divider */
.wp-block-separator.is-style-leaf {
	width: 322px;
	max-width: 100%;
	height: 38px;
	margin-inline: auto !important;
	border: 0 !important;
	opacity: 1 !important;
	background:
		var(--mp-leaf) center / 34px auto no-repeat,
		linear-gradient(currentColor, currentColor) left center / 120px 1px no-repeat,
		linear-gradient(currentColor, currentColor) right center / 120px 1px no-repeat !important;
	color: rgba(236, 228, 215, 0.35);
	color: color-mix(in srgb, var(--mp-text) 35%, transparent);
}
:root .wp-block-separator.is-style-leaf { margin-block-end: 2.5rem; }
:root .wp-block-separator.is-style-leaf + * { margin-block-start: 0; }

/* 8. FORMS ================================================================= */
.mp-form-wrap { width: 100%; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.form__full,
.form .choice-group,
.form__note,
.form__status { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 0.45rem; margin: 0; min-width: 0; }
.field label,
.field legend {
	font-family: var(--mp-sans);
	font-size: 0.68rem;
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--mp-dim);
}
.field .req { color: var(--mp-bronze); }
.input,
.select,
.textarea {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--mp-text);
	background: var(--mp-field-bg);
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
	padding: 0.85rem 1rem;
	transition: border-color 0.3s, background 0.3s;
}
.input:focus,
.select:focus,
.textarea:focus { outline: none; border-color: var(--mp-bronze); background: var(--mp-field-bg-focus); }
.input::placeholder,
.textarea::placeholder { color: var(--mp-dim); opacity: 0.7; }
.select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--mp-bronze) 50%), linear-gradient(135deg, var(--mp-bronze) 50%, transparent 50%);
	background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%;
	background-size: 5px 5px;
	background-repeat: no-repeat;
	padding-right: 2.5rem;
}
.select option { background: var(--mp-ink-2); color: var(--wp--preset--color--bone); }
.textarea { min-height: 150px; resize: vertical; }
.choice-group { border: 0; padding: 0; margin: 0; }
.choices { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.45rem; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.choice span {
	display: inline-block;
	padding: 0.6rem 1.05rem;
	border: 1px solid var(--mp-line);
	border-radius: 999px;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--small);
	transition: all 0.25s;
}
.choice input:checked + span { background: var(--mp-bronze); color: var(--mp-ink); border-color: var(--mp-bronze); }
.choice input:focus-visible + span { outline: 2px solid var(--mp-bronze); outline-offset: 2px; }
.file-drop {
	border: 1px dashed var(--mp-line);
	padding: 1.2rem;
	border-radius: var(--mp-radius);
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--small);
	color: var(--mp-dim);
}
.file-drop input { margin-top: 0.5rem; color: var(--mp-dim); font-size: var(--wp--preset--font-size--small); max-width: 100%; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__note { font-family: var(--mp-sans); font-size: var(--wp--preset--font-size--label); color: var(--mp-dim); margin: 0; }
.form__status {
	margin: 0;
	padding: 1rem 1.2rem;
	border-left: 2px solid var(--mp-bronze);
	background: rgba(191, 156, 107, 0.08);
	font-size: var(--wp--preset--font-size--small);
	color: var(--mp-text);
}
.form__status[hidden] { display: none; }
.form__status--err { border-left-color: #c96b5c; }
.field--invalid :is(.input, .select, .textarea) { border-color: #c96b5c; }
.form__submit {
	cursor: pointer;
	background: var(--wp--preset--color--bronze);
	border: 1px solid var(--wp--preset--color--bronze);
}
.form__submit:hover { background: var(--wp--preset--color--bronze-soft); border-color: var(--wp--preset--color--bronze-soft); }
.form__submit.is-sending { opacity: 0.7; cursor: progress; }
@media (max-width: 640px) {
	.form { grid-template-columns: minmax(0, 1fr); }
}

/* Contact details list */
.wp-block-group.contact-list { display: grid !important; gap: 1.4rem !important; }
:root .contact-list > * { margin: 0; }
:root .contact-list > * > * { margin: 0; }
.contact-list__label {
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	line-height: 1.6;
	color: var(--mp-label);
}
.contact-list__value { font-family: var(--mp-display); font-size: 1.45rem; line-height: 1.3; color: var(--mp-text); }
.contact-list__value a { text-decoration-color: var(--mp-accent); }
.contact-list__value--email { font-size: clamp(1.1rem, 0.9rem + 0.9vw, 1.45rem); overflow-wrap: anywhere; }
.contact-list__value--small { font-size: 1.15rem; }

/* 9. FOOTER ================================================================ */
.site-footer {
	border-top: 1px solid var(--mp-line);
	font-size: var(--wp--preset--font-size--small);
	color: var(--mp-dim);
}
.wp-block-columns.footer__grid {
	display: grid !important;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: 2.5rem !important;
	padding-bottom: 3.5rem;
}
.wp-block-columns.footer__grid > .wp-block-column { flex-basis: auto !important; min-width: 0; }
.footer__brand .wp-block-image { margin: 0 0 1.4rem; }
.footer__brand .wp-block-image img { width: 190px; }
.footer__brand p { max-width: 32ch; }
:root .footer__title {
	font-family: var(--mp-sans);
	font-size: 0.68rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--mp-label);
	margin: 0 0 1.1rem;
}
:root .footer__title + * { margin-block-start: 0; }
.site-footer p,
.site-footer li { color: var(--mp-dim); }
.footer__bottom {
	border-top: 1px solid var(--mp-line);
	padding-block: 1.6rem;
	gap: 1rem 2rem !important;
	font-family: var(--mp-sans);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.06em;
}
:root .footer__bottom p { margin: 0; font-size: inherit; }
.footer__bottom a,
.site-footer a { text-decoration: none; }
@media (max-width: 900px) {
	.wp-block-columns.footer__grid { grid-template-columns: 1fr 1fr; }
	.wp-block-columns.footer__grid > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
	.wp-block-columns.footer__grid { grid-template-columns: minmax(0, 1fr); }
}

/* 10. POSTS, ARCHIVES AND SEARCH (if a journal is added later) ============= */
.post-grid { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.post-grid .wp-block-post-featured-image { margin: 0 0 1rem; overflow: hidden; }
.post-grid .wp-block-post-featured-image img { transition: transform 1.4s var(--mp-ease); }
.post-grid .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.post-grid .wp-block-post-title { font-size: 1.6rem; margin: 0.4rem 0 0.6rem; }
.post-grid .wp-block-post-title a { color: var(--mp-heading); }
.wp-block-post-excerpt__more-link { font-family: var(--mp-sans); font-size: var(--wp--preset--font-size--label); letter-spacing: 0.26em; text-transform: uppercase; color: var(--mp-label); text-decoration: none; }
.wp-block-query-pagination { font-family: var(--mp-sans); font-size: var(--wp--preset--font-size--small); }
.wp-block-search__input { background: var(--mp-field-bg); border: 1px solid var(--mp-line); color: var(--mp-text); border-radius: var(--mp-radius); padding: 0.85rem 1rem; font: inherit; }
.wp-block-search__button { margin-left: 0.6rem; }
.mp-entry blockquote,
.mp-entry .wp-block-quote { color: var(--mp-heading); }
.mp-entry :where(p, li) a { text-decoration-thickness: 1px; }

/* 11. MOTION =============================================================== */
/* Reveal on scroll. Content is only hidden once JavaScript has confirmed it can reveal it,
   and if the script is delayed (for example by a caching plugin) everything shows after 3s. */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--mp-ease), transform 1s var(--mp-ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }
.js:not(.mp-ready) .reveal { animation: mp-failsafe 0.01s linear 3s forwards; }
@keyframes mp-failsafe { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.js .reveal { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
