/* RH Construct theme styles. Mobile first. */

@font-face { font-family: "Barlow"; src: url("../fonts/barlow-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/barlow-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/barlow-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; src: url("../fonts/barlow-semi-condensed-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; src: url("../fonts/barlow-semi-condensed-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }


:root {
	--rh-ink: #161616;
	--rh-ink-2: #121212;
	--rh-ink-3: #0d0d0d;
	--rh-green: #1e8a63;
	--rh-green-2: #26a57c;
	--rh-green-l: #4fd1a2;
	--rh-stone: #f6f6f4;
	--rh-line: #e2e1dc;
	--rh-line-2: #d9d9d6;
	--rh-body: #4d4d4a;
	--rh-muted: #6b6b67;
	--rh-w: 1240px;
	--rh-pad: clamp(20px, 4vw, 40px);
	--rh-sec: clamp(64px, 10vw, 130px);
	--rh-font: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rh-head-h: 72px;
}
@media (min-width: 1000px) { :root { --rh-head-h: 84px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--rh-head-h) + 16px); }
body.rh { margin: 0; font-family: var(--rh-font); color: var(--rh-ink); background: #fff; font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--rh-green); }
a:hover { color: #156b4c; }
:focus-visible { outline: 3px solid var(--rh-green-l); outline-offset: 3px; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed; left: 12px; top: 12px; z-index: 1000; clip: auto; width: auto; height: auto; background: #fff; color: var(--rh-ink); padding: 12px 18px; }

h1, h2, h3, h4 { font-family: var(--rh-font); color: inherit; font-weight: 800; margin: 0 0 .5em; }
.rh h1, .rh .rh-h1 { font-size: clamp(40px, 6vw, 76px); line-height: .99; letter-spacing: -.035em; margin-bottom: 22px; }
.rh h2 { font-size: clamp(30px, 3.8vw, 50px); line-height: 1.05; letter-spacing: -.03em; margin-bottom: 20px; }
.rh h3 { font-size: 21px; line-height: 1.22; letter-spacing: -.01em; font-weight: 700; margin-bottom: 8px; }
.rh p { margin: 0 0 14px; color: var(--rh-body); max-width: 64ch; }
.rh ul, .rh ol { color: var(--rh-body); }
.rh-main > :first-child { margin-top: 0; }

.rh-w { max-width: var(--rh-w); margin-inline: auto; padding-inline: var(--rh-pad); width: 100%; }
.rh-w--narrow { max-width: 920px; }

/* Eyebrow label */
.rh .rh-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rh-green); margin: 0 0 16px; display: flex; align-items: center; gap: 12px; }
.rh .rh-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; flex-shrink: 0; }
.is-dark .rh-eyebrow, .is-photo .rh-eyebrow, .rh-hero .rh-eyebrow, .rh-eyebrow.is-light { color: var(--rh-green-l) !important; }

/* Sections */
.rh-sec { padding-block: var(--rh-sec); position: relative; margin: 0; }
.rh-sec.is-white { background: #fff; }
.rh-sec.is-stone { background: var(--rh-stone); }
.rh-sec.is-dark { background: var(--rh-ink); color: #fff; }
.rh-sec.is-tight { padding-block: clamp(56px, 7vw, 100px); }
.is-dark p, .is-photo p { color: rgba(255,255,255,.75); }
.is-dark h2, .is-dark h3, .is-photo h2, .is-photo h3 { color: #fff; }
.rh-sec.is-photo { background: var(--rh-ink); color: #fff; overflow: hidden; isolation: isolate; }
.rh-sec.is-photo > .rh-bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.rh-sec.is-photo > .rh-bg img { width: 100%; height: 100%; object-fit: cover; }
.rh-sec.is-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, rgba(14,14,14,.92) 0%, rgba(14,14,14,.78) 55%, rgba(18,70,50,.74) 100%); }
.rh-head, .rh .rh-head { display: grid; gap: 20px 60px; align-items: end; margin-bottom: clamp(32px, 5vw, 56px); }
@media (min-width: 860px) { .rh-head { grid-template-columns: 1fr 1fr; } }
.rh-head h2 { margin: 0; }
.rh-head p { margin: 0; }
.rh-head--row, .rh .rh-head--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }

/* Buttons */
.rh .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.rh .wp-block-button { margin: 0; }
.rh .wp-block-button__link, .rh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; font-family: var(--rh-font); font-weight: 700; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; border-radius: 2px; border: 1.5px solid transparent; background: var(--rh-green); color: #fff; cursor: pointer; transition: background .15s, border-color .15s, color .15s; line-height: 1.2; text-align: center; }
.rh .wp-block-button__link:hover, .rh-btn:hover { background: var(--rh-green-2); color: #fff; }
.rh .is-style-rh-ghost .wp-block-button__link, .rh-btn--ghost { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.rh .is-style-rh-ghost .wp-block-button__link:hover, .rh-btn--ghost:hover { background: rgba(255,255,255,.08); border-color: #fff; color: #fff; }
.rh .is-style-rh-outline .wp-block-button__link, .rh-btn--outline { background: transparent; border-color: var(--rh-ink); color: var(--rh-ink); }
.rh .is-style-rh-outline .wp-block-button__link:hover, .rh-btn--outline:hover { background: var(--rh-ink); color: #fff; }
.rh-btn--sm { min-height: 46px; padding: 0 20px; }
.rh-btn--block { width: 100%; }
.rh-link { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 2px solid var(--rh-green-2); padding-bottom: 4px; color: inherit; }
.rh-textlink a, a.rh-textlink { font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--rh-green); padding-bottom: 3px; }

/* ---------- Header ---------- */
.rh-header { position: sticky; top: 0; z-index: 50; background: var(--rh-ink-2); border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-bar .rh-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rh-header { top: 0; } }
.rh-header__in { display: flex; align-items: center; gap: 28px; height: var(--rh-head-h); }
.rh-logo { display: block; flex-shrink: 0; width: 110px; }
.rh-logo img { width: 100%; height: auto; }
.rh-nav { display: none; flex-grow: 1; justify-content: center; }
.rh-nav ul { list-style: none; margin: 0; padding: 0; }
.rh-nav > ul { display: flex; gap: 4px; }
.rh-nav li { position: relative; }
.rh-nav a { display: block; color: #fff; text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; padding: 12px 9px; opacity: .92; white-space: nowrap; }
@media (max-width: 1240px) { .rh-nav a { font-size: 12px; padding: 12px 7px; letter-spacing: .03em; } }
.rh-nav a:hover, .rh-nav .current-menu-item > a, .rh-nav .current-menu-ancestor > a { color: var(--rh-green-l); opacity: 1; }
.rh-nav .sub-menu { position: absolute; left: 0; top: 100%; min-width: 260px; background: var(--rh-ink-2); border: 1px solid rgba(255,255,255,.08); border-top: 2px solid var(--rh-green); padding: 10px 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s; }
.rh-nav li:hover > .sub-menu, .rh-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.rh-nav .sub-menu a { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 500; padding: 9px 20px; }
.rh-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-3px); margin-left: 8px; }
.rh-header__cta { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.rh-header__phone { display: none; align-items: center; gap: 8px; color: #fff; text-decoration: none; font-weight: 700; font-size: 16px; white-space: nowrap; }
.rh-header__phone .rh-ico { color: var(--rh-green-l); }
.rh-header__phone:hover { color: var(--rh-green-l); }
.rh-header__quote { display: none; }
.rh-iconbtn { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.22); background: transparent; color: #fff; border-radius: 2px; cursor: pointer; }
.rh-iconbtn .rh-ico--phone { color: var(--rh-green-l); }
@media (min-width: 700px) { .rh-header__quote { display: inline-flex; } }
@media (min-width: 1080px) {
	.rh-nav { display: flex; }
	.rh-header__phone { display: inline-flex; }
	.rh-header .rh-iconbtn { display: none; }
	.rh-logo { width: 116px; }
}

/* Mobile drawer */
.rh-drawer { position: fixed; inset: 0; z-index: 100; background: var(--rh-ink-2); color: #fff; padding: 20px var(--rh-pad) 120px; overflow-y: auto; transform: translateX(100%); transition: transform .25s ease; visibility: hidden; }
.rh-drawer.is-open { transform: none; visibility: visible; }
.rh-drawer__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.rh-drawer ul { list-style: none; margin: 0; padding: 0; }
.rh-drawer a { color: #fff; text-decoration: none; display: block; padding: 14px 0; font-weight: 700; font-size: 19px; border-bottom: 1px solid rgba(255,255,255,.1); }
.rh-drawer .sub-menu a { font-weight: 500; font-size: 16px; padding: 11px 0 11px 18px; color: rgba(255,255,255,.8); }
.rh-drawer .sub-menu { display: none; }
.rh-drawer li.is-open > .sub-menu { display: block; }
.rh-drawer .menu-item-has-children { position: relative; }
.rh-drawer .rh-sub-toggle { position: absolute; right: 0; top: 6px; width: 44px; height: 44px; background: none; border: 0; color: var(--rh-green-l); font-size: 24px; cursor: pointer; }
.rh-drawer__cta { display: grid; gap: 10px; margin-top: 26px; }
body.rh-lock { overflow: hidden; }

/* Mobile sticky bar */
.rh-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px 12px calc(12px + env(safe-area-inset-bottom)); background: var(--rh-ink-2); box-shadow: 0 -6px 18px rgba(0,0,0,.25); }
.rh-sticky .rh-btn { min-height: 50px; padding: 0 12px; }
@media (min-width: 900px) { .rh-sticky { display: none; } }
@media (max-width: 899px) { body.rh:not(.rh-utility) { padding-bottom: 76px; } }
.rh-utility .rh-sticky { display: none; }

/* Breadcrumbs */
.rh-crumbs { font-size: 13px; color: rgba(255,255,255,.7); margin: 0 0 22px; }
.rh-crumbs a { color: rgba(255,255,255,.9); text-decoration: none; }
.rh-crumbs a:hover { color: var(--rh-green-l); }
.rh-crumbs span[aria-hidden] { margin: 0 6px; opacity: .6; }
.rh-crumbs--dark { color: var(--rh-muted); }
.rh-crumbs--dark a { color: var(--rh-ink); }

/* ---------- Hero ---------- */
.rh-hero { position: relative; background: var(--rh-ink-2); color: #fff; overflow: hidden; isolation: isolate; display: flex; align-items: flex-end; min-height: 600px; margin: 0; }
@media (min-width: 900px) { .rh-hero { min-height: 700px; align-items: center; } }
.rh-hero .rh-hero__img { position: absolute; inset: 0; z-index: -2; margin: 0; }
.rh-hero .rh-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.rh-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,14,14,.35) 0%, rgba(14,14,14,.92) 62%); }
@media (min-width: 900px) { .rh-hero::before { background: linear-gradient(90deg, rgba(14,14,14,.93) 0%, rgba(14,14,14,.8) 42%, rgba(14,14,14,.25) 100%); } }
.rh-hero__body { width: 100%; padding-block: 56px 48px; }
@media (min-width: 900px) { .rh-hero__body { padding-block: 110px; } }
.rh-hero h1 { color: #fff; max-width: 820px; }
.rh-hero p { color: rgba(255,255,255,.84); font-size: clamp(17px, 1.5vw, 19px); max-width: 560px; }
.rh-hero .rh-crumbs + .rh-eyebrow { margin-top: 0; }
.rh-hero--bottom::before { background: linear-gradient(0deg, rgba(14,14,14,.95) 0%, rgba(14,14,14,.6) 55%, rgba(14,14,14,.3) 100%); }
@media (min-width: 900px) { .rh-hero--bottom { align-items: flex-end; min-height: 620px; } }

/* Split hero (hub pages) */
.rh-hero-split { background: var(--rh-ink-2); color: #fff; }
.rh-hero-split .rh-w { display: grid; gap: 48px; align-items: center; padding-block: 48px 72px; }
@media (min-width: 960px) { .rh-hero-split .rh-w { grid-template-columns: 1fr 1fr; gap: 64px; padding-block: 64px 90px; } }
.rh-hero-split h1 { color: #fff; font-size: clamp(38px, 4.6vw, 64px); }
.rh-hero-split p { color: rgba(255,255,255,.8); }
.rh-hero-split .wp-block-image { margin: 0; position: relative; }
.rh-hero-split .wp-block-image img { width: 100%; height: clamp(320px, 40vw, 520px); object-fit: cover; position: relative; z-index: 1; }
@media (min-width: 960px) { .rh-hero-split .wp-block-image::before { content: ""; position: absolute; right: -20px; top: -20px; width: 55%; height: 55%; border: 2px solid var(--rh-green); } }

/* Trust bar */
.rh-trust { background: var(--rh-ink); color: #fff; border-top: 1px solid rgba(255,255,255,.08); }
.rh-trust ul { list-style: none; margin: 0 auto; padding: 0 var(--rh-pad); max-width: var(--rh-w); display: grid; grid-template-columns: 1fr 1fr; }
.rh-trust li { display: flex; gap: 12px; align-items: center; padding: 20px 14px 20px 0; font-weight: 600; font-size: 14px; line-height: 1.35; color: #fff; border-bottom: 1px solid rgba(255,255,255,.1); }
.rh-trust li:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
.rh-trust li:nth-child(even) { padding-left: 16px; }
.rh-trust li:nth-last-child(-n+2) { border-bottom: 0; }
.rh-trust .rh-ico { color: var(--rh-green-l); flex-shrink: 0; }
@media (min-width: 900px) {
	.rh-trust ul { grid-template-columns: repeat(4, 1fr); }
	.rh-trust li { padding: 30px 24px; font-size: 15px; border-bottom: 0; border-right: 1px solid rgba(255,255,255,.1); }
	.rh-trust li:first-child { padding-left: 0; }
	.rh-trust li:last-child { border-right: 0; padding-right: 0; }
}

/* Two-column media rows */
.rh-split.wp-block-columns { display: grid; gap: 48px; align-items: center; margin: 0; }
@media (min-width: 960px) { .rh-split.wp-block-columns { grid-template-columns: 1fr 1fr; gap: 80px; } }
.rh-split .wp-block-column { min-width: 0; }
.rh-split--top.wp-block-columns { align-items: start; }
.rh-offset { position: relative; margin: 0 14px 14px 0; }
.rh-offset::before { content: ""; position: absolute; right: -14px; bottom: -14px; width: 60%; height: 60%; background: var(--rh-green); }
@media (min-width: 960px) { .rh-offset { margin: 0 0 24px 24px; } .rh-offset::before { right: auto; left: -24px; bottom: -24px; } }
.rh-offset img { position: relative; width: 100%; height: clamp(320px, 42vw, 560px); object-fit: cover; }
.rh-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rh-line); margin-top: 30px; padding: 0; list-style: none; }
.rh-stats li { padding: 20px 14px 0 0; font-size: 14px; color: var(--rh-muted); line-height: 1.35; }
.rh-stats strong { display: block; font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--rh-ink); }

/* Pillar cards */
.rh-pillars { display: grid; gap: 20px; }
@media (min-width: 860px) { .rh-pillars { grid-template-columns: 1fr 1fr; gap: 24px; } }
.rh-pcard { position: relative; min-height: 420px; overflow: hidden; color: #fff; background: var(--rh-ink); display: flex; align-items: flex-end; isolation: isolate; }
@media (min-width: 860px) { .rh-pcard { min-height: 560px; } }
.rh-pcard > .wp-block-image, .rh-pcard > figure { position: absolute; inset: 0; margin: 0; z-index: -2; }
.rh-pcard > figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rh-pcard:hover > figure img { transform: scale(1.04); }
.rh-pcard::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,14,14,.05) 30%, rgba(14,14,14,.9) 100%); }
.rh-pcard__body { padding: 28px; }
@media (min-width: 860px) { .rh-pcard__body { padding: 40px; } }
.rh-pcard h3 { font-size: clamp(28px, 3vw, 36px); font-weight: 800; letter-spacing: -.025em; color: #fff; }
.rh-pcard p { color: rgba(255,255,255,.84); font-size: 16px; }
.rh-pcard .rh-link a, .rh-pcard a.rh-link { color: #fff; text-decoration: none; }
.rh-pcard .rh-link a::after, .rh-bcard a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Service bento */
.rh-bento { display: grid; gap: 16px; grid-template-columns: 1fr; grid-auto-rows: 260px; }
@media (min-width: 640px) { .rh-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rh-bento > .is-feature { grid-column: 1 / -1; } }
@media (min-width: 1000px) { .rh-bento { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); grid-auto-rows: 300px; gap: 20px; } .rh-bento > .is-feature { grid-column: auto; grid-row: span 2; } }
.rh-bcard { position: relative; overflow: hidden; color: #fff; background: var(--rh-ink); display: flex; align-items: flex-end; isolation: isolate; margin: 0; }
.rh-bcard > figure { position: absolute; inset: 0; margin: 0; z-index: -2; }
.rh-bcard > figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rh-bcard:hover > figure img { transform: scale(1.05); }
.rh-bcard::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,14,14,0) 35%, rgba(14,14,14,.9) 100%); }
.rh-bcard__body { padding: 24px 26px; }
.rh-bcard h3 { color: #fff; font-size: 22px; margin-bottom: 6px; }
.rh-bcard h3 a { color: #fff; text-decoration: none; }
.rh-bcard p { color: rgba(255,255,255,.82); font-size: 15px; margin-bottom: 0; }
.rh-bcard .rh-more { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rh-green-l); }
.rh-bcard.is-feature .rh-bcard__body { padding: 36px; }
.rh-bcard.is-feature h3 { font-size: clamp(28px, 3vw, 38px); font-weight: 800; letter-spacing: -.025em; }
.rh-badge { display: inline-block; background: var(--rh-green); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: 6px 10px; margin: 0 0 14px !important; }

/* Inclusions */
.rh-incl { display: grid; grid-template-columns: 1fr; gap: 0; list-style: none; margin: 0; padding: 0 1px 1px 0; }
@media (min-width: 640px) { .rh-incl { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .rh-incl { grid-template-columns: repeat(4, 1fr); } }
.rh-incl li { background: #fff; padding: 30px; border: 1px solid var(--rh-line-2); margin: 0 -1px -1px 0; }
.is-white .rh-incl li { background: var(--rh-stone); }
.rh-incl li .rh-ico { color: var(--rh-green); }
.rh-incl h3 { margin-top: 18px; }
.rh-incl p { font-size: 15px; margin: 0; }
.rh-incl li.is-elec { background: var(--rh-ink); color: #fff; }
.rh-incl li.is-elec .rh-ico { color: var(--rh-green-l); }
.rh-incl li.is-elec p { color: rgba(255,255,255,.72); }
.rh-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 700px) { .rh-tiles { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1100px) { .rh-tiles { grid-template-columns: repeat(7, 1fr); } }
.rh-tiles li { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: #fff; border: 1px solid var(--rh-line); font-weight: 700; font-size: 15px; color: var(--rh-ink); }
.is-stone .rh-tiles li { background: #fff; }
.is-white .rh-tiles li { background: var(--rh-stone); }
.rh-tiles li::before { content: ""; width: 8px; height: 8px; background: var(--rh-green); flex-shrink: 0; }
.rh-tiles li.is-elec { background: var(--rh-ink); color: #fff; border-color: var(--rh-ink); }
.rh-tiles li.is-elec::before { background: var(--rh-green-l); }

/* Why choose us */
.rh-why { display: grid; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; counter-reset: why; }
@media (min-width: 700px) { .rh-why { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .rh-why { grid-template-columns: repeat(5, 1fr); } }
.rh-why li { border-top: 1px solid rgba(255,255,255,.2); padding: 24px 28px 24px 0; counter-increment: why; }
.rh-why li::before { content: counter(why, decimal-leading-zero); display: block; font-size: 15px; font-weight: 700; color: var(--rh-green-l); margin-bottom: 22px; }
@media (min-width: 1100px) { .rh-why li::before { margin-bottom: 30px; } }
.rh-why h3 { color: #fff; }
.rh-why p { color: rgba(255,255,255,.7); font-size: 15px; margin: 0; }
.rh-why--compact { grid-template-columns: 1fr !important; }
.rh-why--compact li { display: flex; gap: 20px; padding: 18px 0; }
.rh-why--compact li::before { margin: 2px 0 0; }
.rh-why--compact li:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.rh-why--compact h3 { margin: 0; }

/* Process */
.rh-steps { display: grid; list-style: none; margin: 0; padding: 0; counter-reset: step; gap: 0; }
.rh-steps li { counter-increment: step; position: relative; padding: 0 0 26px 62px; }
.rh-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--rh-ink); background: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; z-index: 1; }
.rh-steps li:first-child::before { background: var(--rh-green); border-color: var(--rh-green); color: #fff; }
.rh-steps li::after { content: ""; position: absolute; left: 22px; top: 44px; bottom: 0; width: 1px; background: var(--rh-line-2); }
.rh-steps li:last-child::after { display: none; }
.rh-steps p { font-size: 15px; margin: 0; }
@media (min-width: 900px) {
	.rh-steps { grid-template-columns: repeat(5, 1fr); }
	.rh-steps.has-6 { grid-template-columns: repeat(6, 1fr); }
	.rh-steps li { padding: 70px 26px 0 0; }
	.rh-steps li::after { left: 56px; right: 12px; top: 22px; bottom: auto; width: auto; height: 1px; }
}

/* Project cards */
.rh-projects { display: grid; gap: 28px 24px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .rh-projects { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .rh-projects { grid-template-columns: repeat(3, 1fr); } }
.rh-proj { text-decoration: none; color: var(--rh-ink); display: block; }
.rh-proj__img { aspect-ratio: 4 / 5; overflow: hidden; background: var(--rh-line); }
.rh-proj__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rh-proj:hover .rh-proj__img img { transform: scale(1.04); }
.rh-proj__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 16px; }
.rh-proj__meta h3 { margin: 0; }
.rh-proj__sub { font-size: 12px; font-weight: 600; color: var(--rh-muted); text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; }
.rh-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; }
.rh-filter button { min-height: 44px; padding: 0 18px; border: 1px solid var(--rh-line-2); background: #fff; font: 600 14px/1 var(--rh-font); color: var(--rh-ink); cursor: pointer; border-radius: 2px; }
.rh-filter button[aria-pressed="true"] { background: var(--rh-ink); color: #fff; border-color: var(--rh-ink); }
.rh-proj[hidden] { display: none; }

/* Meet Khade */
.rh-khade { display: grid; background: var(--rh-stone); }
@media (min-width: 960px) { .rh-khade { grid-template-columns: 1fr 1fr; } }
.rh-khade__img { min-height: 360px; position: relative; }
.rh-khade__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.rh-khade__body { padding: 56px var(--rh-pad); }
@media (min-width: 960px) { .rh-khade__img { min-height: 620px; } .rh-khade__body { padding: 110px 8vw 110px 80px; align-self: center; } }
.rh-khade__sig { display: flex; gap: 32px; flex-wrap: wrap; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--rh-line-2); }
.rh-khade__sig strong { display: block; font-size: 18px; }
.rh-khade__sig span { font-size: 14px; color: var(--rh-muted); }

/* FAQ */
.rh-faq.wp-block-columns { display: grid; gap: 32px; margin: 0; }
@media (min-width: 960px) { .rh-faq.wp-block-columns { grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: start; } }
.rh-faq .wp-block-column { min-width: 0; }
.rh-faq__list { border-top: 1px solid var(--rh-line-2); }
.rh-faq__item, .rh .wp-block-details.rh-faq__item { border-bottom: 1px solid var(--rh-line-2); padding: 0; margin: 0; }
.rh-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--rh-ink); }
.rh-faq__item summary::-webkit-details-marker { display: none; }
.rh-faq__item summary::after { content: "+"; color: var(--rh-green); font-size: 26px; font-weight: 400; line-height: 1; flex-shrink: 0; }
.rh-faq__item[open] summary::after { content: "−"; }
.rh-faq__item > p, .rh-faq__item > :not(summary) { margin: -8px 0 24px; }
.rh-bigphone, .rh-bigphone a { font-size: 22px; font-weight: 800; color: var(--rh-ink); text-decoration: none; }
.rh-pricebox { background: var(--rh-ink); color: #fff; padding: 30px; margin-top: 26px; }
.rh-pricebox .rh-pricebox__label { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: rgba(255,255,255,.7); margin-bottom: 8px; }
.rh-pricebox .rh-pricebox__value { font-size: 32px; font-weight: 800; letter-spacing: -.02em; color: #fff; margin-bottom: 6px; line-height: 1.1; }
.rh-pricebox p { color: rgba(255,255,255,.72); font-size: 15px; margin: 0; }

/* Checklist */
.rh-checklist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rh-line); }
.rh-checklist li { position: relative; padding: 20px 0 20px 40px; border-bottom: 1px solid var(--rh-line); color: var(--rh-ink); font-size: 17px; }
.rh-checklist li::before { content: ""; position: absolute; left: 2px; top: 25px; width: 14px; height: 8px; border-left: 2.5px solid var(--rh-green); border-bottom: 2.5px solid var(--rh-green); transform: rotate(-45deg); }
@media (min-width: 960px) { .rh-sticky-col { position: sticky; top: calc(var(--rh-head-h) + 36px); } }

/* Services list + chips (location) */
.rh-panel { background: var(--rh-stone); padding: 34px 32px 18px; }
.is-stone .rh-panel { background: #fff; }
.rh-panel__label { font-size: 12px !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rh-muted) !important; margin-bottom: 6px !important; }
.rh-srvlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rh-line); }
.rh-srvlist li { border-bottom: 1px solid var(--rh-line); }
.rh-srvlist li:last-child { border-bottom: 0; }
.rh-srvlist a { display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; text-decoration: none; color: var(--rh-ink); font-size: 18px; font-weight: 700; }
.rh-srvlist a::after { content: "→"; color: var(--rh-green); }
.rh-srvlist a:hover { color: var(--rh-green); }
.rh-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.rh-chips li { margin: 0; }
.rh-chips a, .rh-chips span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border: 1px solid var(--rh-line-2); background: #fff; color: var(--rh-ink); text-decoration: none; font-weight: 600; font-size: 15px; }
.rh-chips a:hover { border-color: var(--rh-ink); }
.rh-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 28px; }

/* Quote section */
.rh-quote .rh-w { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1000px) { .rh-quote .rh-w { grid-template-columns: 1fr 1fr; gap: 80px; } }
.rh-quote h2 { color: #fff; }
.rh-quote .rh-urgency { margin-top: 32px; padding: 22px 24px; border: 1px solid rgba(255,255,255,.18); display: flex; gap: 14px; align-items: flex-start; }
.rh-quote .rh-urgency .rh-ico { color: var(--rh-green-l); flex-shrink: 0; margin-top: 3px; }
.rh-quote .rh-urgency p { color: #fff; font-weight: 600; margin: 0; font-size: 16px; }
.rh-quote .rh-quote__intro a { color: #fff; font-weight: 700; }
.rh-form { background: #fff; color: var(--rh-ink); padding: clamp(22px, 4vw, 44px); display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 600px) { .rh-form { grid-template-columns: 1fr 1fr; } .rh-form .is-full { grid-column: 1 / -1; } }
.rh-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rh-body); margin-bottom: 8px; }
.rh-form label .req { color: var(--rh-green); }
.rh-form input, .rh-form select, .rh-form textarea { width: 100%; min-height: 52px; border: 1px solid var(--rh-line-2); border-radius: 2px; padding: 12px 14px; font: 16px var(--rh-font); background: var(--rh-stone); color: var(--rh-ink); }
.rh-form textarea { min-height: 120px; resize: vertical; }
.rh-form input:focus, .rh-form select:focus, .rh-form textarea:focus { outline: 2px solid var(--rh-green); outline-offset: 0; background: #fff; }
.rh-form .rh-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rh-form .rh-small { font-size: 13px; color: var(--rh-muted); margin: 12px 0 0; }
.rh-form .rh-err { background: #fde8e8; color: #8a1c1c; padding: 12px 14px; font-size: 15px; margin: 0; }
.rh-form button[disabled] { opacity: .7; cursor: wait; }

/* Footer */
.rh-footer { background: var(--rh-ink-3); color: #fff; padding: 72px 0 36px; }
.rh-footer__grid { display: grid; gap: 36px; grid-template-columns: 1fr 1fr; }
@media (min-width: 960px) { .rh-footer__grid { grid-template-columns: 1.4fr repeat(4, 1fr); gap: 40px; } }
.rh-footer__brand { grid-column: 1 / -1; }
@media (min-width: 960px) { .rh-footer__brand { grid-column: auto; } }
.rh-footer__brand img { width: 132px; margin-bottom: 18px; }
.rh-footer p { color: #a3a39e; font-size: 15px; }
.rh-footer h2 { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rh-green-l); margin: 0 0 14px; }
.rh-footer ul { list-style: none; margin: 0; padding: 0; }
.rh-footer li a, .rh-footer__contact a { color: #cfcfcb; text-decoration: none; font-size: 15px; line-height: 2.05; }
.rh-footer li a:hover, .rh-footer__contact a:hover { color: #fff; }
.rh-footer__contact .rh-footer__tel { color: #fff; font-weight: 700; font-size: 19px; }
.rh-footer__legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; color: #8a8a85; }
.rh-footer__legal a { color: #8a8a85; }

/* Consent banner */
.rh-consent { position: fixed; left: 12px; right: 12px; bottom: 90px; z-index: 90; background: #fff; color: var(--rh-ink); box-shadow: 0 10px 40px rgba(0,0,0,.25); padding: 20px; max-width: 520px; display: none; border-top: 3px solid var(--rh-green); }
.rh-consent.is-on { display: block; }
.rh-consent p { font-size: 14px; margin: 0 0 14px; color: var(--rh-body); }
.rh-consent__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.rh-consent .rh-btn { min-height: 44px; padding: 0 18px; font-size: 13px; }
@media (min-width: 900px) { .rh-consent { bottom: 20px; left: 20px; right: auto; } }

/* Generic content (articles, privacy, posts) */
.rh-prose { max-width: 760px; margin-inline: auto; padding-inline: var(--rh-pad); }
.rh-prose > * { max-width: none; }
.rh-prose h2 { font-size: clamp(26px, 3vw, 34px); margin-top: 48px; }
.rh-prose h3 { margin-top: 32px; }
.rh-prose img { margin-block: 28px; }
.rh-prose ul, .rh-prose ol { padding-left: 1.2em; }
.rh-pagehead { background: var(--rh-ink-2); color: #fff; padding-block: 56px 64px; }
.rh-pagehead h1 { color: #fff; margin: 0; }
.rh-pagehead p { color: rgba(255,255,255,.75); margin-top: 16px; }
.rh-cta-box { background: var(--rh-stone); border-left: 4px solid var(--rh-green); padding: 28px 30px; margin: 48px 0; }
.rh-cta-box h3 { margin-top: 0; }
.rh-postcards { display: grid; gap: 28px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .rh-postcards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .rh-postcards { grid-template-columns: repeat(3, 1fr); } }
.rh-postcard { display: block; text-decoration: none; color: var(--rh-ink); }
.rh-postcard__img { aspect-ratio: 3 / 2; background: var(--rh-line); overflow: hidden; margin-bottom: 16px; }
.rh-postcard__img img { width: 100%; height: 100%; object-fit: cover; }
.rh-postcard time { font-size: 13px; color: var(--rh-muted); }
.rh-pagination { display: flex; gap: 8px; margin-top: 48px; }
.rh-pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rh-line-2); text-decoration: none; color: var(--rh-ink); }
.rh-pagination .current { background: var(--rh-ink); color: #fff; }

/* Project single */
.rh-gallery { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .rh-gallery { grid-template-columns: repeat(3, 1fr); } }
.rh-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rh-scope { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; }
.rh-scope li { background: var(--rh-stone); border: 1px solid var(--rh-line); padding: 8px 14px; font-size: 14px; font-weight: 600; color: var(--rh-ink); }
.rh-ba { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--rh-ink); margin-bottom: 24px; --pos: 50%; }
.rh-ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rh-ba .rh-ba__after { clip-path: inset(0 0 0 var(--pos)); }
.rh-ba input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.rh-ba::after { content: ""; position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; background: #fff; pointer-events: none; }
.rh-quoteblock { border-left: 4px solid var(--rh-green); padding: 8px 0 8px 24px; margin: 32px 0; font-size: 22px; font-weight: 600; line-height: 1.4; color: var(--rh-ink); }
.rh-quoteblock cite { display: block; font-size: 14px; font-style: normal; color: var(--rh-muted); margin-top: 10px; font-weight: 500; }

/* Staging highlight for unconfirmed copy */
.rh-confirm { background: #fff3b0; color: #5a4700; padding: 0 4px; }

/* Editor-only helpers reused on front-end */
.rh .alignfull { width: 100%; }
.rh .wp-block-image { margin: 0; }
.rh .wp-block-group { margin-block: 0; }
.rh .rh-w { margin-inline: auto; }
.rh-main > .wp-block-group, .rh-main > section { margin-block: 0; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Steps rendered from list blocks (Our Process, Contact) */
.rh-steps li strong { display: block; font-size: 19px; line-height: 1.25; margin-bottom: 6px; color: var(--rh-ink); }
.rh-steps li { color: var(--rh-body); font-size: 15px; }
@media (min-width: 900px) {
	.rh-steps.has-6 { grid-template-columns: repeat(3, 1fr); row-gap: 44px; }
	.rh-steps.has-6 li:nth-child(3n)::after { display: none; }
	.rh-steps--stack { grid-template-columns: 1fr !important; }
	.rh-steps--stack li { padding: 0 0 26px 62px; }
	.rh-steps--stack li::after { left: 22px; top: 44px; bottom: 0; right: auto; width: 1px; height: auto; }
}
.rh-steps--stack li:last-child::after { display: none; }

/* Tables */
.rh-table { margin: 0; }
.rh-table table { width: 100%; border-collapse: collapse; background: #fff; font-size: 16px; }
.rh-table th, .rh-table td { text-align: left; padding: 16px 18px; border-bottom: 1px solid var(--rh-line); }
.rh-table th { background: var(--rh-ink); color: #fff; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }

/* Client stories */
.rh-stories { display: grid; gap: 24px; grid-template-columns: 1fr; margin-top: 28px; }
@media (min-width: 900px) { .rh-stories { grid-template-columns: repeat(2, 1fr); } }
.rh-story { background: var(--rh-stone); padding: 32px; border-top: 3px solid var(--rh-green); }
.rh-story blockquote { margin: 0 0 18px; font-size: 19px; font-weight: 600; line-height: 1.45; color: var(--rh-ink); }
.rh-story cite { font-style: normal; font-size: 14px; color: var(--rh-muted); }
.rh-empty { background: var(--rh-stone); padding: 32px; margin-top: 24px; }

/* Lite YouTube facade */
[data-yt] { position: relative; aspect-ratio: 16 / 9; background: #000 center / cover no-repeat; cursor: pointer; border: 0; width: 100%; display: block; }
[data-yt]::after { content: ""; position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; background: var(--rh-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 34px no-repeat; }

/* Entry content on project pages */
.rh-entry h2 { font-size: clamp(24px, 2.6vw, 32px); margin-top: 36px; }
.rh-entry h2:first-child { margin-top: 0; }
.rh-entry .wp-block-gallery { margin: 28px 0; }

/* Group headings keep their spacing (beats the generic group margin reset) */
.rh .wp-block-group.rh-head { margin-bottom: clamp(32px, 5vw, 56px); }
@media (max-width: 639px) {
	.rh .rh-hero .rh-eyebrow { margin-bottom: 22px; line-height: 1.5; }
	.rh h1 { line-height: 1.04; }
	.rh-proj__img { aspect-ratio: 4 / 3; }
}

/* Contact Us as a button in the main menu (add CSS class "rh-menu-btn" to the menu item) */
.rh-nav .rh-menu-btn > a, .rh-nav li:last-child > a[href$="/contact/"] { border: 1.5px solid rgba(255,255,255,.6); border-radius: 2px; padding: 10px 14px; margin-left: 6px; }
.rh-nav .rh-menu-btn > a:hover { border-color: var(--rh-green-l); }

/* ===== v1.1: traditional banners (no photo overlays), per The Authority 28 Oct ===== */
.rh-hero, .rh-hero-split { position: relative; display: block; min-height: 0; background: var(--rh-ink-2); color: #fff; overflow: hidden; isolation: isolate; }
.rh-hero::before, .rh-hero-split::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 60% 90% at 92% 10%, rgba(30, 138, 99, .32), transparent 60%), linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)); }
.rh-hero::after, .rh-hero-split::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--rh-green); }
.rh-hero .rh-hero__img, .rh-hero-split .wp-block-image { display: none !important; }
.rh-hero .rh-hero__body, .rh-hero-split > .rh-w { padding-block: 56px 64px; display: block; }
@media (min-width: 900px) { .rh-hero .rh-hero__body, .rh-hero-split > .rh-w { padding-block: 96px 104px; } }
@media (min-width: 900px) { .rh-hero, .rh-hero--bottom { min-height: 0; } }
.rh-hero h1, .rh-hero-split h1 { max-width: 900px; font-size: clamp(38px, 5.4vw, 70px); }
.rh-hero p, .rh-hero-split p { max-width: 640px; }
.rh-hero-split .rh-w > .wp-block-group { max-width: 900px; }

/* Trust bar in brand green so it separates from the dark banner */
.rh-trust { background: var(--rh-green); border-top: 0; }
.rh-trust li { color: #fff; border-color: rgba(255,255,255,.28) !important; }
.rh-trust .rh-ico { color: #fff; }

/* ---------- v1.2 Ads landing pages ---------- */
.rh-header--lp .rh-logo img { width: auto; }
.rh-header--lp .rh-header__quote { display: inline-flex; }
.rh-header--lp .rh-header__quote { white-space: nowrap; }
@media (max-width: 520px) { .rh-header--lp .rh-header__quote { padding: 0 12px; font-size: 12px; letter-spacing: .04em; } .rh-header--lp .rh-header__cta { gap: 8px; } }
.rh-footer--lp .rh-footer__grid { grid-template-columns: 1fr; }
@media (min-width: 760px) { .rh-footer--lp .rh-footer__grid { grid-template-columns: 2fr 1fr; } }
.rh-footer--lp .rh-footer__brand { grid-column: auto; }
.rh-lp .rh-hero { min-height: 520px; }
@media (min-width: 900px) { .rh-lp .rh-hero { min-height: 580px; } }

.rh-feats { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 820px) { .rh-feats { grid-template-columns: repeat(3, 1fr); } }
.rh .rh-feat { background: var(--rh-stone); border-top: 3px solid var(--rh-green); padding: 30px 28px; }
.is-stone .rh-feat { background: #fff; }
.rh-feat__n { font-weight: 800; color: var(--rh-green); letter-spacing: .1em; font-size: 14px; margin: 0 0 14px; }
.rh-feat h3 { margin: 0 0 10px; }
.rh-feat p:last-child { margin: 0; font-size: 16px; }

.rh-icards { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .rh-icards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .rh-icards { grid-template-columns: repeat(4, 1fr); } }
.rh .rh-icard { background: #fff; border: 1px solid var(--rh-line); }
.rh-icard figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.rh-icard figure img { width: 100%; height: 100%; object-fit: cover; }
.rh-icard h3 { font-size: 18px; margin: 0; padding: 18px 20px 22px; line-height: 1.35; }
.rh-icards__after { margin: 28px 0 0; font-weight: 600; }
.rh-icards__after a { margin-left: 14px; white-space: nowrap; }

.rh-video-head { text-align: center; margin-bottom: clamp(28px, 4vw, 44px); }
.rh-video-head h2 { margin: 0; }
.rh-video { max-width: 960px; margin: 0 auto; border-radius: 2px; }
.rh-video:focus-visible { outline: 3px solid var(--rh-green-l); outline-offset: 4px; }

.rh-cta-band { text-align: center; background: var(--rh-ink) radial-gradient(ellipse 60% 120% at 50% 0%, rgba(30,138,99,.35), transparent 70%); }
.rh-cta-band__in { max-width: 720px; margin: 0 auto; }
.rh-cta-band .wp-block-buttons { justify-content: center; }
.rh-quote__note { font-size: 15px; }

/* ---------- v1.3 Projects empty state ---------- */
.rh-empty { max-width: 720px; margin: 0 auto; text-align: center; padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 48px); background: var(--rh-stone); }
.rh-empty p { margin-left: auto; margin-right: auto; }
.rh-empty h2 { margin-bottom: 14px; }
.rh-empty .rh-btn { margin-top: 10px; }

/* ---------- v1.4 Banner heading structure: keyword line = H1, headline = H2 ---------- */
.rh h1.rh-eyebrow { line-height: 1.5; max-width: none; }
.rh .rh-hero .rh-hero__title, .rh .rh-hero-split .rh-hero__title { color: #fff; max-width: 900px; font-size: clamp(38px, 5.4vw, 70px); line-height: 1.02; letter-spacing: -.035em; margin: 0 0 22px; }

/* ---------- v1.6 Hero background photo with dark overlay ---------- */
.rh-hero.has-photo, .rh-hero-split.has-photo { background: var(--rh-ink-2); }
.rh-hero__bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.rh-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.rh-hero.has-photo::before, .rh-hero-split.has-photo::before { z-index: -1; background: linear-gradient(90deg, rgba(10,10,10,.9) 0%, rgba(10,10,10,.78) 42%, rgba(10,10,10,.45) 100%), linear-gradient(0deg, rgba(10,10,10,.55), rgba(10,10,10,0) 45%); }
@media (max-width: 760px) { .rh-hero.has-photo::before, .rh-hero-split.has-photo::before { background: linear-gradient(180deg, rgba(10,10,10,.72), rgba(10,10,10,.88)); } }
.rh-hero.has-photo .rh-hero__body, .rh-hero-split.has-photo > .rh-w { position: relative; }
@media (min-width: 900px) { .rh-hero.has-photo .rh-hero__body, .rh-hero-split.has-photo > .rh-w { padding-block: 120px 128px; } }
.rh-video-sec.is-dark .rh-video-head h2 { color: #fff; }

/* ---------- v1.6 Client story ---------- */
.rh-storyhero { position: relative; isolation: isolate; overflow: hidden; background: var(--rh-ink-2); color: #fff; min-height: 620px; display: flex; align-items: flex-end; }
@media (min-width: 900px) { .rh-storyhero { min-height: 760px; align-items: center; } }
.rh-storyhero__poster { position: absolute; inset: 0; z-index: -2; margin: 0; }
.rh-storyhero__poster img { width: 100%; height: 100%; object-fit: cover; }
.rh-storyhero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,10,10,.85) 0%, rgba(10,10,10,.6) 50%, rgba(10,10,10,.25) 100%), linear-gradient(0deg, rgba(10,10,10,.6), rgba(10,10,10,0) 50%); }
.rh-storyhero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--rh-green); }
.rh-storyhero__body { position: relative; padding-block: 120px 64px; width: 100%; }
.rh .rh-storyhero__title { color: #fff; font-size: clamp(34px, 4.8vw, 62px); line-height: 1.04; letter-spacing: -.03em; max-width: 880px; margin: 0 0 20px; }
.rh-storyhero__stand { color: rgba(255,255,255,.85); font-size: 18px; max-width: 640px; }
.rh-storyhero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.rh-btn--light { background: #fff; color: var(--rh-ink); }
.rh-btn--light:hover { background: #e9e9e6; color: var(--rh-ink); }
.rh-storyhero__play { position: absolute; left: 50%; top: 42%; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; border: 2px solid rgba(255,255,255,.85); background: rgba(10,10,10,.35) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") 54% 50% / 40px no-repeat; cursor: pointer; z-index: 2; transition: transform .2s, background-color .2s; }
.rh-storyhero__play:hover, .rh-storyhero__play:focus-visible { transform: scale(1.06); background-color: var(--rh-green); }
@media (max-width: 899px) { .rh-storyhero__play { top: 30%; width: 76px; height: 76px; margin: -38px 0 0 -38px; } }
.rh-storyhero__player { position: absolute; inset: 0; z-index: 3; background: #000; }
.rh-storyhero__player iframe, .rh-storyhero__player video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: contain; }
.rh-storyhero.is-playing .rh-storyhero__body, .rh-storyhero.is-playing .rh-storyhero__play { visibility: hidden; }
.rh-facts { background: var(--rh-green); color: #fff; }
.rh-facts dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px 28px; margin: 0 auto; padding-block: 32px; }
@media (min-width: 900px) { .rh-facts dl { grid-template-columns: repeat(5, 1fr); } }
.rh-facts dt { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); margin-bottom: 4px; }
.rh-facts dd { margin: 0; font-weight: 700; font-size: 16px; line-height: 1.35; }
.rh-story-split { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .rh-story-split { grid-template-columns: 1fr 1fr; gap: 72px; } .rh-story-split.is-flipped .rh-story-sec__img { order: -1; } }
.rh-story-sec__img, .rh-story-pair figure { margin: 0; }
.rh-story-sec__img img, .rh-story-pair img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rh-story-sec__text--wide { max-width: 820px; margin-bottom: 36px; }
.rh-story-pair { display: grid; gap: 20px; }
@media (min-width: 700px) { .rh-story-pair { grid-template-columns: 1fr 1fr; } }
.rh-gallery { display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .rh-gallery { grid-template-columns: repeat(3, 1fr); gap: 18px; } }
.rh-gallery__item { display: block; overflow: hidden; }
.rh-gallery__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.rh-gallery__item:hover img { transform: scale(1.04); }
.rh-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.rh-lightbox::backdrop { background: rgba(0,0,0,.92); }
.rh-lightbox figure { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 56px 64px; box-sizing: border-box; }
.rh-lightbox img { max-width: 100%; max-height: calc(100vh - 140px); object-fit: contain; }
.rh-lightbox figcaption { color: #ddd; font-size: 14px; margin-top: 12px; text-align: center; }
.rh-lightbox button { position: absolute; background: none; border: 0; color: #fff; font-size: 44px; cursor: pointer; width: 56px; height: 56px; line-height: 1; }
.rh-lightbox__close { top: 10px; right: 12px; }
.rh-lightbox__prev { left: 8px; top: 50%; margin-top: -28px; }
.rh-lightbox__next { right: 8px; top: 50%; margin-top: -28px; }
.rh-pullquote blockquote { max-width: 900px; margin: 0 auto; text-align: center; border: 0; padding: 0; }
.rh-pullquote blockquote p { font-size: clamp(24px, 3vw, 36px); line-height: 1.3; font-weight: 800; color: var(--rh-ink); letter-spacing: -.01em; }
.rh-pullquote cite { display: block; margin-top: 20px; font-style: normal; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--rh-muted); }
.rh-svc-links { display: grid; gap: 16px; margin-top: 24px; }
@media (min-width: 700px) { .rh-svc-links { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } }
.rh-svc-links a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 26px; border: 1px solid var(--rh-line); color: var(--rh-ink); text-decoration: none; font-weight: 700; font-size: 18px; }
.rh-svc-links a:hover { border-color: var(--rh-green); }
.rh-svc-links .rh-more { color: var(--rh-green); font-size: 15px; white-space: nowrap; }
.rh-scards { display: grid; gap: 22px; }
@media (min-width: 700px) { .rh-scards { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); } }
.rh-scard { display: block; background: #fff; border: 1px solid var(--rh-line); text-decoration: none; color: var(--rh-ink); }
.rh-scard__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rh-scard__body { padding: 22px 24px 26px; }
.rh-scard__sub { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--rh-green); font-weight: 700; }
.rh-scard h3 { margin: 8px 0 12px; font-size: 21px; }
.rh-scard .rh-more { color: var(--rh-green); font-weight: 700; font-size: 14px; }
.rh-storylink { margin-top: 28px; }
/* Story banner: play button sits over the photo, clear of the text; stronger overlay behind the copy */
@media (min-width: 900px) { .rh-storyhero__play { left: auto; right: 14%; top: 50%; margin: -48px 0 0 0; } }
@media (max-width: 899px) { .rh-storyhero__play { top: 120px; } }
.rh-storyhero::before { background: linear-gradient(90deg, rgba(10,10,10,.9) 0%, rgba(10,10,10,.78) 45%, rgba(10,10,10,.3) 100%), linear-gradient(0deg, rgba(10,10,10,.6), rgba(10,10,10,0) 50%); }
@media (max-width: 899px) { .rh-storyhero::before { background: linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,.85) 45%, rgba(10,10,10,.92) 100%); } .rh-storyhero__body { padding-top: 240px; } }
.rh .rh-storyhero__stand, .rh .rh-storyhero .rh-crumbs, .rh .rh-storyhero .rh-crumbs a { color: rgba(255,255,255,.88); }


/* =====================================================================
   v1.8 Restyle: own typography and detailing, away from template tells
   ===================================================================== */
:root { --rh-font: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif; --rh-head: "Barlow Semi Condensed", "Barlow", system-ui, sans-serif; --rh-radius: 6px; }
body.rh { font-size: 18px; line-height: 1.6; }
h1, h2, h3, h4, .rh h1, .rh .rh-h1 { font-family: var(--rh-head); font-weight: 700; letter-spacing: -.005em; }
.rh h1, .rh .rh-h1, .rh .rh-hero .rh-hero__title, .rh .rh-hero-split .rh-hero__title, .rh .rh-storyhero__title { font-family: var(--rh-head); font-weight: 700; letter-spacing: -.01em; line-height: 1; }
.rh h2 { line-height: 1.05; }
.rh h3 { font-family: var(--rh-head); font-weight: 600; font-size: 23px; line-height: 1.15; }

/* Section labels: gone. The banner keyword line stays (it is the H1) but reads as a plain line. */
.rh p.rh-eyebrow, .rh .rh-pcard__body .rh-eyebrow { display: none !important; }
.rh h1.rh-eyebrow { font-family: var(--rh-font); text-transform: none !important; letter-spacing: 0; font-size: 18px; font-weight: 600; margin-bottom: 14px; display: block; }
.rh h1.rh-eyebrow::before { display: none; }
/* Client stories keep their section labels (part of the approved wireframe), restyled the same way. */
.rh .rh-story-sec p.rh-eyebrow, .rh .rh-story-result p.rh-eyebrow { display: block !important; text-transform: none; letter-spacing: 0; font-size: 17px; font-weight: 600; }
.rh .rh-story-sec p.rh-eyebrow::before, .rh .rh-story-result p.rh-eyebrow::before { display: none; }

/* Buttons: sentence case, softer shape. */
.rh .wp-block-button__link, .rh-btn { text-transform: none; letter-spacing: 0; font-size: 17px; font-weight: 600; border-radius: var(--rh-radius); min-height: 52px; padding: 0 26px; }
.rh-btn--sm, .rh .rh-header__quote { font-size: 15px; min-height: 42px; padding: 0 18px; }
.rh-nav a { text-transform: none; letter-spacing: 0; font-size: 16px; font-weight: 500; padding: 12px 10px; }
@media (max-width: 1240px) { .rh-nav a { font-size: 15px; padding: 12px 7px; letter-spacing: 0; } }
.rh-menu-btn > a, .rh-nav .rh-menu-btn > a { border-radius: var(--rh-radius); }

/* No numbering on cards and the "five reasons" list: a short rule instead. */
.rh-why li::before { content: ""; width: 32px; height: 3px; background: var(--rh-green-l); margin-bottom: 20px; }
.rh-feat__n { display: none; }
.rh-why h3 { font-size: 24px; }

/* Decorative line icons dropped from content lists (kept on phone links where they mean something). */
.rh-incl li .rh-ico { display: none; }
.rh-incl h3 { margin-top: 0; }

/* Photos: no offset colour frame; image-led sections lean wider than the text. */
.rh-offset::before { display: none; }
.rh-offset { margin: 0 !important; }
.rh-offset img { border-radius: var(--rh-radius); }
@media (min-width: 960px) {
	.rh-split.wp-block-columns:has(.rh-offset) { grid-template-columns: 1.3fr 1fr; gap: 72px; }
	.rh-split.wp-block-columns:has(> .wp-block-column:last-child .rh-offset) { grid-template-columns: 1fr 1.3fr; }
	.rh-offset img { height: clamp(380px, 46vw, 640px); }
}

/* Banners: let the photo do the work. No glow, no green rule. */
.rh-hero::after, .rh-hero-split::after, .rh-storyhero::after { display: none; }
.rh-hero:not(.has-photo)::before, .rh-hero-split:not(.has-photo)::before { background: none; }
.rh-hero:not(.has-photo), .rh-hero-split:not(.has-photo) { background: #1b1b19; }

/* FAQ: one centred column, bigger questions, help panel at the end. */
.rh-faq.wp-block-columns { display: block !important; max-width: 860px; margin: 0 auto; }
.rh-faq .wp-block-column:first-child { text-align: center; margin-bottom: 36px; }
.rh-faq .wp-block-column:first-child > * { margin-left: auto; margin-right: auto; }
.rh-faq .rh-pricebox { text-align: left; max-width: 560px; border-radius: var(--rh-radius); }
.rh-faq__item summary { font-family: var(--rh-head); font-size: 24px; font-weight: 600; padding: 28px 0; }
.rh-faq__help { max-width: 860px; margin: 40px auto 0; padding: 32px 36px; border-radius: var(--rh-radius); background: var(--rh-ink); color: #fff; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.rh-faq__help h3 { color: #fff; margin: 0 0 4px; font-size: 26px; }
.rh-faq__help p { color: rgba(255,255,255,.75); margin: 0; }
.rh-faq__help .rh-faq__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.rh-faq__help .rh-btn--ghost { border-color: rgba(255,255,255,.5); color: #fff; background: transparent; }

/* Small labels: sentence case everywhere. */
.rh-footer h2 { font-family: var(--rh-head); font-size: 18px; letter-spacing: 0; text-transform: none; color: #fff; font-weight: 600; }
.rh-facts dt, .rh-pullquote cite, .rh-scard__sub, .rh-pricebox .rh-pricebox__label, .rh-badge { text-transform: none; letter-spacing: 0; font-size: 15px; }
.rh-facts dd { font-size: 17px; }
.rh-card, .rh-proj, .rh-scard, .rh-icard, .rh-svc-links a, .rh-form, .rh-bcard, .rh-pcard { border-radius: var(--rh-radius); overflow: hidden; }
.rh-quote .rh-urgency { border-radius: var(--rh-radius); }
.rh-link, .rh-bcard .rh-more, .rh-badge, .rh-proj__sub, .rh-panel__label, .rh-table th { text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; }
.rh-link, .rh-bcard .rh-more { font-size: 16px !important; font-weight: 600; }
.rh-form label { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 600; }
.rh-form input, .rh-form select, .rh-form textarea { border-radius: var(--rh-radius); }
