/*
 * Red Hawk component styles.
 * Tokens come from theme.json (--wp--preset--* and --wp--custom--*).
 * Never hardcode a hex value here that exists in the palette.
 *
 *  1. Base and type
 *  2. Utility bar
 *  3. Header and navigation
 *  4. Page head and main
 *  5. Cards and post lists
 *  6. Footer
 *  7. Phone quick-action bar
 *  8. 404
 */

/* 1. Base and type ------------------------------------------------------ */
:root {
	--rh-red: var(--wp--preset--color--hawk-red);
	--rh-red-dark: var(--wp--preset--color--hawk-red-dark);
	--rh-ember: var(--wp--preset--color--ember);
	--rh-keep: var(--wp--preset--color--keep-green);
	--rh-deep: var(--wp--preset--color--keep-deep);
	--rh-steel: var(--wp--preset--color--steel);
	--rh-ink: var(--wp--preset--color--ink-soft);
	--rh-limestone: var(--wp--preset--color--limestone);
	--rh-brass: var(--wp--preset--color--brass);
	--rh-paper: var(--wp--preset--color--paper);
	--rh-white: var(--wp--preset--color--white);
	--rh-on-dark: var(--wp--custom--color--on-dark);
	--rh-on-dark-muted: var(--wp--custom--color--on-dark-muted);
	--rh-line-dark: var(--wp--custom--color--line-dark);
	--rh-mono: var(--wp--preset--font-family--mono);
	--rh-display: var(--wp--preset--font-family--display);
	--rh-gutter: var(--wp--custom--gutter);
	--rh-wide: var(--wp--style--global--wide-size, 1240px);
	--rh-radius: var(--wp--custom--radius);
}

h1, .wp-block-post-title, .rh-page-head__title {
	font-stretch: var(--wp--custom--font-stretch--display);
	text-wrap: balance;
}

h2, h3, h4 {
	font-stretch: var(--wp--custom--font-stretch--heading);
	text-wrap: balance;
}

p { text-wrap: pretty; }

/* Long copy on light grounds uses the softer ink. */
.wp-block-post-content p,
.wp-block-post-content li { color: var(--rh-ink); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--rh-red);
	outline-offset: 2px;
}

.rh-eyebrow,
.rh-eyebrow a {
	font-family: var(--rh-mono);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rh-steel);
	text-decoration: none;
}

.rh-mono { font-family: var(--rh-mono); }

.rh-lede {
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.55;
	color: var(--rh-ink);
	max-width: 62ch;
}

/* Theme-level button for template parts that can't use the button block. */
.rh-btn {
	display: inline-block;
	background: var(--rh-red);
	color: var(--rh-white);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	padding: 13px 20px;
	border-radius: var(--rh-radius);
	text-decoration: none;
	white-space: nowrap;
}
.rh-btn:hover, .rh-btn:focus { background: var(--rh-red-dark); color: var(--rh-white); }

/* 2. Utility bar --------------------------------------------------------- */
.rh-utility {
	background: var(--rh-deep);
	color: var(--rh-on-dark);
	font-family: var(--rh-mono);
	font-size: 12.5px;
	line-height: 1.5;
}
.rh-utility__inner {
	max-width: var(--rh-wide);
	margin: 0 auto;
	padding: 9px var(--rh-gutter);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	align-items: center;
	justify-content: space-between;
}
.rh-utility p { margin: 0; }
.rh-utility a { color: var(--rh-on-dark); text-decoration: none; }
.rh-utility a:hover { color: var(--rh-white); text-decoration: underline; }
.rh-utility :focus-visible { outline-color: var(--rh-brass); }
.rh-utility__emergency { display: flex; gap: 8px; align-items: center; }
.rh-utility__emergency a { color: var(--rh-white); font-weight: 600; }
.rh-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--rh-ember);
	display: inline-block;
	flex: none;
}
.rh-utility__links { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.rh-utility .rh-utility__hiring { color: var(--rh-brass); }

/* 3. Header and navigation ---------------------------------------------- */
.rh-header {
	background: var(--rh-white);
	border-bottom: 1px solid var(--rh-limestone);
}
.rh-header__inner {
	max-width: var(--rh-wide);
	margin: 0 auto;
	padding: 16px var(--rh-gutter);
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	align-items: center;
	justify-content: space-between;
}
.rh-brand {
	display: flex;
	gap: 12px;
	align-items: center;
	color: var(--rh-keep);
	text-decoration: none;
}
.rh-brand:hover { color: var(--rh-keep); }
.rh-brand__mark { flex: none; }
.rh-brand__text { display: flex; flex-direction: column; line-height: 1; }
.rh-brand__name {
	font-family: var(--rh-display);
	font-weight: 800;
	font-stretch: var(--wp--custom--font-stretch--wordmark);
	font-size: 21px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.rh-brand__sub {
	font-family: var(--rh-mono);
	font-size: 10.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rh-steel);
	margin-top: 6px;
}

.rh-nav { --navigation-layout-justification-setting: center; }
.rh-nav .wp-block-navigation__container { gap: 6px 28px; }
.rh-nav .wp-block-navigation-item__content { color: var(--rh-keep); }
.rh-nav .wp-block-navigation-item__content:hover { color: var(--rh-red); }
.rh-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--rh-red); }
.rh-nav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	border: 1px solid var(--rh-limestone);
	border-radius: var(--rh-radius);
	justify-content: center;
	align-items: center;
}
.rh-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--rh-white);
	padding: var(--rh-gutter);
}
.rh-nav .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--rh-display);
	font-stretch: var(--wp--custom--font-stretch--heading);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 800;
}

.rh-header__actions { display: flex; gap: 18px; align-items: center; }
.rh-header__call { display: flex; flex-direction: column; line-height: 1.2; text-align: right; }
.rh-header__call-label { font-size: 12px; color: var(--rh-steel); }
.rh-header__phone {
	font-family: var(--rh-mono);
	font-size: 15px;
	font-weight: 600;
	color: var(--rh-keep);
	text-decoration: none;
}

/* Phones: the quick-action bar carries Call and Request service. */
@media (max-width: 781px) {
	.rh-header__inner { padding-top: 12px; padding-bottom: 12px; flex-wrap: nowrap; }
	.rh-header__actions { display: none; }
	.rh-brand__mark { width: 38px; height: 38px; }
	.rh-brand__name { font-size: 17px; }
	.rh-brand__sub { font-size: 9px; letter-spacing: 0.2em; margin-top: 5px; }
	.rh-utility__links { display: none; }
}

/* 4. Page head and main -------------------------------------------------- */
.rh-main { padding-bottom: var(--wp--custom--section-y); }
.rh-main--bare { padding-bottom: 0; }
/* Template parts and main stack flush; spacing lives inside each section. */
.wp-site-blocks > * { margin-block-start: 0; }

.rh-page-head {
	background: var(--rh-paper);
	border-bottom: 1px solid var(--rh-limestone);
	padding-top: var(--wp--custom--section-y);
	padding-bottom: clamp(28px, 4vw, 56px);
	margin-bottom: var(--wp--preset--spacing--60);
}
.rh-page-head.rh-page-head > * {
	max-width: min(900px, 100%);
	/* Left-align inside the 1240px column instead of centring. */
	margin-left: max(0px, calc((100% - var(--rh-wide)) / 2)) !important;
}
.rh-page-head .rh-page-head__title { margin-block: 0.4em 0; }
.rh-page-head > .rh-lede, .rh-page-head > .wp-block-post-excerpt { margin-top: var(--wp--preset--spacing--30); }
.rh-meta { gap: 6px 18px; align-items: baseline; }

.rh-search { max-width: 520px; }
.rh-search .wp-block-search__input {
	border: 1px solid var(--wp--custom--color--input-border);
	border-radius: var(--rh-radius);
	padding: 12px 14px;
	font: inherit;
	background: var(--rh-white);
}
.rh-search .wp-block-search__button { margin-left: 8px; }

/* 5. Cards and post lists ------------------------------------------------ */
.rh-card-grid { gap: var(--wp--preset--spacing--40); }
.rh-card {
	background: var(--rh-white);
	border: 1px solid var(--rh-limestone);
	border-radius: var(--rh-radius);
	padding: var(--wp--preset--spacing--40);
	height: 100%;
	box-sizing: border-box;
}
.rh-card > * + * { margin-block-start: 10px; }
.rh-card .wp-block-post-title a { color: var(--rh-keep); text-decoration: none; }
.rh-card .wp-block-post-title a:hover { color: var(--rh-red); text-decoration: underline; }
.rh-card .wp-block-post-excerpt { color: var(--rh-ink); font-size: 15px; }

.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--60); font-weight: 600; }
.rh-post-nav { margin-top: var(--wp--preset--spacing--60); padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--rh-limestone); }

/* 6. Footer -------------------------------------------------------------- */
.rh-footer {
	background: var(--rh-keep);
	color: var(--rh-on-dark);
	font-size: 14.5px;
}
.rh-footer__inner {
	max-width: var(--rh-wide);
	margin: 0 auto;
	padding: 64px var(--rh-gutter) 28px;
	display: flex;
	flex-direction: column;
	gap: 44px;
}
.rh-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 32px;
}
.rh-footer__grid > * { margin: 0; }
.rh-footer p { margin: 0; }
.rh-footer__company { display: flex; flex-direction: column; gap: 14px; }
.rh-footer__brand {
	display: flex;
	gap: 10px;
	align-items: center;
	color: var(--rh-white);
	font-family: var(--rh-display);
	font-weight: 800;
	font-stretch: var(--wp--custom--font-stretch--heading);
	font-size: 17px;
	line-height: 1.15;
}
.rh-footer__brand svg { flex: none; }
.rh-footer__wordmark { display: flex; flex-direction: column; line-height: 1; }
.rh-footer__wordmark span:first-child { font-stretch: var(--wp--custom--font-stretch--wordmark); letter-spacing: 0.06em; text-transform: uppercase; }
.rh-footer__wordmark span:last-child { font-family: var(--rh-mono); font-weight: 500; font-stretch: normal; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rh-on-dark-muted); margin-top: 6px; }
.rh-footer__phone a {
	font-family: var(--rh-mono);
	color: var(--rh-white);
	font-weight: 600;
	text-decoration: none;
}
.rh-footer__license { font-family: var(--rh-mono); font-size: 12px; color: var(--rh-on-dark-muted); }
.rh-footer .rh-footer__label {
	font-family: var(--rh-mono);
	font-size: 12px;
	font-weight: 600;
	font-stretch: normal;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rh-brass);
	margin: 0 0 12px;
}
.rh-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.rh-footer a { color: var(--rh-on-dark); text-decoration: none; }
.rh-footer a:hover { color: var(--rh-white); text-decoration: underline; }
.rh-footer :focus-visible { outline-color: var(--rh-brass); }
.rh-footer__bottom {
	border-top: 1px solid var(--rh-line-dark);
	padding-top: 22px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	justify-content: space-between;
	font-size: 13px;
	color: var(--rh-on-dark-muted);
}
.rh-footer__bottom a { color: var(--rh-on-dark-muted); }

@media (max-width: 781px) {
	.rh-footer__inner { padding-top: 48px; }
	.rh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
	.rh-footer__company { grid-column: 1 / -1; }
}

/* 7. Phone quick-action bar --------------------------------------------- */
.rh-quick-actions { display: none; }

@media (max-width: 781px) {
	.rh-quick-actions {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: var(--rh-white);
		border-top: 1px solid var(--rh-limestone);
		box-shadow: var(--wp--preset--shadow--bar);
	}
	.rh-quick-actions a {
		display: flex;
		gap: 8px;
		align-items: center;
		justify-content: center;
		font-weight: 700;
		text-decoration: none;
		border-radius: var(--rh-radius);
		min-height: 48px;
	}
	.rh-quick-actions__call { border: 2px solid var(--rh-keep); color: var(--rh-keep); }
	.rh-quick-actions__request { background: var(--rh-red); color: var(--rh-white); }
	.rh-quick-actions__request:hover { background: var(--rh-red-dark); color: var(--rh-white); }

	/* Keep the footer clear of the fixed bar. */
	.wp-site-blocks { padding-bottom: 72px; }
}

/* 8. 404 ------------------------------------------------------------------ */
.rh-main--404 .wp-block-buttons { margin-bottom: var(--wp--preset--spacing--50); }
.rh-easter-egg {
	margin-top: var(--wp--preset--spacing--60);
	font-family: var(--rh-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--rh-steel);
}

/* =========================================================================
 * Page sections (used by page content built from core blocks)
 *
 *  9. Section shells and heads
 * 10. Page hero and breadcrumbs
 * 11. Grids, cards and service lists
 * 12. Trust strip, logos, stats and quotes
 * 13. Steps, timelines and checklists
 * 14. Work-order card, before/after and photo placeholders
 * 15. Plans
 * 16. Tables, FAQ, chips and CTAs
 * 17. Forms, placeholders and the phone menu
 * ========================================================================= */

/* 9. Section shells and heads ------------------------------------------- */
.rh-section {
	padding-top: var(--wp--custom--section-y);
	padding-bottom: var(--wp--custom--section-y);
	background: var(--rh-paper);
}
.wp-block-post-content > .alignfull { margin-block-start: 0; }
.rh-section--white { background: var(--rh-white); border-top: 1px solid var(--rh-limestone); border-bottom: 1px solid var(--rh-limestone); }
.rh-section--alt { background: var(--wp--preset--color--stone-2); }
.rh-section--tight { padding-top: clamp(28px, 4vw, 44px); padding-bottom: clamp(28px, 4vw, 44px); }
.rh-section--flush-top { padding-top: 0; }

.rh-section__inner.rh-section__inner > * { margin-block: 0; }
.rh-section__inner.rh-section__inner > * + * { margin-block-start: clamp(24px, 3vw, 36px); }
.rh-section__inner.rh-section__inner > .rh-head + .rh-chips { margin-block-start: 18px; }

.rh-head { display: flex; flex-wrap: wrap; gap: 14px 48px; align-items: flex-end; justify-content: space-between; }
.rh-head > * { margin: 0 !important; }
.rh-head__text { max-width: 680px; display: flex; flex-direction: column; gap: 10px; }
.rh-head__text > * { margin: 0 !important; }
.rh-head h2 { font-size: clamp(30px, 3vw, 40px); font-stretch: 110%; }
.rh-head__lede { color: var(--rh-steel); max-width: 440px; }
.rh-head__text .rh-head__lede { color: var(--rh-ink); max-width: 62ch; }
.rh-head__link a,
.rh-more a {
	font-weight: 700;
	text-decoration: none;
	color: var(--rh-red);
}
.rh-head__link a:hover,
.rh-more a:hover { text-decoration: underline; }

.rh-section .rh-eyebrow,
.rh-hero .rh-eyebrow { color: var(--rh-red); }

/* Dark band */
.rh-section--dark { background: var(--rh-keep); color: var(--rh-on-dark); }
.rh-section--dark :where(h1, h2, h3, h4) { color: var(--rh-white); }
.rh-section--dark .rh-eyebrow { color: var(--rh-brass); }
.rh-section--dark p,
.rh-section--dark li { color: var(--rh-on-dark); }
.rh-section--dark a:not(.wp-element-button) { color: var(--rh-white); }
.rh-section--dark .rh-head__link a { border-bottom: 2px solid var(--rh-ember); padding-bottom: 3px; text-decoration: none; }
.rh-section--dark :focus-visible { outline-color: var(--rh-brass); }
.rh-section--dark .is-style-outline .wp-block-button__link { color: var(--rh-white); border-color: var(--rh-white); }
.rh-section--dark .is-style-outline .wp-block-button__link:hover { background: var(--rh-white); color: var(--rh-keep); }

/* Reading column and two-column split inside wide sections */
.rh-prose { max-width: 720px; }
.rh-prose > * { margin-block: 0; }
.rh-prose > * + * { margin-block-start: 1em; }
.rh-prose h2 { font-size: var(--wp--preset--font-size--xxl); margin-block-start: 1.5em; }
.rh-prose h3 { margin-block-start: 1.4em; }
.rh-prose .rh-eyebrow + h2,
.rh-prose .rh-eyebrow + h3 { margin-block-start: 10px; }
.rh-prose p,
.rh-prose li { color: var(--rh-ink); }
.rh-split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.rh-split > * { margin: 0 !important; }
.rh-split > * > * { margin-block: 0; }
.rh-split > * > * + * { margin-block-start: 18px; }
@media (max-width: 900px) { .rh-split { grid-template-columns: minmax(0, 1fr); } }

/* 10. Page hero and breadcrumbs ----------------------------------------- */
.rh-hero {
	background: var(--rh-paper);
	border-bottom: 1px solid var(--rh-limestone);
	padding-top: clamp(32px, 5vw, 64px);
	padding-bottom: clamp(36px, 5vw, 72px);
}
.rh-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.rh-hero__grid > * { margin: 0 !important; }
.rh-hero__text { display: flex; flex-direction: column; gap: 20px; }
.rh-hero__text > * { margin: 0 !important; }
.rh-hero h1 { font-size: clamp(34px, 4.4vw, 58px); }
.rh-hero--home h1 { font-size: clamp(34px, 3.9vw, 54px); }
.rh-hero .rh-lede { font-size: clamp(16.5px, 1.4vw, 19px); }
.rh-hero__aside { position: relative; }
.rh-hero__aside > * { margin: 0; }
.rh-hero__note { font-size: 14.5px; color: var(--rh-steel); }
.rh-hero__note a { font-weight: 600; text-decoration: none; }
@media (max-width: 900px) { .rh-hero__grid { grid-template-columns: minmax(0, 1fr); } }

.rh-crumbs { font-family: var(--rh-mono); font-size: 12.5px; color: var(--rh-steel); margin: 0; }
.rh-crumbs a { color: var(--rh-steel); text-decoration: none; }
.rh-crumbs a:hover { color: var(--rh-red); text-decoration: underline; }

.rh-hero-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-top: 1px solid var(--rh-limestone); padding-top: 18px; gap: 16px; }
.rh-hero-stats > * { margin: 0 !important; }
.rh-hero-stats p { margin: 0; font-size: 14px; color: var(--rh-steel); line-height: 1.35; }
.rh-hero-stats strong { display: block; font-family: var(--rh-display); font-stretch: 112%; font-size: 26px; color: var(--rh-keep); }

.rh-anchor-nav { position: sticky; top: 0; z-index: 20; background: var(--rh-white); border-bottom: 1px solid var(--rh-limestone); }
.admin-bar .rh-anchor-nav { top: 32px; }
.rh-anchor-nav p { margin: 0; display: flex; gap: 4px 28px; flex-wrap: wrap; padding: 14px 0; font-weight: 600; font-size: 15px; }
.rh-anchor-nav a { color: var(--rh-keep); text-decoration: none; }
.rh-anchor-nav a:hover { color: var(--rh-red); }
@media (max-width: 781px) {
	.rh-anchor-nav p { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; }
	.admin-bar .rh-anchor-nav { top: 0; }
}

/* 11. Grids, cards and service lists ------------------------------------ */
.rh-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.rh-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.rh-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.rh-grid > * { margin: 0 !important; }

.rh-tile {
	position: relative;
	background: var(--rh-white);
	border: 1px solid var(--rh-limestone);
	display: flex;
	flex-direction: column;
}
.rh-tile > * { margin: 0 !important; }
.rh-tile__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.rh-tile__body > * { margin: 0 !important; }
.rh-tile h3 { font-size: 23px; font-stretch: 106%; font-weight: 700; }
.rh-tile h3 a { color: var(--rh-keep); text-decoration: none; }
.rh-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.rh-tile:hover h3 a { text-decoration: underline; }
.rh-tile:focus-within { outline: 2px solid var(--rh-red); outline-offset: 2px; }
.rh-tile h3 a:focus-visible { outline: none; }
.rh-tile p { color: var(--rh-ink); font-size: 15.5px; }
.rh-tile .rh-more { margin-top: auto !important; font-weight: 700; color: var(--rh-red); font-size: 15px; }

.rh-svc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); border-top: 1px solid var(--rh-limestone); border-left: 1px solid var(--rh-limestone); }
.rh-svc-grid > * { margin: 0 !important; }
.rh-svc { position: relative; padding: 28px; border-right: 1px solid var(--rh-limestone); border-bottom: 1px solid var(--rh-limestone); display: flex; flex-direction: column; gap: 6px; background: var(--rh-white); }
.rh-svc > * { margin: 0 !important; }
.rh-svc h3 { font-size: 20px; font-stretch: 104%; font-weight: 700; }
.rh-svc h3 a { color: var(--rh-keep); text-decoration: none; }
.rh-svc h3 a::after { content: ""; position: absolute; inset: 0; }
.rh-svc h3 a:focus-visible { outline: none; }
.rh-svc:focus-within { outline: 2px solid var(--rh-red); outline-offset: -2px; }
.rh-svc:hover { background: var(--wp--preset--color--red-tint); }
.rh-svc:hover h3 a { color: var(--rh-red); }
.rh-svc p { color: var(--rh-steel); font-size: 15px; }

/* 12. Trust strip, logos, stats and quotes ------------------------------ */
.rh-trust-band { background: var(--rh-white); border-bottom: 1px solid var(--rh-limestone); }
.rh-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.rh-trust > * { margin: 0 !important; }
.rh-trust p {
	margin: 0;
	padding: 22px 20px 22px 58px;
	position: relative;
	line-height: 1.3;
	border-right: 1px solid var(--rh-limestone);
}
.rh-trust p:last-child { border-right: 0; }
.rh-trust p strong { display: block; }
.rh-trust p span { font-family: var(--rh-mono); font-size: 12px; color: var(--rh-steel); }
.rh-trust p::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	background: var(--rh-red);
	-webkit-mask: var(--rh-icon) center / contain no-repeat;
	mask: var(--rh-icon) center / contain no-repeat;
}
.rh-trust p:nth-child(1) { --rh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Cpath d='M4 21V9l8-6 8 6v12'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E"); }
.rh-trust p:nth-child(2) { --rh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.rh-trust p:nth-child(3) { --rh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Crect x='4' y='4' width='16' height='16'/%3E%3Cpath d='M8 9h8M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.rh-trust p:nth-child(4) { --rh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l3 2M9 2h6'/%3E%3C/svg%3E"); }
@media (max-width: 781px) {
	.rh-trust p { border-right: 0; border-bottom: 1px solid var(--rh-limestone); }
	.rh-trust p:last-child { border-bottom: 0; }
}

.rh-logos { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: center; }
.rh-logos > * { margin: 0 !important; }
.rh-section .rh-logos .rh-eyebrow { color: var(--rh-steel); flex: 0 0 auto; }
.rh-logos__row { flex: 1 1 520px; display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 16px; }
.rh-logos__row span { height: 40px; border: 1px dashed var(--wp--custom--color--input-border); display: flex; align-items: center; justify-content: center; font-family: var(--rh-mono); font-size: 11px; color: var(--rh-steel); }

.rh-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 1px; background: var(--rh-limestone); border: 1px solid var(--rh-limestone); }
.rh-stats > * { margin: 0 !important; }
.rh-stats p { margin: 0; background: var(--rh-white); padding: 22px 22px 24px; color: var(--rh-steel); font-size: 14.5px; line-height: 1.35; }
.rh-stats strong { display: block; font-family: var(--rh-display); font-stretch: 112%; font-size: clamp(30px, 3vw, 40px); color: var(--rh-keep); line-height: 1.1; margin-bottom: 6px; }

.rh-quote.wp-block-quote {
	border-left: 4px solid var(--rh-red);
	margin: 0;
	padding: 6px 0 6px clamp(18px, 3vw, 32px);
}
.rh-quote p { font-family: var(--rh-display); font-stretch: 104%; font-weight: 700; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.25; color: var(--rh-keep); }
.rh-quote cite { display: block; margin-top: 14px; font-style: normal; font-family: var(--rh-mono); font-size: 13px; color: var(--rh-steel); }

/* 13. Steps, timelines and checklists ----------------------------------- */
.rh-steps { list-style: none; margin: 0; padding: 0; counter-reset: rh-step; }
.rh-steps li {
	counter-increment: rh-step;
	display: grid;
	grid-template-columns: 56px 1fr;
	column-gap: 16px;
	padding: 18px 0;
	border-top: 1px solid var(--rh-limestone);
	color: var(--rh-steel);
	font-size: 15px;
}
.rh-steps li:last-child { border-bottom: 1px solid var(--rh-limestone); }
.rh-steps li::before { content: counter(rh-step, decimal-leading-zero); grid-row: span 3; font-family: var(--rh-mono); font-weight: 600; color: var(--rh-red); font-size: 15px; }
.rh-steps li strong { display: block; font-family: var(--rh-display); font-size: 19px; color: var(--rh-keep); line-height: 1.3; }

.rh-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 1px; background: var(--rh-limestone); border: 1px solid var(--rh-limestone); }
.rh-timeline li { background: var(--rh-white); padding: 22px 20px; color: var(--rh-steel); font-size: 15px; }
.rh-timeline .rh-tl { display: block; font-family: var(--rh-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rh-red); margin-bottom: 8px; }
.rh-timeline li strong { display: block; font-family: var(--rh-display); font-size: 19px; color: var(--rh-keep); margin-bottom: 4px; }

.rh-check,
.rh-cross { list-style: none; margin: 0; padding: 0; }
.rh-check li,
.rh-cross li { position: relative; padding: 9px 0 9px 30px; border-bottom: 1px solid var(--rh-limestone); color: var(--rh-ink); }
.rh-check li::before,
.rh-cross li::before { position: absolute; left: 0; top: 9px; font-weight: 700; font-family: var(--rh-mono); }
.rh-check li::before { content: "\2713"; color: var(--rh-red); }
.rh-cross li::before { content: "\2013"; color: var(--rh-steel); }

.rh-panel { background: var(--rh-white); border: 1px solid var(--rh-limestone); padding: clamp(20px, 3vw, 32px); }
.rh-panel > * { margin-block: 0; }
.rh-panel > * + * { margin-block-start: 14px; }
.rh-panel h3 { font-size: 22px; }
.rh-panel--tint { background: var(--wp--preset--color--red-tint); border-color: #EBCFCA; }
.rh-panel--dark { background: var(--rh-keep); border-color: var(--rh-keep); color: var(--rh-on-dark); }
.rh-panel--dark :where(h2, h3, h4, strong) { color: var(--rh-white); }
.rh-panel--dark p,
.rh-panel--dark li { color: var(--rh-on-dark); }
.rh-panel--dark a:not(.wp-element-button) { color: var(--rh-white); }
.rh-panel .rh-eyebrow { color: var(--rh-red); }
.rh-panel--dark .rh-eyebrow { color: var(--rh-ember); }

/* 14. Work-order card, before/after and photo placeholders -------------- */
.rh-photo {
	margin: 0;
	min-height: 220px;
	background: repeating-linear-gradient(135deg, #DDDCD4 0 12px, #D5D4CB 12px 24px);
	display: flex;
	align-items: flex-end;
	padding: 14px;
	font-family: var(--rh-mono);
	font-size: 11px;
	color: var(--rh-steel);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.rh-photo--tall { min-height: 440px; }
.rh-photo--dark {
	background: repeating-linear-gradient(135deg, #24332C 0 14px, #20302A 14px 28px);
	color: var(--rh-on-dark-muted);
	clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%, 0 18%);
	justify-content: flex-end;
	text-align: right;
}
.rh-tile .rh-photo { min-height: 0; height: 190px; flex: none; }

.rh-wo { background: var(--rh-white); border: 1px solid var(--rh-limestone); font-size: 14px; color: var(--rh-keep); }
.rh-wo__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--rh-limestone); font-family: var(--rh-mono); font-size: 12px; color: var(--rh-steel); }
.rh-wo__id { background: var(--rh-keep); color: var(--rh-white); padding: 3px 8px; letter-spacing: 0.06em; }
.rh-wo__body { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.rh-wo__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; }
.rh-wo__fields div { margin: 0; }
.rh-wo__fields dt { font-family: var(--rh-mono); font-size: 11px; color: var(--rh-steel); text-transform: uppercase; letter-spacing: 0.08em; }
.rh-wo__fields dd { margin: 0; font-weight: 700; }
.rh-wo__fields .rh-wo__closed { color: var(--rh-red); }
.rh-wo__notes { margin: 0; color: var(--rh-ink); border-top: 1px dashed var(--rh-limestone); padding-top: 12px; }
.rh-hero .rh-wo--float { position: absolute; left: -28px; bottom: 36px; width: 300px; max-width: 90%; box-shadow: var(--wp--preset--shadow--card); }
@media (max-width: 900px) { .rh-hero .rh-wo--float { position: static; width: auto; max-width: none; margin-top: 16px; } }

.rh-ba { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; height: 220px; margin: 0; }
.rh-ba span { display: flex; align-items: flex-end; padding: 10px; background: repeating-linear-gradient(135deg, #DDDCD4 0 12px, #D5D4CB 12px 24px); }
.rh-ba span:first-child { background: repeating-linear-gradient(135deg, #C9CBC2 0 12px, #C2C4BA 12px 24px); }
.rh-ba span::after { font-family: var(--rh-mono); font-size: 10.5px; color: var(--rh-white); padding: 2px 6px; }
.rh-ba span:first-child::after { content: "BEFORE"; background: var(--rh-keep); }
.rh-ba span:last-child::after { content: "AFTER"; background: var(--rh-red); }
.rh-wo .rh-ba { height: 120px; }

.rh-tags { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rh-tags span { font-family: var(--rh-mono); font-size: 11.5px; padding: 3px 8px; background: var(--rh-limestone); color: var(--rh-keep); }
.rh-meta-line { font-family: var(--rh-mono); font-size: 13px; color: var(--rh-steel); }

.rh-project { display: flex; flex-direction: column; gap: 14px; position: relative; }
.rh-project > * { margin: 0 !important; }
.rh-project h3 { font-size: 22px; font-stretch: 105%; font-weight: 700; }
.rh-project h3 a { color: var(--rh-keep); text-decoration: none; }
.rh-project h3 a::after { content: ""; position: absolute; inset: 0; }
.rh-project:hover h3 a { text-decoration: underline; }
.rh-project p { color: var(--rh-ink); }

/* 15. Plans --------------------------------------------------------------- */
.rh-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1px; background: var(--rh-line-dark); border: 1px solid var(--rh-line-dark); }
.rh-plans > * { margin: 0 !important; }
.rh-plan { background: var(--rh-keep); padding: 30px 28px; display: flex; flex-direction: column; gap: 14px; }
.rh-plan > * { margin: 0 !important; }
.rh-plan--featured { background: #1F2E27; }
.rh-section .rh-plan .rh-plan__tier { font-family: var(--rh-mono); font-size: 12px; color: var(--rh-brass); letter-spacing: 0.1em; text-transform: uppercase; }
.rh-plan h3 { font-weight: 800; font-stretch: 120%; font-size: 30px; color: var(--rh-white); letter-spacing: 0.02em; }
.rh-plan p { color: var(--rh-on-dark); font-size: 15.5px; }
.rh-section .rh-plan .rh-plan__price { font-family: var(--rh-mono); font-size: 13px; color: var(--rh-on-dark-muted); border-top: 1px solid var(--rh-line-dark); padding-top: 14px; margin-top: auto !important; }
.rh-plan ul { margin: 0; padding: 0; list-style: none; }
.rh-plan li { padding: 6px 0 6px 24px; position: relative; color: var(--rh-on-dark); font-size: 15px; }
.rh-plan li::before { content: "\2713"; position: absolute; left: 0; color: var(--rh-brass); font-family: var(--rh-mono); }

/* 16. Tables, FAQ, chips and CTAs --------------------------------------- */
.rh-table { margin: 0; overflow-x: auto; }
.rh-table table { width: 100%; border-collapse: collapse; background: var(--rh-white); font-size: 15px; min-width: 620px; }
.rh-table th,
.rh-table td { border: 1px solid var(--rh-limestone); padding: 14px 16px; text-align: left; vertical-align: top; }
.rh-table thead th { background: var(--rh-keep); color: var(--rh-white); font-family: var(--rh-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; border-color: var(--rh-keep); }
.rh-table td { color: var(--rh-ink); }
.rh-table td:first-child { font-weight: 700; color: var(--rh-keep); }
.rh-table .wp-element-caption { font-size: 13.5px; color: var(--rh-steel); margin-top: 10px; text-align: left; }

.rh-faq { border-top: 1px solid var(--rh-limestone); }
.rh-faq + .rh-faq { margin-block-start: 0 !important; }
.rh-faq:last-child { border-bottom: 1px solid var(--rh-limestone); }
.rh-faq summary { cursor: pointer; padding: 18px 36px 18px 0; position: relative; font-family: var(--rh-display); font-stretch: 104%; font-weight: 700; font-size: 18px; color: var(--rh-keep); list-style: none; }
.rh-faq summary::-webkit-details-marker { display: none; }
.rh-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-family: var(--rh-mono); font-size: 22px; color: var(--rh-red); }
.rh-faq[open] summary::after { content: "\2013"; }
.rh-faq > p { margin: 0 0 18px; color: var(--rh-ink); max-width: 72ch; }

.rh-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.rh-chips a,
.rh-chips span { display: inline-block; padding: 9px 14px; border: 1px solid var(--wp--preset--color--line-strong); background: var(--rh-white); color: var(--rh-keep); text-decoration: none; font-weight: 600; font-size: 15px; border-radius: var(--rh-radius); }
.rh-chips a:hover { border-color: var(--rh-red); color: var(--rh-red); }
.rh-section--dark .rh-chips a { background: transparent; color: var(--rh-white); border-color: var(--rh-line-dark); }

.rh-careers { background: var(--wp--preset--color--red-tint); border: 1px solid #EBCFCA; padding: 24px clamp(20px, 3vw, 32px); display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; }
.rh-careers > * { margin: 0 !important; }
.rh-careers p { font-family: var(--rh-display); font-stretch: 106%; font-weight: 700; font-size: clamp(18px, 1.8vw, 22px); max-width: 760px; color: var(--rh-keep); }

.rh-cta h2 { font-size: clamp(30px, 3.4vw, 46px); font-stretch: 112%; max-width: 820px; }
.rh-cta__phone { font-family: var(--rh-mono); font-size: 14px; }

@media (max-width: 600px) {
	.rh-hero .wp-block-buttons,
	.rh-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.rh-hero .wp-block-button__link,
	.rh-cta .wp-block-button__link { width: 100%; text-align: center; }
}

/* 17. Forms, placeholders and the phone menu ---------------------------- */
.rh-form-ph { background: var(--rh-white); border: 1px dashed var(--wp--custom--color--input-border); padding: clamp(20px, 3vw, 32px); }
.rh-form-ph > * { margin-block: 0; }
.rh-form-ph > * + * { margin-block-start: 14px; }
.rh-section .rh-form-ph .rh-eyebrow { color: var(--rh-steel); }
.rh-form-steps { list-style: none; margin: 0; padding: 0; counter-reset: rh-fs; }
.rh-form-steps li { counter-increment: rh-fs; padding: 12px 0 12px 44px; position: relative; border-top: 1px solid var(--rh-limestone); color: var(--rh-ink); }
.rh-form-steps li::before { content: counter(rh-fs, decimal-leading-zero); position: absolute; left: 0; top: 12px; font-family: var(--rh-mono); color: var(--rh-red); font-weight: 600; }
.rh-form-steps li strong { color: var(--rh-keep); }

.rh-emergency { background: var(--rh-keep); color: var(--rh-on-dark); padding: 22px 24px; }
.rh-emergency > * { margin-block: 0; }
.rh-emergency > * + * { margin-block-start: 10px; }
.rh-section .rh-emergency .rh-eyebrow { color: var(--rh-ember); }
.rh-emergency p { color: var(--rh-on-dark); }
.rh-emergency strong,
.rh-emergency a { color: var(--rh-white); }
.rh-emergency__phone { font-family: var(--rh-mono); font-size: 22px; font-weight: 600; }
.rh-emergency__phone a { text-decoration: none; }

.rh-note { font-size: 14px; color: var(--rh-steel); }

.rh-nav .rh-nav__cta { display: none; }
.rh-nav .is-menu-open .rh-nav__cta { display: block; margin-top: 12px; }
.rh-nav .is-menu-open .rh-nav__cta > .wp-block-navigation-item__content {
	background: var(--rh-red);
	color: var(--rh-white);
	font-family: var(--wp--preset--font-family--body);
	font-stretch: normal;
	font-size: 17px;
	font-weight: 700;
	padding: 14px 20px;
	border-radius: var(--rh-radius);
}
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; }
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 14px; }

/* 18. Learn posts ---------------------------------------------------------- */
.rh-post-body { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.rh-post-body .wp-block-post-content > * + * { margin-block-start: 1em; }
.rh-post-body .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--xl); font-stretch: 108%; margin-block-start: 1.8em; }
.rh-post-body .wp-block-post-content li { margin-block: 0.35em; }
.rh-post-body .wp-block-post-content .rh-panel { margin-block-start: 2.5em; }
.rh-post-body .rh-post-nav { margin-top: var(--wp--preset--spacing--60); }
.rh-hero .wp-block-post-date { font-size: 13px; }

.rh-section--tight h2 { font-size: var(--wp--preset--font-size--xl); font-stretch: 108%; }
.rh-related { display: flex; flex-direction: column; gap: 10px; }
.rh-related > * { margin: 0 !important; }

@media (max-width: 900px) {
	.rh-photo--tall { min-height: 240px; }
	.rh-section .rh-logos .rh-eyebrow { flex: 1 1 100%; }
}
