/*
Theme Name: Rensburg
Theme URI: https://rensburg.nl
Author: Rensburg Stichting / Studio
Author URI: https://rensburg.nl
Description: Museum-grade block theme (Full Site Editing) for the oeuvre of Dutch etching artist Eugène Rensburg (1872–1956). Print-room and picture-gallery aesthetics: warm paper, near-black ink, a single etskoper accent, self-hosted Cormorant Garamond and Inter, passe-partout hairlines, a numbered register and a dark kabinet for the top pieces. WooCommerce-ready (inquiry-based, price on request), Polylang-ready (NL, EN, FR, DE, ES, AR, zh-CN), fully RTL-safe.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 4.12.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rensburg
Tags: full-site-editing, block-patterns, block-styles, custom-colors, editor-style, wide-blocks, rtl-language-support, translation-ready, accessibility-ready, e-commerce
*/

/* ==========================================================================
   Fonts — self-hosted variable woff2, swap.
   cormorant-300.woff2 is a variable file (fvar wght 300–700); inter-400.woff2
   is variable (wght 100–900). One declaration per file unlocks the full
   range — Cormorant 500/600 for lot titles, Inter 450/550 for UI nuance —
   with zero extra transfer. The italic is a static Light cut; the 300–600
   range declaration stops browsers from faux-bolding it.
   ========================================================================== */

@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('assets/fonts/cormorant-300.woff2') format('woff2');
}
@font-face {
	font-family: 'Cormorant Garamond';
	font-style: italic;
	font-weight: 300 600;
	font-display: swap;
	src: url('assets/fonts/cormorant-400i.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('assets/fonts/inter-400.woff2') format('woff2');
}

/* ==========================================================================
   Base
   ========================================================================== */

::selection {
	background: rgba(166, 120, 78, 0.28);
	color: var(--wp--preset--color--ink);
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

body {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
}

table,
.is-style-register,
.rensburg-mono,
.woocommerce {
	font-variant-numeric: lining-nums tabular-nums;
}

/* ==========================================================================
   4.0 — Motion vocabulary. Two durations, two curves, one gesture per role:
   hairlines draw themselves (scaleX), images arrive as a quiet fade,
   text rises 8px. Nothing on an artwork ever moves except its own frame.
   --rb-sbw is the real scrollbar width, measured once by reveal.js, so
   full-bleed bands centre on the scrollport instead of the viewport.
   ========================================================================== */
:root {
	--rb-sbw: 0px;
	--rb-header-h: 6.5rem;
}

/* --------------------------------------------------------------------------
   4.0 — Sticky header: frosted paper, hairline appears on scroll.
   The utility rail folds away once the visitor is reading; the main bar
   stays. Height is measured into --rb-header-h by reveal.js for sticky
   rails elsewhere (lot page, configurator stage).
   -------------------------------------------------------------------------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 80;
	background: transparent;
	isolation: isolate;
	box-shadow: 0 1px 0 rgba(220, 217, 210, 0);
	transition: box-shadow var(--wp--custom--motion--fast) ease;
}
/* 4.6.6 — het matglas zit in een pseudo-element, niet op de header zelf:
   backdrop-filter maakt van de header een containing block, waardoor het
   fixed-positioned mobiele menu-overlay binnen de headerhoogte gevangen
   raakte en als strook van 168px opende in plaats van schermvullend. */
header.wp-block-template-part::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(247, 243, 236, 0.92);
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
}
body.rb-scrolled header.wp-block-template-part {
	box-shadow:
		0 1px 0 var(--wp--preset--color--line),
		0 18px 34px -30px rgba(26, 24, 21, 0.4);
}
/* 4.5.1 — de header houdt een VASTE hoogte. De eerdere invouw-animatie
   verschoof de hele pagina tijdens het scrollen ("delen scrollen ongelijk",
   terecht gemeld). Rust > 32px winst. */

/* --------------------------------------------------------------------------
   4.0 — The linked artwork answers the hand. Hover lives on the LINK, never
   on unlinked figures: a plate outline that inks in, a caption that warms,
   the sheet lifting half a step off the wall.
   -------------------------------------------------------------------------- */
.entry-content a > img {
	outline: 1px solid rgba(26, 24, 21, 0);
	outline-offset: -1px;
	transition: outline-color var(--wp--custom--motion--fast) ease;
}
.entry-content a:hover > img,
.entry-content a:focus-visible > img {
	outline-color: rgba(26, 24, 21, 0.55);
}
figure.is-style-plate-mark,
.rensburg-museum-wall figure {
	transition: translate var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out),
		box-shadow var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out);
}
figure.is-style-plate-mark:has(> a:hover),
figure.is-style-plate-mark:has(> a:focus-visible),
.rensburg-museum-wall figure:has(a:hover),
.rensburg-museum-wall figure:has(a:focus-visible) {
	translate: 0 -3px;
	box-shadow: 0 22px 40px -26px rgba(26, 24, 21, 0.45);
}
figure:has(> a:hover) figcaption,
figure:has(> a:focus-visible) figcaption {
	color: var(--wp--preset--color--copper-deep);
}
figcaption,
.wp-element-caption {
	transition: color var(--wp--custom--motion--fast) ease;
}

/* Chapter hairline draws itself when the section reveals */
.rensburg-chapter::after {
	transform-origin: 0 50%;
}
[dir="rtl"] .rensburg-chapter::after {
	transform-origin: 100% 50%;
}
.rensburg-js .rensburg-reveal .rensburg-chapter::after {
	transform: scaleX(0);
	transition: transform var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out) 140ms;
}
.rensburg-js .rensburg-reveal.is-visible .rensburg-chapter::after {
	transform: scaleX(1);
}

/* Arabic renders without mechanical letterspacing everywhere */
:lang(ar),
[dir="rtl"] :where(h1, h2, h3, p, a, span, figcaption, li, .rensburg-chapter) {
	letter-spacing: 0 !important;
}

/* --------------------------------------------------------------------------
   Display scale — gallery-house sobriety: tight tracking, tight leading
   (Gagosian/Zwirner display type sits at -0.01em and ~1.1)
   -------------------------------------------------------------------------- */
.wp-block-heading.has-x-large-font-size,
.wp-block-heading.has-xx-large-font-size {
	letter-spacing: -0.012em;
	line-height: 1.12;
}

/* --------------------------------------------------------------------------
   Chapter label — "No. 01 — Biografie"
   -------------------------------------------------------------------------- */
.rensburg-chapter {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--wp--preset--color--copper-deep);
	margin-block-end: var(--wp--preset--spacing--40);
}
.rensburg-chapter::after {
	content: "";
	display: block;
	width: 3.5rem;
	border-block-start: 1px solid var(--wp--preset--color--copper);
	margin-block-start: var(--wp--preset--spacing--30);
}

.rensburg-mono {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
}

/* Huge timeline numerals (biography chapters) */
.rensburg-year {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	font-size: clamp(4rem, 9vw, 9.5rem);
	line-height: 0.95;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--copper);
	margin: 0;
	font-variant-numeric: lining-nums;
}

/* --------------------------------------------------------------------------
   Passe-partout — hairline frame inset around an artwork presentation
   -------------------------------------------------------------------------- */
.rensburg-passepartout {
	position: relative;
	background: var(--wp--preset--color--sheet);
	padding: clamp(1.5rem, 4vw, 3.5rem);
}
.rensburg-passepartout::after {
	content: "";
	position: absolute;
	inset: clamp(12px, 1.8vw, 22px);
	border: 1px solid var(--wp--preset--color--line);
	pointer-events: none;
}
.rensburg-passepartout img {
	display: block;
	margin-inline: auto;
	width: 100%;
	height: auto;
}

/* Plate mark (kept for editor block style): mount + pressed plate edge */
.is-style-plate-mark {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	padding: clamp(1rem, 3vw, 2.25rem);
}
.is-style-plate-mark img {
	outline: 1px solid rgba(26, 24, 21, 0.4);
	outline-offset: -1px;
	transition: outline-color var(--wp--custom--motion--fast) ease;
}
/* Hover only where there is somewhere to go — on the link, never the figure */
.is-style-plate-mark a:hover img,
.is-style-plate-mark a:focus-visible img {
	outline-color: var(--wp--preset--color--ink);
}
.is-style-plate-mark figcaption {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: 1px solid var(--wp--preset--color--line);
}

/* Captions — plate inscriptions (13px floor: captions carry content) */
figcaption,
.wp-element-caption {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-variant-caps: small-caps;
	letter-spacing: 0.15em;
	color: var(--wp--preset--color--ink-muted);
}

/* --------------------------------------------------------------------------
   Catalogue register — Whistler-catalogue sobriety
   -------------------------------------------------------------------------- */
.is-style-register {
	list-style: none;
	padding-inline-start: 0;
}
.is-style-register li {
	display: grid;
	grid-template-columns: 7.5ch 1fr auto;
	column-gap: var(--wp--preset--spacing--50);
	align-items: baseline;
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
}
.is-style-register li:first-child {
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.is-style-register .rensburg-no,
.is-style-register strong:first-child {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 400;
	color: var(--wp--preset--color--ink-muted);
	font-size: 0.75rem;
}
.is-style-register .rensburg-meta {
	color: var(--wp--preset--color--ink-muted);
	text-align: end;
}
.is-style-register a {
	text-decoration: none;
}
.is-style-register a:hover {
	color: var(--wp--preset--color--copper-deep);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
@media (max-width: 600px) {
	.is-style-register li {
		grid-template-columns: 7.5ch 1fr;
	}
	.is-style-register .rensburg-meta {
		grid-column: 2;
		text-align: start;
	}
}

/* Catalogue variant (oeuvre page) — Cormorant numerals, museum air */
.is-style-register.rensburg-catalog li {
	grid-template-columns: 9ch 1fr auto;
	padding-block: clamp(0.85rem, 1.8vw, 1.25rem);
}
.is-style-register.rensburg-catalog .rensburg-no {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.1rem;
	font-weight: 400;
	font-variant-numeric: lining-nums;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--copper-deep);
}
.is-style-register.rensburg-catalog .rensburg-meta {
	font-size: var(--wp--preset--font-size--small);
}
.rensburg-catalog-archief .rensburg-no {
	color: var(--wp--preset--color--ink-muted);
}
.rensburg-catalog-archief li {
	color: var(--wp--preset--color--ink-muted);
}
@media (max-width: 600px) {
	.is-style-register.rensburg-catalog li {
		grid-template-columns: 1fr;
		row-gap: 1px;
	}
	.is-style-register.rensburg-catalog .rensburg-meta {
		grid-column: auto;
		text-align: start;
	}
}

/* Signature specimens — kabinet, oeuvre page */
.rensburg-signatures {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(2rem, 5vw, 4rem);
	margin-block-start: clamp(2rem, 5vw, 3.5rem);
}
.rensburg-signature {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.9rem, 4vw, 3.2rem);
	color: var(--wp--custom--kabinet--ink);
	margin: 0;
	padding-block-end: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--custom--kabinet--line);
}
.rensburg-sig-cap {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-variant-caps: small-caps;
	letter-spacing: 0.18em;
	color: var(--wp--custom--kabinet--muted);
	margin: 0;
}
[dir="rtl"] .rensburg-signature {
	direction: ltr;
	text-align: left;
	letter-spacing: 0;
}

/* Register table (oeuvre page) */
.rensburg-register-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
}
.rensburg-register-table th {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: 0.6875rem;
	color: var(--wp--preset--color--ink-muted);
	text-align: start;
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--ink);
}
.rensburg-register-table td {
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--line);
	vertical-align: baseline;
}
.rensburg-register-table td:first-child {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.75rem;
	color: var(--wp--preset--color--ink-muted);
	white-space: nowrap;
}
.rensburg-register-table a {
	text-decoration: none;
}
.rensburg-register-table a:hover {
	color: var(--wp--preset--color--copper-deep);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* --------------------------------------------------------------------------
   Homepage hero — full-viewport presentation
   -------------------------------------------------------------------------- */
.rensburg-hero-home {
	min-height: 92vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
	padding-block: clamp(3rem, 8vh, 6rem);
}
.rensburg-hero-home h1 {
	font-weight: 300;
	letter-spacing: 0.005em;
	margin: 0;
}
.rensburg-hero-home .rensburg-dates {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	letter-spacing: 0.35em;
	color: var(--wp--preset--color--ink-muted);
	font-variant-numeric: lining-nums tabular-nums;
}
.rensburg-hero-home .rensburg-hero-line {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--ink-muted);
	max-width: 46ch;
}
.rensburg-hero-scroll {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-muted);
}
.rensburg-hero-scroll::after {
	content: "";
	width: 1px;
	height: 3.5rem;
	background: var(--wp--preset--color--line);
}

/* --------------------------------------------------------------------------
   Hero bleed — one artwork fills the viewport, inscription on a scrim
   -------------------------------------------------------------------------- */
.rensburg-hero-bleed {
	position: relative;
	overflow: hidden;
	min-height: 96vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background: var(--wp--preset--color--kabinet);
	margin-block-start: calc(-1 * var(--wp--preset--spacing--60));
}
@supports (min-height: 92svh) {
	.rensburg-hero-bleed {
		min-height: 96svh;
	}
}
.rensburg-hero-bleed .rensburg-hero-media {
	position: absolute;
	inset: 0;
	margin: 0;
}
.rensburg-hero-bleed .rensburg-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	display: block;
}
.rensburg-hero-bleed::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(14, 17, 22, 0.8) 0%, rgba(14, 17, 22, 0.36) 36%, rgba(14, 17, 22, 0.08) 62%, rgba(14, 17, 22, 0) 80%);
	pointer-events: none;
}
.rensburg-hero-bleed .rensburg-hero-media .wp-element-caption {
	position: absolute;
	inset-inline-end: clamp(1rem, 4vw, 3rem);
	inset-block-end: clamp(0.9rem, 2.5vw, 1.6rem);
	z-index: 3;
	color: rgba(247, 243, 236, 0.78);
	font-variant-caps: normal;
	letter-spacing: 0.14em;
}
.rensburg-hero-bleed .rensburg-hero-text {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1400px;
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 5vw, 4rem);
	padding-block: clamp(3.5rem, 10vh, 7.5rem) clamp(2.5rem, 7vh, 5rem);
}
.rensburg-hero-bleed h1 {
	font-weight: 300;
	font-size: clamp(3.75rem, 11vw, 9.75rem);
	line-height: 0.96;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--paper);
	margin: 0;
}
.rensburg-hero-bleed .rensburg-eyebrow {
	color: #f0e4cb;
	text-shadow: 0 1px 16px rgba(10, 12, 16, 0.65), 0 0 3px rgba(10, 12, 16, 0.45);
}
.rensburg-hero-bleed .rensburg-dates {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	letter-spacing: 0.4em;
	color: rgba(247, 243, 236, 0.66);
	font-variant-numeric: lining-nums tabular-nums;
}
.rensburg-hero-bleed .rensburg-hero-line {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: clamp(1.375rem, 2.2vw, 1.875rem);
	line-height: 1.35;
	color: rgba(247, 243, 236, 0.84);
	max-width: 46ch;
}
.rensburg-hero-bleed .wp-block-button__link {
	background: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
}
.rensburg-hero-bleed .wp-block-button__link:hover {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
}
.rensburg-hero-bleed .wp-block-button.rensburg-inquiry .wp-block-button__link {
	background: transparent;
	border-color: rgba(247, 243, 236, 0.55);
	color: var(--wp--preset--color--paper);
}
.rensburg-hero-bleed .wp-block-button.rensburg-inquiry .wp-block-button__link:hover {
	background: rgba(247, 243, 236, 0.12);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--paper);
}
.rensburg-hero-bleed .rensburg-hero-scroll {
	color: rgba(247, 243, 236, 0.6);
	margin-block-start: clamp(1.5rem, 4vh, 3rem);
}
.rensburg-hero-bleed .rensburg-hero-scroll::after {
	background: rgba(247, 243, 236, 0.35);
	height: 2.75rem;
}

/* --------------------------------------------------------------------------
   4.0 — Het Vergezicht: de hero-ets komt tot leven. Eén aangewezen plek,
   nooit op catalogus- of verkooppagina's. De plaat ademt onmerkbaar traag
   (76s heen en terug) en een zonnewaas drijft over het papier — alsof je
   even in 1918 door het havenlicht kijkt. reveal.js bouwt de lagen en de
   stil/levend-schakelaar op (progressive enhancement, geen DB-markup);
   zonder JS, met reduced-motion of op 'Stil' staat alles doodstil.
   -------------------------------------------------------------------------- */
.rensburg-hero-bleed.rb-live .rensburg-hero-media img {
	animation: rb-vergezicht 76s var(--wp--custom--motion--ease-in-out) infinite alternate;
	will-change: transform;
}
@keyframes rb-vergezicht {
	from { transform: scale(1.015) translateX(0.5%); }
	to   { transform: scale(1.06) translateX(-0.8%); }
}
.rb-atmos {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
	background:
		radial-gradient(58% 42% at 30% 32%, rgba(255, 243, 214, 0.16) 0%, rgba(255, 243, 214, 0.05) 45%, transparent 70%);
	mix-blend-mode: soft-light;
	transition: opacity 2.5s ease;
}
.rensburg-hero-bleed.rb-live .rb-atmos {
	opacity: 1;
	animation: rb-lichtdrift 90s ease-in-out infinite alternate;
}
@keyframes rb-lichtdrift {
	from { transform: translateX(-6%) translateY(0); }
	to   { transform: translateX(9%) translateY(2%); }
}
.rb-live-toggle {
	position: absolute;
	z-index: 4;
	inset-inline-start: clamp(1rem, 4vw, 3rem);
	inset-block-end: clamp(0.9rem, 2.5vw, 1.6rem);
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	min-height: var(--wp--custom--target--min);
	padding: 0.4em 0.95em;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	font-weight: 500;
	letter-spacing: var(--wp--custom--tracking--caps);
	text-transform: uppercase;
	color: rgba(247, 243, 236, 0.85);
	background: rgba(18, 22, 28, 0.42);
	border: 1px solid rgba(247, 243, 236, 0.35);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	cursor: pointer;
	transition: color var(--wp--custom--motion--fast) ease, border-color var(--wp--custom--motion--fast) ease;
}
.rb-live-toggle:hover,
.rb-live-toggle:focus-visible {
	color: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
}
.rb-live-toggle::before {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-radius: 50%;
	border: 1px solid currentColor;
	background: transparent;
	transition: background var(--wp--custom--motion--fast) ease;
}
.rensburg-hero-bleed.rb-live .rb-live-toggle::before {
	background: var(--wp--preset--color--copper);
	border-color: var(--wp--preset--color--copper);
}
:lang(ar) .rb-live-toggle {
	letter-spacing: 0;
}
@media (prefers-reduced-motion: reduce) {
	.rensburg-hero-bleed.rb-live .rensburg-hero-media img,
	.rensburg-hero-bleed.rb-live .rb-atmos {
		animation: none;
	}
	.rb-live-toggle {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Intermezzo — full-bleed artwork band between chapters
   -------------------------------------------------------------------------- */
.rensburg-intermezzo {
	position: relative;
}
.rensburg-intermezzo figure {
	position: relative;
	margin: 0;
}
/* 4.0 — the intermezzo shows the whole sheet, mounted on paper, never a
   cover-crop fragment. The band keeps its cinematic height; the artwork
   floats complete within it. */
.rensburg-intermezzo figure {
	background: linear-gradient(180deg, #f9f5ee 0%, var(--wp--preset--color--paper) 55%, #efe9dc 100%);
	border-block: 1px solid var(--wp--preset--color--line);
}
.rensburg-intermezzo img {
	display: block;
	width: auto;
	max-width: min(1200px, 92%);
	height: clamp(340px, 74vh, 780px);
	object-fit: contain;
	object-position: center;
	margin-inline: auto;
	padding-block: clamp(1.5rem, 4vh, 3rem);
}
.rensburg-intermezzo .wp-element-caption {
	position: absolute;
	inset-inline-start: clamp(1rem, 4vw, 3rem);
	inset-block-end: clamp(1rem, 3vw, 2rem);
	color: rgba(247, 243, 236, 0.92);
	background: rgba(18, 22, 28, 0.46);
	padding: 0.45rem 0.8rem;
	font-variant-caps: normal;
	letter-spacing: 0.12em;
	backdrop-filter: blur(3px);
}

/* --------------------------------------------------------------------------
   Museum wall — offset picture-gallery rhythm
   -------------------------------------------------------------------------- */
.rensburg-museum-wall {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(2rem, 4.5vw, 3.75rem) clamp(1.75rem, 4vw, 4rem);
	align-items: start;
}
/* Wall bleed — the gallery escapes the wide column and breathes to the
   viewport edges; the hang itself stays on a 1560px museum rail */
.rensburg-wall-bleed {
	padding-inline: clamp(1.25rem, 4vw, 4rem);
}
.rensburg-wall-bleed .rensburg-museum-wall {
	max-width: 1560px;
	margin-inline: auto;
}
.rensburg-museum-wall > .wp-block-image:nth-child(2n) {
	margin-block-start: clamp(1.5rem, 3.5vw, 3rem);
}
.rensburg-museum-wall > .wp-block-image.is-wide {
	grid-column: 1 / -1;
	margin-block-start: 0;
}
.rensburg-museum-wall figure {
	margin: 0;
}
.rensburg-museum-wall img {
	width: 100%;
	height: auto;
}
.rensburg-museum-wall .wp-element-caption {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-caps: normal;
	letter-spacing: 0.04em;
	font-size: 0.75rem;
}
@media (max-width: 600px) {
	.rensburg-museum-wall {
		grid-template-columns: 1fr;
	}
	.rensburg-museum-wall > .wp-block-image:nth-child(n) {
		margin-block-start: 0;
	}
	.rensburg-museum-wall > .wp-block-image.is-wide {
		grid-column: auto;
	}
}

/* --------------------------------------------------------------------------
   Kabinet — dark room with the top pieces under a spotlight
   -------------------------------------------------------------------------- */
.rensburg-kabinet {
	background: var(--wp--preset--color--kabinet);
	color: var(--wp--custom--kabinet--ink);
}
.rensburg-kabinet .wp-block-heading {
	color: var(--wp--custom--kabinet--ink);
	font-weight: 300;
}
.rensburg-kabinet p {
	color: var(--wp--custom--kabinet--muted);
}
.rensburg-kabinet .rensburg-chapter {
	color: var(--wp--preset--color--copper);
}
.rensburg-kabinet figure {
	position: relative;
}
.rensburg-kabinet .is-style-plate-mark,
.rensburg-kabinet .rensburg-passepartout {
	background: var(--wp--custom--kabinet--raised);
	border-color: var(--wp--custom--kabinet--line);
}
.rensburg-kabinet img {
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
}
.rensburg-kabinet figcaption {
	color: var(--wp--custom--kabinet--muted);
	border-block-start-color: var(--wp--custom--kabinet--line);
}
.rensburg-kabinet .wp-block-button__link {
	background: var(--wp--custom--kabinet--ink);
	border-color: var(--wp--custom--kabinet--ink);
	color: var(--wp--preset--color--kabinet);
}
.rensburg-kabinet .wp-block-button__link:hover {
	background: var(--wp--preset--color--copper);
	border-color: var(--wp--preset--color--copper);
	color: var(--wp--preset--color--kabinet);
}

/* --------------------------------------------------------------------------
   Reveal — one quiet motion, observer-driven
   -------------------------------------------------------------------------- */
.rensburg-reveal {
	transition: opacity var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out),
		transform var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out);
}
.rensburg-js .rensburg-reveal {
	opacity: 0;
	transform: translateY(8px);
}
.rensburg-js .rensburg-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* --------------------------------------------------------------------------
   Sections, hairline bands, cards
   -------------------------------------------------------------------------- */
.rensburg-section {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.rensburg-band {
	border-block: 1px solid var(--wp--preset--color--line);
	padding-block: clamp(3.5rem, 7vw, 6rem);
}

.rensburg-product-card .wp-block-image {
	margin-block-end: var(--wp--preset--spacing--30);
}
/* 4.6 — de kunst is de kaart: eigen verhouding, geen podium */
.rensburg-product-card .wp-block-image img {
	width: 100%;
	height: auto;
	object-fit: unset;
	background: none;
	border: 0;
	padding: 0;
	box-shadow: 0 1px 2px rgba(26, 24, 21, 0.08), 0 14px 34px -24px rgba(26, 24, 21, 0.35);
}
.rensburg-product-card h3 {
	font-size: 1.4rem;
	line-height: 1.25;
}
.rensburg-product-card h3 a {
	text-decoration: none;
}
.rensburg-product-card h3 a:hover {
	color: var(--wp--preset--color--copper-deep);
}

/* --------------------------------------------------------------------------
   Header / navigation / language switcher
   -------------------------------------------------------------------------- */
.rensburg-utility {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	color: var(--wp--preset--color--ink-muted);
	border-block-end: 1px solid var(--wp--preset--color--line);
}

.wp-block-site-title {
	white-space: nowrap;
}

.wp-block-navigation .lang-item a {
	opacity: 0.65;
}
.wp-block-navigation .lang-item.current-lang a {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}
.wp-block-navigation .lang-item + .lang-item {
	margin-inline-start: 0.4em;
}

/*
   Mobile overlay (≤ 1280px) — a quiet gallery room:
   paper ground, large Cormorant register entries, hairlines,
   submenu always visible and indented, languages as a small index.
   The inline menu (8 items + 7 languages) cannot fit below 1280px
   without wrapping, so the calm overlay takes over there.
   -------------------------------------------------------------------------- */

/* Hamburger: generous, quiet tap target */
.wp-block-navigation__responsive-container-open {
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
}

@media (max-width: 1280px) {
	.wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
	.wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: block !important;
	gap: 0;
	width: 100%;
	padding-inline: clamp(1.5rem, 6vw, 3rem);
}

/* Items and their register hairlines always span the full overlay width */
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container > .wp-block-navigation-item {
	display: block !important;
	width: 100%;
	margin-inline: 0;
}

/* A little air below the close button, and the first hairline aligns with the rest */
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content {
	padding-block-start: clamp(2.5rem, 8vh, 4.5rem);
}

/* Top-level entries: large Cormorant, separated by register hairlines */
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container > .wp-block-navigation-item:not(.lang-item) {
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container > .wp-block-navigation-item:not(.lang-item)
	> .wp-block-navigation-item__content {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.7rem, 6.4vw, 2.5rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.2;
	padding-block: 0.5em;
	transition: color 140ms ease;
}
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container > .wp-block-navigation-item:not(.lang-item)
	> .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--copper-deep);
}

/* Submenu: always visible inside the overlay, quietly indented */
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content
	.has-child .wp-block-navigation__submenu-container {
	gap: 0;
	min-width: 0;
	margin-block: 0.125rem 0.875rem;
	margin-inline-start: 0.25rem;
	padding-block: 0;
	padding-inline-start: 1.25rem;
	padding-inline-end: 0;
	border-inline-start: 1px solid var(--wp--preset--color--line);
}
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.15rem, 4.6vw, 1.5rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.3;
	color: var(--wp--preset--color--ink-muted);
	padding-block: 0.35em;
	transition: color 140ms ease;
}
.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--copper-deep);
}

/* Languages: a small index line below the register */
.wp-block-navigation__responsive-container.is-menu-open .lang-item {
	display: inline-block;
}
.wp-block-navigation__responsive-container.is-menu-open .lang-item-first {
	margin-block-start: 2.25rem;
}
.wp-block-navigation__responsive-container.is-menu-open
	.lang-item .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	padding-block: 0;
}

/* Close button: framed, calm, mirrored for RTL */
.wp-block-navigation__responsive-container-close {
	inset-block-start: clamp(1rem, 4vw, 1.75rem);
	inset-inline-end: clamp(1rem, 4vw, 1.75rem);
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--line);
	transition: border-color 140ms ease, color 140ms ease;
}
.wp-block-navigation__responsive-container-close:hover {
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--copper-deep);
}

/* Visible focus, everywhere in the navigation */
.wp-block-navigation :where(a, button):focus-visible {
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Desktop (> 1280px): compact mid-range measure + dropdown panel
   -------------------------------------------------------------------------- */
@media (min-width: 1281px) and (max-width: 1720px) {
	nav.wp-block-navigation {
		font-size: 0.6875rem;
		letter-spacing: 0.07em;
	}
	.wp-block-navigation .wp-block-navigation__container {
		gap: clamp(0.6rem, 1.2vw, 1.1rem);
	}
}

/* Dropdown: paper panel, hairline edge, soft shadow — direction-neutral */
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.has-child .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: 0 26px 44px -28px rgb(26 24 21 / 0.4);
	gap: 0;
	min-width: 230px;
	padding-block: 0.375rem;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	letter-spacing: 0.05em;
	padding: 0.6em 1.1em;
	transition: background-color 140ms ease, color 140ms ease;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background-color: rgb(166 120 78 / 0.09);
	color: var(--wp--preset--color--copper-deep);
}

/* Calm opening motion for the dropdown */
@media not (prefers-reduced-motion) {
	.wp-block-navigation__responsive-container:not(.is-menu-open)
		.has-child .wp-block-navigation__submenu-container {
		transition: opacity 160ms ease, transform 160ms ease;
		transform: translateY(6px);
	}
	.wp-block-navigation__responsive-container:not(.is-menu-open)
		.has-child:hover > .wp-block-navigation__submenu-container,
	.wp-block-navigation__responsive-container:not(.is-menu-open)
		.has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container {
		transform: translateY(0);
	}
}

.rensburg-eyebrow {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--copper-deep);
}

/* Inquiry button — hairline, copper */
.wp-block-button.rensburg-inquiry .wp-block-button__link,
a.rensburg-inquiry {
	background: transparent;
	color: var(--wp--preset--color--copper-deep);
	border: 1px solid var(--wp--preset--color--copper);
}
.wp-block-button.rensburg-inquiry .wp-block-button__link:hover,
a.rensburg-inquiry:hover {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
}

/* Footer colophon */
.rensburg-colophon {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--ink-muted);
	border-block-start: 1px solid var(--wp--preset--color--line);
}

/* FAQ — a register of questions: hairline rows, Cormorant entries */
.rensburg-faq h3 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: var(--wp--custom--type--title-s);
	line-height: 1.25;
	border-block-start: 1px solid var(--wp--preset--color--line);
	padding-block-start: var(--wp--preset--spacing--40);
	margin-block-start: var(--wp--preset--spacing--50);
	margin-block-end: var(--wp--preset--spacing--20);
}
.rensburg-faq h2 + h3,
.rensburg-faq h3:first-of-type {
	border-block-start-color: var(--wp--preset--color--ink);
}
.rensburg-faq p {
	font-size: var(--wp--custom--type--body-s);
	line-height: 1.7;
	color: var(--wp--preset--color--ink-muted);
	max-width: var(--wp--custom--measure--body);
}

/* --------------------------------------------------------------------------
   Process steps — numbered ritual (consignment & appraisal pages)
   -------------------------------------------------------------------------- */
.rensburg-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: clamp(1.5rem, 4vw, 3.5rem);
	row-gap: var(--wp--preset--spacing--60);
}

.rensburg-step {
	border-block-start: 1px solid var(--wp--preset--color--ink);
	padding-block-start: var(--wp--preset--spacing--40);
}

.rensburg-step-no {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	font-size: clamp(2.75rem, 5.5vw, 5rem);
	line-height: 1;
	color: var(--wp--preset--color--copper);
	font-variant-numeric: lining-nums;
	margin: 0 0 var(--wp--preset--spacing--30);
}

.rensburg-step h3 {
	margin-block-end: var(--wp--preset--spacing--30);
}

@media (max-width: 720px) {
	.rensburg-steps {
		grid-template-columns: 1fr;
	}
}

/* Trust marks — discretion, expertise, no obligation */
.rensburg-trust {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: clamp(1.5rem, 4vw, 3.5rem);
	row-gap: var(--wp--preset--spacing--50);
}

.rensburg-trust-item {
	border-block-start: 1px solid var(--wp--preset--color--line);
	padding-block-start: var(--wp--preset--spacing--30);
}

.rensburg-trust-t {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	font-variant-caps: small-caps;
	letter-spacing: 0.22em;
	color: var(--wp--preset--color--copper-deep);
	margin-block-end: var(--wp--preset--spacing--30);
}

@media (max-width: 720px) {
	.rensburg-trust {
		grid-template-columns: 1fr;
	}
}

/* Consignment mechanics note — hairline-delimited display line */
.rensburg-cons-note {
	border-block: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--ink);
}

/* Form in a passe-partout mount */
.rensburg-form-wrap {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	padding: clamp(1.5rem, 4vw, 3rem);
}

.rensburg-form-wrap .ff-el-input--label,
.rensburg-form-wrap .ff-el-input--label label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-variant-caps: small-caps;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--ink-muted);
}

.rensburg-form-wrap .ff-el-form-control {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--custom--line--strong);
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	padding: 0.7rem 0.9rem;
}

.rensburg-form-wrap .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--copper-deep);
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
}

.rensburg-form-wrap .ff-btn-submit {
	background: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 0;
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.9rem 2.4rem;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.rensburg-form-wrap .ff-btn-submit:hover {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
}

/* Availability marks — museum labels in the shop */
.rensburg-availability {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	font-weight: 500;
	font-variant-caps: small-caps;
	letter-spacing: var(--wp--custom--tracking--caps);
	border-block-start: 1px solid currentColor;
	padding-block-start: 0.3rem;
	margin-block-end: var(--wp--preset--spacing--30);
}

.rensburg-availability.is-available {
	color: var(--wp--preset--color--copper-deep);
}

.rensburg-availability.is-sold {
	color: var(--wp--preset--color--ink-muted);
}

/* Arabic renders without mechanical letterspacing on these marks too */
:lang(ar) .rensburg-step-no,
:lang(ar) .rensburg-trust-t,
:lang(ar) .rensburg-availability,
:lang(ar) .rensburg-form-wrap .ff-el-input--label,
:lang(ar) .rensburg-form-wrap .ff-btn-submit,
[dir="rtl"] :where(.rensburg-step-no, .rensburg-trust-t, .rensburg-availability, .rensburg-form-wrap) {
	letter-spacing: 0 !important;
}

/* --------------------------------------------------------------------------
   Mobile hero (round 6) — keep the artwork's subject in frame on narrow
   screens: a slightly shorter viewport band (less extreme cover-crop) plus
   a per-hero focus point tuned to each artwork's subject.
   home (13…)      = havenpanorama 1918 — church spire just left of centre
   oeuvre (15…)    = Coolsingel — sailing barge left of centre
   consignatie (17…) = Binnenhof — group of figures left of centre
   beoordeling (18…) = markt — woman in blue left of centre
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
	.rensburg-hero-bleed {
		min-height: 78vh;
		min-height: 78svh; /* browsers without svh keep the vh value above */
	}
	.rensburg-hero-bleed h1 {
		font-size: clamp(2.75rem, 13.5vw, 4.25rem);
		letter-spacing: -0.015em;
	}
	/* Homepage — haven 1918 */
	.page-id-13 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-23 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-33 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-43 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-53 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-63 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-73 .rensburg-hero-bleed .rensburg-hero-media img {
		object-position: 46% 42%;
	}
	/* Oeuvre — Coolsingel */
	.page-id-15 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-25 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-35 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-45 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-55 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-65 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-75 .rensburg-hero-bleed .rensburg-hero-media img {
		object-position: 30% 45%;
	}
	/* Consignatie — Binnenhof */
	.page-id-17 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-27 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-37 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-47 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-57 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-67 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-77 .rensburg-hero-bleed .rensburg-hero-media img {
		object-position: 35% 45%;
	}
	/* Beoordeling — markt met kramen */
	.page-id-18 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-28 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-38 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-48 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-58 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-68 .rensburg-hero-bleed .rensburg-hero-media img,
	.page-id-78 .rensburg-hero-bleed .rensburg-hero-media img {
		object-position: 30% 45%;
	}
}

/* --------------------------------------------------------------------------
   Object page (attachment view, round 6) — one artwork in a passe-partout,
   title + technique, and a quiet way back to the oeuvre. Used by
   attachment.php for every media item (archive works and register works).
   Round 8: full museum object page — passe-partout plate beside a
   specification register, provenance line and inquiry links.
   Round 10: Christie's-lot depth — plate-size image with srcset, a :target
   zoom overlay, a related-works wall and a context-carrying inquiry link.
   -------------------------------------------------------------------------- */
.rensburg-object {
	max-width: 1240px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--60) clamp(1.25rem, 5vw, 3rem) var(--wp--preset--spacing--70);
}
.rensburg-object .rensburg-eyebrow {
	margin-block: 0 var(--wp--preset--spacing--30);
}
.rensburg-object-title {
	font-weight: 300;
	font-size: clamp(2.25rem, 6vw, 4.25rem);
	line-height: 1.05;
	letter-spacing: 0.005em;
	margin: 0 0 var(--wp--preset--spacing--30);
}
.rensburg-object-meta {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--wp--preset--color--copper-deep);
	margin: 0 0 var(--wp--preset--spacing--50);
}
.rensburg-object-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 860px) {
	.rensburg-object-layout {
		grid-template-columns: 1fr;
	}
}
.rensburg-object-plate {
	margin: 0;
}
.rensburg-object-plate img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 78vh;
	margin-inline: auto;
}
.rensburg-object-zoom-open {
	display: block;
	position: relative;
	text-decoration: none;
	cursor: zoom-in;
}
.rensburg-object-zoom-open:focus-visible {
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 4px;
}
.rensburg-object-zoom-hint {
	position: absolute;
	inset-inline-end: var(--wp--preset--spacing--30);
	inset-block-end: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-muted);
	background: var(--wp--preset--color--paper);
	padding: 0.35rem 0.7rem;
	border: 1px solid var(--wp--preset--color--line);
	opacity: 0;
	transition: opacity 160ms ease;
}
.rensburg-object-zoom-open:hover .rensburg-object-zoom-hint,
.rensburg-object-zoom-open:focus-visible .rensburg-object-zoom-hint {
	opacity: 1;
}
.rensburg-object-caption {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: 1px solid var(--wp--preset--color--line);
	font-variant-caps: normal;
	letter-spacing: 0.12em;
}

/* Specification register — museum label, definition list */
.rensburg-spec {
	margin: 0;
}
.rensburg-spec-row {
	display: grid;
	grid-template-columns: 11ch 1fr;
	column-gap: var(--wp--preset--spacing--40);
	align-items: baseline;
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--line);
}
.rensburg-spec-row:first-child {
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.rensburg-spec-row dt {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	font-variant-caps: small-caps;
	letter-spacing: 0.16em;
	color: var(--wp--preset--color--ink-muted);
}
.rensburg-spec-row dd {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: lining-nums tabular-nums;
}
.rensburg-object-provenance {
	margin: var(--wp--preset--spacing--40) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink-muted);
}
.rensburg-object-provenance span {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	font-variant-caps: small-caps;
	letter-spacing: 0.16em;
}
.rensburg-object-description {
	margin-block-start: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
}
.rensburg-object-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	margin-block-start: var(--wp--preset--spacing--50);
}
.rensburg-object-link {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.8rem 1.6rem;
	border: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
}
.rensburg-object-link:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}
.rensburg-object-link.rensburg-object-inquire {
	background: transparent;
	border-color: var(--wp--preset--color--copper);
	color: var(--wp--preset--color--copper-deep);
}
.rensburg-object-link.rensburg-object-inquire:hover {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
}
.rensburg-object-back {
	margin: var(--wp--preset--spacing--60) 0 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.rensburg-object-back a {
	color: var(--wp--preset--color--copper-deep);
	text-decoration: none;
	border-block-end: 1px solid transparent;
}
.rensburg-object-back a:hover {
	border-block-end-color: var(--wp--preset--color--copper);
}
[dir="rtl"] .rensburg-object-meta,
[dir="rtl"] .rensburg-object-link {
	letter-spacing: 0;
}

/* Zoom overlay (round 10) — pure CSS :target lightbox over the full file.
   object-zoom.js only adds ESC and focus handling. Logical properties keep
   it RTL-safe; the backdrop is a link back to the plate anchor. */
.rensburg-zoom {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
}
.rensburg-zoom:target {
	display: flex;
}
.rensburg-zoom-screen {
	position: absolute;
	inset: 0;
	background: rgba(18, 22, 28, 0.92);
	cursor: zoom-out;
}
.rensburg-zoom-figure {
	position: relative;
	margin: 0;
	max-width: 100%;
	max-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}
.rensburg-zoom-figure img {
	display: block;
	max-width: 100%;
	max-height: 82vh;
	width: auto;
	height: auto;
	background: var(--wp--preset--color--paper);
	box-shadow: 0 2px 60px rgba(0, 0, 0, 0.5);
}
.rensburg-zoom-caption {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--paper);
	text-align: center;
}
.rensburg-zoom-close {
	position: absolute;
	inset-block-start: clamp(0.75rem, 3vw, 2rem);
	inset-inline-end: clamp(0.75rem, 3vw, 2rem);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--paper);
	border: 1px solid rgba(247, 243, 236, 0.5);
	padding: 0.7rem 1.2rem;
	background: rgba(18, 22, 28, 0.6);
}
.rensburg-zoom-close:hover {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--paper);
}
.rensburg-zoom-close:focus-visible {
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
}
body:has(.rensburg-zoom:target) {
	overflow: hidden;
}
[dir="rtl"] .rensburg-zoom-close,
[dir="rtl"] .rensburg-object-zoom-hint {
	letter-spacing: 0;
}
@media (prefers-reduced-motion: no-preference) {
	.rensburg-zoom:target .rensburg-zoom-figure {
		animation: rensburg-zoom-in 180ms ease-out;
	}
	@keyframes rensburg-zoom-in {
		from {
			opacity: 0;
			transform: scale(0.985);
		}
		to {
			opacity: 1;
			transform: scale(1);
		}
	}
}

/* Related works wall (round 10) — three quiet cross-links under the
   register: same technique where documented, otherwise HGA companions. */
.rensburg-related {
	margin-block-start: var(--wp--preset--spacing--60);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.rensburg-related-title {
	font-weight: 300;
	font-size: clamp(1.5rem, 3vw, 2rem);
	margin: 0 0 var(--wp--preset--spacing--40);
}
.rensburg-related-wall {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 3vw, 2rem);
}
@media (max-width: 640px) {
	.rensburg-related-wall {
		grid-template-columns: 1fr;
	}
}
.rensburg-related-item a {
	display: block;
	text-decoration: none;
	color: inherit;
}
.rensburg-related-item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	padding: var(--wp--preset--spacing--30);
	transition: border-color 160ms ease;
}
.rensburg-related-item a:hover img,
.rensburg-related-item a:focus-visible img {
	border-color: var(--wp--preset--color--copper);
}
.rensburg-related-name {
	display: block;
	margin-block-start: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   Kabinet band (round 8) — a slim dark closing band above the footer on
   page.html and single.html, echoing the homepage kabinet room. One
   language-neutral colophon line: artist name and dates only.
   -------------------------------------------------------------------------- */
.rensburg-kabinet-band {
	background: var(--wp--preset--color--kabinet);
	border-block-start: 1px solid var(--wp--custom--kabinet--line);
}
.rensburg-kabinet-band-line {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--wp--custom--kabinet--muted);
	margin: 0;
}
.rensburg-kabinet-band-line::before {
	content: "";
	display: inline-block;
	width: 2.5rem;
	border-block-start: 1px solid var(--wp--preset--color--copper);
	margin-inline-end: 1rem;
	vertical-align: middle;
	transform: translateY(-0.2em);
}

/* --------------------------------------------------------------------------
   Motion — quiet by default, absent on request
   -------------------------------------------------------------------------- */
a,
.wp-block-button__link {
	transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
	.rensburg-reveal {
		opacity: 1;
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   Mini-cart badge (round 10) — an empty cart shows no count. WooCommerce's
   own stylesheet gives the badge a display value, which beats the hidden
   attribute the block sets when the count is 0; pin it down here so "0"
   never shows in the header.
   -------------------------------------------------------------------------- */
.wc-block-mini-cart__badge[hidden] {
	display: none !important;
}

/* --------------------------------------------------------------------------
   WooCommerce chain (round 12) — cart, checkout and account dressed to the
   same museum standard as the galleries: warm paper, hairlines, Cormorant
   display type, etskoper actions. CSS-only; block markup untouched.
   Logical properties throughout, so /ar/ mirrors without exceptions.
   -------------------------------------------------------------------------- */

/* --- Canvas: quiet page rhythm ----------------------------------------- */
.woocommerce-cart .wp-block-post-content > .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-post-content > .wp-block-woocommerce-checkout {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* Woo display headings in Cormorant, gallery-house sobriety */
.woocommerce-cart :where(.wc-block-components-title, .wc-block-cart__totals-title, .wc-block-components-checkout-step__heading),
.woocommerce-checkout :where(.wc-block-components-title, .wc-block-components-checkout-step__heading),
.woocommerce-account :where(.woocommerce-MyAccount-content > h2, .woocommerce-MyAccount-content > h3, .woocommerce-order-details__title, .woocommerce-customer-details h2, .woocommerce-Address-title h3) {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink);
}

/* Step headings keep their number, gain the register voice */
.woocommerce-checkout .wc-block-components-checkout-step__heading {
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	line-height: 1.2;
}
.woocommerce-checkout .wc-block-components-checkout-step__number {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	color: var(--wp--preset--color--copper-deep);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--sheet);
}

/* --- Actions: etskoper, never Woo purple -------------------------------- */
.woocommerce-cart .wc-block-components-button:not(.is-link),
.woocommerce-checkout .wc-block-components-button:not(.is-link),
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce .button.alt,
.woocommerce .woocommerce-cart-form .button,
.woocommerce-cart .wc-block-cart__submit-button,
.woocommerce-checkout .wc-block-checkout__actions_button {
	background: var(--wp--preset--color--copper-deep);
	border: 1px solid var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-radius: 0;
	padding-block: 0.9em;
	transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}
.woocommerce-cart .wc-block-components-button:not(.is-link):hover,
.woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
.woocommerce-account .woocommerce .button:hover,
.woocommerce-account .woocommerce .button.alt:hover,
.woocommerce .woocommerce-cart-form .button:hover,
.woocommerce-cart .wc-block-cart__submit-button:hover,
.woocommerce-checkout .wc-block-checkout__actions_button:hover {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}
/* Quiet secondary links inside the chain */
.woocommerce-cart .wc-block-components-button.is-link,
.woocommerce-checkout .wc-block-components-button.is-link,
.woocommerce-account .woocommerce-MyAccount-content a,
.woocommerce-cart .wc-block-components-totals-coupon-link,
.woocommerce-checkout .wc-block-components-totals-coupon-link {
	color: var(--wp--preset--color--copper-deep);
	text-decoration-color: rgba(166, 120, 78, 0.45);
	text-underline-offset: 0.22em;
}
.woocommerce-account .woocommerce-MyAccount-content a:hover {
	color: var(--wp--preset--color--ink);
}

/* --- Cart table: register rhythm, hairlines, tabular figures ------------ */
.woocommerce-cart .wc-block-cart-items {
	border-block: 1px solid var(--wp--preset--color--line);
}
.woocommerce-cart .wc-block-cart-items__row {
	border-block-end: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--40);
}
.woocommerce-cart .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}
.woocommerce-cart .wc-block-components-product-name:hover {
	color: var(--wp--preset--color--copper-deep);
}
.woocommerce-cart .wc-block-components-product-metadata {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--ink-muted);
}
.woocommerce-cart .wc-block-components-product-price,
.woocommerce-cart .wc-block-cart-item__prices {
	font-variant-numeric: lining-nums tabular-nums;
}
.woocommerce-cart .wc-block-components-quantity-selector,
.woocommerce-cart .wc-block-components-quantity-selector input,
.woocommerce .woocommerce-cart-form .quantity .qty {
	background: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--line);
	border-radius: 0;
	color: var(--wp--preset--color--ink);
}
.woocommerce-cart .wc-block-components-quantity-selector button {
	color: var(--wp--preset--color--copper-deep);
}
.woocommerce-cart .wc-block-cart-item__remove-link {
	color: var(--wp--preset--color--ink-muted);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
}

/* --- Totals: a sheet mount, like a passe-partout card ------------------- */
.woocommerce-cart .wp-block-woocommerce-cart-totals-block,
.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-wrapper,
.woocommerce-checkout .wc-block-checkout__sidebar {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	padding: clamp(1.25rem, 2.5vw, 2rem);
}
.woocommerce-cart .wc-block-components-totals-item,
.woocommerce-checkout .wc-block-components-totals-item {
	border-block-end: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--30);
}
.woocommerce-cart .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-components-totals-item__label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-muted);
}
.woocommerce-cart .wc-block-components-totals-footer-item,
.woocommerce-checkout .wc-block-components-totals-footer-item {
	border-block-end: 0;
}
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}

/* --- Form fields: paper, hairline, calm focus --------------------------- */
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-text-input textarea,
.woocommerce-checkout .wc-block-components-select-input,
.woocommerce-checkout .wc-block-components-select .wc-block-components-select-input,
.woocommerce-account .woocommerce-Input,
.woocommerce-account .woocommerce-form-row input.input-text,
.woocommerce-account select,
.woocommerce .woocommerce-cart-form input.input-text {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--sans);
	box-shadow: none;
	transition: border-color 160ms ease;
}
.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-text-input textarea:focus,
.woocommerce-checkout .wc-block-components-select-input:focus,
.woocommerce-account .woocommerce-Input:focus,
.woocommerce-account .woocommerce-form-row input.input-text:focus {
	border-color: var(--wp--preset--color--copper-deep);
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
	box-shadow: none;
}
.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-account .woocommerce-form-row label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-muted);
}
.woocommerce-checkout .wc-block-components-checkbox label,
.woocommerce-checkout .wc-block-components-radio-control__label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
	color: var(--wp--preset--color--ink);
}
.woocommerce-checkout .wc-block-components-checkbox input:checked,
.woocommerce-checkout .wc-block-components-radio-control__input:checked {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
}

/* --- Notices: hairline, copper edge, no traffic-light green ------------- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-cart .wc-block-components-notice-banner,
.woocommerce-checkout .wc-block-components-notice-banner {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	border-inline-start: 3px solid var(--wp--preset--color--copper);
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
}
.woocommerce .woocommerce-error {
	border-inline-start-color: #9c3b2e;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before {
	color: var(--wp--preset--color--copper-deep);
}

/* --- Empty cart: a quiet room, not an error ----------------------------- */
.wp-block-woocommerce-empty-cart-block {
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
	text-align: center;
}
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.9rem, 4vw, 3rem);
	font-weight: 300;
	letter-spacing: -0.01em;
	line-height: 1.15;
	color: var(--wp--preset--color--ink);
}
/* Replace the shop-cart glyph with a copper register rule */
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before {
	content: none;
}
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::after {
	content: "";
	display: block;
	width: 3.5rem;
	border-block-start: 1px solid var(--wp--preset--color--copper);
	margin: var(--wp--preset--spacing--40) auto 0;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots {
	color: var(--wp--preset--color--line);
}
.wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--wp--preset--color--copper-deep);
}

/* --- My account: register navigation, museum label forms ---------------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding-inline-start: 0;
	border-block-start: 1px solid var(--wp--preset--color--line);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	border-block-end: 1px solid var(--wp--preset--color--line);
	margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding-block: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.1rem;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: color 160ms ease, padding 160ms ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--wp--preset--color--copper-deep);
	padding-inline-start: 0.35em;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--wp--preset--color--copper-deep);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before {
	content: "";
	display: inline-block;
	width: 1.25rem;
	border-block-start: 1px solid var(--wp--preset--color--copper);
	margin-inline-end: 0.6rem;
	vertical-align: middle;
	transform: translateY(-0.15em);
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type {
	font-size: 1.05rem;
	line-height: 1.7;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border-radius: 0;
}
.woocommerce-account .woocommerce-LostPassword a {
	color: var(--wp--preset--color--copper-deep);
}

/* --- Account tables (orders, downloads): the register table, reused ----- */
.woocommerce-account table.shop_table,
.woocommerce table.shop_table {
	border-collapse: collapse;
	border: 0;
	font-size: var(--wp--preset--font-size--small);
}
.woocommerce-account table.shop_table th,
.woocommerce table.shop_table th {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: 0.6875rem;
	color: var(--wp--preset--color--ink-muted);
	text-align: start;
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--ink);
	border-radius: 0;
}
.woocommerce-account table.shop_table td,
.woocommerce table.shop_table td {
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
}

/* --- Checkout small print: discretion ----------------------------------- */
.woocommerce-checkout .wc-block-components-checkout-step__description,
.woocommerce-checkout .wc-block-components-totals-footer-item-tax,
.woocommerce-checkout .wc-block-checkout__terms,
.woocommerce-checkout .wc-block-components-product-metadata,
.woocommerce-checkout .wc-block-components-totals-item__description {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-muted);
}
.woocommerce-checkout .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}
.woocommerce-checkout .wc-block-components-payment-method-label {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 500;
	color: var(--wp--preset--color--ink);
}

/* Loading shimmer on paper, not grey */
.woocommerce-cart .is-loading .wc-block-components-loading-mask .wc-block-components-spinner,
.woocommerce-checkout .is-loading .wc-block-components-loading-mask .wc-block-components-spinner {
	color: var(--wp--preset--color--copper-deep);
}

/* ==========================================================================
   Round 3.0 — header icons on the utility rail, true full-bleed heroes
   ========================================================================== */

/* Hooked WooCommerce account/cart blocks leave the crowded main bar and
   dock on the quiet utility rail (desktop only). */
@media (min-width: 1281px) {
	header.wp-block-template-part {
		position: relative;
	}
	header.wp-block-template-part .wp-block-woocommerce-customer-account,
	header.wp-block-template-part .wp-block-woocommerce-mini-cart {
		position: absolute;
		top: 0.42rem;
		z-index: 30;
		margin: 0;
		font-size: 0.8rem;
		line-height: 1;
	}
	header.wp-block-template-part .wp-block-woocommerce-mini-cart {
		inset-inline-end: clamp(1rem, 3vw, 2.5rem);
	}
	header.wp-block-template-part .wp-block-woocommerce-customer-account {
		inset-inline-end: calc(clamp(1rem, 3vw, 2.5rem) + 2.1rem);
	}
	/* utility rail keeps room for the docked icons */
	.rensburg-utility .alignwide > p:last-child {
		margin-inline-end: 4.4rem;
	}
	header.wp-block-template-part .wc-block-mini-cart__button,
	header.wp-block-template-part .wc-block-customer-account__link {
		padding: 0.3em 0.35em;
	}
	/* Languages end before the docked icon zone — in both writing
	   directions (inline-end follows the document direction). */
	header.wp-block-template-part .wp-block-navigation__container > .lang-item:last-child {
		margin-inline-end: 4rem;
	}
}

/* Heroes and gallery walls truly bleed to the viewport edges. The
   constrained post container caps the content column, so the bleed must win
   from core's alignfull margin rules — hence the !important pair.
   4.0: --rb-sbw (measured scrollbar width) recentres the band on the
   scrollport, killing the ~7.5px off-centre shift on desktop. */
.rensburg-hero-bleed,
.rensburg-wall-bleed {
	width: calc(100vw - var(--rb-sbw, 0px));
	max-width: calc(100vw - var(--rb-sbw, 0px));
	margin-inline-start: calc(50% - 50vw + (var(--rb-sbw, 0px) / 2)) !important;
	margin-inline-end: calc(50% - 50vw + (var(--rb-sbw, 0px) / 2)) !important;
}

/* Hero inscriptions stay legible on light passages of the artwork. */
.rensburg-hero-bleed .rensburg-dates,
.rensburg-hero-bleed .rensburg-hero-line,
.rensburg-hero-bleed .rensburg-hero-scroll {
	text-shadow: 0 1px 14px rgba(10, 12, 16, 0.5);
}

/* 4.2 — taalknip NL+EN+DE: gepauzeerde talen ook visueel dicht, als
   dubbel slot naast de render-filter in rensburg-nav.php. */
.lang-item-fr, .lang-item-es, .lang-item-ar, .lang-item-zh {
	display: none !important;
}

/* --------------------------------------------------------------------------
   4.3 — Het Register (/register/) + registerkaart (single-kunstwerk)
   -------------------------------------------------------------------------- */
.rensburg-register-stand {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--ink-muted);
	border-block: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--30);
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	font-variant-numeric: lining-nums tabular-nums;
}
.rensburg-register-stand strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5em;
	font-weight: 500;
	color: var(--wp--preset--color--copper-deep);
}
.rensburg-register-toelichting {
	max-width: var(--wp--custom--measure--body);
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--custom--type--body-s);
	line-height: 1.62;
}
.rb-regfilter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	padding-block: var(--wp--preset--spacing--30);
	border-block: 1px solid var(--wp--preset--color--line);
}
.rb-regfilter-label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	font-weight: 500;
	letter-spacing: var(--wp--custom--tracking--caps);
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-muted);
	margin-inline-end: 0.3rem;
}
.rb-regfilter-label + .rb-regfilter-label,
.rb-regchip + .rb-regfilter-label {
	margin-inline-start: 1.2rem;
}
.rb-regchip {
	display: inline-flex;
	align-items: center;
	min-block-size: var(--wp--custom--target--min);
	padding: 0.2em 0.85em;
	border: 1px solid var(--wp--custom--line--strong);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color var(--wp--custom--motion--fast) ease, background var(--wp--custom--motion--fast) ease, color var(--wp--custom--motion--fast) ease;
}
.rb-regchip:hover {
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--copper-deep);
}
.rb-regchip.is-on {
	background: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: var(--wp--preset--color--paper);
}
.rensburg-register-telling {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	color: var(--wp--preset--color--ink-muted);
	font-variant-numeric: lining-nums tabular-nums;
}
.rensburg-registerlijst .is-zonder-beeld a {
	color: var(--wp--preset--color--ink-muted);
}
.rensburg-registerlijst .is-zonder-beeld .rensburg-no {
	/* line-strong is een lijnkleur (2,24:1 op papier) en werd hier als tekst
	   gebruikt: het registernummer bij beeldloze records was praktisch
	   onleesbaar, juist bij de records die alleen uit hun nummer bestaan. */
	color: var(--wp--preset--color--ink-muted);
}
/* De eerlijke lege plaat: blinddruk, geen vulling — Verlorenregister v1 */
.rensburg-werk-leeg {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	width: 100%;
	background: var(--wp--preset--color--sheet);
	outline: 1px solid var(--wp--preset--color--line);
	outline-offset: -14px;
	box-shadow: inset 0 1px 3px rgba(26, 24, 21, 0.07);
}
.rensburg-werk-leeg-t {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	font-weight: 500;
	letter-spacing: var(--wp--custom--tracking--caps);
	text-transform: uppercase;
	text-align: center;
	line-height: 1.7;
	/* was line-strong: een lijnkleur als tekst, 2,24:1 */
	color: var(--wp--preset--color--ink-muted);
}
@media (max-width: 640px) {
	.rb-regfilter-label { flex-basis: 100%; margin-inline-start: 0 !important; }
}

/* --------------------------------------------------------------------------
   4.4 — De registerwand: het contactblad. Alle gedocumenteerde werken als
   gemonteerde bladen naast elkaar; een record zonder overgeleverd beeld
   hangt als blinddruk-passe-partout tussen de rest — het Verlorenregister
   zichtbaar op de wand zelf.
   -------------------------------------------------------------------------- */
.rensburg-registerwand {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
}
.rb-wandtegel {
	display: block;
	text-decoration: none;
	color: inherit;
}
.rb-wandtegel img,
.rb-wandtegel-leeg {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	padding: clamp(0.5rem, 1.5vw, 0.9rem);
	transition: translate var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out),
		box-shadow var(--wp--custom--motion--slow) var(--wp--custom--motion--ease-out),
		border-color var(--wp--custom--motion--fast) ease;
}
.rb-wandtegel-leeg {
	position: relative;
	outline: 1px solid var(--wp--preset--color--line);
	outline-offset: -12px;
	box-shadow: inset 0 1px 3px rgba(26, 24, 21, 0.07);
}
.rb-wandtegel:hover img,
.rb-wandtegel:focus-visible img,
.rb-wandtegel:hover .rb-wandtegel-leeg,
.rb-wandtegel:focus-visible .rb-wandtegel-leeg {
	translate: 0 -3px;
	border-color: var(--wp--custom--line--strong);
	box-shadow: 0 20px 36px -26px rgba(26, 24, 21, 0.45);
}
.rb-wandtegel-cap {
	display: block;
	margin-block-start: 0.45rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta-s);
	line-height: 1.45;
	color: var(--wp--preset--color--ink-muted);
	transition: color var(--wp--custom--motion--fast) ease;
}
.rb-wandtegel:hover .rb-wandtegel-cap {
	color: var(--wp--preset--color--copper-deep);
}
.rb-wandtegel-no {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.75rem;
	/* het registernummer is de identiteit van de tegel, niet een lijn */
	color: var(--wp--preset--color--copper-deep);
}
.rb-wandtegel.is-leeg .rb-wandtegel-cap {
	color: var(--wp--preset--color--ink-muted);
}

/* --------------------------------------------------------------------------
   4.5 — Inzendformulier: succes als registerbevestiging, honeypot onzicht-
   baar maar focusbaar-vrij, uploadveld in de huisstijl.
   -------------------------------------------------------------------------- */
.rb-inz-hp {
	position: absolute !important;
	inline-size: 1px; block-size: 1px;
	overflow: hidden; clip-path: inset(50%);
}
.rb-inz-form label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-variant-caps: small-caps;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--ink-muted);
	margin-block-end: 0.3rem;
}
.rb-inz-form input[type="text"],
.rb-inz-form input[type="email"],
.rb-inz-form input[type="tel"],
.rb-inz-form textarea {
	width: 100%;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--custom--line--strong);
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	padding: 0.7rem 0.9rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--body-s);
}
.rb-inz-form input:focus-visible,
.rb-inz-form textarea:focus-visible {
	border-color: var(--wp--preset--color--copper-deep);
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 3px;
}
.rb-inz-form input[type="file"] {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--custom--type--meta);
	padding: 0.6rem 0;
}
.rb-inz-check label {
	font-variant-caps: normal;
	letter-spacing: 0;
	font-size: var(--wp--custom--type--meta);
	line-height: 1.6;
	color: var(--wp--preset--color--ink);
	display: flex;
	gap: 0.6em;
	align-items: flex-start;
}
.rb-inz-check input { margin-block-start: 0.25em; }
.rb-inz-veld { margin-block-end: var(--wp--preset--spacing--40); }
.rb-inz-succes {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	border-inline-start: 3px solid var(--wp--preset--color--copper);
	padding: clamp(1.25rem, 3vw, 2rem);
	max-width: var(--wp--custom--measure--body);
}
.rb-inz-succes-kop {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--custom--type--title-s);
	font-weight: 500;
	margin: 0 0 0.4rem;
}
.rb-inz-succes-ref {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: lining-nums tabular-nums;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--copper-deep);
}
.rb-inz-fout {
	background: var(--wp--preset--color--sheet);
	border: 1px solid var(--wp--preset--color--line);
	border-inline-start: 3px solid #9c3b2e;
	padding: 1rem 1.25rem;
	margin-block-end: var(--wp--preset--spacing--40);
}
.rb-inz-instructie {
	border-block: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--40);
	margin-block: var(--wp--preset--spacing--50);
}

/* ------------------------------------------------------------------
   4.7.1 — zoekveld in de kop (bouwlijst 6.7)
   Compact en rustig: een lijn met een loep, geen doos. Groeit bij focus
   zodat de invoer leesbaar wordt zonder de kop te laten springen.
   ------------------------------------------------------------------ */
.rensburg-kop-rechts {
	display: flex;
	align-items: center;
	gap: clamp(.9rem, 2.2vw, 1.9rem);
	flex-wrap: nowrap;
}
.rensburg-kopzoek {
	margin: 0;
	flex: 0 0 auto;
}
.rensburg-kopzoek .wp-block-search__inside-wrapper {
	border: 0;
	border-block-end: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	background: transparent;
	padding: 0;
	transition: border-color var(--wp--custom--motion--fast) ease;
}
.rensburg-kopzoek .wp-block-search__input {
	width: 11rem;
	max-width: 40vw;
	border: 0;
	background: transparent;
	padding: .38rem .1rem;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: .88rem;
	letter-spacing: .01em;
	color: var(--wp--preset--color--ink);
	transition: width var(--wp--custom--motion--base) var(--wp--custom--motion--curve, ease);
}
.rensburg-kopzoek .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--ink-muted);
	opacity: 1;
}
.rensburg-kopzoek .wp-block-search__input:focus {
	outline: 0;
	width: 15rem;
}
.rensburg-kopzoek .wp-block-search__inside-wrapper:focus-within {
	border-block-end-color: var(--wp--preset--color--copper-deep);
}
.rensburg-kopzoek .wp-block-search__button {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ink-muted);
	padding: 0 .25rem;
	min-width: var(--wp--custom--target--min, 44px);
	min-height: var(--wp--custom--target--min, 44px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: color var(--wp--custom--motion--fast) ease;
}
.rensburg-kopzoek .wp-block-search__button:hover,
.rensburg-kopzoek .wp-block-search__button:focus-visible {
	color: var(--wp--preset--color--copper-deep);
}
.rensburg-kopzoek .wp-block-search__button svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }

/* Tot 900px: alleen de loep; het veld schuift open bij focus. Zo blijven
   titel, hamburger en zoek op één regel binnen 375px. */
@media (max-width: 900px) {
	.rensburg-kop-rechts { gap: .35rem; }
	.rensburg-kopzoek .wp-block-search__input {
		width: 0;
		min-width: 0;      /* anders houdt de vloer van 48px het veld open */
		flex: 0 0 0;
		padding-inline: 0;
		border: 0;
	}
	.rensburg-kopzoek .wp-block-search__inside-wrapper { border-block-end-color: transparent; }
	.rensburg-kopzoek .wp-block-search__input:focus {
		width: min(52vw, 14rem);
		min-width: min(52vw, 14rem);
		flex: 0 0 auto;
		padding-inline: .3rem;
	}
	.rensburg-kopzoek .wp-block-search__inside-wrapper:focus-within {
		border-block-end-color: var(--wp--preset--color--copper-deep);
	}
}

/* De sierbalk boven de titel kost op mobiel 92px van 812 en zegt niets dat
   de kop niet al zegt. Onder 720px verdwijnt hij; de kopregels blijven in
   de bron staan voor zoekmachines en print. */
@media (max-width: 720px) {
	.rensburg-utility { display: none; }
	header.wp-block-template-part .wp-block-group.alignwide { row-gap: .35rem; }
}

/* Onder 720px passen de LEVEND-knop (links) en het bijschrift (rechts) niet
   naast elkaar op één regel: bij 375px liepen ze 30px over elkaar heen. Het
   bijschrift schuift daarom boven de knop en lijnt links uit. */
@media (max-width: 720px) {
	.rensburg-hero-bleed .rensburg-hero-media .wp-element-caption {
		inset-inline: clamp(1rem, 4vw, 3rem) clamp(1rem, 4vw, 3rem);
		inset-block-end: calc(clamp(0.9rem, 2.5vw, 1.6rem) + var(--wp--custom--target--min) + 0.55rem);
		text-align: start;
	}
}

/* --------------------------------------------------------------------------
   4.12.3 — ankeroffset onder de vaste kop. Wie via een #anker of vanuit de
   zoekresultaten binnenkomt, kreeg de kop van het onderdeel half onder de
   sticky header. `--rb-header-h` wordt in reveal.js gemeten.
   -------------------------------------------------------------------------- */
:target,
[id]:not(body):not(html),
h1, h2, h3, h4,
.summary,
.rensburg-object-title,
.rb-zoekgroep,
.rb-faq-item {
	scroll-margin-block-start: calc(var(--rb-header-h, 5rem) + 1.25rem);
}
