/* White Rock — site styles. Tokens come from theme.json presets. */
:root {
	--ink: var(--wp--preset--color--ink, #000);
	--ink-soft: var(--wp--preset--color--ink-soft, #1a1a1a);
	--steel: var(--wp--preset--color--steel, #555b52);
	--paper: var(--wp--preset--color--paper, #fff);
	--primer: var(--wp--preset--color--primer, #edefea);
	--od: var(--wp--preset--color--od-green, #4a5445);
	--od-dark: var(--wp--preset--color--od-dark, #363e32);
	--tan: var(--wp--preset--color--plate-tan, #c99e54);
	--display: var(--wp--preset--font-family--display);
	--body: var(--wp--preset--font-family--body);
	--wide: 1200px;
	--gutter: clamp(1rem, 4vw, 2rem);
	--rule: 4px solid var(--ink);
	--section: clamp(3.5rem, 7vw, 6rem);
}

@font-face { font-family: "Saira Fallback"; src: local("Arial Narrow"), local("Arial"); size-adjust: 102%; ascent-override: 95%; descent-override: 25%; }
@font-face { font-family: "Public Sans Fallback"; src: local("Arial"); size-adjust: 100%; ascent-override: 95%; descent-override: 22%; }

html { scroll-padding-top: 1rem; -webkit-text-size-adjust: 100%; }
body { font-variant-numeric: lining-nums; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
.wrc-wrap { max-width: var(--wide); margin-inline: auto; padding-inline: var(--gutter); }
.screen-reader-text:not(:focus) { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* Headings: wide Saira, steps wider with the viewport */
h1, h2, h3, h4, .wrc-display { font-family: var(--display); font-stretch: 106%; text-wrap: balance; letter-spacing: -0.01em; hyphens: manual; }
@media (min-width: 768px) { h1, h2 { font-stretch: 110%; } }
@media (min-width: 1280px) { h1 { font-stretch: 114%; } h2 { font-stretch: 112%; } }

:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 5px var(--paper); }
.wrc-on-dark :where(a, button, summary):focus-visible { outline-color: var(--paper); box-shadow: 0 0 0 5px var(--ink); }

/* ---------- Buttons ---------- */
.wrc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0.75rem 1.35rem; border-radius: 3px; font: 700 1.0625rem/1.2 var(--display); font-stretch: 108%; text-decoration: none; cursor: pointer; border: 2px solid transparent; touch-action: manipulation; }
.wrc-btn--primary { background: var(--od); color: #fff; }
.wrc-btn--primary:hover { background: var(--od-dark); color: #fff; }
.wrc-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.wrc-btn--ghost:hover { background: var(--ink); color: #fff; }
.wrc-btn--light { background: #fff; color: var(--ink); }
.wrc-btn--light:hover { background: var(--tan); color: var(--ink); }
.wrc-phone { font: 800 1.125rem/1.1 var(--display); font-stretch: 112%; color: var(--ink); text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wrc-phone:hover { text-decoration: underline; }

/* ---------- Header ---------- */
.wrc-header { border-bottom: var(--rule); background: var(--paper); position: relative; z-index: 50; }
.wrc-header__bar { display: flex; align-items: center; gap: 1.25rem; min-height: 84px; }
.wrc-brand { display: flex; align-items: center; gap: 0.7rem; text-decoration: none; color: var(--ink); margin-right: auto; flex-shrink: 0; }
.wrc-brand img { width: 56px; height: 56px; }
.wrc-brand__name { display: flex; flex-direction: column; line-height: 1; }
.wrc-brand__name b { font: 800 1.3rem/0.95 var(--display); font-stretch: 125%; letter-spacing: 0.01em; text-transform: uppercase; }
.wrc-brand__name span { font: 600 0.7rem/1.2 var(--display); font-stretch: 125%; letter-spacing: 0.12em; text-transform: uppercase; margin-top: 0.3rem; }
.wrc-nav { display: none; }
.wrc-nav ul { list-style: none; margin: 0; padding: 0; }
.wrc-nav > ul { display: flex; gap: 0.15rem; align-items: center; }
.wrc-nav__item { position: relative; display: flex; align-items: center; }
.wrc-nav a { color: var(--ink); text-decoration: none; }
.wrc-nav > ul > li > a, .wrc-nav__toggle { font: 600 0.975rem/1 var(--display); font-stretch: 100%; white-space: nowrap; padding: 0.7rem 0.45rem; display: inline-flex; align-items: center; gap: 0.3rem; background: none; border: 0; color: var(--ink); cursor: pointer; min-height: 44px; }
.wrc-nav > ul > li > a:hover, .wrc-nav > ul > li > a[aria-current="page"], .wrc-nav__item--current > a { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.4em; }
.wrc-nav__toggle { padding-left: 0; padding-right: 0.4rem; }
.wrc-nav__toggle svg { transition: transform 0.15s; }
.wrc-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.wrc-nav__sub { display: none; position: absolute; top: 100%; left: 0; min-width: 250px; background: var(--paper); border: 2px solid var(--ink); padding: 0.4rem 0; z-index: 60; }
.wrc-nav__sub a { display: block; padding: 0.6rem 1rem; font-size: 0.975rem; }
.wrc-nav__sub a:hover { background: var(--primer); text-decoration: underline; }
.wrc-nav__item.is-open > .wrc-nav__sub { display: block; }
@media (hover: hover) { .wrc-nav__item:hover > .wrc-nav__sub { display: block; } }
.wrc-header__cta { display: none; align-items: center; gap: 1rem; }
.wrc-menu-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0.5rem 0.8rem; background: var(--paper); color: var(--ink); border: 2px solid var(--ink); border-radius: 3px; font: 700 1rem/1 var(--display); cursor: pointer; }
.wrc-header__call { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 3px; background: var(--od); color: #fff; }
.wrc-mobile-menu { border-top: 2px solid var(--ink); padding-block: 1rem 1.5rem; }
.wrc-mobile-menu[hidden] { display: none; }
.wrc-mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.wrc-mobile-menu > ul > li { border-bottom: 1px solid #c9cdc5; }
.wrc-mobile-menu ul a { display: block; padding: 0.75rem 0; color: var(--ink); text-decoration: none; font: 700 1.125rem/1.2 var(--display); font-stretch: 108%; }
.wrc-mobile-menu ul ul { padding: 0 0 0.6rem 1rem; }
.wrc-mobile-menu ul ul a { font: 500 1rem/1.2 var(--body); padding: 0.5rem 0; }
.wrc-mobile-menu .wrc-btn { display: flex; margin-top: 1.25rem; }
.wrc-header__cta .wrc-btn { white-space: nowrap; padding-inline: 1rem; }
@media (min-width: 1200px) {
	.wrc-nav, .wrc-header__cta { display: flex; }
	.wrc-menu-btn, .wrc-header__call, .wrc-mobile-menu { display: none !important; }
}
@media (min-width: 1200px) and (max-width: 1479px) { .wrc-header__cta .wrc-phone { display: none; } .wrc-header__bar { gap: 0.75rem; } }
@media (max-width: 480px) {
	.wrc-header__bar, .wrc-brand { gap: 0.5rem; }
	.wrc-brand img { width: 46px; height: 46px; }
	.wrc-brand__name b { font-size: 1.05rem; }
	.wrc-brand__name span { font-size: 0.6rem; }
	.wrc-header__call { flex-shrink: 0; }
	.wrc-menu-btn { padding-inline: 0.5rem; }
}
/* Narrowest phones: icon-only menu button (the label stays for screen readers). */
@media (max-width: 359px) {
	.wrc-menu-btn { min-width: 44px; justify-content: center; }
	.wrc-menu-btn span { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
}

/* ---------- Page header ---------- */
.wrc-ph { padding-block: clamp(2rem, 5vw, 3.75rem) clamp(2.5rem, 6vw, 4.5rem); overflow-x: clip; }
.wrc-ph__grid { display: grid; gap: 2rem; align-items: center; }
.wrc-ph h1 { margin: 0.4rem 0 1rem; max-width: 20ch; }
.wrc-ph--home h1 { font-size: clamp(2.25rem, 1.3rem + 3.2vw, 3.6rem); }
.wrc-ph__lede { font-size: 1.1875rem; line-height: 1.55; max-width: 38rem; margin: 0 0 1.5rem; color: var(--ink-soft); }
.wrc-ph__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.wrc-ph__media { margin: 0; }
.wrc-ph__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.wrc-ph__media figcaption { font-size: 0.85rem; color: var(--steel); margin-top: 0.5rem; }
@media (min-width: 900px) {
	.wrc-ph__grid { grid-template-columns: 7fr 5fr; gap: 3.5rem; }
	.wrc-ph--home .wrc-ph__grid { grid-template-columns: 7fr 6fr; }
	.wrc-ph--home .wrc-ph__media { margin-right: calc((min(100vw, 2000px) - min(100vw, var(--wide))) / -2 - var(--gutter)); }
	.wrc-ph--home .wrc-ph__media img { aspect-ratio: 5 / 4; }
	.wrc-ph--noimage .wrc-ph__grid { grid-template-columns: 1fr; }
}
.wrc-breadcrumbs { font-size: 0.875rem; color: var(--steel); }
.wrc-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem; }
.wrc-breadcrumbs li + li::before { content: "/"; margin-right: 0.35rem; color: #9aa095; }
.wrc-breadcrumbs a { color: var(--steel); }
.wrc-post-meta { color: var(--steel); font-size: 0.95rem; }

/* ---------- Trust row ---------- */
.wrc-trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0; margin: clamp(2rem, 4vw, 3rem) 0 0; padding: 1.25rem 0 0; list-style: none; border-top: 2px solid var(--ink); }
.wrc-trust li { padding: 0.1rem 1rem 0.1rem 0; }
.wrc-trust b { display: block; font: 800 1.25rem/1.15 var(--display); font-stretch: 108%; color: var(--ink); white-space: nowrap; }
.wrc-trust span { display: block; font-size: 0.875rem; line-height: 1.4; color: var(--steel); margin-top: 0.15rem; }
.wrc-trust a { color: inherit; }
@media (min-width: 760px) { .wrc-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); } .wrc-trust li + li { padding-left: 1.25rem; border-left: 1px solid #c9cdc5; } }
.wrc-content > .wrc-trust { max-width: var(--wide); }

/* ---------- Content flow ---------- */
.wrc-content { padding-bottom: var(--section); }
/* Left-align the reading column with the wide grid edge (not centered). */
@media (min-width: 1000px) {
	.wrc-content > :where(:not(.alignfull):not(.alignwide)) { margin-left: max(0px, calc((100% - var(--wide)) / 2 + var(--gutter) - var(--wp--style--root--padding-left, 0px))) !important; margin-right: auto !important; }
}
.wrc-content > h2 { margin-top: clamp(2.75rem, 5vw, 4rem); margin-bottom: 1rem; }
.wrc-content > h3 { margin-top: 2rem; margin-bottom: 0.5rem; }
.wrc-content > p, .wrc-content > ul, .wrc-content > ol { max-width: 68ch; }
.wrc-content li + li { margin-top: 0.35rem; }
.wrc-content .alignfull { margin-block: var(--section); }
.wrc-content .alignfull + .alignfull { margin-top: 0; }
.wrc-content .alignwide { margin-block: clamp(2.5rem, 5vw, 4rem); }
.wrc-content > :first-child { margin-top: 0; }
/* Component blocks use the wide measure, aligned with the grid. */
.wrc-content > :is(.wrc-notfit, .wrc-reviews, .wrc-areas, .wrc-crew, .wrc-map, .wrc-form, .wrc-financing, .wrc-trust) { max-width: calc(var(--wide) - 2 * var(--gutter)) !important; }
.wrc-content > .wrc-reviews, .wrc-content > .wrc-notfit, .wrc-content > .wrc-areas { margin-block: 2.5rem; }
.wrc-content:has(> .wrc-cta:last-child) { padding-bottom: 0; }
.wrc-content > .wrc-cta:last-child { margin-bottom: 0; }
.wrc-content .wp-block-image img { display: block; }
.wrc-content .wp-block-image figcaption { margin-top: 0.5rem; }
.wrc-content .wp-block-table { margin-block: 2rem; overflow-x: auto; }
.wrc-content table { border-collapse: collapse; width: 100%; font-size: 0.975rem; }
.wrc-content th { background: var(--ink); color: #fff; font: 700 0.95rem/1.3 var(--display); font-stretch: 105%; text-align: left; padding: 0.75rem; }
.wrc-content td { padding: 0.75rem; border-bottom: 1px solid #c9cdc5; vertical-align: top; font-variant-numeric: tabular-nums; }
.wrc-content tbody tr:nth-child(even) td { background: #f6f7f4; }
mark.wrc-confirm { background: #ffe58a; color: #3d2f00; padding: 0.05em 0.3em; border: 1px dashed #8a6d00; font-size: 0.92em; border-radius: 2px; }
a.wrc-missing { text-decoration-style: dashed; }

/* ---------- Price band (the one bold element) ---------- */
.wrc-price-band { background: var(--ink); color: #fff; padding-block: clamp(2.75rem, 6vw, 4rem); position: relative; }
.wrc-price-band::before, .wrc-price-band::after { content: ""; position: absolute; left: 0; right: 0; height: 3px; background: #fff; }
.wrc-price-band::before { top: 10px; }
.wrc-price-band::after { bottom: 10px; }
.wrc-price-band__intro { font: 700 1.125rem/1.3 var(--display); font-stretch: 112%; margin: 0 0 1.5rem; max-width: 50ch; }
.wrc-plates { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.wrc-plate { background: var(--tan); color: var(--ink); padding: 1.35rem 1.25rem 1.15rem; outline: 2px solid var(--ink); outline-offset: -7px; position: relative; display: flex; flex-direction: column; gap: 0.3rem; min-height: 9.5rem; }
.wrc-plate::before, .wrc-plate::after { content: ""; position: absolute; top: 12px; width: 7px; height: 7px; border-radius: 50%; background: #3b2c10; box-shadow: inset 0 0 0 1.5px #000; }
.wrc-plate::before { left: 12px; }
.wrc-plate::after { right: 12px; }
.wrc-plate__label { font: 700 0.95rem/1.2 var(--display); font-stretch: 110%; margin-top: 0.3rem; }
.wrc-plate__price { font: 800 clamp(1.55rem, 1.2rem + 1.2vw, 2.05rem)/1.05 var(--display); font-stretch: 112%; font-variant-numeric: tabular-nums; }
.wrc-plate__note { font-size: 0.85rem; line-height: 1.35; margin-top: auto; }
.wrc-price-band__foot { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: space-between; margin-top: 1.5rem; font-size: 0.9rem; color: #d9dcd5; }
.wrc-price-band__foot a { color: #fff; }

/* ---------- Photo + text splits ---------- */
.wp-block-columns.wrc-split { gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.wrc-split + .wrc-split { margin-top: clamp(3rem, 6vw, 5rem) !important; }
.wrc-split figure { margin: 0; }
.wrc-split img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.wrc-split h3 { font-size: var(--wp--preset--font-size--x-large); font-weight: 800; font-stretch: 118%; margin: 0 0 0.75rem; }
.wrc-split p { max-width: 52ch; }
.wrc-split ul { list-style: none; padding: 0; margin: 1.25rem 0 0; border-top: 2px solid var(--ink); }
.wrc-split li { border-bottom: 1px solid #c9cdc5; margin: 0 !important; }
.wrc-split li a { display: block; padding: 0.7rem 0; font: 600 1.05rem/1.25 var(--display); font-stretch: 106%; color: var(--ink); text-decoration: none; }
.wrc-split li a:hover { text-decoration: underline; }
@media (min-width: 782px) { .wrc-split--right > .wp-block-column:first-child { order: 2; } }

/* ---------- Steps (a real sequence) ---------- */
ol.wrc-steps { list-style: none; counter-reset: step; padding: 0; margin: 1.5rem 0; max-width: 46rem; }
ol.wrc-steps > li { counter-increment: step; position: relative; padding: 1rem 0 1rem 4.25rem; border-top: 1px solid #c9cdc5; margin: 0 !important; }
ol.wrc-steps > li::before { content: counter(step); position: absolute; left: 0; top: 1rem; font: 800 2rem/1 var(--display); font-stretch: 112%; color: var(--od); }
ol.wrc-steps > li:last-child { border-bottom: 1px solid #c9cdc5; }

/* ---------- Callout ---------- */
.wrc-callout { background: var(--primer); border-top: 3px solid var(--ink); padding: 1.25rem 1.5rem; margin-block: 1.75rem; }
.wrc-callout > :first-child { margin-top: 0; }
.wrc-callout > :last-child { margin-bottom: 0; }

/* ---------- FAQ ---------- */
.wrc-faq { margin-block: 1.5rem 0; border-bottom: 2px solid var(--ink); }
.wrc-faq details { border-top: 2px solid var(--ink); }
.wrc-faq summary { list-style: none; cursor: pointer; padding: 1.05rem 2.5rem 1.05rem 0; position: relative; font: 700 1.125rem/1.3 var(--display); font-stretch: 104%; color: var(--ink); }
.wrc-faq summary::-webkit-details-marker { display: none; }
.wrc-faq summary::after { content: "+"; position: absolute; right: 0.25rem; top: 0.7rem; font: 600 1.6rem/1 var(--body); }
.wrc-faq details[open] summary::after { content: "–"; }
.wrc-faq details > :not(summary) { margin: 0 0 1rem; max-width: 68ch; }

/* ---------- Not a fit ---------- */
.wrc-notfit { border: 2px solid var(--ink); padding: clamp(1.25rem, 3vw, 2rem); }
.wrc-notfit h2 { margin: 0 0 0.5rem; }
.wrc-notfit > p { margin: 0 0 1.25rem; max-width: 60ch; }
.wrc-notfit ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem 2.5rem; }
.wrc-notfit li { padding-left: 1.75rem; position: relative; margin: 0 !important; }
.wrc-notfit li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.85rem; height: 3px; background: var(--ink); }
.wrc-notfit li b { font-family: var(--display); font-stretch: 106%; }
@media (min-width: 800px) { .wrc-notfit ul { grid-template-columns: 1fr 1fr; } }

/* ---------- Reviews ---------- */
.wrc-reviews__grid { display: grid; gap: 1.25rem 2.5rem; margin: 1.5rem 0; }
@media (min-width: 800px) { .wrc-reviews__grid { grid-template-columns: repeat(3, 1fr); } }
.wrc-review { margin: 0; padding-top: 1rem; border-top: 3px solid var(--ink); display: flex; flex-direction: column; gap: 0.6rem; }
.wrc-review__stars { color: var(--ink); letter-spacing: 0.15em; font-size: 0.95rem; }
.wrc-review blockquote { margin: 0; font-size: 1.0625rem; line-height: 1.55; }
.wrc-review blockquote p { margin: 0; }
.wrc-review figcaption { font: 700 0.95rem/1.3 var(--display); font-stretch: 106%; }
.wrc-review figcaption span { display: block; font: 400 0.85rem/1.4 var(--body); color: var(--steel); }
.wrc-reviews__more { font-weight: 600; }

/* ---------- CTA band ---------- */
.wrc-cta { background: var(--primer); padding-block: clamp(2.75rem, 6vw, 4.5rem); border-top: var(--rule); }
.wrc-cta__grid { display: grid; gap: 1.5rem; align-items: center; }
.wrc-cta h2 { margin: 0; max-width: 20ch; }
.wrc-cta p { margin: 0.5rem 0 0; color: var(--ink-soft); max-width: 46ch; }
.wrc-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.wrc-cta .wrc-phone { font-size: 1.6rem; }
.wrc-cta__grid > * { min-width: 0; }
@media (min-width: 900px) { .wrc-cta__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } .wrc-cta__actions { justify-content: flex-end; } }

/* ---------- Financing ---------- */
.wrc-financing { background: var(--primer); border-top: 4px solid var(--od); padding: clamp(1.25rem, 3vw, 2rem); margin-block: 2.5rem; }
.wrc-financing h2, .wrc-financing h3 { margin: 0 0 0.5rem; }
.wrc-financing p { margin: 0 0 1rem; max-width: 60ch; }
.wrc-financing small { display: block; margin-top: 0.75rem; color: var(--steel); }

/* ---------- Project galleries ---------- */
.wp-block-gallery.wrc-gallery { gap: 1rem 0.75rem; margin-block: 1.5rem 3rem; }
.wp-block-gallery.wrc-gallery.has-nested-images figure.wp-block-image { flex-direction: column; justify-content: flex-start; align-self: flex-start; }
.wp-block-gallery.wrc-gallery.has-nested-images figure.wp-block-image::before { content: none; display: none; }
.wp-block-gallery.wrc-gallery.has-nested-images figure.wp-block-image img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; flex: none; }
.wp-block-gallery.wrc-gallery.has-nested-images figure.wp-block-image figcaption { position: static; background: none; color: var(--steel); font-size: 0.85rem; line-height: 1.35; padding: 0.4rem 0 0; margin: 0; text-shadow: none; text-align: left; max-height: none; overflow: visible; flex: none; }

/* ---------- TrexPro ---------- */
.wrc-trexpro { border: 2px solid var(--ink); padding: clamp(1.25rem, 3vw, 1.75rem); margin-block: 2.5rem; }
.wrc-trexpro__title { font: 800 1.25rem/1.2 var(--display); font-stretch: 108%; color: var(--ink); margin: 0 0 0.4rem; }
.wrc-trexpro p { margin: 0 0 1rem; max-width: 60ch; }

/* ---------- Crew ---------- */
.wrc-crew { display: grid; gap: 2.5rem 2rem; margin-block: 2rem; }
@media (min-width: 640px) { .wrc-crew { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .wrc-crew { grid-template-columns: repeat(3, 1fr); } }
.wrc-person { margin: 0; }
.wrc-person img, .wrc-person__ph { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; background: var(--primer); }
.wrc-person__ph { display: grid; place-items: center; background: var(--tan); outline: 2px solid var(--ink); outline-offset: -8px; font: 800 3rem/1 var(--display); font-stretch: 125%; color: var(--ink); }
.wrc-person h3 { margin: 1rem 0 0.15rem; }
.wrc-person__role { font-weight: 600; color: var(--od); margin: 0 0 0.6rem; }
.wrc-person__vet { display: inline-block; font-size: 0.8rem; font-weight: 600; border: 1.5px solid var(--ink); padding: 0.1rem 0.45rem; margin-bottom: 0.6rem; }
.wrc-person p { margin: 0 0 0.5rem; font-size: 0.975rem; }

/* ---------- Map + areas ---------- */
.wrc-map { margin-block: 2rem; }
.wrc-map__frame { position: relative; border: 2px solid var(--ink); aspect-ratio: 4 / 3; background: var(--primer); }
@media (min-width: 800px) { .wrc-map__frame { aspect-ratio: 16 / 7; } }
.wrc-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wrc-map__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: space-between; margin-top: 0.75rem; }
.wrc-areas { display: grid; gap: 1.5rem 2rem; margin-block: 2rem; }
@media (min-width: 700px) { .wrc-areas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .wrc-areas { grid-template-columns: repeat(4, 1fr); } }
.wrc-areas h3 { margin: 0 0 0.4rem; font-size: 1.1rem; border-bottom: 2px solid var(--ink); padding-bottom: 0.3rem; }
.wrc-areas ul { list-style: none; margin: 0; padding: 0; }
.wrc-areas li { margin: 0.2rem 0 !important; }
.wrc-areas .is-note { font-size: 0.85rem; color: var(--steel); }

/* ---------- Lead form ---------- */
.wrc-form { border: 2px solid var(--ink); padding: clamp(1.25rem, 3vw, 2rem); margin-block: 2rem; background: var(--paper); }
.wrc-form h2 { margin: 0 0 0.4rem; }
.wrc-form__intro { margin: 0 0 1.25rem; color: var(--ink-soft); }
.wrc-form__grid { display: grid; gap: 1rem 1.25rem; }
@media (min-width: 700px) { .wrc-form__grid { grid-template-columns: 1fr 1fr; } .wrc-form__full { grid-column: 1 / -1; } }
.wrc-field label { display: block; font: 700 0.95rem/1.3 var(--display); font-stretch: 104%; margin-bottom: 0.35rem; }
.wrc-field label .req { color: #b42318; }
.wrc-field small { display: block; color: var(--steel); font-size: 0.85rem; margin-top: 0.25rem; }
.wrc-field input, .wrc-field select, .wrc-field textarea { width: 100%; min-height: 48px; padding: 0.6rem 0.75rem; font: 400 1rem/1.4 var(--body); color: var(--ink); background: #fff; border: 2px solid var(--ink-soft); border-radius: 3px; }
.wrc-field textarea { min-height: 130px; resize: vertical; }
.wrc-field [aria-invalid="true"] { border-color: #b42318; }
.wrc-form__error { color: #b42318; font-weight: 600; }
.wrc-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wrc-form__submit { margin-top: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.wrc-form__submit .wrc-btn { min-width: 220px; }
.wrc-form__fine { font-size: 0.85rem; color: var(--steel); margin: 0; }

.wrc-form__frame { position: relative; border: 1px solid #c9cdc5; background: #fff; }
.wrc-form__frame iframe { display: block; width: 100%; height: 820px; border: 0; }
@media (min-width: 700px) { .wrc-form__frame iframe { height: 760px; } }

/* ---------- Who will reach out ---------- */
.wrc-chip { display: flex; align-items: center; gap: 0.85rem; margin-top: 1.25rem; }
.wrc-chip__photo, .wrc-chip img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--ink); }
.wrc-chip p { margin: 0; font-size: 0.95rem; line-height: 1.4; }
.wrc-chip b { display: block; font-family: var(--display); font-stretch: 104%; color: var(--ink); }
.wrc-chip span { color: var(--steel); }
.wrc-cta__side { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.wrc-chip p { min-width: 0; }
@media (min-width: 900px) { .wrc-cta__side { align-items: flex-end; text-align: left; } .wrc-cta .wrc-chip { justify-content: flex-end; } }

/* ---------- Footer ---------- */
.wrc-footer__note { font-size: 0.9rem; color: #e3e6df; max-width: 32ch; }
.wrc-footer { background: var(--od); color: #fff; border-top: var(--rule); margin-top: 0; }
.wrc-footer a:not(.wrc-btn) { color: #fff; }
.wrc-footer__grid { display: grid; gap: 2rem; padding-block: clamp(2.75rem, 6vw, 4rem); }
@media (min-width: 700px) { .wrc-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .wrc-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; } }
.wrc-footer h2 { font-size: 1.05rem; color: #fff; margin: 0 0 0.75rem; font-stretch: 112%; }
.wrc-footer ul { list-style: none; margin: 0; padding: 0; }
.wrc-footer li { margin: 0.4rem 0; }
.wrc-footer li a { text-decoration: none; }
.wrc-footer li a:hover { text-decoration: underline; }
.wrc-footer address { font-style: normal; line-height: 1.6; }
.wrc-footer__brand img { width: 88px; height: 88px; background: #fff; border-radius: 50%; padding: 3px; }
.wrc-footer .wrc-phone { color: #fff; font-size: 1.35rem; }
.wrc-footer__base { background: var(--od-dark); font-size: 0.85rem; padding-block: 1rem; }
.wrc-footer__base .wrc-wrap { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; justify-content: space-between; }
.wrc-footer__base p { margin: 0; }

/* ---------- Mobile call bar ---------- */
.wrc-callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; padding: 0.5rem max(0.5rem, env(safe-area-inset-left)) calc(0.5rem + env(safe-area-inset-bottom)); background: var(--paper); border-top: 3px solid var(--ink); transform: translateY(110%); transition: transform 0.2s ease-out; }
.wrc-callbar.is-visible { transform: none; }
.wrc-callbar .wrc-btn { box-sizing: border-box; min-height: 48px; padding-inline: 0.375rem; font-size: clamp(0.8125rem, 4.8vw - 0.1875rem, 1rem); font-stretch: 100%; white-space: nowrap; }
.wrc-callbar .wrc-btn:focus-visible { outline-color: var(--ink); box-shadow: 0 0 0 5px var(--paper); }
@media (min-width: 1200px) { .wrc-callbar { display: none; } }
/* site.js sets --wrc-callbar-h to the bar's measured height; the calc is the no-JS fallback. */
@media (max-width: 1199px) { body.has-callbar { padding-bottom: var(--wrc-callbar-h, calc(72px + env(safe-area-inset-bottom, 0px))); } }
@media (prefers-reduced-motion: reduce) { .wrc-callbar, .wrc-nav__toggle svg { transition: none; } }

/* ---------- Blog list ---------- */
.wrc-post-list .wrc-post-item { padding-block: 1.25rem; border-top: 2px solid var(--ink); }
.wrc-post-list .wp-block-post-title a { color: var(--ink); text-decoration: none; }
.wrc-post-list .wp-block-post-title a:hover { text-decoration: underline; }
