/*
 * The Rebar Studio — theme styles.
 * Colours and fonts come from theme.json (Appearance → Editor → Styles).
 * Everything here uses those presets, so changing a colour in Styles updates the whole site.
 */

:root {
	--rb-cream: var(--wp--preset--color--cream);
	--rb-beige: var(--wp--preset--color--beige);
	--rb-sand: var(--wp--preset--color--sandstone);
	--rb-stone: var(--wp--preset--color--stone);
	--rb-sage: var(--wp--preset--color--sage);
	--rb-taupe: var(--wp--preset--color--taupe);
	--rb-umber: var(--wp--preset--color--umber);
	--rb-white: var(--wp--preset--color--white);
	--rb-line: #DCCFBC;
	--rb-display: var(--wp--preset--font-family--display);
	--rb-accent: var(--wp--preset--font-family--accent);
	--rb-body: var(--wp--preset--font-family--body);
	--rb-arch: 999px 999px 0 0;
	--rb-limewash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.0055' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .46 0 0 0 0 .36 0 0 0 .16 -.04'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");
	--rb-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .35 0 0 0 0 .27 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--rb-olive: url("../images/olive.svg");
	--rb-fan: url("../images/fan.svg");
	--rb-section: clamp(4.5rem, 10vw, 9rem);
}

/* ---------- Base ---------- */
body {
	background-image: var(--rb-limewash);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: .55;
	mix-blend-mode: multiply;
	background-image: var(--rb-grain);
}
h1, h2, h3, h4 { text-wrap: balance; }
h1 em, h2 em, h3 em, .rb-footer-big em, .rb-big em {
	font-family: var(--rb-accent);
	font-style: italic;
	font-weight: 400;
	font-size: 1.1em;
	letter-spacing: 0;
	color: var(--rb-sage);
}
:where(.wp-site-blocks) :focus-visible { outline: 1.5px solid var(--rb-sage); outline-offset: 4px; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { overflow-x: clip; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* Sections */
.rb-section { padding-top: var(--rb-section); padding-bottom: var(--rb-section); }
.rb-section-sm { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.rb-pt-0 { padding-top: 0 !important; }
.rb-main > .rb-section:first-child { padding-top: clamp(2.5rem, 6vw, 5rem); }
.wp-site-blocks > main, .rb-main { margin-block-start: 0; }
.rb-main > * + * { margin-block-start: 0; }
.rb-page { padding-top: clamp(3rem, 7vw, 6rem); padding-bottom: clamp(4rem, 8vw, 7rem); }
.rb-page-title { margin-bottom: 2rem; }

/* Texture style for groups */
.is-style-rb-limewash { background-image: var(--rb-limewash); }

/* Small label, lead and kicker */
.is-style-rb-label {
	font-family: var(--rb-body);
	font-size: .72rem !important;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--rb-taupe);
	line-height: 1.5;
}
.is-style-rb-lead { font-size: clamp(1.1rem, 1.5vw, 1.25rem); color: var(--rb-taupe); max-width: 34em; }
.rb-kicker { font-family: var(--rb-accent); font-style: italic; font-size: 1.35rem; color: var(--rb-sage); line-height: 1.1; }
.rb-big { font-family: var(--rb-display); font-size: clamp(1.75rem, 3.4vw, 3rem); line-height: 1.2; }
.rb-note { font-size: .85rem; color: var(--rb-taupe); }

/* Olive sprig before a label */
.rb-orn::before {
	content: "";
	display: block;
	width: 30px;
	height: 40px;
	margin-bottom: 1rem;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-olive) center / contain no-repeat;
	mask: var(--rb-olive) center / contain no-repeat;
	transform: rotate(-28deg);
}
.rb-orn-top::before {
	content: "";
	display: block;
	width: 64px;
	height: 84px;
	margin: 0 auto 1.5rem;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-olive) center / contain no-repeat;
	mask: var(--rb-olive) center / contain no-repeat;
	transform: rotate(-20deg);
}

/* Large faint palm behind a section */
.rb-deco-fan { position: relative; overflow: hidden; }
.rb-deco-fan::before {
	content: "";
	position: absolute;
	width: 540px;
	height: 540px;
	right: -140px;
	top: -70px;
	opacity: .2;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-fan) center / contain no-repeat;
	mask: var(--rb-fan) center / contain no-repeat;
	transform: rotate(-14deg);
	pointer-events: none;
}
.rb-deco-left::before { right: auto; top: auto; left: -170px; bottom: -150px; transform: rotate(18deg); }
.rb-deco-fan > * { position: relative; z-index: 1; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .3s, color .3s, border-color .3s; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid currentColor; background: transparent; color: var(--rb-umber); padding: 1rem 1.85rem; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--rb-umber); color: var(--rb-cream); border-color: var(--rb-umber); }
.wp-block-button.is-style-rb-text .wp-block-button__link {
	background: none;
	color: var(--rb-umber);
	padding: 0 0 .5rem;
	border-radius: 0;
	border-bottom: 1px solid currentColor;
}
.wp-block-button.is-style-rb-text .wp-block-button__link:hover { color: var(--rb-sage); background: none; }
.wp-block-button.is-style-rb-light .wp-block-button__link { background: var(--rb-cream); color: var(--rb-umber); }
.wp-block-button.is-style-rb-light .wp-block-button__link:hover { background: var(--rb-sage); color: var(--rb-white); }
.wp-block-buttons { gap: 1.25rem 2rem; align-items: center; }

/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.rb-header {
	background: color-mix(in srgb, var(--rb-cream) 93%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--rb-line);
}
.rb-header-inner { min-height: 80px; gap: 1.5rem; }
.rb-mark { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--rb-umber); }
.rb-mark svg { width: 26px; height: 30px; flex: none; }
.rb-mark span { font-family: var(--rb-display); font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1; white-space: nowrap; }
.rb-mark em { font-family: var(--rb-accent); font-style: italic; color: var(--rb-sage); font-size: 1.08em; }
.rb-nav { gap: 2.2rem; font-size: .9rem; }
.rb-nav .wp-block-navigation-item__content { color: var(--rb-taupe); padding: .4rem 0; text-decoration: none; }
.rb-nav .wp-block-navigation-item__content:hover,
.rb-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--rb-umber); }
.rb-nav .rb-nav-cta > .wp-block-navigation-item__content {
	background: var(--rb-umber);
	color: var(--rb-cream);
	padding: .8rem 1.4rem;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.rb-nav .rb-nav-cta > .wp-block-navigation-item__content:hover { background: var(--rb-sage); color: var(--rb-white); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--rb-cream) !important; background-image: var(--rb-limewash) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--rb-display); font-size: 2.2rem; color: var(--rb-umber); }
.wp-block-navigation__responsive-container.is-menu-open .rb-nav-cta > .wp-block-navigation-item__content { font-family: var(--rb-body); font-size: .8rem; margin-top: 1rem; }

/* ---------- Footer ---------- */
.rb-footer { padding-top: clamp(4rem, 8vw, 6rem); padding-bottom: 2rem; border-top: 1px solid var(--rb-line); position: relative; overflow: hidden; }
.rb-footer::before {
	content: "";
	position: absolute;
	width: 520px;
	height: 520px;
	right: -140px;
	top: -60px;
	opacity: .16;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-fan) center / contain no-repeat;
	mask: var(--rb-fan) center / contain no-repeat;
	transform: rotate(-14deg);
	pointer-events: none;
}
.rb-footer > * { position: relative; }
.rb-footer-big { font-family: var(--rb-display); font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: 1.05; max-width: 11em; }
.rb-footer-links { line-height: 2; font-size: .95rem; }
.rb-footer-links a { text-decoration: none; }
.rb-footer-legal { margin-top: 3rem !important; padding-top: 1.5rem; border-top: 1px solid var(--rb-line); font-size: .8rem; color: var(--rb-taupe); }
.rb-footer-legal p { margin: 0; }

/* ---------- Images: arches, frames and sprigs ---------- */
.is-style-rb-arch img, .is-style-rb-arch.wp-block-post-featured-image img, .is-style-rb-arch .wp-block-post-featured-image__overlay { border-radius: var(--rb-arch); }
.is-style-rb-arch, .is-style-rb-arch-framed { overflow: visible; }
.is-style-rb-arch-framed { position: relative; padding: 14px; }
.is-style-rb-arch-framed::before {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid var(--rb-stone);
	border-radius: var(--rb-arch);
	pointer-events: none;
}
.is-style-rb-arch-framed img { border-radius: var(--rb-arch); }
.is-style-rb-soft img { border-radius: 18px; }
.wp-block-image img, .wp-block-post-featured-image img { display: block; }
.wp-block-image.is-style-rb-arch img, .wp-block-image.is-style-rb-arch-framed img { width: 100%; }
.wp-block-post-featured-image { overflow: hidden; }
.wp-block-post-featured-image.is-style-rb-arch { overflow: hidden; border-radius: var(--rb-arch); }
.rb-sprig { position: relative; }
.rb-sprig::after {
	content: "";
	position: absolute;
	z-index: 2;
	width: 150px;
	height: 198px;
	left: -62px;
	bottom: -34px;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-olive) center / contain no-repeat;
	mask: var(--rb-olive) center / contain no-repeat;
	transform: rotate(-16deg);
	pointer-events: none;
}
@media (max-width: 860px) { .rb-sprig::after { width: 104px; height: 138px; left: -12px; bottom: -24px; } }
.wp-block-image a img, .wp-block-post-featured-image a img { transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.wp-block-post-featured-image a:hover img { transform: scale(1.04); }

/* Groups as cards */
.is-style-rb-card { background: var(--rb-white); border: 1px solid var(--rb-stone); border-radius: 4px; padding: 2rem; }
.is-style-rb-arch-card { background: var(--rb-white); border: 1px solid var(--rb-line); border-radius: 220px 220px 4px 4px; padding: 3.5rem 1.75rem 2rem; height: 100%; }

/* Lists */
.is-style-rb-dots { list-style: none; padding-left: 0; }
.is-style-rb-dots li { position: relative; padding: .7rem 0 .7rem 1.25rem; border-top: 1px solid var(--rb-line); font-size: .97rem; }
.is-style-rb-dots li::before { content: ""; position: absolute; left: 0; top: 1.3rem; width: 7px; height: 7px; border-radius: 50%; background: var(--rb-sage); }
.is-style-rb-lines { list-style: none; padding-left: 0; }
.is-style-rb-lines li { padding: .75rem 0; border-top: 1px solid var(--rb-line); }
.rb-two-col { columns: 2; column-gap: 2rem; }
.rb-two-col li { break-inside: avoid; }
@media (max-width: 600px) { .rb-two-col { columns: 1; } }

/* Separator style */
.wp-block-separator.is-style-rb-olive { border: 0; height: 40px; background: none; display: flex; align-items: center; gap: 18px; opacity: 1; position: relative; }
.wp-block-separator.is-style-rb-olive::before { content: ""; position: absolute; inset: 50% 0 auto; height: 1px; background: var(--rb-stone); }
.wp-block-separator.is-style-rb-olive::after { content: ""; position: relative; margin: 0 auto; width: 40px; height: 40px; background: var(--rb-cream); -webkit-mask: var(--rb-olive) center / 28px no-repeat; mask: var(--rb-olive) center / 28px no-repeat; background-color: var(--rb-sage); transform: rotate(90deg); }

/* ---------- Layout helpers ---------- */
.rb-head-row { margin-bottom: clamp(2rem, 4vw, 3.5rem) !important; gap: 1.5rem; }
.rb-head-row h2 { margin: .5rem 0 0; }
.rb-head-row .rb-head > p:not(.is-style-rb-label) { color: var(--rb-taupe); max-width: 36em; margin-top: 1rem; }
.rb-split { align-items: center !important; gap: clamp(2rem, 6vw, 6rem) !important; }
.rb-split h2 { margin-top: .6rem; }
.rb-reverse { flex-direction: row; }
@media (max-width: 781px) { .rb-reverse { flex-direction: column-reverse; } }
.rb-cap { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: .9rem; color: var(--rb-taupe); margin-top: .9rem; }
.rb-cap strong { font-family: var(--rb-display); font-weight: 400; font-size: 1.45rem; color: var(--rb-umber); }

/* Hero */
.rb-hero-cols { align-items: flex-end !important; gap: clamp(2rem, 6vw, 6rem) !important; }
.rb-hero h1 { margin-top: 1.25rem; }
.rb-hero .is-style-rb-lead { margin-top: 1.75rem; }
.rb-hero .wp-block-buttons { margin-top: 2.25rem; }
.rb-hero-facts { list-style: none; padding: 1.6rem 0 0; margin-top: 3.25rem; border-top: 1px solid var(--rb-line); display: flex; flex-wrap: wrap; gap: 1rem 2.75rem; font-size: .85rem; color: var(--rb-taupe); }
.rb-hero-facts strong { display: block; font-family: var(--rb-display); font-weight: 400; font-size: 2.4rem; line-height: 1.1; color: var(--rb-umber); }
.rb-hero .is-style-rb-arch-framed img { animation: rb-rise 1.4s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes rb-rise { from { clip-path: inset(18% 0 0 0 round 999px 999px 0 0); } to { clip-path: inset(0 0 0 0 round 999px 999px 0 0); } }

.rb-hero-full { position: relative; min-height: clamp(460px, 78vh, 800px); display: flex; align-items: flex-end; color: var(--rb-white); overflow: hidden; }
.rb-hero-full .rb-bg { position: absolute; inset: 0; margin: 0 !important; max-width: none !important; width: 100%; }
.rb-hero-full .rb-bg img { width: 100%; height: 100%; object-fit: cover; }
.rb-hero-full::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(45, 33, 22, 0) 35%, rgba(45, 33, 22, .6)); }
.rb-hero-full-text { position: relative; z-index: 1; padding-block: 4rem; }
.rb-hero-full .is-style-rb-label { color: rgba(255, 255, 255, .88); }
.rb-hero-full h2 { max-width: 12em; color: var(--rb-white); }
.rb-hero-full h2 em, .rb-parallax h2 em { color: #F3E7D3; }

.rb-centred { text-align: center; }
.rb-centred .is-style-rb-lead { margin-inline: auto; }

.rb-page-head { padding-top: clamp(3rem, 8vw, 7rem); padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.rb-page-head h1 { margin-top: 1rem; }
.rb-page-head .is-style-rb-lead { margin-top: 1.5rem; }

/* Intro */
.rb-intro { gap: 2.5rem !important; }
.rb-principles { margin-top: 4.5rem !important; gap: 2.5rem !important; }
.rb-principles > .wp-block-column { border-top: 1px solid var(--rb-umber); padding-top: 1.4rem; }
.rb-principles h3 { font-size: 1.75rem; }
.rb-principles p { color: var(--rb-taupe); font-size: 1rem; margin-top: .6rem; }

/* Service cards */
.rb-svc-grid { gap: 2rem !important; }
.rb-svc-grid > .wp-block-column { position: relative; }
.rb-svc-grid h3 { font-size: 2.1rem; margin-top: .4rem; }
.rb-svc-grid p:not(.rb-kicker):not(.rb-tag) { color: var(--rb-taupe); font-size: 1rem; }
.rb-svc-grid .rb-kicker { margin-top: 1.25rem; }
.rb-tag {
	position: absolute;
	z-index: 3;
	top: 34px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0 !important;
	background: var(--rb-cream);
	padding: .45rem .9rem;
	border-radius: 999px;
	font-size: .66rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	white-space: nowrap;
}
.rb-scope-note {
	margin-top: clamp(3rem, 6vw, 4.5rem) !important;
	padding: 1.6rem 1.9rem;
	border: 1px solid var(--rb-stone);
	border-radius: 4px;
	background: var(--rb-white);
	gap: 1.25rem 2rem;
}
.rb-scope-note::before {
	content: "";
	width: 30px;
	height: 40px;
	flex: none;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-olive) center / contain no-repeat;
	mask: var(--rb-olive) center / contain no-repeat;
	transform: rotate(-20deg);
}
.rb-scope-note > p { flex: 1 1 300px; color: var(--rb-taupe); margin: 0; }
.rb-scope-note strong { color: var(--rb-umber); font-weight: 500; }

/* Service detail */
.rb-svc-detail h2 { font-size: clamp(2.6rem, 5vw, 4.5rem); }
.rb-svc-detail .is-style-rb-lead { font-family: var(--rb-display); font-size: clamp(1.25rem, 2vw, 1.5rem); color: var(--rb-umber); line-height: 1.45; }
.rb-best { color: var(--rb-taupe); margin-top: 1.75rem; max-width: 34em; }
.rb-best strong { display: block; font-weight: 500; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-umber); margin-bottom: .35rem; }
.rb-svc-detail .wp-block-buttons { margin-top: 2rem; }

/* Compare table */
.rb-compare { overflow-x: auto; }
.rb-compare table { min-width: 640px; border-collapse: collapse; width: 100%; }
.rb-compare th, .rb-compare td { border: 0; border-bottom: 1px solid var(--rb-line); padding: 1rem .9rem; text-align: center; font-size: .95rem; font-weight: 300; }
.rb-compare th:first-child, .rb-compare td:first-child { text-align: left; }
.rb-compare thead th { font-family: var(--rb-display); font-size: 1.35rem; border-bottom: 1px solid var(--rb-umber); vertical-align: bottom; }
.rb-compare td:not(:first-child) { color: var(--rb-sage); font-family: var(--rb-accent); font-style: italic; font-size: 1.1rem; }
.rb-compare tbody tr:hover { background: rgba(236, 225, 209, .5); }

/* Selected work and project grids */
.rb-selected .wp-block-post-template { gap: 2rem; }
.rb-selected .wp-block-post-title, .rb-work-grid .wp-block-post-title, .rb-hover-list .wp-block-post-title { font-size: 2rem; margin-top: 1.1rem; }
.wp-block-post-title a { text-decoration: none; }
.rb-card-sub { color: var(--rb-taupe); font-size: .92rem; }
.rb-card-sub .wp-block-post-excerpt__excerpt { margin: .25rem 0 0; }
.rb-work-grid .wp-block-post-template { gap: 4.5rem 2.5rem; }
@media (min-width: 782px) {
	.rb-work-grid .wp-block-post-template > li:nth-child(even) { margin-top: 7rem; }
	.rb-work-grid .wp-block-post-template > li:nth-child(4n+1) .wp-block-post-featured-image,
	.rb-work-grid .wp-block-post-template > li:nth-child(4n+1) .wp-block-post-featured-image img { border-radius: var(--rb-arch); }
}

/* Before / after */
.rb-before-after { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--rb-beige); user-select: none; --pos: 50%; }
.rb-before-after > figure { position: absolute !important; inset: 0; margin: 0 !important; max-width: none !important; width: 100%; height: 100%; }
.rb-before-after img { width: 100%; height: 100%; object-fit: cover; }
.rb-before-after .rb-ba-after { clip-path: inset(0 0 0 var(--pos)); }
.rb-ba-line { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 1px; background: #fff; pointer-events: none; z-index: 2; }
.rb-ba-knob { position: absolute; z-index: 3; top: 50%; left: var(--pos); width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: var(--rb-cream); display: grid; place-items: center; font-size: 1rem; pointer-events: none; box-shadow: 0 6px 20px rgba(0, 0, 0, .2); }
.rb-ba-tag { position: absolute; z-index: 3; bottom: 16px; padding: 6px 12px; border-radius: 999px; background: rgba(29, 28, 26, .6); color: #fff; font-size: .65rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; pointer-events: none; }
.rb-ba-tag.l { left: 16px; } .rb-ba-tag.r { right: 16px; }
.rb-before-after input[type=range] { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }

/* Process */
.rb-process { gap: 2rem !important; }
.rb-process .rb-kicker { margin-top: 1.6rem; }
.rb-process h3 { font-size: 2.2rem; }
.rb-process p:not(.rb-kicker) { color: var(--rb-taupe); font-size: 1rem; }

/* Closing CTA */
.rb-closing h2 { font-size: clamp(2.8rem, 6vw, 5.4rem); margin-top: .8rem; }
.rb-closing .wp-block-buttons { margin-top: 2.25rem; }

/* Marquee */
.rb-marquee { overflow: hidden; border-block: 1px solid var(--rb-line); padding-block: 1.75rem; }
.rb-marquee > p { margin: 0; white-space: nowrap; font-family: var(--rb-display); font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; }
.rb-marquee em { font-family: var(--rb-accent); font-style: italic; color: var(--rb-sage); font-size: 1.08em; }
.rb-marquee-track { display: flex; width: max-content; animation: rb-marq 40s linear infinite; }
.rb-marquee-track > p { margin: 0 !important; padding-right: 2.5rem; }
.rb-marquee:hover .rb-marquee-track { animation-play-state: paused; }
.rb-sep { display: inline-block; width: 26px; height: 34px; margin: 0 1.25rem; vertical-align: middle; background: var(--rb-sage); -webkit-mask: var(--rb-olive) center / contain no-repeat; mask: var(--rb-olive) center / contain no-repeat; }
@keyframes rb-marq { to { transform: translateX(-50%); } }

/* Reveal text */
.rb-reveal { font-family: var(--rb-display); font-size: clamp(1.8rem, 3.6vw, 3.2rem); line-height: 1.28; max-width: 22em; }
.rb-reveal .rb-w { color: #CDBFAC; transition: color .35s; }
.rb-reveal .rb-w.on { color: var(--rb-umber); }

/* Pull quote */
.rb-pull { position: relative; padding-left: clamp(4.5rem, 10vw, 9rem); max-width: 1000px; }
.rb-pull::before { content: "“"; position: absolute; left: 0; top: -.1em; font-family: var(--rb-display); font-size: clamp(7rem, 14vw, 11rem); line-height: .8; color: var(--rb-sage); }
.rb-pull-text { font-family: var(--rb-display); font-size: clamp(1.8rem, 3.4vw, 2.9rem); line-height: 1.25; }
.rb-pull-cite { font-family: var(--rb-accent); font-style: italic; font-size: 1.3rem; color: var(--rb-taupe); }

/* Testimonial slider */
.rb-slider { text-align: center; max-width: 920px; margin-inline: auto; }
.rb-slider .wp-block-quote { border: 0; padding: 0; margin: 0; }
.rb-slider .wp-block-quote p { font-size: clamp(1.6rem, 3.2vw, 2.5rem); line-height: 1.35; }
.rb-slider .wp-block-quote cite { display: block; margin-top: 1.4rem; font-family: var(--rb-body); font-style: normal; font-size: .7rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-taupe); }
.rb-slider.is-ready .rb-slides { display: grid; }
.rb-slider.is-ready .wp-block-quote { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s, visibility .6s; }
.rb-slider.is-ready .wp-block-quote.on { opacity: 1; visibility: visible; }
.rb-slider-ctrl { display: flex; justify-content: center; align-items: center; gap: 1.25rem; margin-top: 2.4rem; }
.rb-circle { width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--rb-umber); background: transparent; color: var(--rb-umber); cursor: pointer; font-size: 1.05rem; display: inline-grid; place-items: center; flex: none; transition: background .2s, color .2s; }
.rb-circle:hover { background: var(--rb-umber); color: var(--rb-cream); }
.rb-dots { display: flex; gap: 4px; }
.rb-dots button { width: 22px; height: 22px; border: 0; padding: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.rb-dots button::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rb-stone); }
.rb-dots button[aria-current="true"]::before { background: var(--rb-umber); }

/* Arch trio */
.rb-trio { align-items: flex-end !important; gap: 1.5rem !important; }

/* Bento */
.rb-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; grid-auto-flow: dense; gap: 16px; }
.rb-bento > * { position: relative; overflow: hidden; border-radius: 4px; margin: 0 !important; min-width: 0; }
.rb-bento > figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; }
.rb-bento > figure:hover img { transform: scale(1.04); }
.rb-bento figcaption { position: absolute; left: 14px; bottom: 14px; margin: 0; background: var(--rb-cream); color: var(--rb-umber); padding: 6px 12px; border-radius: 999px; font-size: .78rem; }
.rb-b-big { grid-column: span 2; grid-row: span 2; }
.rb-b-wide { grid-column: span 2; }
.rb-b-tall { grid-row: span 2; }
.rb-tile { background-color: var(--rb-beige); padding: 1.6rem; display: flex; flex-direction: column; justify-content: space-between; }
.rb-tile > * { margin: 0 !important; }
.rb-tile-num { font-family: var(--rb-display); font-size: 3.75rem; line-height: 1; }
.rb-tile-label { color: var(--rb-taupe); font-size: .95rem; }
.rb-tile-q { background: var(--rb-sage); color: var(--rb-white); }
.rb-tile-q .rb-tile-label { color: rgba(255, 255, 255, .8); }
.rb-tile-quote { font-family: var(--rb-accent); font-style: italic; font-size: 1.45rem; line-height: 1.3; }
@media (max-width: 860px) { .rb-bento { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; } }

/* Sideways gallery */
.rb-hscroll { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 18px; cursor: grab; user-select: none; scrollbar-width: thin; scrollbar-color: var(--rb-stone) transparent; }
.rb-hscroll > figure { flex: none; width: clamp(240px, 28vw, 360px); margin: 0 !important; scroll-snap-align: start; }
.rb-hscroll > figure:nth-child(odd) img { border-radius: var(--rb-arch); }
.rb-hscroll img { -webkit-user-drag: none; }
.rb-hscroll figcaption { text-align: left; margin-top: .75rem; font-size: .9rem; color: var(--rb-taupe); }
.rb-hscroll figcaption strong { display: block; font-family: var(--rb-display); font-weight: 400; font-size: 1.45rem; color: var(--rb-umber); }
.rb-hs-ctrl { display: flex; gap: 10px; }

/* Parallax */
.rb-parallax { position: relative; min-height: clamp(380px, 64vh, 640px); overflow: hidden; display: grid; place-items: center; color: var(--rb-white); }
.rb-parallax .rb-bg { position: absolute; left: 0; top: -15%; width: 100%; height: 130%; margin: 0 !important; max-width: none !important; }
.rb-parallax .rb-bg img { width: 100%; height: 100%; object-fit: cover; will-change: transform; }
.rb-parallax::after { content: ""; position: absolute; inset: 0; background: rgba(45, 33, 22, .32); }
.rb-parallax h2 { position: relative; z-index: 1; color: var(--rb-white); max-width: 12em; padding-inline: 20px; }

/* Masonry gallery */
.wp-block-gallery.rb-masonry { display: block !important; columns: 3 240px; column-gap: 16px; }
.wp-block-gallery.rb-masonry > figure.wp-block-image { width: 100% !important; margin: 0 0 16px !important; break-inside: avoid; display: block; }
.wp-block-gallery.rb-masonry img { width: 100%; height: auto !important; }

/* Hotspots */
.rb-hotspots { position: relative; }
.rb-hotspots > figure { margin: 0 !important; }
.rb-hotspots > figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 700px) { .rb-hotspots > figure img { aspect-ratio: 4 / 3; } }
.rb-spot { margin: 0 !important; }
.rb-hotspots.is-ready .rb-spot { position: absolute; z-index: 2; transform: translate(-50%, -50%); }
.rb-hotspots.is-ready .rb-spot.open { z-index: 3; }
.rb-spot-btn { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--rb-cream); color: var(--rb-umber); font: 300 22px/1 var(--rb-body); cursor: pointer; box-shadow: 0 0 0 6px rgba(246, 240, 231, .35); animation: rb-pulse 2.6s ease-in-out infinite; transition: transform .3s; }
.rb-spot.open .rb-spot-btn { transform: rotate(45deg); }
.rb-hotspots.is-ready .rb-spot > p { position: absolute; left: 50%; bottom: calc(100% + 14px); transform: translateX(-50%); width: min(240px, 64vw); margin: 0; background: var(--rb-cream); padding: 1rem 1.1rem; border-radius: 6px; box-shadow: 0 16px 34px -14px rgba(50, 35, 20, .5); font-size: .88rem; line-height: 1.55; color: var(--rb-taupe); }
.rb-hotspots.is-ready .rb-spot:not(.open) > p { display: none; }
.rb-spot strong { display: block; font-family: var(--rb-display); font-weight: 400; font-size: 1.25rem; color: var(--rb-umber); margin-bottom: .2rem; }
@keyframes rb-pulse { 50% { box-shadow: 0 0 0 13px rgba(246, 240, 231, .08); } }

/* Hover project list */
.rb-hover-list .wp-block-post-template { border-top: 1px solid var(--rb-umber); }
.rb-hover-list .wp-block-post-template > li { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 1.5rem; padding-block: 1.5rem; border-bottom: 1px solid var(--rb-line); margin: 0; transition: padding .4s; }
.rb-hover-list .wp-block-post-template > li:hover { padding-left: 1.1rem; }
.rb-hover-list .wp-block-post-title { margin: 0 !important; font-size: clamp(1.8rem, 3.6vw, 3rem) !important; }
.rb-hover-list .wp-block-post-title a:hover { color: var(--rb-sage); }
.rb-hover-list .rb-hl-img { display: none; }
.rb-hover-list .rb-card-sub .wp-block-post-excerpt__excerpt { margin: 0; }
.rb-float { position: fixed; z-index: 90; left: 0; top: 0; width: 240px; aspect-ratio: 4 / 5; border-radius: var(--rb-arch); overflow: hidden; pointer-events: none; opacity: 0; transform: translate(-50%, -55%) scale(.85); transition: opacity .3s, transform .35s; }
.rb-float.on { opacity: 1; transform: translate(-50%, -55%) scale(1); }
.rb-float img { width: 100%; height: 100%; object-fit: cover; }
@media (hover: none) { .rb-float { display: none; } }

/* Scroll story */
.rb-story { gap: clamp(2rem, 6vw, 6rem) !important; align-items: flex-start !important; }
.rb-story-media { position: sticky; top: 120px; aspect-ratio: 4 / 5; }
.rb-story-media > figure { position: absolute !important; inset: 0; margin: 0 !important; opacity: 0; transition: opacity .8s ease; }
.rb-story-media > figure:first-child, .rb-story-media.is-ready > figure.on { opacity: 1; }
.rb-story-media.is-ready > figure:not(.on) { opacity: 0; }
.rb-story-media img { width: 100%; height: 100%; }
.rb-story-steps > .wp-block-group { min-height: 64vh; display: flex; flex-direction: column; justify-content: center; opacity: .35; transition: opacity .5s; margin: 0 !important; }
.rb-story-steps > .wp-block-group.on, .rb-story-steps:not(.is-ready) > .wp-block-group { opacity: 1; }
.rb-story-steps h3 { font-size: clamp(2rem, 3.8vw, 3.2rem); }
.rb-story-steps p:not(.is-style-rb-label) { color: var(--rb-taupe); max-width: 28em; }
@media (max-width: 781px) {
	.rb-story-media { position: relative; top: 0; }
	.rb-story-steps > .wp-block-group { min-height: 0; opacity: 1; padding-block: 1.4rem; }
}

/* Tabs */
.rb-tablist { display: flex; flex-wrap: wrap; gap: .5rem 2rem; border-bottom: 1px solid var(--rb-line); margin-bottom: 2.25rem; }
.rb-tablist button { background: none; border: 0; border-bottom: 1px solid transparent; margin-bottom: -1px; padding: 0 0 .9rem; font: 400 clamp(1.35rem, 2.6vw, 2rem)/1 var(--rb-display); color: var(--rb-taupe); cursor: pointer; }
.rb-tablist button[aria-selected="true"] { color: var(--rb-umber); border-color: var(--rb-umber); }
.rb-tabs.is-ready .rb-tab-label { display: none; }
.rb-tabs.is-ready .rb-tab[hidden] { display: none !important; }
.rb-tab-label { font-family: var(--rb-display); font-size: 1.6rem; }
.rb-tab h3 { font-size: 2.1rem; }
.rb-tab p { color: var(--rb-taupe); }

/* Stats */
.rb-stats { gap: 2rem !important; }
.rb-stats > .wp-block-column { border-top: 1px solid var(--rb-umber); padding-top: 1.25rem; }
.rb-count { font-family: var(--rb-display); font-size: clamp(3.2rem, 6vw, 5.4rem); line-height: 1; font-variant-numeric: lining-nums tabular-nums; margin-bottom: .4rem; }
.rb-stats p:not(.rb-count) { color: var(--rb-taupe); font-size: .95rem; margin-top: 0; }

/* Features with line icons */
.rb-features { gap: 1.25rem !important; }
.rb-features p { color: var(--rb-taupe); font-size: .95rem; }
.rb-features h3 { font-size: 1.6rem; }
[class*="rb-icon-"]::before {
	content: "";
	display: block;
	width: 46px;
	height: 46px;
	margin: .5rem auto 1.1rem;
	background: var(--rb-sage);
	-webkit-mask: var(--rb-icon) center / contain no-repeat;
	mask: var(--rb-icon) center / contain no-repeat;
}
.rb-icon-arch { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M10 44V22a14 14 0 0 1 28 0v22M17 44V24a7 7 0 0 1 14 0v20M5 44h38'/%3E%3C/svg%3E"); }
.rb-icon-sun { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Ccircle cx='24' cy='24' r='8'/%3E%3Cpath d='M24 4v6M24 38v6M4 24h6M38 24h6M9.9 9.9l4.2 4.2M33.9 33.9l4.2 4.2M9.9 38.1l4.2-4.2M33.9 14.1l4.2-4.2'/%3E%3C/svg%3E"); }
.rb-icon-leaf { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M10 38C10 20 22 8 40 8c0 18-12 30-30 30zM10 38L30 18'/%3E%3C/svg%3E"); }
.rb-icon-drop { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M24 6S12 20 12 29a12 12 0 0 0 24 0C36 20 24 6 24 6zM18 30a6 6 0 0 0 6 6'/%3E%3C/svg%3E"); }
.rb-icon-plan { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M6 8h36v32H6zM6 22h16v18M22 8v8M30 22h12'/%3E%3C/svg%3E"); }
.rb-icon-key { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M14 6h8l3 9-5 3a24 24 0 0 0 10 10l3-5 9 3v8a4 4 0 0 1-4 4C21 38 10 27 10 10a4 4 0 0 1 4-4z'/%3E%3C/svg%3E"); }
.rb-icon-mail { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Crect x='6' y='11' width='36' height='26' rx='2'/%3E%3Cpath d='M6 13l18 13 18-13'/%3E%3C/svg%3E"); }
.rb-icon-pin { --rb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M24 44s14-14 14-24a14 14 0 0 0-28 0c0 10 14 24 14 24z'/%3E%3Ccircle cx='24' cy='20' r='5'/%3E%3C/svg%3E"); }
p[class*="rb-icon-"]::before { width: 36px; height: 36px; }

/* Material swatches */
.rb-swatches { gap: 1.5rem !important; }
.rb-sw { border-radius: var(--rb-arch); border: 1px solid var(--rb-line); height: auto !important; aspect-ratio: 1; }
.rb-sw-lime { background-color: #F2EBDF; background-image: var(--rb-limewash); background-size: 260px; }
.rb-sw-trav { background: repeating-linear-gradient(176deg, #E8DAC5 0 9px, #DCCAB0 9px 11px, #EADDCA 11px 23px, #D6C3A7 23px 24px); }
.rb-sw-oak { background: repeating-linear-gradient(93deg, #B48E66 0 6px, #A27B53 6px 8px, #BC976E 8px 15px, #99734C 15px 16px); }
.rb-sw-terra { background-color: #C4805F; background-image: linear-gradient(#AE6C4D 2px, transparent 2px), linear-gradient(90deg, #AE6C4D 2px, transparent 2px); background-size: 46px 46px; }
.rb-swatches h3 { font-size: 1.6rem; margin-top: 1rem; }
.rb-swatches p { color: var(--rb-taupe); font-size: .92rem; }

/* Steps / timeline */
.rb-steps { position: relative; max-width: 880px; }
.rb-steps::before { content: ""; position: absolute; left: 90px; top: 12px; bottom: 30px; width: 1px; background: var(--rb-stone); }
.rb-step { position: relative; display: grid; grid-template-columns: 90px 1fr; gap: 2.25rem; padding-bottom: 2.75rem; margin: 0 !important; }
.rb-step::before { content: ""; position: absolute; left: 85px; top: 9px; width: 11px; height: 11px; border-radius: 50%; background: var(--rb-cream); border: 1px solid var(--rb-sage); }
.rb-step > * { margin: 0 !important; }
.rb-step-key { font-family: var(--rb-accent); font-style: italic; font-size: 1.55rem; line-height: 1; color: var(--rb-sage); }
.rb-step h3 { font-size: 1.75rem; }
.rb-step-body p { color: var(--rb-taupe); margin-top: .35rem; }

/* Phase heads and cards */
.rb-phase-head { align-items: flex-end !important; margin-bottom: clamp(2.5rem, 5vw, 3.5rem) !important; }
.rb-big-key { font-family: var(--rb-display); font-size: clamp(5.5rem, 13vw, 11rem); line-height: .85; color: var(--rb-stone); }
.rb-phase-head h2 { margin-top: .5rem; }
.rb-phase-head p:not(.is-style-rb-label):not(.rb-big-key) { color: var(--rb-taupe); max-width: 32em; }
.rb-phases { gap: 1.25rem !important; }
.rb-phases h3 { font-size: 2.2rem; }
.rb-phases p { color: var(--rb-taupe); font-size: .97rem; }
.rb-pill { display: table; margin: 1.25rem auto 0 !important; padding: .4rem .9rem; border-radius: 999px; background: var(--rb-beige); color: var(--rb-umber) !important; font-size: .82rem !important; }
.rb-options { gap: 1.25rem !important; }
.rb-options h3 { font-size: 1.9rem; margin-top: .4rem; }
.rb-options p:not(.rb-kicker) { color: var(--rb-taupe); }

/* Value engineering */
.rb-ve { gap: 1.25rem !important; }
.rb-ve > .wp-block-column { padding: 2rem 1.75rem; border-radius: 4px; }
.rb-ve-must { background: var(--rb-umber); color: var(--rb-cream); }
.rb-ve-must h3 { color: var(--rb-cream); }
.rb-ve-must li { border-color: rgba(246, 240, 231, .18) !important; }
.rb-ve-nice { background: var(--rb-white); border: 1px solid var(--rb-line); }
.rb-ve-later { background-color: var(--rb-beige); background-image: var(--rb-limewash); border: 1px dashed var(--rb-stone); }
.rb-ve h3 { font-size: 2rem; }
.rb-ve-sub { font-size: .88rem; opacity: .75; margin-top: .25rem; }

/* Team */
.rb-team { gap: 1.75rem !important; }
.rb-team h3 { font-size: 1.7rem; margin-top: 1.1rem; }
.rb-team p { color: var(--rb-taupe); font-size: .95rem; margin-top: .2rem; }

/* FAQ */
.rb-faq { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.wp-block-details { border-top: 1px solid var(--rb-line); padding: 0; }
.wp-block-details:last-child { border-bottom: 1px solid var(--rb-line); }
.wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: baseline; gap: 1.25rem; padding-block: 1.35rem; font-family: var(--rb-display); font-size: clamp(1.2rem, 2.1vw, 1.6rem); line-height: 1.3; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font: 300 1.8rem/1 var(--rb-body); color: var(--rb-sage); transition: transform .3s; flex: none; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > p { color: var(--rb-taupe); padding-bottom: 1.5rem; margin-top: 0; max-width: 40em; }

/* Logos */
.rb-logos { gap: 1.75rem 3rem; padding-block: 2rem; border-block: 1px solid var(--rb-line); margin-top: 1.25rem !important; }
.rb-logos p { margin: 0; font-family: var(--rb-display); font-size: 1.7rem; color: var(--rb-taupe); letter-spacing: .03em; }
.rb-logos em { font-family: var(--rb-accent); font-size: 1.1em; }
.rb-logos .rb-logo-caps { font-family: var(--rb-body); font-size: .85rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; }

/* Chips */
.rb-chips { gap: .6rem; }
.rb-chips p { margin: 0; border: 1px solid var(--rb-stone); border-radius: 999px; padding: .65rem 1.2rem; font-size: .95rem; background: var(--rb-white); display: inline-flex; align-items: center; gap: .6rem; }
.rb-chips p::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rb-sage); }

/* Contact cards */
.rb-cards { gap: 1.25rem !important; }
.rb-card-big { font-family: var(--rb-display); font-size: 1.5rem; line-height: 1.3; overflow-wrap: anywhere; margin-top: .5rem; }
.rb-card-big a { text-decoration: none; }

/* Newsletter card */
.rb-newsletter-card { padding: clamp(1.75rem, 5vw, 4rem); border-radius: 4px; }

/* Contact page */
.rb-contact { gap: clamp(2.5rem, 7vw, 7rem) !important; align-items: flex-start !important; }
.rb-details { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: 1.5rem; }
.rb-details li { border-top: 1px solid var(--rb-line); padding-top: .9rem; font-family: var(--rb-display); font-size: 1.55rem; line-height: 1.35; }
.rb-details li span { display: block; font-family: var(--rb-body); font-size: .68rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-taupe); margin-bottom: .2rem; }
.rb-details a { text-decoration: none; }

/* ---------- Forms ---------- */
.rb-form { display: grid; gap: 1.75rem; }
.rb-topics { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.rb-topics legend { font-size: .68rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-taupe); margin-bottom: .9rem; padding: 0; }
.rb-topics label { position: relative; }
.rb-topics input { position: absolute; opacity: 0; pointer-events: none; }
.rb-topics span { display: inline-block; border: 1px solid var(--rb-line); border-radius: 999px; padding: .7rem 1.15rem; font-size: .95rem; cursor: pointer; transition: background .2s, color .2s, border-color .2s; background: var(--rb-white); }
.rb-topics input:checked + span { background: var(--rb-umber); border-color: var(--rb-umber); color: var(--rb-cream); }
.rb-topics input:focus-visible + span { outline: 1.5px solid var(--rb-sage); outline-offset: 3px; }
.rb-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem 2rem; }
.rb-fields label, .rb-newsletter label:not(.rb-consent) { display: grid; gap: .4rem; font-size: .68rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-taupe); min-width: 0; }
.rb-fields .rb-full { grid-column: 1 / -1; }
.rb-form input:not([type=radio]):not([type=checkbox]), .rb-form select, .rb-form textarea {
	font: 300 1.05rem/1.5 var(--rb-body);
	color: var(--rb-umber);
	background: transparent;
	border: 0;
	border-bottom: 1px solid #C2B9AB;
	border-radius: 0;
	padding: .6rem 0;
	width: 100%;
	letter-spacing: 0;
	text-transform: none;
}
.rb-form textarea { resize: vertical; min-height: 120px; }
.rb-form input:focus, .rb-form select:focus, .rb-form textarea:focus { outline: none; border-color: var(--rb-umber); }
.rb-consent { display: flex; gap: .7rem; align-items: flex-start; font-size: .88rem; color: var(--rb-taupe); }
.rb-consent input { margin-top: .3rem; accent-color: var(--rb-sage); }
.rb-hp { position: absolute !important; left: -9999px; }
.rb-form-end { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.25rem; }
.rb-form-end p { margin: 0; font-size: .85rem; color: var(--rb-taupe); max-width: 26em; }
.rb-form .wp-element-button { cursor: pointer; border: 0; }
.rb-form-done { font-family: var(--rb-accent); font-style: italic; font-size: 1.5rem; color: var(--rb-sage); margin: 0; }
.rb-form-error { background: #F4E4DC; border: 1px solid #D8B4A3; padding: .9rem 1.1rem; border-radius: 4px; margin: 0; font-size: .95rem; }
.rb-newsletter .rb-inline { display: flex; gap: .75rem; align-items: center; border-bottom: 1px solid var(--rb-umber); padding-bottom: .4rem; }
.rb-newsletter .rb-inline input { border: 0 !important; }
@media (max-width: 600px) { .rb-fields { grid-template-columns: 1fr; } }

/* ---------- Project pages ---------- */
.rb-project-head { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: 2.5rem; }
.rb-crumb a { text-decoration: none; }
.rb-crumb a::after { content: "  /"; }
.rb-project-head h1 { margin-top: 1rem; }
.rb-project-scope { color: var(--rb-taupe); font-size: 1.1rem; }
.rb-project-hero { margin-bottom: clamp(3rem, 6vw, 5rem) !important; }
.rb-project-body > * + * { margin-top: clamp(2.5rem, 5vw, 4rem); }
.rb-facts { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 2rem; }
.rb-facts li { border-top: 1px solid var(--rb-line); padding-top: .9rem; font-family: var(--rb-display); font-size: 1.4rem; }
.rb-facts strong { display: block; font-family: var(--rb-body); font-weight: 500; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rb-taupe); }
@media (max-width: 700px) { .rb-facts { grid-template-columns: 1fr 1fr; gap: 1rem 1.5rem; } }
.rb-story-cols { gap: clamp(2rem, 6vw, 6rem) !important; }
.rb-story-cols h3 { margin-top: .6rem; font-size: 2.1rem; }
.rb-story-cols p:not(.is-style-rb-label) { color: var(--rb-taupe); }
.rb-project-gallery figure:nth-child(2) img { border-radius: var(--rb-arch); }
.rb-next { padding-block: 3rem; margin-top: 4rem !important; border-top: 1px solid var(--rb-line); gap: 1.5rem; }
.rb-next a { text-decoration: none; font-family: var(--rb-display); font-size: clamp(1.4rem, 3vw, 2.2rem); }
.rb-next a:hover { color: var(--rb-sage); }

/* Block library page headings */
.rb-lib-cat { padding-top: clamp(4rem, 8vw, 7rem); border-top: 1px solid var(--rb-line); }
.rb-lib-cat h2 { font-size: clamp(2.6rem, 5vw, 4.5rem); }

/* Responsive columns tweaks */
@media (max-width: 781px) {
	.rb-hero-cols > .wp-block-column, .rb-split > .wp-block-column { flex-basis: 100% !important; }
	.rb-sprig::after { left: -6px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.rb-marquee-track { transform: none !important; }
}

/* Editor: keep interactive blocks readable while editing */
.editor-styles-wrapper .rb-before-after { aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.editor-styles-wrapper .rb-before-after > figure { position: static !important; }
.editor-styles-wrapper .rb-before-after .rb-ba-after { clip-path: none; }
.editor-styles-wrapper .rb-story-media { position: static; aspect-ratio: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.editor-styles-wrapper .rb-story-media > figure { position: static !important; opacity: 1; }
.editor-styles-wrapper .rb-story-steps > .wp-block-group { min-height: 0; opacity: 1; }
.editor-styles-wrapper .rb-spot { border: 1px dashed var(--rb-stone); padding: .5rem; margin-top: .5rem !important; }
.editor-styles-wrapper .rb-hover-list .rb-hl-img { display: block; max-width: 120px; }
.editor-styles-wrapper .rb-parallax .rb-bg, .editor-styles-wrapper .rb-hero-full .rb-bg { position: absolute; }
.editor-styles-wrapper body::after, .editor-styles-wrapper::after { display: none; }
