:root {
	--tb-page-gutter: clamp(1.25rem, 4vw, 3rem);
	--tb-page-section: clamp(4.5rem, 8vw, 7.5rem);
}
/* Buyer/seller pages may override these tokens; homepage sections (e.g. the reviews row) rely on the :root default above. */
/* --- Palette restore (2026-08-19): the cloned staging site lost its
   linked Global Styles color customizations, so blocks referencing these
   slugs (has-charcoal-color, has-alabaster-background-color, etc.) were
   rendering with no color at all. Re-declaring the preset custom properties
   here restores the intended brand palette regardless of that link. --- */
:root {
	--wp--preset--color--base: #FFFFFF;
	--wp--preset--color--alabaster: #FBF7EF;
	--wp--preset--color--sand: #FCF5E7;
	--wp--preset--color--ink: #2A4468;
	--wp--preset--color--charcoal: #102845;
	--wp--preset--color--stone: #FCF5E7;
	--wp--preset--color--bronze: #3E6B54;
	--wp--preset--color--coral: #EF6F9B;
	--wp--preset--color--coral-deep: #2A4468;
	--wp--preset--color--slate: #3E6B54;
	--wp--preset--color--muted: #26323A;
	--wp--preset--color--sound: #3E6B54;
	--wp--preset--color--sage: #3E6B54;
	--wp--preset--color--graphite: #26323A;
	--wp--preset--color--gold: #E2B857;
	/* Deeper gold for SMALL work only: the logo, hairline rules, icons,
	   thin underlines. Never a large field, that is what --gold is for. */
	--wp--preset--color--gold-deep: #D9A441;
	--wp--preset--color--pink-soft: #F7D5E0;
	--wp--preset--color--pink-tint: #FDF2F6;
	--wp--preset--color--sage-soft: #D7E5DB;
	--wp--preset--color--sage-tint: #EEF4EF;
	--wp--preset--color--gold-soft: #F7EBCB;
	--wp--preset--color--gold-tint: #FCF5E7;
	--wp--preset--color--navy-deep: #0A1B2E;
	--wp--preset--color--pink-soft: #F7D5E0;
	--wp--preset--color--sage-tint: #EEF4EF;
	--wp--preset--color--dusty-blush: #EF6F9B;
}

/* Polish that theme.json can't express. */

/* Smooth font rendering for the editorial look */
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Keyboard focus.
   WordPress's navigation block ships no visible focus indicator, so anyone
   tabbing through the header saw nothing move — a real barrier, and among
   the most commonly cited accessibility failures.

   :focus-visible means pointer users never see a ring, only keyboard users.
   :where() keeps specificity at zero so the component-level focus styles
   further down this file continue to win. */
:where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 3px solid var(--wp--preset--color--charcoal);
	outline-offset: 2px;
	border-radius: 2px;
}
/* Dark surfaces need a light ring instead, or the navy outline disappears
   into the background it is meant to stand out against. */
footer.wp-block-template-part :where(a[href], button):focus-visible,
.has-charcoal-background-color :where(a[href], button):focus-visible,
.has-ink-background-color :where(a[href], button):focus-visible,
.tb-renton-hero :where(a[href], button):focus-visible {
	outline-color: var(--wp--preset--color--base);
}

/* --------------------------------------------------------------------------
   Journal landing page and reusable article template
   -------------------------------------------------------------------------- */
.tb-journal-page,
.tb-article-page {
	--tb-page-gutter: clamp(1.25rem, 4vw, 3rem);
	--tb-journal-section: clamp(4rem, 7vw, 6.5rem);
}

.tb-journal-page { overflow-x: clip; }

.tb-journal-hero {
	position: relative;
	min-height: clamp(31rem, 66vh, 44rem);
	display: grid;
	place-items: center;
	overflow: hidden;
	padding: clamp(3rem, 7vw, 5rem) var(--tb-page-gutter);
}

.tb-journal-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(30, 36, 51, 0.08), rgba(30, 36, 51, 0.18));
}

.tb-journal-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.tb-journal-hero__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 650px);
	padding: clamp(2.25rem, 5vw, 4rem);
	background: rgba(251, 248, 244, 0.94);
	box-shadow: 0 22px 65px rgba(30, 36, 51, 0.16);
	text-align: center;
}

.tb-journal-hero__panel h1 {
	margin: 0;
	font-size: clamp(3rem, 6vw, 5rem);
	line-height: 0.98;
}

.tb-journal-hero__panel > p:last-child {
	max-width: 500px;
	margin: 1.4rem auto 0;
	font-size: 1.05rem;
}

.tb-journal-topics {
	border-block: 1px solid rgba(30, 36, 51, 0.16);
	background: var(--wp--preset--color--base);
}

.tb-journal-topics .tb-page-shell {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tb-journal-topics a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 74px;
	padding: 0.9rem;
	border-right: 1px solid rgba(30, 36, 51, 0.14);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.tb-journal-topics a:first-child { border-left: 1px solid rgba(30, 36, 51, 0.14); }
.tb-journal-topics a span { color: var(--wp--preset--color--charcoal); font-size: 1rem; }

.tb-journal-content {
	padding: var(--tb-journal-section) var(--tb-page-gutter);
}

.tb-journal-content > * + * { margin-top: var(--tb-journal-section); }
.tb-journal-feature-query .wp-block-post-template,
.tb-journal-card-query .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tb-journal-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(20rem, 0.75fr);
	min-height: 34rem;
	border: 1px solid rgba(30, 36, 51, 0.18);
	background: var(--wp--preset--color--base);
}

.tb-journal-feature__media,
.tb-journal-card-new__media,
.tb-article-hero {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--sand);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.tb-journal-feature__media {
	min-height: 34rem;
	background-image: url(/wp-content/themes/tanya-barrans/assets/images/lwyl-front-door.jpg);
}

.tb-journal-feature__media .wp-block-post-featured-image,
.tb-journal-card-new__media .wp-block-post-featured-image,
.tb-article-hero .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}

.tb-journal-feature__media img,
.tb-journal-card-new__media img,
.tb-article-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tb-journal-feature__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 5vw, 4.25rem);
}

.tb-journal-label,
.tb-journal-label a {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.tb-journal-feature__content .wp-block-post-title {
	margin: 0.75rem 0 1.2rem;
	font-size: clamp(2.7rem, 5vw, 4.5rem);
	line-height: 0.98;
}

.tb-journal-feature__excerpt { margin: 0; line-height: 1.75; }
.tb-journal-feature__excerpt .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 1.2rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.tb-journal-date { margin-top: 1.2rem; color: var(--wp--preset--color--graphite); font-size: 0.75rem; }

.tb-editorial-heading {
	display: grid;
	grid-template-columns: minmax(2rem, 1fr) auto minmax(2rem, 1fr);
	gap: 1.2rem;
	align-items: center;
	margin-bottom: clamp(2rem, 4vw, 3rem);
	text-align: center;
}
.tb-editorial-heading span { height: 1px; background: rgba(30, 36, 51, 0.28); }
.tb-editorial-heading h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.4rem); }

.tb-journal-card-query .wp-block-post-template { gap: 1.25rem; }
.tb-journal-card-new {
	overflow: hidden;
	border: 1px solid rgba(30, 36, 51, 0.17);
	background: var(--wp--preset--color--base);
	transition: transform 180ms ease, box-shadow 180ms ease;
}
.tb-journal-card-new:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 38px rgba(30, 36, 51, 0.1);
}
.tb-journal-card-new__media {
	aspect-ratio: 4 / 3;
	background-image: url(/wp-content/themes/tanya-barrans/assets/images/lwyl-living-room.jpg);
}
.tb-journal-card-query .wp-block-post:nth-child(2n) .tb-journal-card-new__media {
	background-image: url(/wp-content/themes/tanya-barrans/assets/images/lwyl-coffee-bar.jpg);
}
.tb-journal-card-query .wp-block-post:nth-child(3n) .tb-journal-card-new__media {
	background-image: url(/wp-content/themes/tanya-barrans/assets/images/lwyl-garden-shed.jpg);
}
.tb-journal-card-new__content { padding: 1.5rem; }
.tb-journal-card-new .wp-block-post-title {
	margin: 0.45rem 0 0.7rem;
	font-size: clamp(1.65rem, 3vw, 2.15rem);
	line-height: 1.02;
}
.tb-journal-card-new__excerpt { margin: 0; font-size: 0.92rem; line-height: 1.65; }
.tb-journal-card-new__excerpt .wp-block-post-excerpt__more-link,
.tb-journal-read-link {
	display: block;
	margin-top: 1rem;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.tb-journal-card-new--compact .tb-journal-card-new__media { aspect-ratio: 3 / 2; }
.tb-query-empty { display: none; }
.tb-journal-latest-section:has(.tb-query-empty) { display: none; }

.tb-journal-page .tb-newsletter-feature,
.tb-article-page .tb-newsletter-feature {
	width: min(calc(100% - (2 * var(--tb-page-gutter))), 1200px);
	min-height: 420px;
	margin: 0 auto var(--tb-journal-section);
	grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr);
	background: var(--wp--preset--color--sand);
}
.tb-journal-page .tb-newsletter-feature__content,
.tb-article-page .tb-newsletter-feature__content { padding: clamp(2.5rem, 5vw, 4.5rem); }

.tb-journal-tanya-cta {
	padding-block: clamp(2.5rem, 5vw, 4rem);
	background: var(--wp--preset--color--sage-soft);
	color: var(--wp--preset--color--charcoal);
}
.tb-journal-tanya-cta__inner {
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr) auto;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
}
.tb-journal-tanya-cta img {
	width: 9rem;
	height: 9rem;
	border: 5px solid rgba(16, 40, 69, 0.18);
	border-radius: 50%;
	object-fit: cover;
}
.tb-journal-tanya-cta h2 { margin: 0 0 0.5rem; color: var(--wp--preset--color--charcoal); font-size: clamp(2.2rem, 4vw, 3.4rem); }
.tb-journal-tanya-cta p:not(.tb-page-kicker) { margin: 0; max-width: 680px; }

/* Article hierarchy shared by every Journal post. */
.tb-article-header {
	padding: clamp(4.5rem, 9vw, 8rem) var(--tb-page-gutter) clamp(3rem, 6vw, 5rem);
	text-align: center;
}
.tb-article-title {
	max-width: 920px;
	margin: 0.8rem auto 1.25rem;
	font-size: clamp(3.2rem, 7vw, 6rem);
	line-height: 0.96;
}
.tb-article-dek {
	max-width: 720px;
	margin-inline: auto;
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	line-height: 1.7;
}
.tb-article-dek .wp-block-post-excerpt__more-text { display: none; }
.tb-article-meta {
	gap: 0.8rem 1.5rem;
	margin-top: 1.5rem;
	color: var(--wp--preset--color--graphite);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.tb-article-meta p { margin: 0; }
.tb-article-hero {
	min-height: clamp(22rem, 55vw, 44rem);
	margin-bottom: clamp(3.5rem, 7vw, 6rem);
	background-image: url(/wp-content/themes/tanya-barrans/assets/images/lwyl-living-room.jpg);
}
.tb-article-body {
	padding-inline: var(--tb-page-gutter);
	padding-bottom: clamp(4rem, 8vw, 7rem);
}
.tb-article-body .wp-block-post-content { font-size: 1.08rem; line-height: 1.85; }
.tb-article-body .wp-block-post-content > h2 { margin-top: 3.5rem; font-size: clamp(2.35rem, 5vw, 3.5rem); line-height: 1.08; }
.tb-article-body .wp-block-post-content > h3 { margin-top: 2.5rem; }
.tb-article-body .wp-block-post-content > p:first-child { font-size: 1.22rem; line-height: 1.8; }
.tb-article-body .wp-block-quote {
	margin-block: 3rem;
	padding: 1.5rem 0 1.5rem 2rem;
}
.tb-article-body figcaption { color: var(--wp--preset--color--graphite); font-size: 0.78rem; }

.tb-article-explore {
	padding-block: var(--tb-journal-section);
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--base);
	text-align: center;
}
.tb-article-explore h2 { margin: 0 0 2.5rem; color: var(--wp--preset--color--base); font-size: clamp(2.5rem, 5vw, 4rem); }
.tb-article-explore__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(255,255,255,0.25); }
.tb-article-explore__links a {
	display: flex;
	min-height: 10rem;
	flex-direction: column;
	justify-content: center;
	padding: 1.5rem;
	border-right: 1px solid rgba(255,255,255,0.25);
	color: var(--wp--preset--color--base);
	text-decoration: none;
}
.tb-article-explore__links a:last-child { border-right: 0; }
.tb-article-explore__links span { font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; }
.tb-article-explore__links strong { margin-top: 0.55rem; font-family: var(--wp--preset--font-family--serif); font-size: 1.75rem; font-weight: 600; }

.tb-article-page .tb-newsletter-feature { margin-block: var(--tb-journal-section); }
.tb-article-author { padding-block: var(--tb-journal-section); background: var(--wp--preset--color--alabaster); }
.tb-article-author__inner {
	display: grid;
	grid-template-columns: minmax(14rem, 0.7fr) minmax(0, 1.3fr);
	gap: clamp(2.5rem, 7vw, 6rem);
	align-items: center;
}
.tb-article-author img { width: 100%; max-height: 34rem; object-fit: cover; object-position: center 25%; }
.tb-article-author h2 { margin: 0 0 1rem; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.02; }
.tb-article-author .tb-page-actions { align-items: center; }
.tb-article-navigation { padding: 2.5rem var(--tb-page-gutter) 4rem; }
.tb-article-navigation .wp-block-post-navigation-link { max-width: 44%; font-family: var(--wp--preset--font-family--serif); font-size: 1.25rem; }
.tb-journal-back-link { margin-top: 2.5rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }

@media (max-width: 900px) {
	.tb-journal-topics .tb-page-shell { overflow-x: auto; grid-template-columns: repeat(5, minmax(10rem, 1fr)); }
	.tb-journal-feature { grid-template-columns: 1fr; }
	.tb-journal-feature__media { min-height: 28rem; }
	.tb-journal-card-query .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tb-journal-tanya-cta__inner { grid-template-columns: 7rem 1fr; }
	.tb-journal-tanya-cta img { width: 7rem; height: 7rem; }
	.tb-journal-tanya-cta .tb-page-button { grid-column: 2; justify-self: start; }
	.tb-article-explore__links { grid-template-columns: 1fr; }
	.tb-article-explore__links a { min-height: 7rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.25); }
	.tb-article-explore__links a:last-child { border-bottom: 0; }
}

@media (max-width: 599px) {
	.tb-journal-hero { min-height: 38rem; place-items: end center; padding: 1rem; }
	.tb-journal-hero__image { object-position: 45% center; }
	.tb-journal-hero__panel { padding: 2rem 1.25rem; }
	.tb-journal-hero__panel h1 { font-size: clamp(2.7rem, 14vw, 3.8rem); }
	.tb-journal-topics .tb-page-shell { width: 100%; padding-inline: 0.5rem; }
	.tb-journal-feature__media { min-height: 20rem; }
	.tb-journal-feature__content { padding: 2rem 1.25rem 2.5rem; }
	.tb-journal-feature__content .wp-block-post-title { font-size: 2.7rem; }
	.tb-editorial-heading { gap: 0.75rem; }
	.tb-journal-card-query .wp-block-post-template { grid-template-columns: 1fr; }
	.tb-journal-page .tb-newsletter-feature,
	.tb-article-page .tb-newsletter-feature { width: calc(100% - 2rem); grid-template-columns: 1fr; min-height: 0; }
	.tb-journal-page .tb-newsletter-feature__image,
	.tb-article-page .tb-newsletter-feature__image { min-height: 16rem; }
	.tb-journal-page .tb-newsletter-feature__content,
	.tb-article-page .tb-newsletter-feature__content { padding: 2.5rem 1.25rem; }
	.tb-journal-tanya-cta__inner { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.tb-journal-tanya-cta .tb-page-button { grid-column: 1; justify-self: stretch; }
	.tb-article-header { padding-top: 4rem; }
	.tb-article-title { font-size: clamp(3rem, 15vw, 4rem); }
	.tb-article-hero { width: calc(100% - 2rem); min-height: 16rem; }
	.tb-article-author__inner { grid-template-columns: 1fr; }
	.tb-article-author img { max-height: 25rem; }
	.tb-article-navigation .wp-block-post-navigation-link { max-width: 100%; }
}

/* --------------------------------------------------------------------------
   Buyer and seller hub reference system
   -------------------------------------------------------------------------- */
.tb-buyer-page,
.tb-seller-page {
	--tb-page-gutter: clamp(1.25rem, 4vw, 3rem);
	--tb-page-section: clamp(4.5rem, 8vw, 7.5rem);
}

.tb-page-shell {
	width: min(100% - (2 * var(--tb-page-gutter)), 1200px);
	margin-inline: auto;
}

.tb-page-kicker {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.tb-page-hero {
	position: relative;
	min-height: clamp(38rem, 78vh, 52rem);
	display: grid;
	align-items: end;
	overflow: hidden;
	color: var(--wp--preset--color--base);
}

.tb-page-hero__image,
.tb-page-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.tb-page-hero__image {
	object-fit: cover;
	object-position: center;
}

.tb-page-hero__overlay {
	background: linear-gradient(90deg, rgba(30, 36, 51, 0.88) 0%, rgba(30, 36, 51, 0.66) 48%, rgba(30, 36, 51, 0.12) 100%);
}

.tb-page-hero__content {
	position: relative;
	z-index: 1;
	padding-block: clamp(5rem, 11vw, 9rem);
}

.tb-page-hero__content > * {
	max-width: 740px;
}

.tb-page-hero h1 {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-size: clamp(3rem, 7vw, 5.75rem);
	line-height: 0.98;
}

.tb-page-hero__dek {
	margin: 1.5rem 0 0;
	max-width: 660px;
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	line-height: 1.65;
}

.tb-page-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 2rem;
}

.tb-page-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0.9rem 1.4rem;
	border: 1px solid transparent;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.tb-page-button--primary {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}

.tb-page-button--primary:hover,
.tb-page-button--primary:focus-visible {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--base);
}

.tb-page-button--secondary {
	border-color: rgba(255, 255, 255, 0.75);
	background: rgba(251, 248, 244, 0.12);
	color: var(--wp--preset--color--base);
}

.tb-page-button--secondary:hover,
.tb-page-button--secondary:focus-visible {
	background: var(--wp--preset--color--alabaster);
	color: var(--wp--preset--color--charcoal);
}

.tb-page-section {
	padding-block: var(--tb-page-section);
}

.tb-page-section--ivory { background: var(--wp--preset--color--alabaster); }
.tb-page-section--white { background: var(--wp--preset--color--base); }
.tb-page-section--linen { background: var(--wp--preset--color--sand); }
.tb-page-section--homebot { background: #FBF7EF; }
.tb-page-section--navy {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--base);
}

.tb-page-intro {
	max-width: 760px;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.tb-page-intro h2,
.tb-two-column-section__intro h2,
.tb-homebot-copy h2,
.tb-page-final-cta h2 {
	margin: 0 0 1.15rem;
	font-size: clamp(2.35rem, 5vw, 4rem);
	line-height: 1.05;
}

.tb-page-intro > p:last-child,
.tb-two-column-section__intro > p:last-child,
.tb-homebot-copy > p {
	font-size: 1.05rem;
	line-height: 1.75;
}

.tb-page-intro--light h2,
.tb-page-section--navy h3 {
	color: var(--wp--preset--color--base);
}

.tb-proof-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-block: 1px solid rgba(30, 36, 51, 0.18);
}

.tb-proof-item {
	padding: 2rem;
	border-right: 1px solid rgba(30, 36, 51, 0.18);
}

.tb-proof-item:last-child { border-right: 0; }
.tb-proof-item > span,
.tb-process-list > li > span {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--ink);
}

.tb-proof-item h3 {
	margin: 0.8rem 0 0.6rem;
}

.tb-proof-item p { margin: 0; }

.tb-strategy-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-block: 1px solid rgba(30, 36, 51, 0.18);
}

.tb-strategy-card {
	padding: clamp(1.75rem, 4vw, 2.75rem);
	border-right: 1px solid rgba(30, 36, 51, 0.18);
}

.tb-strategy-card:last-child { border-right: 0; }
.tb-strategy-card > span,
.tb-pricing-evidence article > span {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.tb-strategy-card h3 { margin: 0.8rem 0 0.65rem; }
.tb-strategy-card p { margin: 0; }

.tb-process-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.tb-process-list li {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr);
	gap: 1.5rem;
	padding-block: 1.65rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

.tb-process-list > li > span { color: var(--wp--preset--color--coral); }
.tb-process-list h3 { margin: 0 0 0.3rem; }
.tb-process-list p { margin: 0; color: rgba(255, 255, 255, 0.78); }

.tb-match-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.tb-match-card {
	min-height: 12rem;
	padding: 1.75rem;
	background: var(--wp--preset--color--alabaster);
	border-top: 4px solid var(--wp--preset--color--sage);
}

.tb-match-card h3 { margin: 0 0 0.65rem; }
.tb-match-card p { margin: 0; }

.tb-preparation-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: rgba(30, 36, 51, 0.18);
	border: 1px solid rgba(30, 36, 51, 0.18);
}

.tb-preparation-item {
	min-height: 11rem;
	padding: 1.75rem;
	background: var(--wp--preset--color--sand);
}

.tb-preparation-item h3 { margin: 0 0 0.65rem; }
.tb-preparation-item p { margin: 0; }
.tb-section-action { margin-top: 2.5rem; }
.tb-text-link {
	font-weight: 600;
	text-underline-offset: 0.3em;
}

.tb-text-link span { display: inline-block; transition: transform 180ms ease; }
.tb-text-link:hover span { transform: translateX(0.25rem); }

.tb-two-column-section,
.tb-homebot-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(3rem, 8vw, 7rem);
	align-items: start;
}

.tb-topic-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(30, 36, 51, 0.22);
}

.tb-topic-list li {
	padding: 1rem 0;
	border-bottom: 1px solid rgba(30, 36, 51, 0.22);
}

.tb-topic-list li:nth-child(odd) { padding-right: 1rem; }
.tb-topic-list li:nth-child(even) { padding-left: 1rem; border-left: 1px solid rgba(30, 36, 51, 0.22); }

.tb-pricing-evidence {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(30, 36, 51, 0.22);
}

.tb-pricing-evidence article {
	padding: 1.4rem 1.4rem 1.4rem 0;
	border-bottom: 1px solid rgba(30, 36, 51, 0.22);
}

.tb-pricing-evidence article:nth-child(even) {
	padding-left: 1.4rem;
	border-left: 1px solid rgba(30, 36, 51, 0.22);
}

.tb-pricing-evidence h3 { margin: 0.55rem 0 0.4rem; }
.tb-pricing-evidence p { margin: 0; }

.tb-homebot-layout { align-items: center; }
.tb-homebot-frame-wrap {
	min-height: 680px;
	overflow: hidden;
	background: var(--wp--preset--color--base);
	box-shadow: 0 18px 55px rgba(30, 36, 51, 0.12);
}

.tb-homebot-frame {
	display: block;
	width: 100%;
	height: 680px;
	border: 0;
}

.tb-page-final-cta {
	padding-block: clamp(4.5rem, 9vw, 7rem);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
	text-align: center;
}

.tb-page-final-cta h2 { color: var(--wp--preset--color--base); }
.tb-page-final-cta p:not(.tb-page-kicker) { font-size: 1.08rem; }
.tb-page-actions--center { justify-content: center; }
.tb-page-button--light {
	background: var(--wp--preset--color--alabaster);
	color: var(--wp--preset--color--charcoal);
}
.tb-page-button--ghost {
	border-color: rgba(255, 255, 255, 0.65);
	color: var(--wp--preset--color--base);
}
.tb-page-button--light:hover,
.tb-page-button--light:focus-visible,
.tb-page-button--ghost:hover,
.tb-page-button--ghost:focus-visible {
	background: var(--wp--preset--color--coral);
	border-color: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
}

@media (max-width: 900px) {
	.tb-proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tb-proof-item:nth-child(2) { border-right: 0; }
	.tb-proof-item:nth-child(-n + 2) { border-bottom: 1px solid rgba(30, 36, 51, 0.18); }
	.tb-match-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tb-preparation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tb-two-column-section,
	.tb-homebot-layout { grid-template-columns: 1fr; }
}

@media (max-width: 599px) {
	.tb-page-hero { min-height: 42rem; }
	.tb-page-hero--buyer .tb-page-hero__image { object-position: 58% center; }
	.tb-page-hero--seller .tb-page-hero__image { object-position: center 48%; }
	.tb-page-hero__overlay { background: linear-gradient(180deg, rgba(30, 36, 51, 0.28) 0%, rgba(30, 36, 51, 0.9) 70%); }
	.tb-page-hero__content { padding-block: 5rem 3.5rem; }
	.tb-page-actions,
	.tb-page-actions .tb-page-button { width: 100%; }
	.tb-proof-grid,
	.tb-strategy-grid,
	.tb-match-grid,
	.tb-preparation-grid,
	.tb-topic-list { grid-template-columns: 1fr; }
	.tb-proof-item { border-right: 0; border-bottom: 1px solid rgba(30, 36, 51, 0.18); }
	.tb-proof-item:last-child { border-bottom: 0; }
	.tb-strategy-card { border-right: 0; border-bottom: 1px solid rgba(30, 36, 51, 0.18); }
	.tb-strategy-card:last-child { border-bottom: 0; }
	.tb-topic-list li:nth-child(odd),
	.tb-topic-list li:nth-child(even) { padding-inline: 0; border-left: 0; }
	.tb-pricing-evidence { grid-template-columns: 1fr; }
	.tb-pricing-evidence article,
	.tb-pricing-evidence article:nth-child(even) { padding-inline: 0; border-left: 0; }
	.tb-process-list li { grid-template-columns: 2.75rem minmax(0, 1fr); gap: 0.75rem; }
	.tb-homebot-frame-wrap,
	.tb-homebot-frame { min-height: 620px; height: 620px; }
}

/* Hero entrance — plays once on page load, distinct from the scroll-reveal
   system (.tb-reveal): a slower, softer settle rather than a snappy
   scale+slide, since the hero is already in view and doesn't need a
   scroll trigger. Eyebrow, headline, subtext, and buttons arrive in a
   gentle sequence. */
@keyframes tb-hero-fade-up {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}
.tb-hero-arrive > * {
	opacity: 0;
	animation: tb-hero-fade-up 1.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.tb-hero-arrive > *:nth-child(1) { animation-delay: 0.3s; }
.tb-hero-arrive > *:nth-child(2) { animation-delay: 0.75s; }
.tb-hero-arrive > *:nth-child(3) { animation-delay: 1.2s; }
.tb-hero-arrive > *:nth-child(4) { animation-delay: 1.65s; }
@media (prefers-reduced-motion: reduce) {
	.tb-hero-arrive > * {
		opacity: 1;
		animation: none;
	}
}

/* Editorial split sections — from the brand board: text on a clean white
   half, photo anchored to the other side and fading into the white through
   a soft gradient where the two meet. Photo sides alternate section to
   section via the --photo-right / --photo-left modifiers; each section
   supplies its own image as an inline background-image style. */
.tb-split {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 56vh;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
	/* Edges line up with the alignwide (1320px) content gutter. */
	padding-left: max(var(--wp--preset--spacing--40), calc((100% - 1320px) / 2));
	padding-right: max(var(--wp--preset--spacing--40), calc((100% - 1320px) / 2));
}
.tb-split--hero {
	min-height: 76vh;
}
.tb-split__photo {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 62%;
	margin: 0;
	background-size: cover;
	background-position: center;
}
.tb-split--photo-right .tb-split__photo {
	right: 0;
}
.tb-split--photo-left .tb-split__photo {
	left: 0;
}
.tb-split__photo::after {
	content: "";
	position: absolute;
	inset: 0;
}
.tb-split--photo-right .tb-split__photo::after {
	background: linear-gradient(90deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 45%);
}
.tb-split--photo-left .tb-split__photo::after {
	background: linear-gradient(270deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 45%);
}
.tb-split__content {
	position: relative;
	z-index: 1;
	max-width: 560px;
}
.tb-split--photo-left .tb-split__content {
	margin-left: auto;
}
/* Blush italic accent in headlines, echoing the brand board. */
.tb-split h1 em,
.tb-split h2 em {
	color: var(--wp--preset--color--coral);
}
/* Blush buttons inside splits follow the secondary-button spec: hover to navy. */
.tb-split .wp-block-button__link.has-coral-background-color:hover {
	background: var(--wp--preset--color--ink);
}
/* Phone: the photo spans the full section under a heavy white wash so the
   text keeps its contrast without a side-by-side split. */
@media (max-width: 781px) {
	.tb-split__photo {
		width: 100%;
	}
	.tb-split--photo-right .tb-split__photo::after,
	.tb-split--photo-left .tb-split__photo::after {
		background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.82) 100%);
	}
	.tb-split__content {
		max-width: 100%;
	}
	.tb-split--photo-left .tb-split__content {
		margin-left: 0;
	}
}

/* Supporting review cards beneath the featured client quote. */
.tb-quote-row-section {
	padding-block: var(--wp--preset--spacing--60);
}
.tb-quote-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--wp--preset--spacing--40);
}
.tb-quote-card {
	margin: 0;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border-radius: 12px;
	border-top: 3px solid var(--wp--preset--color--coral);
	box-shadow: 0 8px 24px rgba(70, 93, 124, 0.08);
}
.tb-quote-card blockquote {
	margin: 0;
	padding: 0;
	border: none;
}
.tb-quote-card blockquote p {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.35rem;
	line-height: 1.5;
	color: var(--wp--preset--color--charcoal);
}
.tb-quote-card figcaption {
	margin-top: var(--wp--preset--spacing--30);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
/* The source sits under the name so the attribution reads as one unit. */
.tb-quote-card figcaption span {
	display: block;
	font-weight: 400;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* Subtle lift on cards (blog grid, service columns). Rounded corners and
   soft navy-tinted shadows per the boutique/editorial brand direction. */
.tb-card {
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.45s ease, box-shadow 0.45s ease;
}
.tb-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 28px rgba(70, 93, 124, 0.14);
}

/* Eyebrow labels remain readable without JavaScript. When motion is
   available, reveal.js gives each one a restrained left-to-right entrance. */
/* Dusty Blush on Warm Ivory measures 2.03:1, below the 3:1 WCAG needs even
   for large text, and having a separate darker rose just for light backgrounds
   read as an off-brand "wrong pink" next to the real blush used everywhere
   else (2026-08-19 feedback). Charcoal on light backgrounds solves the
   contrast problem cleanly (matches the Story Quote eyebrow already) and
   keeps blush reserved for dark backgrounds, where it reaches 7.3:1. */
.tb-eyebrow {
	--tb-eyebrow-color: var(--wp--preset--color--charcoal);
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tb-eyebrow-color);
}
.has-charcoal-background-color .tb-eyebrow,
.has-ink-background-color .tb-eyebrow,
.tb-renton-hero .tb-eyebrow,
footer.wp-block-template-part .tb-eyebrow {
	--tb-eyebrow-color: var(--wp--preset--color--coral);
}
/* Footer eyebrows sit in narrow ~193px columns; the default 1.75rem
   page-section eyebrow size wraps awkwardly (e.g. "GET IN TOUCH" breaking
   across two lines and overflowing), so scale it down here. */
footer.wp-block-template-part .tb-eyebrow {
	font-size: 0.95rem;
	letter-spacing: 0.1em;
}
/* Footer "Explore"/"Connect" link lists use the is-style-none variant,
   which should render with no bullet and no indent — but without this rule
   the browser default list padding/marker shows through, so the links sit
   offset from the eyebrow heading and brand text above/below them. */
footer.wp-block-template-part .wp-block-list.is-style-none {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
.tb-motion-ready .tb-eyebrow {
	opacity: 0;
	transform: translateX(-1.25rem);
	clip-path: inset(0 100% 0 0);
	transition:
		opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1.35s cubic-bezier(0.22, 1, 0.36, 1),
		clip-path 1.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.tb-motion-ready .tb-eyebrow.is-visible {
	opacity: 1;
	transform: translateX(0);
	clip-path: inset(0 0 0 0);
}
@media (prefers-reduced-motion: reduce) {
	.tb-motion-ready .tb-eyebrow {
		opacity: 1;
		transform: none;
		clip-path: none;
		transition: none;
	}
}

/* Hairline rule used between sections */
.tb-rule {
	border: none;
	border-top: 1px solid var(--wp--preset--color--sand);
}

/* Header brand lockup: Tanya logo + John L Scott brokerage logo with a divider */
.tb-logo-primary {
	height: 72px;
	width: auto;
	display: block;
}
.tb-logo-brokerage {
	height: 32px;
	width: auto;
	display: block;
}
.tb-logo-divider {
	display: inline-block;
	width: 1px;
	height: 38px;
	background: rgba(255, 255, 255, 0.35);
}

/* Header CTA on the navy header: the default navy primary button would
   vanish, so use the blush secondary style here. */
header.wp-block-template-part .wp-block-button__link {
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
}
header.wp-block-template-part .wp-block-button__link:hover {
	background: var(--wp--preset--color--coral-deep);
	color: var(--wp--preset--color--base);
}

/* Phone header: shrink the logos, hide the CTA button (it repeats on every page) */
@media (max-width: 599px) {
	.tb-logo-primary {
		height: 48px;
	}
	.tb-logo-brokerage {
		height: 24px;
	}
	.tb-logo-divider {
		height: 30px;
	}
	header.wp-block-template-part .wp-block-buttons {
		display: none;
	}
}

/* Remove the default block gap above the footer so the dark CTA band and
   the treeline sit flush against each other with no visible seam. */
footer.wp-block-template-part {
	margin-top: 0;
}

/* Footer text links: the global link color is dark "ink", which is invisible
   on the dark ink footer background. Give them a light "stone" tone that
   reads clearly, brightening to white on hover. Social icons are excluded so
   their own styling stays intact. */
/* Linen on the footer's navy measures 4.15:1, just under the 4.5:1 needed for
   body text. A slightly lighter linen clears it at 5.1:1 while keeping the
   warm tone that distinguishes secondary footer text from the headings. */
footer.wp-block-template-part {
	--tb-footer-secondary: #F7EBCB;
}
footer.wp-block-template-part a:not(.tb-social-icon),
footer.wp-block-template-part .has-stone-color {
	/* WordPress emits its colour utility classes (.has-stone-color) with
	   !important, so overriding one needs !important in return. */
	color: var(--tb-footer-secondary) !important;
}
footer.wp-block-template-part a:not(.tb-social-icon):hover {
	color: var(--wp--preset--color--base);
}

/* Scroll reveal — content fades/slides/scales in the first time it enters
   the viewport (one-shot, driven by assets/js/reveal.js). The scale pairs
   with the longer duration so the motion still reads as deliberate rather
   than just "the same animation, slower". */
.tb-reveal {
	opacity: 0;
	transform: translateY(40px) scale(0.97);
	transition: opacity 2.2s cubic-bezier(0.16, 1, 0.3, 1), transform 2.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.tb-reveal.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}
/* Stagger siblings within a row (stat columns, service cards, blog cards) */
.tb-reveal:nth-child(2) { transition-delay: 0.3s; }
.tb-reveal:nth-child(3) { transition-delay: 0.6s; }
.tb-reveal:nth-child(4) { transition-delay: 0.9s; }

@media (prefers-reduced-motion: reduce) {
	.tb-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Elevated content card (still used on the Contact page). */
.tb-content-card {
	box-shadow: 0 16px 40px rgba(70, 93, 124, 0.15);
}

/* Recent Sales gallery grid on the Listings page */
.tb-sales-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: var(--wp--preset--spacing--40);
}
.tb-sales-photo {
	position: relative;
	aspect-ratio: 4/3;
	overflow: hidden;
	border-radius: 4px;
}
.tb-sales-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tb-sales-tag {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0.3rem 0.7rem;
	border-radius: 3px;
}
.tb-sales-tag--active {
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--base);
}
.tb-sales-tag--pending {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--base);
}

/* WPForms — match the site's typography and button styling.
   WPForms sets its button colors via CSS custom properties with an
   inline <style> block per-form, which beats a plain background-color
   override; overriding the variables themselves is the reliable fix. */
.wpforms-container {
	--wpforms-button-background-color: var(--wp--preset--color--coral);
	--wpforms-button-background-color-alt: var(--wp--preset--color--coral-deep);
	--wpforms-button-text-color: var(--wp--preset--color--charcoal);
	--wpforms-button-text-color-alt: var(--wp--preset--color--base);
	--wpforms-label-color: var(--wp--preset--color--ink);
	--wpforms-field-border-color: var(--wp--preset--color--sand);
	--wpforms-field-background-color: var(--wp--preset--color--base);
	--wpforms-field-text-color: var(--wp--preset--color--ink);
}
.wpforms-container .wpforms-field-label {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container textarea,
.wpforms-container select {
	font-family: var(--wp--preset--font-family--sans);
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 3px;
}
.wpforms-container input[type=text]:focus,
.wpforms-container input[type=email]:focus,
.wpforms-container input[type=tel]:focus,
.wpforms-container textarea:focus {
	border-color: var(--wp--preset--color--coral);
	outline: none;
	box-shadow: 0 0 0 1px var(--wp--preset--color--coral);
}
.wpforms-container .wpforms-field-sublabel {
	color: var(--wp--preset--color--muted);
}
.wpforms-container button[type=submit].wpforms-submit {
	background: var(--wp--preset--color--ink);
	border: none;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 2rem;
}
.wpforms-container button[type=submit].wpforms-submit:hover {
	background: var(--wp--preset--color--coral);
}

/* Footer social icons */
.tb-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--coral);
	color: var(--wp--preset--color--stone);
	transition: color 0.35s ease, border-color 0.35s ease, background 0.35s ease;
}
.tb-social-icon:hover {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--coral);
	background: var(--wp--preset--color--coral);
}

/* Social icons on a light background (e.g. the Contact page): the default
   stone-on-charcoal tuning is for the dark footer, so use darker "ink" glyphs
   with a soft "sand" border here, keeping the bronze hover. */
.tb-social-icons--contact {
	display: flex;
	gap: 0.6rem;
}
.tb-social-icons--contact .tb-social-icon {
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--sand);
}
.tb-social-icons--contact .tb-social-icon:hover {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--coral);
	background: var(--wp--preset--color--coral);
}

/* Outline button variant */
.tb-button-outline .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 1px solid currentColor;
}
.tb-button-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--slate);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--slate);
}

/* Accessibility helper: visually hidden but available to screen readers. */
.tb-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Newsletter signup (blog index) */
.tb-newsletter-form {
	margin-top: var(--wp--preset--spacing--40);
}
.tb-newsletter-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}
/* --------------------------------------------------------------------------
   Rooted in Renton — the sub-brand used on the Renton hub only.

   Mustard #D9A441 measures 6.62:1 against Ink Navy but only 2.34:1 against
   white, so it is used for text solely on the dark hero and CTA bands. On
   light sections it appears as rules, borders and fills, never as body copy.
   -------------------------------------------------------------------------- */
.tb-renton-page,
.tb-hoods-page {
	--tb-page-gutter: clamp(1.25rem, 4vw, 3rem);
	--tb-renton-mustard: #D9A441;
}
.tb-renton-hero,
.tb-renton-cta {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--base);
	padding-block: clamp(3.5rem, 7vw, 6rem);
}
.tb-renton-hero__inner {
	max-width: 44rem;
}
/* Circular Rooted in Renton stamp. Drawn from type until the approved badge
   exists; sized so it reads as a stamp beside the headline rather than as an
   oversized corporate logo, which the blueprint warns against. */
.tb-renton-stamp {
	display: block;
	width: clamp(7rem, 11vw, 9.5rem);
	height: auto;
	margin: 0 0 1.75rem;
	color: var(--tb-renton-mustard);
	overflow: visible;
}
/* The cream rim keeps the navy disc legible on a navy hero as well as on a
   photograph, which is how the badge appears in the approved reference. */
.tb-stamp-rim {
	fill: var(--wp--preset--color--alabaster);
}
.tb-stamp-body {
	fill: var(--wp--preset--color--charcoal);
	stroke: var(--tb-renton-mustard);
	stroke-width: 3;
}
.tb-stamp-ring {
	fill: none;
	stroke: var(--tb-renton-mustard);
	stroke-width: 1;
	opacity: 0.75;
}
/* Sized so both arcs sit inside the inner rule rather than crossing it. */
.tb-stamp-arc {
	fill: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 2.2px;
}
.tb-stamp-initial {
	fill: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 62px;
	font-weight: 600;
}
.tb-stamp-est {
	fill: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1px;
}
.tb-stamp-rule {
	fill: var(--tb-renton-mustard);
}
.tb-stamp-heart {
	fill: var(--tb-renton-mustard);
}
.tb-renton-title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	line-height: 1.15;
	color: var(--wp--preset--color--base);
}
.tb-renton-dek {
	margin: 0 0 2rem;
	font-size: 1.125rem;
	color: var(--wp--preset--color--stone);
}
.tb-renton-hero__links,
.tb-renton-cta__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	margin: 0;
}
.tb-renton-button {
	display: inline-block;
	padding: 0.9rem 1.75rem;
	background: var(--tb-renton-mustard);
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 2px;
	transition: background 0.2s ease;
}
.tb-renton-button:hover {
	background: #E2B857;
}
.tb-renton-link {
	color: var(--tb-renton-mustard);
	font-weight: 600;
	text-decoration: none;
}
.tb-renton-link:hover {
	text-decoration: underline;
}
.tb-renton-featured,
.tb-renton-latest {
	padding-block: clamp(3rem, 6vw, 5rem);
}
.tb-renton-latest {
	background: var(--wp--preset--color--alabaster);
}
.tb-renton-feature-card {
	margin-top: 1.5rem;
}
.tb-renton-feature-card img,
.tb-renton-card img {
	border-radius: 8px;
}
.tb-renton-kicker {
	margin: 1rem 0 0.4rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.tb-renton-kicker a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.tb-renton-date {
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}
.tb-renton-card__body {
	padding: 0 1rem 1.25rem;
}
.tb-renton-empty {
	margin: 1.5rem 0;
	padding: 1.5rem 1.75rem;
	border-left: 3px solid var(--tb-renton-mustard);
	background: var(--wp--preset--color--alabaster);
	color: var(--wp--preset--color--muted);
}
/* Topic bar between the featured story and the grid. */
.tb-renton-topics {
	border-block: 1px solid var(--wp--preset--color--sand);
	padding-block: 1rem;
}
.tb-renton-topics .tb-page-shell {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.75rem;
}
.tb-renton-topics a {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	padding-bottom: 2px;
}
.tb-renton-topics a:hover,
.tb-renton-topics a:focus-visible {
	border-bottom-color: var(--tb-renton-mustard);
}
.tb-renton-cta h2 {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--base);
}
.tb-renton-cta p {
	color: var(--wp--preset--color--stone);
}
.tb-renton-button--light {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--charcoal);
}
.tb-renton-button--light:hover {
	background: var(--tb-renton-mustard);
}

/* Neighborhoods index */
.tb-hoods {
	padding-block: clamp(3rem, 6vw, 5rem);
}
.tb-hoods__dek {
	max-width: 42rem;
}
.tb-hoods-grid {
	list-style: none;
	margin: var(--wp--preset--spacing--50) 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1.25rem;
}
.tb-hoods-card {
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 10px;
	padding: 1.5rem;
	background: var(--wp--preset--color--base);
}
.tb-hoods-card a {
	display: block;
	text-decoration: none;
	color: inherit;
}
.tb-hoods-card--live {
	border-color: var(--wp--preset--color--ink);
}
.tb-hoods-card--live:hover {
	box-shadow: 0 10px 28px rgba(70, 93, 124, 0.16);
}
.tb-hoods-card__tag {
	display: inline-block;
	margin-bottom: 0.6rem;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--charcoal);
	color: #D9A441;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.tb-hoods-card__name {
	display: block;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.5rem;
	color: var(--wp--preset--color--ink);
}
.tb-hoods-card__copy {
	display: block;
	margin-top: 0.35rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.9375rem;
}
.tb-hoods-card__go {
	display: inline-block;
	margin-top: 0.9rem;
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--wp--preset--color--ink);
}
.tb-hoods-card--soon {
	background: var(--wp--preset--color--alabaster);
	border-style: dashed;
}
.tb-hoods-card--soon .tb-hoods-card__name {
	color: var(--wp--preset--color--muted);
}

/* Contact form */
.tb-contact-form-section {
	/* .tb-page-shell sizes itself as min(100% - 2 * gutter, 1200px), so it
	   needs --tb-page-gutter to be in scope. That variable is otherwise only
	   set on the buyer, seller and journal page wrappers; without it here the
	   shell computed to full width and the fields sat flush against the
	   section edges. */
	--tb-page-gutter: clamp(1.25rem, 4vw, 3rem);
	padding-block: var(--wp--preset--spacing--60);
}
.tb-contact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	margin-top: var(--wp--preset--spacing--40);
}
.tb-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0;
}
.tb-field--full {
	grid-column: 1 / -1;
}
.tb-field label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.tb-required {
	color: var(--wp--preset--color--coral-deep);
}
.tb-optional {
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wp--preset--color--muted);
}
.tb-field input,
.tb-field select,
.tb-field textarea {
	box-sizing: border-box;
	width: 100%;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 3px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--graphite);
}
.tb-field textarea {
	resize: vertical;
	min-height: 8rem;
}
.tb-field input:focus,
.tb-field select:focus,
.tb-field textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 2px rgba(70, 93, 124, 0.25);
}
/* Honeypot — out of view and out of the tab order. */
.tb-contact-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.tb-contact-consent {
	margin-top: var(--wp--preset--spacing--30);
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
}
.tb-contact-submit {
	margin-top: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 2rem;
	border: none;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition: background 0.2s ease, opacity 0.2s ease;
}
.tb-contact-submit:hover {
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
}
.tb-contact-submit:disabled,
.tb-contact-submit.is-loading {
	opacity: 0.6;
	cursor: default;
}
.tb-contact-status {
	min-height: 1.4rem;
	margin-top: 0.85rem;
	font-size: 0.9375rem;
}
.tb-contact-status[data-state="error"] {
	color: #B3261E;
	font-weight: 600;
}
.tb-contact-status[data-state="success"] {
	color: #3E6B54;
	font-weight: 600;
}
.tb-contact-status[data-state="pending"] {
	color: var(--wp--preset--color--muted);
}
@media (max-width: 781px) {
	.tb-contact-grid {
		grid-template-columns: 1fr;
	}
}

.tb-newsletter-input {
	flex: 1 1 200px;
	min-width: 0;
	/* Inputs default to content-box, so the horizontal padding and border
	   were added on top of the width flex had already assigned, pushing the
	   field past its container and giving the page a few pixels of
	   horizontal scroll on phones. */
	box-sizing: border-box;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 3px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}
.tb-newsletter-input::placeholder {
	color: var(--wp--preset--color--muted);
}
.tb-newsletter-input:focus {
	outline: none;
	border-color: var(--wp--preset--color--coral);
	box-shadow: 0 0 0 1px var(--wp--preset--color--coral);
}
.tb-newsletter-submit {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.85rem 1.75rem;
	border: none;
	border-radius: 3px;
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition: background 0.35s ease, opacity 0.35s ease;
}
.tb-newsletter-submit:hover {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--ink);
}
.tb-newsletter-submit.is-loading,
.tb-newsletter-submit:disabled {
	opacity: 0.6;
	cursor: default;
}
/* Honeypot — kept out of view and out of the tab order. */
.tb-newsletter-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.tb-newsletter-status {
	min-height: 1.25rem;
	margin-top: 0.85rem;
	margin-bottom: 0;
	text-align: center;
	font-size: 0.875rem;
}
.tb-newsletter-status[data-state="error"] {
	color: var(--wp--preset--color--sand);
}
.tb-newsletter-status[data-state="success"] {
	color: var(--wp--preset--color--base);
	font-weight: 600;
}
.tb-newsletter-status[data-state="pending"] {
	color: var(--wp--preset--color--stone);
}

/* --------------------------------------------------------------------------
   Love Where You Live — homepage design foundation
   -------------------------------------------------------------------------- */

/* Reusable editorial heading treatment for future homepage and archive
   sections. Keep the copy in semantic HTML; this class controls presentation. */
.tb-section-intro {
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}
.tb-section-intro .tb-section-intro__kicker {
	margin-bottom: 0.8rem;
	color: var(--wp--preset--color--coral);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.tb-section-intro .tb-section-intro__title {
	margin-top: 0;
	margin-bottom: 1rem;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	font-weight: 600;
	line-height: 0.98;
}
.tb-section-intro .tb-section-intro__copy {
	max-width: 620px;
	margin-inline: auto;
	color: var(--wp--preset--color--graphite);
}

/* Light, magazine-like site header. */
.tb-site-header {
	position: relative;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgba(15, 30, 53, 0.1);
	box-shadow: none;
}
.tb-site-header__inner,
.tb-site-header__actions {
	min-width: 0;
}
.tb-brand-lockup__link {
	display: inline-flex;
	line-height: 0;
}
.tb-site-header .tb-logo-primary {
	height: 58px;
}
.tb-site-header .tb-logo-brokerage {
	height: 27px;
}
.tb-site-header .tb-logo-divider {
	height: 32px;
	background: rgba(255, 255, 255, 0.35);
}
.tb-site-header .wp-block-navigation {
	background: transparent;
	color: var(--wp--preset--color--alabaster);
}
.tb-site-header .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.45rem;
	color: var(--wp--preset--color--alabaster);
	text-decoration: none;
}
.tb-site-header .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 0;
	height: 1px;
	background: var(--wp--preset--color--coral);
	transition: right 0.35s ease;
}
.tb-site-header .wp-block-navigation-item__content:hover::after,
.tb-site-header .current-menu-item > .wp-block-navigation-item__content::after {
	right: 0;
}
/* Header CTA. Blush fill was the odd element in an otherwise white-on-navy
   header, and it did not survive a contrast check either way: navy on blush
   is 4.09:1 and white on blush is 2.15:1, both under the 4.5:1 needed for
   text this size. An outline button on the navy reads as part of the header,
   stays obviously a button, and lands at 8.79:1. Hover inverts to the same
   pair, so it never drops below that. */
.tb-site-header .tb-header-cta .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	padding: 0.8rem 1.45rem;
	border: 1px solid var(--wp--preset--color--base);
}
.tb-site-header .tb-header-cta .wp-block-button__link:hover,
.tb-site-header .tb-header-cta .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--charcoal);
}

/* WordPress puts its block gap (1.5rem) between every direct child of
   .wp-site-blocks, which includes the join between the header and the page
   content. Because the body is ivory and the header is navy, that gap showed
   as a 24px cream strip directly under the header on every page -- most
   obvious where a full-bleed hero image is meant to start immediately below
   it. Only the header/content join is closed; the gap elsewhere is left
   alone. */
.wp-site-blocks > main {
	margin-block-start: 0;
}

/* The header was laid out for seven nav items; the sitemap brings it to nine,
   two of them long ("Rooted in Renton", "Love Your Home"). At the default
   1.5rem gap the row overflowed 1320px by a hair and wrapped "About Tanya"
   and "Contact" onto a second line. Tighten progressively rather than
   dropping items, and keep the CTA label on one line. */
.tb-site-header .wp-block-navigation {
	font-size: 0.74rem;
	letter-spacing: 0.06em;
}
.tb-site-header .wp-block-navigation__container {
	gap: 0.75rem;
}
.tb-site-header .wp-block-navigation-item__content {
	white-space: nowrap;
}
.tb-site-header .tb-header-cta .wp-block-button__link {
	white-space: nowrap;
}

/* Measured: brand (242) + nav (821) + CTA (185) + gaps needs ~1296px, so the
   full row only fits above roughly 1350px. Step down deliberately rather than
   letting it wrap or overflow:
     >1366  full row with CTA
     1201-1366  full row, CTA hidden (it repeats in the hero and footer)
     <=1200  collapse to the overlay menu
   WordPress collapses the nav block at 781px by default, which is far too
   late for nine items. */
/* Dropdown panels. The sitemap eventually wants these on Buy, Sell,
   Neighborhoods and Resources, so style them once here. Square corners and an
   ivory panel keep them consistent with the editorial header. */
/* Core ships its own submenu background/border/width at equal specificity and
   loads after this file, so these need the extra .wp-block-navigation to win. */
.tb-site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--alabaster);
	border: 1px solid rgba(30, 36, 51, 0.12);
	box-shadow: 0 14px 30px rgba(30, 36, 51, 0.12);
	border-radius: 0;
	padding-block: 0.35rem;
	width: max-content;
	min-width: 220px;
}
.tb-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--charcoal);
	padding: 0.6rem 1.15rem;
	white-space: nowrap;
}
/* The animated underline belongs to the top-level row, not inside a panel. */
.tb-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
	display: none;
}
.tb-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.tb-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background-color: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--charcoal);
}

@media (max-width: 1400px) {
	.tb-site-header__actions {
		gap: 1.1rem;
	}
}

@media (max-width: 1366px) {
	.tb-site-header .tb-header-cta {
		display: none;
	}
}

@media (max-width: 1200px) {
	.tb-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.tb-site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
	.tb-site-header .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--alabaster);
		color: var(--wp--preset--color--charcoal);
		padding: 2rem;
	}
	/* With the menu collapsed there is room for the CTA again. */
	.tb-site-header .tb-header-cta {
		display: block;
	}
}

/* Image-led homepage hero. The approved image intentionally leaves quiet
   space on the left; a soft ivory wash preserves readable contrast without
   making the photography feel like a dark real-estate banner. */
.tb-home-hero {
	position: relative;
	isolation: isolate;
	min-height: clamp(620px, 69vw, 790px);
	overflow: hidden;
}
.tb-home-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(250, 247, 242, 0.98) 0%,
			rgba(250, 247, 242, 0.94) 25%,
			rgba(250, 247, 242, 0.56) 43%,
			rgba(250, 247, 242, 0) 61%
		);
	pointer-events: none;
}
.tb-home-hero__image {
	position: absolute;
	z-index: -2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.tb-home-hero__inner {
	display: flex;
	align-items: center;
	width: min(1320px, calc(100% - 4rem));
	min-height: inherit;
	margin-inline: auto;
}
.tb-home-hero__content {
	width: min(600px, 48%);
	padding-block: clamp(5rem, 10vw, 8rem);
}
.tb-script-accent {
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--coral);
	font-family: var(--wp--preset--font-family--script);
	font-size: clamp(2.35rem, 3.5vw, 3.75rem);
	font-style: normal;
	font-weight: 400;
	line-height: 1;
}
/* The hero keeps a single H1 holding the whole blueprint sentence, so the
   script accent sits inside the heading rather than as its own paragraph. */
.tb-home-hero__title .tb-script-accent {
	display: block;
	margin: 0 0 0.1rem;
}
.tb-home-hero__title {
	margin: 0;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(3rem, 5.6vw, 5.4rem);
	font-weight: 600;
	letter-spacing: 0.015em;
	line-height: 0.92;
	text-transform: uppercase;
	text-wrap: balance;
}
.tb-home-hero__dek {
	margin-top: 1.4rem;
	margin-bottom: 0;
	color: var(--wp--preset--color--graphite);
	font-size: clamp(0.95rem, 1.4vw, 1.125rem);
	line-height: 1.75;
}
.tb-home-hero__buttons .wp-block-button__link {
	min-width: 0;
	padding: 0.95rem 1.5rem;
}
.tb-home-hero__buttons .has-coral-background-color:hover {
	background: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--base) !important;
}
.tb-home-hero__buttons .has-charcoal-background-color:hover {
	background: var(--wp--preset--color--coral) !important;
	color: var(--wp--preset--color--charcoal) !important;
}

/* Four clear pathways immediately connect lifestyle value to Tanya's real
   estate work. They read as one editorial band rather than four floating
   marketing cards. */
/* Three Ways Tanya Helps. The blueprint asks for editorial cards led by
   photography rather than icons alone, so the old icon pathway styles are
   replaced wholesale here. */
.tb-ways {
	padding: clamp(3rem, 6vw, 5.5rem) max(1.25rem, calc((100% - 1320px) / 2));
	border-top: 1px solid rgba(30, 36, 51, 0.08);
	border-bottom: 1px solid rgba(30, 36, 51, 0.1);
}
.tb-ways__title {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(1.85rem, 3.2vw, 2.75rem);
	line-height: 1.1;
}
.tb-ways__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.75rem);
}
/* These groups use WordPress's flow layout, which adds margin-block-start to
   every child after the first. Inside a grid that pushes columns 2 and 3 down
   by 24px, so clear it. */
.tb-ways__grid > *,
.tb-rooted__grid > * {
	margin-block: 0;
}
.tb-way {
	min-width: 0;
}
.tb-way__photo {
	display: block;
	width: 100%;
	/* height:auto is required, otherwise the img height attribute wins and
	   aspect-ratio never governs, leaving 1125px-tall cards. */
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin-bottom: 1.4rem;
}
.tb-way__title {
	margin: 0 0 0.6rem;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	line-height: 1.15;
}
.tb-way__copy {
	margin: 0;
	color: var(--wp--preset--color--graphite);
	font-size: 0.9rem;
	line-height: 1.75;
}
.tb-way__link {
	margin: 1.1rem 0 0;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}
.tb-way__link a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.tb-way__link a span {
	display: inline-block;
	margin-left: 0.25rem;
	transition: transform 0.3s ease;
}
.tb-way__link a:hover span {
	transform: translateX(4px);
}
.tb-way.tb-reveal {
	transform: translateY(20px);
}
.tb-way.tb-reveal.is-visible {
	transform: translateY(0);
}

/* Rooted in Renton teaser: local photograph beside editorial text on a navy
   band, so the series reads as its own destination rather than another card. */
.tb-rooted {
	padding: clamp(3rem, 6vw, 5.5rem) max(1.25rem, calc((100% - 1320px) / 2));
}
.tb-rooted__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}
.tb-rooted__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.tb-rooted__eyebrow {
	margin: 0 0 0.9rem;
	color: var(--wp--preset--color--coral);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.tb-rooted__title {
	margin: 0 0 1.1rem;
	color: var(--wp--preset--color--base);
	font-size: clamp(1.9rem, 3.4vw, 2.9rem);
	line-height: 1.08;
}
.tb-rooted__copy {
	margin: 0;
	max-width: 46ch;
	color: var(--wp--preset--color--sand);
	font-size: 0.95rem;
	line-height: 1.8;
}
.tb-rooted__content.tb-reveal {
	transform: translateY(20px);
}
.tb-rooted__content.tb-reveal.is-visible {
	transform: translateY(0);
}

/* Three across down to tablet, then stack. Two columns would leave an orphan. */
@media (max-width: 860px) {
	.tb-ways__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}
	.tb-way__photo {
		aspect-ratio: 16 / 10;
	}
	.tb-rooted__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}
}

@media (max-width: 1100px) {
	/* Header nav is collapsed to the overlay menu at <=1200px, so the old
	   font/gap squeeze and CTA hiding that used to live here are no longer
	   needed and only fought the responsive ladder above. */
	.tb-site-header__actions {
		gap: 1rem;
	}
	.tb-home-hero__content {
		width: min(580px, 54%);
	}
}

@media (max-width: 781px) {
	.tb-site-header {
		padding-inline: 1.25rem !important;
	}
	.tb-site-header .tb-logo-primary {
		height: 48px;
	}
	.tb-site-header .tb-logo-brokerage {
		height: 23px;
	}
	.tb-site-header__actions {
		margin-left: auto;
	}
	.tb-site-header .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--alabaster);
		color: var(--wp--preset--color--charcoal);
		padding: 2rem;
	}
	.tb-home-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
	}
	.tb-home-hero::after {
		display: none;
	}
	.tb-home-hero__inner {
		order: 1;
		width: 100%;
		min-height: 0;
		padding: 4rem 1.5rem 3.5rem;
	}
	.tb-home-hero__content {
		width: 100%;
		max-width: 600px;
		margin-inline: auto;
		padding: 0;
		text-align: center;
	}
	.tb-home-hero__image {
		position: relative;
		order: 2;
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 10;
		object-position: 58% center;
	}
	.tb-home-hero__buttons {
		justify-content: center;
	}
}

@media (max-width: 599px) {
	.tb-site-header .tb-logo-brokerage,
	.tb-site-header .tb-logo-divider {
		display: none;
	}
	.tb-site-header .wp-block-buttons {
		display: none;
	}
	.tb-home-hero__title {
		font-size: clamp(2.65rem, 14vw, 4rem);
	}
	.tb-home-hero__buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.tb-home-hero__buttons .wp-block-button,
	.tb-home-hero__buttons .wp-block-button__link {
		width: 100%;
	}
	.tb-ways,
	.tb-rooted {
		padding-inline: 1.25rem;
	}
}

/* --------------------------------------------------------------------------
   Sprint 2 — lower-homepage editorial system
   -------------------------------------------------------------------------- */
.tb-brand-pillars {
	padding: clamp(3rem, 5vw, 4.75rem) clamp(1.5rem, 5vw, 4rem);
}
.tb-brand-pillars__grid {
	margin: 0;
	gap: 0;
}
.tb-brand-pillar {
	padding: 0 clamp(1.5rem, 3vw, 3rem);
	border-right: 1px solid rgba(250, 247, 242, 0.2);
}
.tb-brand-pillar:first-child {
	padding-left: 0;
}
.tb-brand-pillar:last-child {
	padding-right: 0;
	border-right: 0;
}
.tb-brand-pillar__label {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--coral);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.55rem, 2.2vw, 2rem);
	line-height: 1.1;
}
.tb-brand-pillar p:last-child {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-size: 0.92rem;
	line-height: 1.75;
}

.tb-editorial-feature {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: clamp(620px, 54vw, 760px);
}
.tb-editorial-feature__image {
	min-height: inherit;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.tb-editorial-feature__content {
	align-self: center;
	width: min(100%, 650px);
	padding: clamp(4rem, 8vw, 8rem) clamp(2rem, 7vw, 7rem);
}
.tb-editorial-feature--photo-right .tb-editorial-feature__image {
	grid-column: 2;
	grid-row: 1;
}
.tb-editorial-feature--photo-right .tb-editorial-feature__content {
	grid-column: 1;
	grid-row: 1;
	justify-self: end;
}
.tb-editorial-feature h2 {
	margin-top: 1.1rem;
	margin-bottom: 1.5rem;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(2.6rem, 4.2vw, 4.25rem);
	line-height: 0.98;
	text-wrap: balance;
}
.tb-editorial-feature h2 em,
.tb-journal-section h2 em {
	color: var(--wp--preset--color--ink);
	font-weight: 400;
}
.tb-editorial-feature__content > p:not(.tb-eyebrow) {
	max-width: 590px;
	line-height: 1.8;
}
.tb-real-estate-links {
	gap: 0 !important;
	margin-top: 2rem;
	border-top: 1px solid rgba(15, 30, 53, 0.18);
}
.tb-real-estate-links p {
	flex: 1 1 100%;
	margin: 0;
	border-bottom: 1px solid rgba(15, 30, 53, 0.18);
}
.tb-real-estate-links a {
	display: flex;
	justify-content: space-between;
	padding: 0.9rem 0;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}
.tb-real-estate-links a span {
	transition: transform 0.35s ease;
}
.tb-real-estate-links a:hover span {
	transform: translateX(0.35rem);
}

.tb-story-quote {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	min-height: clamp(560px, 48vw, 680px);
}
.tb-story-quote__content {
	align-self: center;
	justify-self: end;
	width: min(100%, 720px);
	padding: clamp(4rem, 8vw, 7rem);
}
.tb-story-quote__image {
	min-height: inherit;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.tb-story-quote .tb-eyebrow {
	color: var(--wp--preset--color--charcoal);
}
.tb-story-quote__mark {
	height: 2.5rem;
	margin: 1.25rem 0 -0.4rem;
	color: rgba(15, 30, 53, 0.32);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 5rem;
	line-height: 1;
}
.tb-story-quote__quote {
	margin: 0 0 1.5rem;
	padding: 0;
	border: 0;
}
.tb-story-quote__quote p {
	margin: 0;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.6rem, 4.8vw, 4.75rem);
	font-style: italic;
	line-height: 1;
}
.tb-story-quote__content > p:not(.tb-eyebrow, .tb-story-quote__mark, .tb-text-link) {
	max-width: 580px;
	line-height: 1.8;
}
.tb-text-link {
	margin-top: 1.75rem;
}
.tb-text-link a {
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}
.tb-text-link a span {
	display: inline-block;
	margin-left: 0.35rem;
	transition: transform 0.35s ease;
}
.tb-text-link a:hover span {
	transform: translateX(0.35rem);
}

.tb-journal-section {
	padding: clamp(5rem, 9vw, 8rem) clamp(1.5rem, 5vw, 4rem);
}
.tb-journal-section__header {
	align-items: flex-end;
	gap: 2rem;
	margin-bottom: 3rem;
}
.tb-journal-section__header h2 {
	margin: 1rem 0 0;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(2.5rem, 4.5vw, 4.4rem);
	line-height: 0.98;
}
.tb-journal-section__header .tb-text-link {
	margin: 0 0 0.4rem;
}
.tb-journal-query .wp-block-post-template {
	gap: clamp(1rem, 2vw, 2rem);
}
.tb-journal-card {
	height: 100%;
	overflow: hidden;
	border: 1px solid rgba(15, 30, 53, 0.1);
	border-radius: 0.35rem;
	background: var(--wp--preset--color--base);
	transition: transform 0.45s ease, border-color 0.45s ease;
}
.tb-journal-card::before {
	display: block;
	aspect-ratio: 4 / 3;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	content: "";
}
.tb-journal-query .wp-block-post:nth-child(3n + 1) .tb-journal-card::before {
	background-image: url("../images/lwyl-farm-kitchen.jpg");
}
.tb-journal-query .wp-block-post:nth-child(3n + 2) .tb-journal-card::before {
	background-image: url("../images/lwyl-navy-kitchen.jpg");
}
.tb-journal-query .wp-block-post:nth-child(3n + 3) .tb-journal-card::before {
	background-image: url("../images/lwyl-garden-shed.jpg");
}
.tb-journal-card:has(.tb-journal-card__image img)::before {
	display: none;
}
.tb-journal-card:hover {
	transform: translateY(-0.35rem);
	border-color: rgba(15, 30, 53, 0.24);
}
.tb-journal-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}
.tb-journal-card .wp-block-post-featured-image img {
	transition: transform 0.7s ease;
}
.tb-journal-card:hover .wp-block-post-featured-image img {
	transform: scale(1.025);
}
.tb-journal-card__content {
	padding: 1.5rem 1.5rem 1.8rem;
}
.tb-journal-card__category {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.tb-journal-card__category a {
	color: var(--wp--preset--color--coral);
	text-decoration: none;
}
.tb-journal-card .wp-block-post-title {
	margin: 0.75rem 0;
	line-height: 1.15;
}
.tb-journal-card .wp-block-post-title a {
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
}

.tb-newsletter-feature {
	display: grid;
	grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.15fr);
	min-height: 600px;
}
.tb-newsletter-feature__image {
	min-height: inherit;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.tb-newsletter-feature__content {
	align-self: center;
	width: min(100%, 760px);
	padding: clamp(4rem, 8vw, 7rem);
}
.tb-newsletter-feature__content h2 {
	margin: 0.5rem 0 1rem;
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(2.5rem, 4vw, 4rem);
	line-height: 1;
}
.tb-newsletter-feature__content > p:not(.tb-script-accent, .tb-newsletter-feature__privacy) {
	max-width: 590px;
	line-height: 1.75;
}
.tb-newsletter-feature .tb-newsletter-fields {
	justify-content: flex-start;
}
.tb-newsletter-feature .tb-newsletter-input {
	border-color: rgba(15, 30, 53, 0.2);
	background: var(--wp--preset--color--alabaster);
}
.tb-newsletter-feature .tb-newsletter-submit {
	background: var(--wp--preset--color--charcoal);
}
.tb-newsletter-feature .tb-newsletter-submit:hover {
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
}
.tb-newsletter-feature .tb-newsletter-status[data-state="error"] {
	color: #B3261E;
}
.tb-newsletter-feature .tb-newsletter-status[data-state="success"] {
	color: var(--wp--preset--color--sage);
}
.tb-newsletter-feature__privacy {
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--graphite);
	font-size: 0.75rem;
}

.tb-closing-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(5rem, 9vw, 8rem) 1.5rem;
}
.tb-closing-cta::before,
.tb-closing-cta::after {
	position: absolute;
	width: 230px;
	height: 230px;
	border: 1px solid rgba(216, 167, 177, 0.22);
	border-radius: 50%;
	content: "";
}
.tb-closing-cta::before {
	top: -140px;
	left: -70px;
}
.tb-closing-cta::after {
	right: -70px;
	bottom: -150px;
}
.tb-closing-cta__inner {
	position: relative;
	z-index: 1;
}
.tb-closing-cta .tb-script-accent {
	margin-bottom: 1rem;
	text-align: center;
}
.tb-closing-cta h2 {
	margin-top: 0;
	line-height: 1.03;
}
.tb-button-outline--light .wp-block-button__link {
	border-color: rgba(250, 247, 242, 0.8);
	color: var(--wp--preset--color--base);
}
.tb-button-outline--light .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--coral);
	background: var(--wp--preset--color--coral);
	color: var(--wp--preset--color--charcoal);
}

@media (max-width: 900px) {
	.tb-brand-pillars__grid {
		flex-direction: column;
	}
	.tb-brand-pillar,
	.tb-brand-pillar:first-child,
	.tb-brand-pillar:last-child {
		padding: 1.75rem 0;
		border-right: 0;
		border-bottom: 1px solid rgba(250, 247, 242, 0.2);
	}
	.tb-brand-pillar:first-child {
		padding-top: 0;
	}
	.tb-brand-pillar:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}
	.tb-editorial-feature,
	.tb-story-quote,
	.tb-newsletter-feature {
		grid-template-columns: 1fr;
		min-height: 0;
	}
	.tb-editorial-feature__image,
	.tb-editorial-feature--photo-right .tb-editorial-feature__image,
	.tb-story-quote__image,
	.tb-newsletter-feature__image {
		grid-column: 1;
		grid-row: 1;
		min-height: 440px;
	}
	.tb-editorial-feature__content,
	.tb-editorial-feature--photo-right .tb-editorial-feature__content,
	.tb-story-quote__content,
	.tb-newsletter-feature__content {
		grid-column: 1;
		grid-row: 2;
		justify-self: stretch;
		width: 100%;
	}
	.tb-story-quote__image {
		grid-row: 2;
	}
	.tb-story-quote__content {
		grid-row: 1;
	}
	.tb-journal-section__header {
		align-items: flex-start;
	}
}

@media (max-width: 599px) {
	.tb-editorial-feature__image,
	.tb-editorial-feature--photo-right .tb-editorial-feature__image,
	.tb-story-quote__image,
	.tb-newsletter-feature__image {
		min-height: 300px;
	}
	.tb-editorial-feature__content,
	.tb-story-quote__content,
	.tb-newsletter-feature__content {
		padding: 3.5rem 1.5rem;
	}
	.tb-editorial-feature h2,
	.tb-journal-section__header h2 {
		font-size: clamp(2.4rem, 12vw, 3.25rem);
	}
	.tb-story-quote__quote p {
		font-size: clamp(2.5rem, 13vw, 3.5rem);
	}
	.tb-journal-section {
		padding: 4.5rem 1.25rem;
	}
	.tb-journal-query .wp-block-post-template {
		grid-template-columns: 1fr;
	}
	.tb-newsletter-feature .tb-newsletter-fields {
		flex-direction: column;
	}
	.tb-newsletter-feature .tb-newsletter-input,
	.tb-newsletter-feature .tb-newsletter-submit {
		flex-basis: auto;
		width: 100%;
	}
}

/* Pop/overlap photo accents added 2026-08-19 per Tanya's request, modeled on the Buy/Sell page treatment.
   isolation:isolate on the SECTION (not the image) scopes the negative z-index block to that
   section's own stacking context, so it peeks out from behind the photo instead of sinking
   behind the whole page. */
.tb-editorial-feature,
.tb-story-quote {
	isolation: isolate;
}
.tb-editorial-feature__image {
	position: relative;
}
.tb-editorial-feature--photo-left .tb-editorial-feature__image::before {
	content: "";
	position: absolute;
	top: -20px;
	right: -20px;
	width: 45%;
	height: 45%;
	background: var(--wp--preset--color--coral);
	z-index: -1;
}
.tb-editorial-feature--photo-right .tb-editorial-feature__image::before {
	content: "";
	position: absolute;
	bottom: -20px;
	left: -20px;
	width: 45%;
	height: 45%;
	background: var(--wp--preset--color--sage);
	z-index: -1;
}
.tb-story-quote__image {
	position: relative;
}
.tb-story-quote__image::before {
	content: "";
	position: absolute;
	top: -20px;
	left: -20px;
	width: 40%;
	height: 40%;
	background: var(--wp--preset--color--sage);
	z-index: -1;
}
@media (max-width: 782px) {
	.tb-editorial-feature--photo-left .tb-editorial-feature__image::before,
	.tb-editorial-feature--photo-right .tb-editorial-feature__image::before,
	.tb-story-quote__image::before {
		display: none;
	}
}

/* Gentle parallax added 2026-08-19, revised same day — background-attachment:fixed sizes
   the image against the VIEWPORT instead of the element, so short sections showed a cropped,
   jumpy slice of the photo instead of a smooth drift (Tanya's "cut off, not popping" report).
   Swapped for a JS-driven background-position shift (see assets/js/reveal.js), which pans the
   photo gently within its own box — no viewport-relative cropping, same "keeps the eyes busy"
   feel as askpaigeschulte.com. */

/* Track Record stats band added 2026-08-19 — a count-up stats moment near the top of Home,
   modeled on askpaigeschulte.com's credibility band. Reuses the .tb-stat count-up engine
   already built into reveal.js (it parses the number straight out of the markup, so editing
   a figure here is all that's needed to update the animation) and the vertical-divider
   column pattern from .tb-brand-pillar. */
.tb-stats-band {
	padding: clamp(3.5rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
}
.tb-stats-band__grid {
	margin: 0;
	gap: 0;
}
.tb-stat-item {
	padding: 0 clamp(1rem, 3vw, 2.5rem);
	border-right: 1px solid rgba(250, 247, 242, 0.2);
	text-align: center;
}
.tb-stat-item:first-child {
	padding-left: 0;
}
.tb-stat-item:last-child {
	padding-right: 0;
	border-right: 0;
}
.tb-stat-item__icon {
	width: 2.25rem;
	height: 2.25rem;
	margin: 0 auto 1rem;
	color: var(--wp--preset--color--coral);
}
.tb-stat-item__icon svg {
	width: 100%;
	height: 100%;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.tb-stat-item .tb-stat {
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--base);
}
.tb-stat-item__label {
	margin: 0;
	color: var(--wp--preset--color--coral);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
@media (max-width: 782px) {
	.tb-stats-band__grid {
		flex-direction: column;
	}
	.tb-stat-item {
		border-right: 0;
		border-bottom: 1px solid rgba(250, 247, 242, 0.2);
		padding: 1.5rem 0;
	}
	.tb-stat-item:first-child {
		padding-top: 0;
	}
	.tb-stat-item:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}
}


/* Home page reviews section (Trustindex widget) */
.tb-home-reviews .tb-eyebrow {
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
}
.tb-home-reviews .tb-page-shell {
	max-width: 960px;
}


/* ---------------------------------------------------------------
   ROOTED CITY NEWSLETTER MODAL - repair
   .tb-newsletter-input carries flex:1 1 200px, written for the ROW
   layout in the newsletter band. This modal stacks its fields in a
   column, so that 200px basis becomes a 200px TALL input, which in
   turn made the modal taller than the viewport and pushed the close
   button off screen.
   --------------------------------------------------------------- */
.cov .cov-nl-modal .tb-newsletter-fields{flex-direction:column;gap:10px}
.cov .cov-nl-modal .tb-newsletter-input{flex:0 0 auto;height:auto;min-height:0;padding:13px 14px}
.cov .cov-nl-modal .tb-newsletter-submit{width:100%;margin-top:4px}

/* the eyebrow uses the script face everywhere else; not here */
.cov .cov-nl-modal .tb-script-accent{font-family:Montserrat,Arial,Helvetica,sans-serif !important;font-style:normal !important}

/* the close control has to stay reachable on short screens */
.cov .cov-nl-overlay{align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch}
.cov .cov-nl-overlay .cov-nl-modal{margin:auto}
.cov .cov-nl-close{top:6px;right:8px;width:42px;height:42px;font-size:1.6rem;display:flex;align-items:center;justify-content:center;z-index:3;color:var(--navy,#102845)}
.cov .cov-nl-close:hover{opacity:.7}


/* Footer: match nav-link treatment to the header nav (uppercase, tracked, semibold) */
.tb-site-footer .wp-block-list a{font-size:0.8125rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase}
