10 Best Painters in New Westminster, BC

.hlp-directory,
.hlp-directory * {
box-sizing: border-box;
}
.hlp-directory {
–hlp-green: #115228;
–hlp-green-dark: #0b3c1d;
–hlp-green-soft: #e9f1eb;
–hlp-cream: #fcfaf4;
–hlp-cream-deep: #f5f0e3;
–hlp-ink: #172019;
–hlp-muted: #5d685f;
–hlp-border: #d9e1db;
–hlp-white: #ffffff;
–hlp-gold: #d6ad49;
width: min(calc(100% – 2rem), 74rem);
margin: 0 auto;
padding: 0;
background: transparent;
color: var(–hlp-ink);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 1rem;
line-height: 1.65;
color-scheme: light;
}
.hlp-directory .hlp-article-wrapper {
margin: 0;
padding: 0;
background: transparent;
}
.hlp-directory a {
color: inherit;
}
.hlp-directory button,
.hlp-directory input {
font: inherit;
}
.hlp-directory svg {
width: 1.05rem;
height: 1.05rem;
flex: 0 0 auto;
stroke-width: 1.8;
}
.hlp-directory :focus-visible {
outline: 3px solid rgba(17, 82, 40, 0.25);
outline-offset: 3px;
}
.hlp-directory .hlp-hero {
margin: 0;
padding: 0.5rem 0.2rem;
background: transparent;
}
.hlp-directory .hlp-kicker,
.hlp-directory .hlp-eyebrow {
display: flex;
align-items: center;
gap: 0.5rem;
margin: 0 0 0.75rem;
color: var(–hlp-green);
font-size: 0.78rem;
font-weight: 750;
letter-spacing: 0.09em;
line-height: 1.35;
text-transform: uppercase;
}
.hlp-directory .hlp-kicker svg {
width: 1.15rem;
height: 1.15rem;
}
.hlp-directory .hlp-hero h1 {
max-width: 61rem;
margin: 0;
color: var(–hlp-ink);
font-family: Georgia, “Times New Roman”, serif;
font-size: clamp(2.75rem, 7vw, 5.6rem);
font-weight: 500;
letter-spacing: -0.045em;
line-height: 0.98;
}
.hlp-directory .hlp-lede {
max-width: 56rem;
margin: 1.65rem 0 0;
color: #39443c;
font-size: clamp(1.05rem, 2vw, 1.23rem);
line-height: 1.75;
}
.hlp-directory .hlp-methodology {
margin: 2rem 0 0;
border-top: 1px solid var(–hlp-border);
border-bottom: 1px solid var(–hlp-border);
}
.hlp-directory .hlp-methodology summary,
.hlp-directory .hlp-operations summary,
.hlp-directory .hlp-factor summary {
list-style: none;
cursor: pointer;
}
.hlp-directory .hlp-methodology summary::-webkit-details-marker,
.hlp-directory .hlp-operations summary::-webkit-details-marker,
.hlp-directory .hlp-factor summary::-webkit-details-marker {
display: none;
}
.hlp-directory .hlp-methodology summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
min-height: 3.5rem;
color: var(–hlp-green);
font-weight: 750;
}
.hlp-directory .hlp-methodology summary span {
display: flex;
align-items: center;
gap: 0.6rem;
}
.hlp-directory details[open] summary svg:last-child,
.hlp-directory details[open] summary .hlp-chevron,
.hlp-directory .hlp-toggle-row button.is-active .hlp-toggle-chevron {
transform: rotate(180deg);
}
.hlp-directory summary svg,
.hlp-directory .hlp-toggle-chevron {
transition: transform 180ms ease;
}
.hlp-directory .hlp-methodology-body {
padding: 0.25rem 0 1.5rem;
}
.hlp-directory .hlp-methodology-body p:first-child {
max-width: 58rem;
margin: 0 0 1.25rem;
color: var(–hlp-muted);
}
.hlp-directory .hlp-weight-grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 0.65rem;
}
.hlp-directory .hlp-weight-grid div {
display: flex;
min-height: 7.8rem;
flex-direction: column;
padding: 1rem;
border: 1px solid var(–hlp-border);
border-radius: 0.85rem;
background: var(–hlp-cream);
}
.hlp-directory .hlp-weight-grid strong {
color: var(–hlp-green);
font-family: Georgia, “Times New Roman”, serif;
font-size: 1.9rem;
font-weight: 500;
line-height: 1;
}
.hlp-directory .hlp-weight-grid span {
margin-top: 0.7rem;
font-size: 0.88rem;
font-weight: 750;
line-height: 1.25;
}
.hlp-directory .hlp-weight-grid small {
margin-top: 0.35rem;
color: var(–hlp-muted);
font-size: 0.76rem;
line-height: 1.4;
}
.hlp-directory .hlp-method-note {
margin: 1rem 0 0;
color: var(–hlp-muted);
font-size: 0.86rem;
}
.hlp-directory .hlp-filter-bar {
display: block;
align-items: center;
gap: 0.55rem;
margin: 0.25rem 0 0;
padding: 0.6rem;
border: 1px solid var(–hlp-border);
border-radius: 1rem;
background: var(–hlp-white);
}
.hlp-directory .hlp-search-field {
position: relative;
min-width: 15rem;
flex: 1 1 19rem;
margin-bottom: 10px;
}
.hlp-directory .hlp-search-field svg {
position: absolute;
top: 50%;
left: 0.75rem;
z-index: 1;
color: var(–hlp-muted);
transform: translateY(-50%);
}
.hlp-directory .hlp-search-field input {
height: 2.25rem;
padding-left: 2.25rem;
border-color: var(–hlp-border);
border-radius: 0.65rem;
background: var(–hlp-cream);
color: var(–hlp-ink);
font-size: 0.86rem;
}
.hlp-directory .hlp-search-field input::placeholder {
color: #78827a;
}
.hlp-directory .hlp-select-trigger {
min-width: 9.5rem;
height: 2.25rem;
border-color: var(–hlp-border);
border-radius: 0.65rem;
background: var(–hlp-white);
color: var(–hlp-ink);
font-size: 0.82rem;
}
.hlp-directory .hlp-switch-label {
display: flex;
align-items: center;
gap: 0.45rem;
min-height: 2.25rem;
padding: 0 0.55rem;
color: var(–hlp-muted);
font-size: 0.8rem;
font-weight: 700;
white-space: nowrap;
cursor: pointer;
}
.hlp-directory .hlp-switch-label button[data-state=”checked”] {
background: var(–hlp-green);
}
.hlp-directory .hlp-reset-button {
height: 2.25rem;
border: 0;
background: transparent;
color: var(–hlp-green);
font-size: 0.8rem;
box-shadow: none;
}
.hlp-directory .hlp-reset-button:disabled {
color: #a5aca7;
}
.hlp-directory .hlp-results-summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 0.9rem 0 0.75rem;
color: var(–hlp-muted);
font-size: 0.78rem;
}
.hlp-directory .hlp-results-summary span:first-child {
color: var(–hlp-green);
font-weight: 800;
}
.hlp-directory .hlp-company-list {
display: flex;
flex-direction: column;
gap: 1.15rem;
}
.hlp-directory .hlp-company-card {
position: relative;
overflow: hidden;
padding: clamp(1.1rem, 3vw, 2rem);
border: 1px solid var(–hlp-border);
border-radius: 1.2rem;
background: #f8faf8;
box-shadow: none;
}
.hlp-directory .hlp-company-card:nth-child(even) {
background: var(–hlp-cream);
}
.hlp-directory .hlp-company-card.hlp-featured {
border-color: #b9cbbd;
background: linear-gradient(145deg, #fbfaf2 0%, #f1f6f2 100%);
}
.hlp-directory .hlp-company-card.hlp-featured::before {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 0.28rem;
background: var(–hlp-green);
content: “”;
}
.hlp-directory .hlp-card-topline {
display: flex;
align-items: center;
gap: 0.6rem;
min-height: 1.75rem;
margin-bottom: 0.8rem;
}
.hlp-directory .hlp-rank {
color: var(–hlp-green);
font-family: Georgia, “Times New Roman”, serif;
font-size: 1.15rem;
font-weight: 700;
}
.hlp-directory .hlp-top-pick,
.hlp-directory .hlp-score-chip {
display: inline-flex;
align-items: center;
gap: 0.35rem;
min-height: 1.6rem;
padding: 0.2rem 0.55rem;
border-radius: 999px;
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.03em;
line-height: 1;
}
.hlp-directory .hlp-top-pick {
background: var(–hlp-green);
color: var(–hlp-white);
}
.hlp-directory .hlp-top-pick svg {
width: 0.9rem;
height: 0.9rem;
}
.hlp-directory .hlp-score-chip {
margin-left: auto;
border: 1px solid #c8d5cb;
background: rgba(255, 255, 255, 0.65);
color: var(–hlp-green-dark);
}
.hlp-directory .hlp-company-heading {
display: grid;
grid-template-columns: 5rem minmax(0, 1fr) auto;
align-items: center;
gap: 1rem;
}
.hlp-directory .hlp-logo-frame {
display: flex;
width: 5rem;
height: 4rem;
align-items: center;
justify-content: center;
overflow: hidden;
padding: 0.45rem;
border: 1px solid var(–hlp-border);
border-radius: 0.8rem;
background: var(–hlp-white);
}
.hlp-directory .hlp-logo-frame img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.hlp-directory .hlp-logo-frame.dark-logo {
background: #15201a;
}
.hlp-directory .hlp-logo-frame.wide {
padding: 0.7rem;
}
.hlp-directory .hlp-wordmark {
color: var(–hlp-green-dark);
font-size: 0.72rem;
font-weight: 900;
letter-spacing: 0.04em;
line-height: 1.15;
text-align: center;
}
.hlp-directory .hlp-title-block h2 {
margin: 0;
color: var(–hlp-ink);
font-family: Georgia, “Times New Roman”, serif;
font-size: clamp(1.55rem, 3vw, 2.25rem);
font-weight: 550;
letter-spacing: -0.025em;
line-height: 1.08;
}
.hlp-directory .hlp-title-block p {
margin: 0.4rem 0 0;
color: var(–hlp-muted);
font-size: 0.88rem;
line-height: 1.45;
}
.hlp-directory .hlp-website-button {
display: inline-flex;
min-height: 2.55rem;
align-items: center;
justify-content: center;
gap: 0.5rem;
padding: 0.65rem 0.9rem;
border-radius: 0.7rem;
background: var(–hlp-green);
color: var(–hlp-white);
font-size: 0.82rem;
font-weight: 800;
line-height: 1;
text-decoration: none;
transition: background 150ms ease;
}
.hlp-directory .hlp-website-button:hover {
background: var(–hlp-green-dark);
}
.hlp-directory .hlp-description {
max-width: 65rem;
margin: 1.25rem 0 0;
color: #39443c;
font-size: 1rem;
line-height: 1.72;
}
.hlp-directory .hlp-proof-strip {
display: flex;
flex-wrap: wrap;
gap: 0.55rem;
margin-top: 1rem;
}
.hlp-directory .hlp-proof-strip span {
display: inline-flex;
align-items: center;
gap: 0.45rem;
padding: 0.45rem 0.65rem;
border-radius: 0.55rem;
background: rgba(17, 82, 40, 0.075);
color: var(–hlp-green-dark);
font-size: 0.78rem;
font-weight: 720;
line-height: 1.35;
}
.hlp-directory .hlp-proof-strip svg {
color: var(–hlp-green);
}
.hlp-directory .hlp-facts {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.75rem;
margin-top: 1rem;
}
.hlp-directory .hlp-facts div {
display: flex;
align-items: flex-start;
gap: 0.55rem;
min-width: 0;
padding: 0.8rem;
border-top: 1px solid var(–hlp-border);
color: #38433b;
font-size: 0.78rem;
line-height: 1.45;
}
.hlp-directory .hlp-facts svg {
margin-top: 0.2rem;
color: var(–hlp-green);
}
.hlp-directory .hlp-facts span,
.hlp-directory .hlp-facts small {
display: block;
}
.hlp-directory .hlp-facts small {
margin-bottom: 0.15rem;
color: var(–hlp-muted);
font-size: 0.66rem;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.hlp-directory .hlp-service-tags {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin-top: 0.85rem;
}
.hlp-directory .hlp-service-tags span {
padding: 0.28rem 0.55rem;
border: 1px solid #d6dfd8;
border-radius: 999px;
background: rgba(255, 255, 255, 0.6);
color: #445047;
font-size: 0.7rem;
font-weight: 700;
line-height: 1.25;
}
.hlp-directory .hlp-toggle-row {
display: flex;
align-items: center;
gap: 0.15rem;
margin-top: 1.15rem;
padding: 0.45rem 0;
border-top: 1px solid var(–hlp-border);
border-bottom: 1px solid var(–hlp-border);
}
.hlp-directory .hlp-toggle-row button {
min-height: 2.4rem;
flex: 1 1 0;
justify-content: center;
padding: 0.5rem 0.65rem;
border: 0;
border-radius: 0.55rem;
background: transparent;
color: #4f5c52;
font-size: 0.77rem;
box-shadow: none;
}
.hlp-directory .hlp-toggle-row button:hover,
.hlp-directory .hlp-toggle-row button.is-active {
background: var(–hlp-green-soft);
color: var(–hlp-green-dark);
}
.hlp-directory .hlp-toggle-row .hlp-toggle-chevron {
width: 0.85rem;
height: 0.85rem;
margin-left: 0.1rem;
}
.hlp-directory .hlp-panel {
margin-top: 0.85rem;
padding: clamp(1rem, 2.5vw, 1.5rem);
border: 1px solid #cfdcd2;
border-radius: 0.9rem;
background: rgba(235, 243, 237, 0.84);
}
.hlp-directory .hlp-panel-heading {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 1.5rem;
margin-bottom: 0.9rem;
}
.hlp-directory .hlp-panel-heading .hlp-eyebrow {
margin-bottom: 0.25rem;
font-size: 0.68rem;
}
.hlp-directory .hlp-panel-heading h3 {
margin: 0;
color: var(–hlp-ink);
font-family: Georgia, “Times New Roman”, serif;
font-size: 1.35rem;
font-weight: 600;
line-height: 1.2;
}
.hlp-directory .hlp-panel-heading p {
max-width: 29rem;
margin: 0;
color: var(–hlp-muted);
font-size: 0.78rem;
line-height: 1.45;
text-align: right;
}
.hlp-directory .hlp-panel-intro {
margin: 0 0 1rem;
color: #39443c;
}
.hlp-directory .hlp-factor-list {
display: flex;
flex-direction: column;
border-top: 1px solid #cbd8ce;
}
.hlp-directory .hlp-factor {
border-bottom: 1px solid #cbd8ce;
}
.hlp-directory .hlp-factor summary {
display: grid;
grid-template-columns: minmax(9rem, 0.8fr) minmax(7rem, 1.25fr) auto auto;
align-items: center;
gap: 0.8rem;
min-height: 3.2rem;
padding: 0.55rem 0;
color: var(–hlp-ink);
}
.hlp-directory .hlp-factor-name {
font-size: 0.82rem;
font-weight: 780;
}
.hlp-directory .hlp-factor-meter {
position: relative;
overflow: hidden;
height: 0.38rem;
border-radius: 999px;
background: #d4ded6;
}
.hlp-directory .hlp-factor-meter span {
display: block;
height: 100%;
border-radius: inherit;
background: var(–hlp-green);
}
.hlp-directory .hlp-factor summary strong {
min-width: 3.2rem;
color: var(–hlp-green);
font-size: 0.76rem;
text-align: right;
}
.hlp-directory .hlp-factor-body {
padding: 0 2.3rem 1rem 0;
}
.hlp-directory .hlp-factor-body p {
max-width: 58rem;
margin: 0;
color: #425047;
font-size: 0.85rem;
}
.hlp-directory .hlp-source-row {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
margin-top: 0.75rem;
}
.hlp-directory .hlp-source-link,
.hlp-directory .hlp-review-list article a {
display: inline-flex;
align-items: center;
gap: 0.35rem;
color: var(–hlp-green);
font-size: 0.74rem;
font-weight: 800;
text-decoration: underline;
text-decoration-color: rgba(17, 82, 40, 0.28);
text-underline-offset: 0.2rem;
}
.hlp-directory .hlp-source-link svg,
.hlp-directory .hlp-review-list article a svg {
width: 0.8rem;
height: 0.8rem;
}
.hlp-directory .hlp-check-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.5rem 1rem;
margin: 0;
padding: 0;
list-style: none;
}
.hlp-directory .hlp-check-list li {
display: flex;
align-items: flex-start;
gap: 0.45rem;
color: #3f4c43;
font-size: 0.84rem;
}
.hlp-directory .hlp-check-list svg {
width: 0.95rem;
height: 0.95rem;
margin-top: 0.25rem;
color: var(–hlp-green);
}
.hlp-directory .hlp-profile-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
.hlp-directory .hlp-profile-group {
padding: 0.9rem;
border: 1px solid #d2ddd4;
border-radius: 0.75rem;
background: rgba(255, 255, 255, 0.62);
}
.hlp-directory .hlp-profile-group h4 {
display: flex;
align-items: center;
gap: 0.45rem;
margin: 0 0 0.65rem;
color: var(–hlp-green-dark);
font-size: 0.78rem;
font-weight: 850;
letter-spacing: 0.035em;
text-transform: uppercase;
}
.hlp-directory .hlp-profile-links {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
}
.hlp-directory .hlp-profile-links a {
display: inline-flex;
min-height: 2rem;
align-items: center;
gap: 0.35rem;
padding: 0.35rem 0.5rem;
border: 1px solid #d5ded7;
border-radius: 0.5rem;
background: var(–hlp-white);
color: #38483d;
font-size: 0.72rem;
font-weight: 740;
line-height: 1.2;
text-decoration: none;
}
.hlp-directory .hlp-profile-links a:hover {
border-color: #9eb6a4;
color: var(–hlp-green);
}
.hlp-directory .hlp-profile-links a svg {
width: 0.72rem;
height: 0.72rem;
}
.hlp-directory .hlp-review-list {
display: flex;
flex-direction: column;
border-top: 1px solid #cbd8ce;
}
.hlp-directory .hlp-review-list article {
padding: 0.9rem 0;
border-bottom: 1px solid #cbd8ce;
}
.hlp-directory .hlp-review-meta {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
}
.hlp-directory .hlp-review-meta span {
color: var(–hlp-green-dark);
font-size: 0.7rem;
font-weight: 800;
}
.hlp-directory .hlp-review-meta span:not(:last-child)::after {
margin-left: 0.35rem;
color: #91a096;
content: “·”;
}
.hlp-directory .hlp-review-list article p {
margin: 0.35rem 0 0.55rem;
color: #3f4c43;
font-size: 0.86rem;
}
.hlp-directory .hlp-operations {
margin-top: 0.8rem;
}
.hlp-directory .hlp-operations summary {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 2.4rem;
color: var(–hlp-green);
font-size: 0.77rem;
font-weight: 800;
}
.hlp-directory .hlp-operations div {
padding: 0.45rem 0 0.25rem;
}
.hlp-directory .hlp-operations p {
margin: 0 0 0.75rem;
color: #3f4c43;
font-size: 0.84rem;
}
.hlp-directory .hlp-footer-note {
display: flex;
align-items: flex-start;
gap: 0.9rem;
margin: 1.5rem 0 4rem;
padding: 1.25rem 0;
border-top: 1px solid var(–hlp-border);
border-bottom: 1px solid var(–hlp-border);
}
.hlp-directory .hlp-footer-note svg {
width: 1.35rem;
height: 1.35rem;
margin-top: 0.15rem;
color: var(–hlp-green);
}
.hlp-directory .hlp-footer-note strong {
color: var(–hlp-green-dark);
}
.hlp-directory .hlp-footer-note p {
max-width: 62rem;
margin: 0.25rem 0 0;
color: var(–hlp-muted);
font-size: 0.88rem;
}
@media (max-width: 1050px) {
.hlp-directory .hlp-weight-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hlp-directory .hlp-filter-bar {
flex-wrap: wrap;
}
.hlp-directory .hlp-search-field {
min-width: 100%;
flex-basis: 100%;
}
.hlp-directory .hlp-select-trigger {
flex: 1 1 auto;
}
.hlp-directory .hlp-facts {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 720px) {
.hlp-directory {
width: min(calc(100% – 1rem), 74rem);
}
.hlp-directory .hlp-hero {
}
.hlp-directory .hlp-kicker {
font-size: 0.7rem;
}
.hlp-directory .hlp-hero h1 {
font-size: clamp(2.55rem, 13vw, 4rem);
}
.hlp-directory .hlp-lede {
margin-top: 1.25rem;
}
.hlp-directory .hlp-weight-grid,
.hlp-directory .hlp-profile-grid,
.hlp-directory .hlp-check-list {
grid-template-columns: 1fr;
}
.hlp-directory .hlp-weight-grid div {
min-height: auto;
}
.hlp-directory .hlp-company-heading {
grid-template-columns: 4.25rem minmax(0, 1fr);
align-items: start;
}
.hlp-directory .hlp-logo-frame {
width: 4.25rem;
height: 3.6rem;
}
.hlp-directory .hlp-website-button {
grid-column: 1 / -1;
width: 100%;
}
.hlp-directory .hlp-proof-strip {
flex-direction: column;
}
.hlp-directory .hlp-proof-strip span {
align-items: flex-start;
}
.hlp-directory .hlp-facts {
grid-template-columns: 1fr;
gap: 0;
}
.hlp-directory .hlp-facts div {
padding-right: 0;
padding-left: 0;
}
.hlp-directory .hlp-toggle-row {
overflow-x: auto;
justify-content: flex-start;
scrollbar-width: thin;
}
.hlp-directory .hlp-toggle-row button {
min-width: 10.2rem;
flex: 0 0 auto;
}
.hlp-directory .hlp-panel-heading {
align-items: flex-start;
flex-direction: column;
gap: 0.45rem;
}
.hlp-directory .hlp-panel-heading p {
text-align: left;
}
.hlp-directory .hlp-factor summary {
grid-template-columns: minmax(0, 1fr) auto auto;
}
.hlp-directory .hlp-factor-meter {
display: none;
}
.hlp-directory .hlp-results-summary span:last-child {
display: none;
}
}
@media (max-width: 470px) {
.hlp-directory .hlp-filter-bar {
padding: 0.5rem;
}
.hlp-directory .hlp-select-trigger,
.hlp-directory .hlp-switch-label,
.hlp-directory .hlp-reset-button {
width: 100%;
justify-content: space-between;
}
.hlp-directory .hlp-company-card {
border-radius: 0.9rem;
}
.hlp-directory .hlp-title-block h2 {
font-size: 1.5rem;
}
}
@media (prefers-reduced-motion: reduce) {
.hlp-directory *,
.hlp-directory *::before,
.hlp-directory *::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}
.hlp-directory .hlp-logo-fallback[hidden] { display: none; }
.hlp-directory .hlp-filter-bar input,
.hlp-directory .hlp-filter-bar select { border: 1px solid var(–hlp-border); }
.hlp-directory .hlp-select-trigger { padding: 0 .65rem; appearance: auto; }
.hlp-directory .hlp-toggle-row .hlp-toggle-button { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }
.hlp-directory [hidden] { display: none !important; }
.hlp-directory .hlp-price-checkbox { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.hlp-directory .hlp-switch-track { position: relative; width: 2.1rem; height: 1.15rem; border-radius: 999px; background: #ccd5ce; transition: background 150ms ease; }
.hlp-directory .hlp-switch-track::after { position: absolute; top: .15rem; left: .15rem; width: .85rem; height: .85rem; border-radius: 50%; background: #fff; content: “”; transition: transform 150ms ease; }
.hlp-directory .hlp-price-checkbox:checked + .hlp-switch-track { background: var(–hlp-green); }
.hlp-directory .hlp-price-checkbox:checked + .hlp-switch-track::after { transform: translateX(.95rem); }
.hlp-directory .hlp-price-checkbox:focus-visible + .hlp-switch-track { outline: 3px solid rgba(17,82,40,.25); outline-offset: 3px; }

A good paint job should make your home feel better—not leave you managing missed calls, shifting schedules or a messy site.

Top 10 Best Painters in Richmond, BC

.hlp-directory { –hlp-green: #115228; –hlp-green-2: #2f6b43; –hlp-ink: #20332a; –hlp-muted: #607169; –hlp-cream: #fcfaf4; –hlp-sage: #e8f0ea; –hlp-sage-2: #f2f6f3; –hlp-line: #cad7ce; –hlp-white: #fff; –hlp-focus: #e9a23b; color: var(–hlp-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif; font-size: 16px; line-height: 1.6; max-width: 1120px; margin-inline: auto; } .hlp-directory *, .hlp-directory *::before, .hlp-directory *::after { box-sizing: border-box; } .hlp-directory [hidden] { display: none !important; } .hlp-directory .hlp-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; } .hlp-directory a { color: var(–hlp-green); text-underline-offset: 3px; } .hlp-directory button, .hlp-directory input, .hlp-directory select { font: inherit; } .hlp-directory button, .hlp-directory summary, .hlp-directory select { cursor: pointer; } .hlp-directory :focus-visible { outline: 3px solid var(–hlp-focus); outline-offset: 3px; } .hlp-directory__article { margin: 0; padding: 0; background: none; } .hlp-directory__hero { margin: 0 0 28px; padding: 0; background: none; } .hlp-directory__hero h1 { color: var(–hlp-green); font-size: clamp(2.2rem, 5vw, 4.5rem); letter-spacing: -.045em; line-height: .98; margin: 10px 0 18px; max-width: 900px; } .hlp-directory__hero p { color: var(–hlp-muted); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.55; margin: 0; max-width: 850px; } .hlp-directory .hlp-kicker { align-items: center; color: var(–hlp-green); display: flex; font-size: .77rem; font-weight: 800; gap: 8px; letter-spacing: .12em; text-transform: uppercase; } .hlp-directory .hlp-kicker::before { background: var(–hlp-green); content: “”; height: 2px; width: 34px; } .hlp-directory .hlp-meta { align-items: center; color: var(–hlp-muted); display: flex; flex-wrap: wrap; font-size: .86rem; gap: 8px 18px; margin-top: 20px; } .hlp-directory .hlp-meta span { align-items: center; display: inline-flex; gap: 7px; } .hlp-directory .hlp-meta svg { height: 16px; width: 16px; } .hlp-directory .hlp-method { border-block: 1px solid var(–hlp-line); margin: 24px 0 18px; } .hlp-directory .hlp-method summary { align-items: center; display: flex; font-weight: 800; gap: 9px; list-style: none; padding: 12px 2px; } .hlp-directory .hlp-method summary::-webkit-details-marker, .hlp-directory .hlp-factor summary::-webkit-details-marker { display: none; } .hlp-directory .hlp-method summary svg:last-child { height: 18px; margin-left: auto; transition: transform .2s ease; width: 18px; } .hlp-directory .hlp-method[open] summary svg:last-child { transform: rotate(180deg); } .hlp-directory .hlp-method__body { color: var(–hlp-muted); padding: 2px 0 20px; } .hlp-directory .hlp-method__body p { margin: 0 0 14px; } .hlp-directory .hlp-weight-grid { display: grid; gap: 8px; grid-template-columns: repeat(4, minmax(0, 1fr)); } .hlp-directory .hlp-weight-grid span { align-items: center; background: var(–hlp-sage-2); border: 1px solid var(–hlp-line); border-radius: 8px; display: flex; font-size: .84rem; justify-content: space-between; padding: 8px 10px; } .hlp-directory .hlp-weight-grid strong { color: var(–hlp-green); } .hlp-directory .hlp-controls { background: var(–hlp-sage-2); border: 1px solid var(–hlp-line); border-radius: 12px; display: grid; gap: 8px; grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(135px, .7fr)) auto; padding: 8px; } .hlp-directory .hlp-field { align-items: center; background: var(–hlp-white); border: 1px solid transparent; border-radius: 7px; display: flex; min-height: 42px; padding: 0 10px; } .hlp-directory .hlp-field:focus-within { border-color: var(–hlp-green); } .hlp-directory .hlp-field svg { color: var(–hlp-green); flex: 0 0 auto; height: 17px; width: 17px; } .hlp-directory .hlp-field input, .hlp-directory .hlp-field select { background: transparent; border: 0; color: var(–hlp-ink); min-width: 0; outline: 0; padding: 7px 8px; width: 100%; } .hlp-directory .hlp-field select { padding-right: 2px; } .hlp-directory .hlp-reset { align-items: center; background: transparent; border: 0; border-radius: 7px; color: var(–hlp-green); display: inline-flex; font-size: .85rem; font-weight: 800; gap: 6px; justify-content: center; padding: 6px 10px; } .hlp-directory .hlp-reset:hover { background: var(–hlp-sage); } .hlp-directory .hlp-reset svg { height: 16px; width: 16px; } .hlp-directory .hlp-filter-options { align-items: center; display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 10px 2px 0; } .hlp-directory .hlp-filter-switch { align-items: center; color: var(–hlp-muted); display: flex; font-size: .86rem; gap: 8px; } .hlp-directory .hlp-switch { display: inline-flex; position: relative; } .hlp-directory .hlp-switch input { height: 1px; opacity: 0; position: absolute; width: 1px; } .hlp-directory .hlp-switch span { background: #b9c6bd; border-radius: 999px; display: block; height: 22px; position: relative; transition: background .2s ease; width: 40px; } .hlp-directory .hlp-switch span::after { background: var(–hlp-white); border-radius: 50%; content: “”; height: 16px; left: 3px; position: absolute; top: 3px; transition: transform .2s ease; width: 16px; } .hlp-directory .hlp-switch input:checked + span { background: var(–hlp-green); } .hlp-directory .hlp-switch input:checked + span::after { transform: translateX(18px); } .hlp-directory .hlp-switch input:focus-visible + span { outline: 3px solid var(–hlp-focus); outline-offset: 3px; } .hlp-directory .hlp-results-line { align-items: center; color: var(–hlp-muted); display: flex; font-size: .88rem; justify-content: space-between; margin: 14px 2px; } .hlp-directory .hlp-results-line strong { color: var(–hlp-ink); } .hlp-directory .hlp-list { display: grid; gap: 16px; } .hlp-directory .hlp-card { background: #f7faf7; border: 1px solid var(–hlp-line); border-radius: 16px; padding: clamp(18px, 3vw, 30px); scroll-margin-top: 20px; } .hlp-directory .hlp-card:nth-child(even) { background: var(–hlp-cream); } .hlp-directory .hlp-card–featured { background: #edf5ef; border-color: #8eb49a; } .hlp-directory .hlp-card__head { align-items: flex-start; display: flex; gap: 18px; justify-content: space-between; } .hlp-directory .hlp-card__identity { align-items: center; display: flex; gap: 14px; min-width: 0; } .hlp-directory .hlp-rank { align-items: center; border: 1px solid var(–hlp-line); border-radius: 50%; color: var(–hlp-green); display: inline-flex; flex: 0 0 auto; font-size: .8rem; font-weight: 900; height: 34px; justify-content: center; width: 34px; } .hlp-directory .hlp-logo-wrap { align-items: center; background: var(–hlp-white); border: 1px solid var(–hlp-line); border-radius: 10px; display: inline-flex; flex: 0 0 auto; height: 64px; justify-content: center; overflow: hidden; padding: 6px; position: relative; width: 86px; } .hlp-directory .hlp-logo { display: block; height: 100%; object-fit: contain; position: relative; width: 100%; z-index: 1; } .hlp-directory .hlp-logo-fallback { align-items: center; color: var(–hlp-green); display: flex; font-weight: 900; inset: 0; justify-content: center; position: absolute; display:none;} .hlp-directory .hlp-card__badge { color: var(–hlp-green-2); display: block; font-size: .72rem; font-weight: 850; letter-spacing: .08em; line-height: 1.2; margin-bottom: 4px; text-transform: uppercase; } .hlp-directory .hlp-card h2 { color: var(–hlp-ink); font-size: clamp(1.28rem, 2.5vw, 1.75rem); letter-spacing: -.025em; line-height: 1.12; margin: 0; } .hlp-directory .hlp-score { align-items: baseline; color: var(–hlp-green); display: flex; flex: 0 0 auto; line-height: 1; } .hlp-directory .hlp-score strong { font-size: 2rem; letter-spacing: -.06em; } .hlp-directory .hlp-score span { color: var(–hlp-muted); font-size: .78rem; font-weight: 700; } .hlp-directory .hlp-description { color: #45584e; font-size: 1rem; margin: 20px 0 12px; max-width: 980px; } .hlp-directory .hlp-best { align-items: flex-start; color: var(–hlp-green); display: flex; font-weight: 750; gap: 8px; margin: 0 0 16px; } .hlp-directory .hlp-best svg { flex: 0 0 auto; height: 19px; margin-top: 3px; width: 19px; } .hlp-directory .hlp-facts { color: var(–hlp-muted); display: flex; flex-wrap: wrap; font-size: .86rem; gap: 8px 18px; } .hlp-directory .hlp-facts span, .hlp-directory .hlp-facts a { align-items: center; display: inline-flex; gap: 6px; } .hlp-directory .hlp-facts a { color: var(–hlp-muted); text-decoration: none; } .hlp-directory .hlp-facts a:hover { color: var(–hlp-green); text-decoration: underline; } .hlp-directory .hlp-facts svg { color: var(–hlp-green-2); flex: 0 0 auto; height: 15px; width: 15px; } .hlp-directory .hlp-chip-list { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; margin: 17px 0 0; padding: 0; } .hlp-directory .hlp-chip-list li { background: rgba(255,255,255,.72); border: 1px solid var(–hlp-line); border-radius: 999px; color: #405248; font-size: .78rem; padding: 4px 9px; } .hlp-directory .hlp-card__actions { align-items: center; border-top: 1px solid var(–hlp-line); display: flex; gap: 14px; justify-content: space-between; margin-top: 20px; padding-top: 12px; } .hlp-directory .hlp-card__toggles { align-items: center; display: flex; flex-wrap: wrap; gap: 4px 18px; } .hlp-directory .hlp-icon-toggle { align-items: center; background: transparent; border: 0; color: var(–hlp-muted); display: inline-flex; font-size: .83rem; font-weight: 800; gap: 6px; padding: 6px 1px; } .hlp-directory .hlp-icon-toggle:hover, .hlp-directory .hlp-icon-toggle[aria-expanded=”true”] { color: var(–hlp-green); } .hlp-directory .hlp-icon-toggle[aria-expanded=”true”] { text-decoration: underline; text-underline-offset: 5px; } .hlp-directory .hlp-icon-toggle svg { height: 18px; width: 18px; } .hlp-directory .hlp-visit { align-items: center; background: var(–hlp-green); border: 1px solid var(–hlp-green); border-radius: 8px; color: var(–hlp-white); display: inline-flex; flex: 0 0 auto; font-size: .86rem; font-weight: 850; gap: 7px; padding: 8px 12px; text-decoration: none; } .hlp-directory .hlp-visit:hover { background: #0a411e; color: var(–hlp-white); } .hlp-directory .hlp-visit svg { height: 16px; width: 16px; } .hlp-directory .hlp-panel { border-top: 1px solid var(–hlp-line); margin-top: 16px; padding-top: 20px; } .hlp-directory .hlp-panel__header { align-items: center; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 14px; } .hlp-directory .hlp-eyebrow { color: var(–hlp-green-2); display: block; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; } .hlp-directory .hlp-panel h3, .hlp-directory .hlp-subhead h4 { color: var(–hlp-ink); letter-spacing: -.02em; line-height: 1.25; margin: 2px 0 0; } .hlp-directory .hlp-panel h3 { font-size: 1.2rem; } .hlp-directory .hlp-score-large { color: var(–hlp-green); font-size: 1.6rem; font-weight: 900; line-height: 1; } .hlp-directory .hlp-score-large small { color: var(–hlp-muted); font-size: .72rem; } .hlp-directory .hlp-factor-list { border-top: 1px solid var(–hlp-line); } .hlp-directory .hlp-factor { border-bottom: 1px solid var(–hlp-line); } .hlp-directory .hlp-factor summary { align-items: center; display: grid; gap: 12px; grid-template-columns: minmax(170px, 1fr) minmax(100px, 1.5fr) 52px 18px; list-style: none; padding: 11px 0; } .hlp-directory .hlp-factor__name { font-size: .88rem; font-weight: 800; } .hlp-directory .hlp-factor__points { color: var(–hlp-green); font-size: .82rem; font-weight: 900; text-align: right; } .hlp-directory .hlp-factor__bar { background: #dce5df; border-radius: 999px; height: 6px; overflow: hidden; } .hlp-directory .hlp-factor__bar span { background: var(–hlp-green-2); border-radius: inherit; display: block; height: 100%; } .hlp-directory .hlp-factor summary svg { height: 17px; transition: transform .2s ease; width: 17px; } .hlp-directory .hlp-factor[open] summary svg { transform: rotate(180deg); } .hlp-directory .hlp-factor__body { color: var(–hlp-muted); padding: 0 0 13px; } .hlp-directory .hlp-factor__body p { margin: 0 0 9px; } .hlp-directory .hlp-source-links, .hlp-directory .hlp-link-list { display: flex; flex-wrap: wrap; gap: 6px; } .hlp-directory .hlp-source-link, .hlp-directory .hlp-profile-link { align-items: center; border: 1px solid var(–hlp-line); border-radius: 999px; display: inline-flex; font-size: .76rem; font-weight: 750; gap: 4px; padding: 4px 8px; text-decoration: none; } .hlp-directory .hlp-source-link:hover, .hlp-directory .hlp-profile-link:hover { background: var(–hlp-sage); } .hlp-directory .hlp-source-link svg, .hlp-directory .hlp-profile-link svg { height: 12px; width: 12px; } .hlp-directory .hlp-reviews { margin-top: 25px; } .hlp-directory .hlp-subhead { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 8px; } .hlp-directory .hlp-subhead h4 { font-size: 1.08rem; } .hlp-directory .hlp-subhead p { color: var(–hlp-muted); font-size: .78rem; margin: 0; } .hlp-directory .hlp-review-list { counter-reset: hlp-reviews; display: grid; gap: 0; list-style: none; margin: 0; padding: 0; } .hlp-directory .hlp-review-list li { border-bottom: 1px solid var(–hlp-line); counter-increment: hlp-reviews; padding: 13px 0 13px 34px; position: relative; } .hlp-directory .hlp-review-list li::before { align-items: center; background: var(–hlp-green); border-radius: 50%; color: var(–hlp-white); content: counter(hlp-reviews); display: flex; font-size: .7rem; font-weight: 900; height: 22px; justify-content: center; left: 0; position: absolute; top: 14px; width: 22px; } .hlp-directory .hlp-review-list__top { align-items: center; display: flex; gap: 15px; justify-content: space-between; } .hlp-directory .hlp-review-list p { color: var(–hlp-muted); margin: 4px 0; } .hlp-directory .hlp-text-link { align-items: center; display: inline-flex; flex: 0 0 auto; font-size: .74rem; gap: 3px; } .hlp-directory .hlp-text-link svg { height: 12px; width: 12px; } .hlp-directory .hlp-takeaway { align-items: flex-start; display: flex; font-size: .84rem; gap: 6px; } .hlp-directory .hlp-takeaway svg { color: var(–hlp-green-2); flex: 0 0 auto; height: 15px; margin-top: 4px; width: 15px; } .hlp-directory .hlp-pricing-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); } .hlp-directory .hlp-price-item { background: rgba(255,255,255,.72); border: 1px solid var(–hlp-line); border-radius: 10px; padding: 14px; } .hlp-directory .hlp-price-item span { color: var(–hlp-muted); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; } .hlp-directory .hlp-price-item strong { color: var(–hlp-green); display: block; font-size: 1.12rem; margin: 3px 0; } .hlp-directory .hlp-price-item p { color: var(–hlp-muted); font-size: .82rem; line-height: 1.5; margin: 0; } .hlp-directory .hlp-footprint-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); } .hlp-directory .hlp-link-group { background: rgba(255,255,255,.72); border: 1px solid var(–hlp-line); border-radius: 10px; padding: 14px; } .hlp-directory .hlp-link-group h4 { align-items: center; display: flex; font-size: .88rem; gap: 7px; margin: 0 0 10px; } .hlp-directory .hlp-link-group h4 svg { color: var(–hlp-green); height: 17px; width: 17px; } .hlp-directory .hlp-empty { border: 1px dashed var(–hlp-line); border-radius: 12px; color: var(–hlp-muted); margin: 16px 0; padding: 22px; text-align: center; } .hlp-directory .hlp-guide, .hlp-directory .hlp-faqs { margin-top: 48px; } .hlp-directory .hlp-guide h2, .hlp-directory .hlp-faqs h2 { color: var(–hlp-green); font-size: clamp(1.55rem, 3vw, 2.2rem); letter-spacing: -.035em; line-height: 1.1; margin: 0 0 14px; } .hlp-directory .hlp-guide p { color: var(–hlp-muted); margin: 0 0 18px; max-width: 820px; } .hlp-directory .hlp-check-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .hlp-directory .hlp-check { border: 1px solid var(–hlp-line); border-radius: 10px; padding: 14px 16px; } .hlp-directory .hlp-check strong { align-items: center; display: flex; gap: 7px; } .hlp-directory .hlp-check svg { color: var(–hlp-green); height: 17px; width: 17px; } .hlp-directory .hlp-check p { color: var(–hlp-muted); font-size: .88rem; margin: 4px 0 0 24px; } .hlp-directory .hlp-faq { border-bottom: 1px solid var(–hlp-line); } .hlp-directory .hlp-faq summary { font-weight: 800; padding: 13px 0; } .hlp-directory .hlp-faq p { color: var(–hlp-muted); margin: 0; padding: 0 0 14px; } .hlp-directory .hlp-editorial { border-top: 1px solid var(–hlp-line); color: var(–hlp-muted); font-size: .78rem; margin-top: 42px; padding-top: 18px; } .hlp-directory .hlp-editorial p { margin: 5px 0; } @media (max-width: 900px) { .hlp-directory .hlp-controls { grid-template-columns: 1fr 1fr; } .hlp-directory .hlp-field–search { grid-column: 1 / -1; } .hlp-directory .hlp-reset { min-height: 42px; } .hlp-directory .hlp-weight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { .hlp-directory__hero { margin-bottom: 22px; } .hlp-directory .hlp-controls { grid-template-columns: 1fr; } .hlp-directory .hlp-field–search { grid-column: auto; } .hlp-directory .hlp-card__head { gap: 10px; } .hlp-directory .hlp-card__identity { align-items: flex-start; display: grid; gap: 8px 10px; grid-template-columns: auto 1fr; } .hlp-directory .hlp-rank { grid-row: 1; } .hlp-directory .hlp-logo-wrap { grid-column: 2; height: 54px; width: 76px; } .hlp-directory .hlp-card__identity div { grid-column: 1 / -1; } .hlp-directory .hlp-score strong { font-size: 1.55rem; } .hlp-directory .hlp-card__actions { align-items: stretch; flex-direction: column; } .hlp-directory .hlp-card__toggles { justify-content: space-between; } .hlp-directory .hlp-visit { justify-content: center; } .hlp-directory .hlp-factor summary { grid-template-columns: 1fr 46px 18px; } .hlp-directory .hlp-factor__bar { display: none; } .hlp-directory .hlp-subhead { align-items: flex-start; flex-direction: column; gap: 3px; } .hlp-directory .hlp-review-list__top { align-items: flex-start; flex-direction: column; gap: 2px; } .hlp-directory .hlp-check-grid, .hlp-directory .hlp-weight-grid { grid-template-columns: 1fr; } } @media print { .hlp-directory .hlp-controls, .hlp-directory .hlp-filter-options, .hlp-directory .hlp-card__toggles { display: none; } .hlp-directory .hlp-card { break-inside: avoid; } } @media (prefers-reduced-motion: reduce) { .hlp-directory *, .hlp-directory *::before, .hlp-directory *::after { scroll-behavior: auto !important; transition: none !important; } }

 

A practical, evidence-led directory for choosing a painting company—built around local fit, customer proof, preparation standards, trust signals and the information each provider makes available before you invite them into your property.Research current to August 10, 202610 providers50 review takeaways

How the ranking works

This is a decision aid, not a substitute for a written estimate.

Top 10 Best Painters in Burnaby, BC

.hlp-directory {
–hlp-green: #115228;
–hlp-green-dark: #093919;
–hlp-pine: #04200e;
–hlp-cream: #fcfaf4;
–hlp-sage: #6c8474;
–hlp-gold: #c69b33;
–hlp-ink: #24322a;
–hlp-muted: #5e6a63;
–hlp-line: #d9dfda;
–hlp-white: #ffffff;
color: var(–hlp-ink);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 16px;
line-height: 1.65;
margin: 0;
padding: 0;
background: transparent;
}
.hlp-directory *, .hlp-directory *::before, .hlp-directory *::after { box-sizing: border-box; }
.hlp-directory a { color: var(–hlp-green); text-underline-offset: 3px; }
.hlp-directory a:hover { color: var(–hlp-green-dark); }
.hlp-directory button, .hlp-directory input, .hlp-directory select { font: inherit; }
.hlp-directory__sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.hlp-directory button, .hlp-directory summary, .hlp-directory a { -webkit-tap-highlight-color: transparent; }
.hlp-directory button:focus-visible, .hlp-directory summary:focus-visible, .hlp-directory a:focus-visible, .hlp-directory input:focus-visible, .hlp-directory select:focus-visible { outline: 3px solid rgba(198,155,51,.55); outline-offset: 3px; }
.hlp-directory [hidden] { display: none !important; }
.hlp-directory__hero, .hlp-directory__intro, .hlp-directory__toolbar-wrap, .hlp-directory__results, .hlp-directory__buying-guide, .hlp-directory__faq, .hlp-directory__cta, .hlp-directory__footer {
width: min(1120px, calc(100% – 32px));
margin-inline: auto;
}
.hlp-directory__hero { padding: 0px 0 26px
; background: transparent; }
.hlp-directory__kicker { display: inline-flex; align-items: center; gap: 8px; color: var(–hlp-green); font-size: .78rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 12px; text-transform: uppercase; }
.hlp-directory__hero h1 { color: var(–hlp-pine); font-family: Georgia, “Times New Roman”, serif; font-size: clamp(2.25rem, 6vw, 4.8rem); letter-spacing: -.045em; line-height: .98; margin: 0; max-width: 930px; }
.hlp-directory__dek { color: #465149; font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.55; margin: 22px 0 0; max-width: 790px; }
.hlp-directory__research-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 22px; }
.hlp-directory__research-meta span { align-items: center; color: var(–hlp-muted); display: inline-flex; font-size: .88rem; gap: 8px; }
.hlp-directory__research-meta i { color: var(–hlp-green); }
.hlp-directory__intro { border-top: 1px solid var(–hlp-line); padding: 25px 0 31px; }
.hlp-directory__intro p { margin: 0; max-width: 900px; }
.hlp-directory__method { border-bottom: 1px solid var(–hlp-line); margin-top: 20px; }
.hlp-directory__method summary { align-items: center; color: var(–hlp-green); cursor: pointer; display: flex; font-weight: 800; gap: 10px; list-style: none; padding: 12px 0; }
.hlp-directory__method summary::-webkit-details-marker, .hlp-directory__factor summary::-webkit-details-marker { display: none; }
.hlp-directory__method summary::after { content: “+”; font-size: 1.35rem; margin-left: auto; }
.hlp-directory__method[open] summary::after { content: “−”; }
.hlp-directory__method-body { color: var(–hlp-muted); padding: 2px 0 20px; }
.hlp-directory__method-body p { margin: 0 0 14px; max-width: 900px; }
.hlp-directory__weight-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); }
.hlp-directory__weight-grid span { align-items: center; border: 1px solid var(–hlp-line); display: flex; gap: 9px; padding: 10px 12px; }
.hlp-directory__weight-grid i { color: var(–hlp-green); width: 18px; }
.hlp-directory__toolbar-wrap { margin-bottom: 20px; }
.hlp-directory__toolbar { align-items: center; background: var(–hlp-cream); border: 1px solid var(–hlp-line); display: grid; gap: 8px; grid-template-columns: minmax(230px, 1.6fr) repeat(2, minmax(150px, .8fr)) auto auto auto; padding: 8px; }
.hlp-directory__field { min-width: 0; position: relative; }
.hlp-directory__field i { color: var(–hlp-sage); left: 13px; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); }
.hlp-directory__field input, .hlp-directory__field select { appearance: none; background: var(–hlp-white); border: 1px solid #cdd4cf; border-radius: 0; color: var(–hlp-ink); height: 40px; min-width: 0; padding: 0 36px; width: 100%; }
.hlp-directory__field select { cursor: pointer; padding-left: 12px; }
.hlp-directory__field–select::after { color: var(–hlp-sage); content: “▾”; pointer-events: none; position: absolute; right: 12px; top: 7px; }
.hlp-directory__toolbar button, .hlp-directory__weekend { align-items: center; border: 0; color: var(–hlp-green); cursor: pointer; display: inline-flex; font-size: .86rem; font-weight: 750; gap: 7px; min-height: 40px; padding: 8px 10px; white-space: nowrap; }
.hlp-directory__toolbar button { background: transparent; }
.hlp-directory__toolbar button:hover, .hlp-directory__toolbar button.is-active { background: #e8efe9; }
.hlp-directory__weekend { background: var(–hlp-white); }
.hlp-directory__weekend input { accent-color: var(–hlp-green); height: 16px; margin: 0; width: 16px; }
.hlp-directory__result-count { color: var(–hlp-muted); font-size: .86rem; margin: 8px 2px 0; }
.hlp-directory__results { display: grid; gap: 18px; }
.hlp-directory__card { background: #f8f7f2; border: 1px solid var(–hlp-line); border-left: 4px solid #bdc8c0; padding: clamp(20px, 4vw, 34px); }
.hlp-directory__card.is-featured { background: #f1f6f1; border-left-color: var(–hlp-green); }
.hlp-directory__card-head { align-items: start; display: flex; gap: 24px; justify-content: space-between; }
.hlp-directory__identity { align-items: center; display: grid; gap: 14px; grid-template-columns: auto 86px minmax(0, 1fr); min-width: 0; }
.hlp-directory__rank { align-items: center; background: var(–hlp-pine); color: var(–hlp-white); display: inline-flex; font-size: .79rem; font-weight: 850; height: 34px; justify-content: center; width: 42px; }
.hlp-directory__logo-wrap { align-items: center; background: var(–hlp-white); border: 1px solid var(–hlp-line); display: inline-flex; height: 66px; justify-content: center; overflow: hidden; padding: 8px; width: 86px; }
.hlp-directory__logo-wrap img { display: block; max-height: 48px; max-width: 70px; object-fit: contain; }
.hlp-directory__logo-wrap.is-fallback::after { color: var(–hlp-green); content: attr(data-initials); font-family: Georgia, serif; font-size: 1.4rem; font-weight: 800; }
.hlp-directory__logo-wrap.is-fallback img { display: none; }
.hlp-directory__eyebrow { color: var(–hlp-green); display: block; font-size: .68rem; font-weight: 850; letter-spacing: .12em; margin-bottom: 3px; text-transform: uppercase; }
.hlp-directory__identity h2 { color: var(–hlp-pine); font-family: Georgia, “Times New Roman”, serif; font-size: clamp(1.45rem, 3vw, 2rem); letter-spacing: -.025em; line-height: 1.1; margin: 0; overflow-wrap: anywhere; }
.hlp-directory__rating { align-items: center; display: flex; flex-wrap: wrap; font-size: .84rem; gap: 6px; margin-top: 8px; }
.hlp-directory__rating i { color: var(–hlp-gold); }
.hlp-directory__rating span { color: var(–hlp-muted); }
.hlp-directory__score { align-items: flex-end; display: flex; flex-direction: column; flex: 0 0 auto; }
.hlp-directory__score strong { color: var(–hlp-green); font-family: Georgia, “Times New Roman”, serif; font-size: 2rem; line-height: 1; }
.hlp-directory__score span { color: var(–hlp-muted); font-size: .7rem; margin-top: 4px; text-transform: uppercase; }
.hlp-directory__description { font-size: 1rem; margin: 22px 0 14px; max-width: 940px; }
.hlp-directory__best-for { align-items: flex-start; background: rgba(17,82,40,.06); display: flex; gap: 10px; margin: 0 0 20px; padding: 11px 13px; }
.hlp-directory__best-for i { color: var(–hlp-green); margin-top: 5px; }
.hlp-directory__best-for p { margin: 0; }
.hlp-directory__facts { border-bottom: 1px solid var(–hlp-line); border-top: 1px solid var(–hlp-line); display: grid; gap: 0; grid-template-columns: repeat(2, 1fr); margin: 0 0 18px; }
.hlp-directory__facts div { min-width: 0; padding: 14px 16px 14px 0; }
.hlp-directory__facts div:nth-child(even) { border-left: 1px solid var(–hlp-line); padding-left: 16px; }
.hlp-directory__facts dt { align-items: center; color: var(–hlp-green); display: flex; font-size: .72rem; font-weight: 850; gap: 7px; letter-spacing: .06em; text-transform: uppercase; }
.hlp-directory__facts dd { font-size: .89rem; line-height: 1.5; margin: 5px 0 0; overflow-wrap: anywhere; }
.hlp-directory__services { display: flex; flex-wrap: wrap; gap: 7px; }
.hlp-directory__services span { border: 1px solid #cad5cc; color: #3f5145; font-size: .76rem; padding: 5px 9px; }
.hlp-directory__quick-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.hlp-directory__primary-link, .hlp-directory__secondary-link { align-items: center; display: inline-flex; font-size: .87rem; font-weight: 800; gap: 8px; justify-content: center; min-height: 42px; padding: 8px 15px; text-decoration: none; }
.hlp-directory__primary-link { background: var(–hlp-green); color: var(–hlp-white) !important; }
.hlp-directory__primary-link::after { content: “↗”; }
.hlp-directory__primary-link:hover { background: var(–hlp-green-dark); }
.hlp-directory__secondary-link { border: 1px solid var(–hlp-green); }
.hlp-directory__toggles { align-items: center; border-top: 1px solid var(–hlp-line); display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 22px; padding-top: 10px; }
.hlp-directory__toggles button { align-items: center; background: transparent; border: 0; color: var(–hlp-green); cursor: pointer; display: inline-flex; font-size: .82rem; font-weight: 800; gap: 7px; min-height: 40px; padding: 7px 3px; }
.hlp-directory__toggles button:hover, .hlp-directory__toggles button.is-active { color: var(–hlp-pine); text-decoration: underline; text-underline-offset: 5px; }
.hlp-directory__toggles button i { width: 17px; }
.hlp-directory__panel { border-top: 1px solid var(–hlp-line); margin-top: 10px; padding-top: 22px; }
.hlp-directory__panel-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 16px; }
.hlp-directory__panel-heading span { color: var(–hlp-green); display: block; font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.hlp-directory__panel-heading h3 { color: var(–hlp-pine); font-family: Georgia, “Times New Roman”, serif; font-size: 1.3rem; line-height: 1.2; margin: 2px 0 0; }
.hlp-directory__panel-heading p { color: var(–hlp-muted); font-size: .82rem; margin: 0; max-width: 380px; }
.hlp-directory__panel p { margin: 0 0 14px; max-width: 900px; }
.hlp-directory__factor-list { display: grid; gap: 8px; grid-template-columns: repeat(2, 1fr); }
.hlp-directory__factor { background: var(–hlp-white); border: 1px solid var(–hlp-line); }
.hlp-directory__factor summary { align-items: center; cursor: pointer; display: flex; gap: 12px; justify-content: space-between; list-style: none; padding: 12px; }
.hlp-directory__factor-name { align-items: center; display: grid; font-size: .84rem; font-weight: 850; gap: 0 8px; grid-template-columns: 18px auto; }
.hlp-directory__factor-name i { color: var(–hlp-green); grid-row: 1 / 3; }
.hlp-directory__factor-name small { color: var(–hlp-muted); font-size: .66rem; font-weight: 600; }
.hlp-directory__factor summary strong { color: var(–hlp-green); font-size: 1rem; }
.hlp-directory__factor summary strong span { color: var(–hlp-muted); font-size: .66rem; font-weight: 600; }
.hlp-directory__factor-body { border-top: 1px solid var(–hlp-line); padding: 12px; }
.hlp-directory__factor-body p { font-size: .8rem; margin: 10px 0 0; }
.hlp-directory__score-track { background: #e8ede9; height: 6px; overflow: hidden; }
.hlp-directory__score-track span { background: var(–hlp-green); display: block; height: 100%; }
.hlp-directory__source-line { color: var(–hlp-muted); font-size: .75rem !important; overflow-wrap: anywhere; }
.hlp-directory__source-line span { color: var(–hlp-ink); font-weight: 800; }
.hlp-directory__score-note { color: var(–hlp-muted); font-size: .75rem; margin: 12px 0 0 !important; }
.hlp-directory__check-list, .hlp-directory__review-list, .hlp-directory__link-groups ul { list-style: none; margin: 0; padding: 0; }
.hlp-directory__check-list { display: grid; gap: 7px; grid-template-columns: repeat(2, 1fr); }
.hlp-directory__check-list li { align-items: flex-start; display: flex; gap: 9px; }
.hlp-directory__check-list i { color: var(–hlp-green); margin-top: 5px; }
.hlp-directory__link-groups { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.hlp-directory__link-groups h4 { color: var(–hlp-pine); font-size: .83rem; margin: 0 0 9px; }
.hlp-directory__link-groups li { align-items: flex-start; display: flex; font-size: .8rem; gap: 8px; margin: 7px 0; overflow-wrap: anywhere; }
.hlp-directory__link-groups li i { color: var(–hlp-sage); margin-top: 4px; width: 15px; }
.hlp-directory__review-list { display: grid; gap: 9px; grid-template-columns: repeat(3, 1fr); }
.hlp-directory__review-list li { background: var(–hlp-white); border: 1px solid var(–hlp-line); display: flex; font-size: .84rem; gap: 10px; padding: 13px; }
.hlp-directory__review-list i { color: var(–hlp-gold); margin-top: 4px; }
.hlp-directory__buying-guide, .hlp-directory__faq { padding-top: clamp(48px, 7vw, 82px); }
.hlp-directory__section-kicker { color: var(–hlp-green); font-size: .72rem; font-weight: 850; letter-spacing: .11em; margin: 0 0 6px; text-transform: uppercase; }
.hlp-directory__buying-guide h2, .hlp-directory__faq h2 { color: var(–hlp-pine); font-family: Georgia, “Times New Roman”, serif; font-size: clamp(1.8rem, 4vw, 2.7rem); letter-spacing: -.035em; line-height: 1.08; margin: 0 0 22px; }
.hlp-directory__guide-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); }
.hlp-directory__guide-grid article { border: 1px solid var(–hlp-line); padding: 20px; }
.hlp-directory__guide-grid i { color: var(–hlp-green); font-size: 1.25rem; }
.hlp-directory__guide-grid h3 { font-size: 1rem; margin: 12px 0 6px; }
.hlp-directory__guide-grid p { color: var(–hlp-muted); font-size: .86rem; margin: 0; }
.hlp-directory__faq-list { border-top: 1px solid var(–hlp-line); }
.hlp-directory__faq-list details { border-bottom: 1px solid var(–hlp-line); }
.hlp-directory__faq-list summary { color: var(–hlp-pine); cursor: pointer; font-weight: 820; list-style-position: inside; padding: 17px 0; }
.hlp-directory__faq-list details div { color: var(–hlp-muted); max-width: 900px; padding: 0 0 18px 22px; }
.hlp-directory__faq-list p { margin: 0; }
.hlp-directory__cta { align-items: center; background: var(–hlp-pine); color: var(–hlp-white); display: flex; gap: 24px; justify-content: space-between; margin-top: clamp(48px, 7vw, 82px); padding: clamp(24px, 5vw, 46px); }
.hlp-directory__cta h2 { color: var(–hlp-white); font-family: Georgia, “Times New Roman”, serif; font-size: clamp(1.55rem, 4vw, 2.45rem); line-height: 1.08; margin: 0 0 8px; }
.hlp-directory__cta p { color: #d5e1d7; margin: 0; max-width: 690px; }
.hlp-directory__cta-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 9px; }
.hlp-directory__cta-actions a { border: 1px solid #a9b9ae; color: var(–hlp-white); font-size: .86rem; font-weight: 800; padding: 10px 14px; text-decoration: none; }
.hlp-directory__cta-actions a:first-child { background: var(–hlp-white); border-color: var(–hlp-white); color: var(–hlp-pine); }
.hlp-directory__footer { color: var(–hlp-muted); font-size: .78rem; padding: 28px 0 46px; }
.hlp-directory__footer p { margin: 0; }
.hlp-directory__empty { border: 1px solid var(–hlp-line); color: var(–hlp-muted); padding: 26px; text-align: center; }
@media (max-width: 980px) {
.hlp-directory__toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hlp-directory__field–search { grid-column: 1 / -1; }
.hlp-directory__weight-grid, .hlp-directory__guide-grid { grid-template-columns: repeat(2, 1fr); }
.hlp-directory__link-groups { grid-template-columns: repeat(2, 1fr); }
.hlp-directory__review-list { grid-template-columns: 1fr; }
.hlp-directory__cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 680px) {
.hlp-directory__hero, .hlp-directory__intro, .hlp-directory__toolbar-wrap, .hlp-directory__results, .hlp-directory__buying-guide, .hlp-directory__faq, .hlp-directory__cta, .hlp-directory__footer { width: min(100% – 22px, 1120px); }
.hlp-directory__toolbar { grid-template-columns: 1fr; }
.hlp-directory__field–search { grid-column: auto; }
.hlp-directory__weekend, .hlp-directory__toolbar button { justify-content: center; width: 100%; }
.hlp-directory__card { padding: 20px 16px; }
.hlp-directory__card-head { gap: 12px; }
.hlp-directory__identity { align-items: start; gap: 8px 10px; grid-template-columns: 38px 68px minmax(0, 1fr); }
.hlp-directory__rank { height: 32px; width: 38px; }
.hlp-directory__logo-wrap { height: 54px; width: 68px; }
.hlp-directory__logo-wrap img { max-height: 40px; max-width: 54px; }
.hlp-directory__score strong { font-size: 1.55rem; }
.hlp-directory__score span { max-width: 52px; text-align: right; }
.hlp-directory__facts, .hlp-directory__factor-list, .hlp-directory__check-list, .hlp-directory__link-groups, .hlp-directory__weight-grid, .hlp-directory__guide-grid { grid-template-columns: 1fr; }
.hlp-directory__facts div:nth-child(even) { border-left: 0; padding-left: 0; }
.hlp-directory__facts div + div { border-top: 1px solid var(–hlp-line); }
.hlp-directory__panel-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
.hlp-directory__quick-actions a { width: 100%; }
.hlp-directory__toggles { justify-content: space-between; }
.hlp-directory__toggles button { flex: 1 1 42%; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
.hlp-directory *, .hlp-directory *::before, .hlp-directory *::after { scroll-behavior: auto !important; }
}

A practical, evidence-led shortlist for homeowners, strata councils and commercial property teams—built from current review profiles, operating details, service coverage and the quality of each company’s public information.

Best Painters in West Vancouver: Top 10 Ranked

.hemlock-directory{–hd-green:#115228;–hd-green-2:#1c481d;–hd-ink:#04200e;–hd-sage:#b0cab8;–hd-paper:#fcfaf4;–hd-wash:#dddcc8;–hd-gold:#c69b33;–hd-line:rgba(17,82,40,.18);–hd-muted:#66736a;–hd-soft:#f7f5ec;–hd-white:#fff;–hd-radius:22px;color:var(–hd-ink);font-family:inherit;margin:0!important;padding:0!important;background:transparent!important;line-height:1.55}
.hemlock-directory *{box-sizing:border-box}
.hemlock-directory a{color:var(–hd-green);text-decoration-thickness:1px;text-underline-offset:3px}
.hemlock-directory button,.hemlock-directory input,.hemlock-directory select{font:inherit}
.hemlock-directory .hd-hero{background:transparent!important;margin:0 0 18px;padding:0}
.hemlock-directory .hd-intro{max-width:880px;font-size:clamp(17px,2vw,20px);color:#2d3a31;margin:0 0 18px}
.hemlock-directory .hd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}
.hemlock-directory .hd-kpi{border:1px solid var(–hd-line);border-radius:18px;background:rgba(252,250,244,.72);padding:12px 14px}
.hemlock-directory .hd-kpi strong{display:block;font-size:22px;line-height:1;color:var(–hd-green)}
.hemlock-directory .hd-kpi span{font-size:13px;color:var(–hd-muted)}
.hemlock-directory .hd-method{border:1px solid var(–hd-line);border-radius:18px;background:rgba(252,250,244,.68);margin:14px 0 18px;overflow:hidden}
.hemlock-directory .hd-method summary{cursor:pointer;padding:13px 14px;display:flex;align-items:center;gap:10px;font-weight:800;color:var(–hd-green)}
.hemlock-directory .hd-method summary::-webkit-details-marker{display:none}
.hemlock-directory .hd-method summary:after{content:”+”;margin-left:auto;color:var(–hd-gold);font-size:20px;line-height:1}
.hemlock-directory .hd-method[open] summary:after{content:”–”}
.hemlock-directory .hd-method-body{padding:0 14px 14px;color:#2f3b33}
.hemlock-directory .hd-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.hemlock-directory .hd-method-grid div{border:1px solid rgba(17,82,40,.12);border-radius:14px;padding:10px;background:#fff}
.hemlock-directory .hd-tools{border:1px solid var(–hd-line);border-radius:20px;background:var(–hd-paper);padding:10px;margin:16px 0 18px}
.hemlock-directory .hd-filter-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;align-items:end}
.hemlock-directory .hd-field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(–hd-muted);font-weight:800;margin:0 0 4px}
.hemlock-directory .hd-input-wrap{position:relative}
.hemlock-directory .hd-ico{width:16px;height:16px;display:inline-block;vertical-align:-.16em;flex:0 0 auto;color:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.hemlock-directory .hd-input-wrap .hd-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(–hd-green);width:15px;height:15px}
.hemlock-directory .hd-field input,.hemlock-directory .hd-field select{width:100%;height:38px;border:1px solid rgba(17,82,40,.22);border-radius:14px;background:#fff;color:var(–hd-ink);padding:0 10px;outline:none}
.hemlock-directory .hd-field input{padding-left:32px}
.hemlock-directory .hd-field input:focus,.hemlock-directory .hd-field select:focus{border-color:var(–hd-green)}
.hemlock-directory .hd-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.hemlock-directory .hd-chipbtn,.hemlock-directory .hd-icon-toggle{border:0;background:transparent;color:var(–hd-green);display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 9px;cursor:pointer;font-size:13px;font-weight:800}
.hemlock-directory .hd-chipbtn:hover,.hemlock-directory .hd-icon-toggle:hover,.hemlock-directory .hd-chipbtn[aria-pressed=”true”],.hemlock-directory .hd-icon-toggle[aria-expanded=”true”]{background:rgba(17,82,40,.08)}
.hemlock-directory .hd-count{font-size:13px;color:var(–hd-muted);margin:8px 0 0}
.hemlock-directory .hd-list{display:grid;grid-template-columns:1fr;gap:12px;margin:0;padding:0;list-style:none}
.hemlock-directory .hd-card{border:1px solid var(–hd-line);border-radius:24px;background:linear-gradient(180deg,rgba(252,250,244,.92),rgba(255,255,255,.96));padding:14px;overflow:hidden}
.hemlock-directory .hd-card:nth-child(even){background:linear-gradient(180deg,rgba(245,244,235,.92),rgba(255,255,255,.97))}
.hemlock-directory .hd-card.is-featured{border-color:rgba(17,82,40,.34);background:linear-gradient(180deg,#fcfaf4,#fff)}
.hemlock-directory .hd-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.hemlock-directory .hd-logo-title{display:flex;align-items:center;gap:10px;min-width:0}
.hemlock-directory .hd-logo{width:46px;height:46px;border-radius:14px;object-fit:contain;background:#fff;border:1px solid rgba(17,82,40,.14);padding:6px;flex:0 0 auto}
.hemlock-directory .hd-title-group{min-width:0}
.hemlock-directory .hd-rank{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:900;color:var(–hd-green);margin:0;padding-bottom:0}
.hemlock-directory .hd-title-group h2{font-size:clamp(20px,2.4vw,28px);line-height:1.1;margin:0!important;color:var(–hd-ink)}
.hemlock-directory .hd-score{border:1px solid rgba(17,82,40,.18);border-radius:16px;padding:8px 10px;min-width:92px;text-align:center;background:#fff}
.hemlock-directory .hd-score strong{display:block;font-size:24px;line-height:1;color:var(–hd-green)}
.hemlock-directory .hd-score span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(–hd-muted);font-weight:800}
.hemlock-directory .hd-visit{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(–hd-green);background:var(–hd-green);color:#fff!important;text-decoration:none!important;border-radius:999px;padding:9px 12px;font-weight:900;white-space:nowrap}
.hemlock-directory .hd-card p{margin:10px 0;color:#2d3a31}
.hemlock-directory .hd-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.hemlock-directory .hd-tag{font-size:12px;color:var(–hd-green);background:rgba(176,202,184,.26);border:1px solid rgba(17,82,40,.12);padding:4px 8px;border-radius:999px;font-weight:800}
.hemlock-directory .hd-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.hemlock-directory .hd-meta div{border:1px solid rgba(17,82,40,.12);background:rgba(255,255,255,.76);border-radius:16px;padding:9px}
.hemlock-directory .hd-meta b{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(–hd-muted);margin-bottom:3px}
.hemlock-directory .hd-meta span{font-size:13px;color:#26362b}
.hemlock-directory .hd-card-actions{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid rgba(17,82,40,.12);padding-top:9px;margin-top:8px}
.hemlock-directory .hd-icon-toggle .hd-ico,.hemlock-directory .hd-chipbtn .hd-ico{color:var(–hd-gold)}
.hemlock-directory .hd-tag .hd-ico{width:13px;height:13px;color:var(–hd-green)}
.hemlock-directory .hd-source-links .hd-ico{width:13px;height:13px}
.hemlock-directory .hd-panel{display:none;border:1px solid rgba(17,82,40,.12);background:#fff;border-radius:18px;padding:12px;margin-top:10px}
.hemlock-directory .hd-panel.is-open{display:block}
.hemlock-directory .hd-panel h3{font-size:18px;margin:0 0 8px;color:var(–hd-green)}
.hemlock-directory .hd-panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hemlock-directory .hd-mini{border:1px solid rgba(17,82,40,.12);border-radius:14px;padding:10px;background:#fcfaf4}
.hemlock-directory .hd-mini b{display:block;color:var(–hd-green);font-size:13px;margin-bottom:4px}
.hemlock-directory .hd-factor{border:1px solid rgba(17,82,40,.12);border-radius:16px;padding:10px;margin:8px 0;background:#fff}
.hemlock-directory .hd-factor-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.hemlock-directory .hd-factor-title{font-weight:900;color:var(–hd-ink)}
.hemlock-directory .hd-bar{height:8px;background:rgba(17,82,40,.12);border-radius:999px;overflow:hidden;margin-top:7px}
.hemlock-directory .hd-bar span{display:block;height:100%;background:var(–hd-green);border-radius:999px}
.hemlock-directory .hd-why{border:0;background:transparent;color:var(–hd-green);font-weight:900;cursor:pointer;padding:4px 0;margin-top:7px;font-size:13px}
.hemlock-directory .hd-factor-more{display:none;margin-top:8px;color:#344237;background:var(–hd-paper);border-radius:12px;padding:9px}
.hemlock-directory .hd-factor-more.is-open{display:block}
.hemlock-directory .hd-source-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.hemlock-directory .hd-source-links a{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(17,82,40,.18);border-radius:999px;padding:5px 8px;background:#fff;font-size:12px;font-weight:800;text-decoration:none}
.hemlock-directory .hd-source-links a:hover{text-decoration:underline}
.hemlock-directory .hd-review-list{display:grid;grid-template-columns:1fr;gap:8px}
.hemlock-directory .hd-review-card{border:1px solid rgba(17,82,40,.12);border-radius:14px;background:#fcfaf4;padding:10px}
.hemlock-directory .hd-empty{display:none;border:1px solid rgba(17,82,40,.12);border-radius:18px;background:#fcfaf4;padding:16px;margin-top:12px;color:var(–hd-muted)}
.hemlock-directory .hd-market{border:1px solid var(–hd-line);border-radius:22px;background:var(–hd-paper);padding:14px;margin-top:16px}
.hemlock-directory .hd-market h2{font-size:24px;margin:0 0 8px}
.hemlock-directory .hd-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hemlock-directory .hd-market-grid div{border:1px solid rgba(17,82,40,.12);border-radius:16px;background:#fff;padding:12px}
.hemlock-directory .hd-updated{font-size:12px;color:var(–hd-muted);margin-top:12px}
@media(max-width:920px){.hemlock-directory .hd-filter-row{grid-template-columns:1fr 1fr}.hemlock-directory .hd-kpis,.hemlock-directory .hd-meta,.hemlock-directory .hd-market-grid,.hemlock-directory .hd-method-grid{grid-template-columns:1fr 1fr}.hemlock-directory .hd-panel-grid{grid-template-columns:1fr}}
@media(max-width:640px){.hemlock-directory .hd-card-top{grid-template-columns:1fr}.hemlock-directory .hd-score{text-align:left;min-width:0}.hemlock-directory .hd-visit{width:100%}.hemlock-directory .hd-filter-row,.hemlock-directory .hd-kpis,.hemlock-directory .hd-meta,.hemlock-directory .hd-market-grid,.hemlock-directory .hd-method-grid{grid-template-columns:1fr}.hemlock-directory .hd-tools{padding:9px}}

This directory is meant to help homeowners compare local West Vancouver painting companies by fit, services, reputation, pricing, warranty, reviews, and online presence.

Top 10 Best Painters in North Vancouver, BC (Updated 2026)

North Vancouver painter comparison

Rank
Company
Score/100
Local fit/20
Reputation/25
Service/20
Trust/20
Pricing/10

1
Hemlock Painting
96
19
24
18
20
8

2
CertaPro Painters of North Vancouver
91
20
22
19
17
8

3
Pro Works Painting North Vancouver
90
20
22
18
19
9

4
Mountainside Painting
87
20
20
17
19
7

5
Altenburg Painting
85
20
19
16
19
7

6
Budget & Save Painters North Vancouver
84
20
22
16
15
9

7
England Painting
83
20
20
17
19
7

8
All Painting Ltd.

The Hemlock Painting team is properly equipped with everything needed for cleaning up and a quality inspection.

Top 10 Best Painters in Vancouver, BC (Updated 2026)

.hemlock-directory{–hd-green:#115228;–hd-green-dark:#04200E;–hd-gold:#C69B33;–hd-sage:#B0CAB8;–hd-cream:#FCFAF4;–hd-cream-2:#F7F3E8;–hd-paper:#DDDCC8;–hd-text:#253327;–hd-muted:#68766B;–hd-border:rgba(17,82,40,0.18);–hd-border-strong:rgba(17,82,40,0.34);–hd-white:#FFFFFE;color:var(–hd-text);background:transparent;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,”Segoe UI”,sans-serif;line-height:1.55}.hemlock-directory *{box-sizing:border-box}.hemlock-directory a{color:var(–hd-green);text-decoration-thickness:1.5px;text-underline-offset:3px}.hemlock-directory a:hover,.hemlock-directory a:focus-visible{color:var(–hd-green-dark)}.hemlock-directory button,.hemlock-directory input,.hemlock-directory select{font:inherit}.hemlock-directory:focus-visible{outline:2px solid var(–hd-gold);outline-offset:3px;border-radius:8px}.hemlock-directory .hd-hero{background:transparent;margin:0 0 18px;padding:0}.hemlock-directory .hd-kicker{margin:0 0 8px;color:var(–hd-green);font-size:0.83rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase}.hemlock-directory h1{margin:0 0 10px;color:var(–hd-green-dark);font-size:clamp(2rem,5vw,3.75rem);line-height:1.03;letter-spacing:-0.045em}.hemlock-directory .hd-lede{max-width:920px;margin:0 0 14px;color:var(–hd-text);font-size:clamp(1.02rem,2vw,1.2rem)}.hemlock-directory .hd-intro-details{margin:12px 0 0;border:1px solid var(–hd-border);border-radius:14px;background:transparent}.hemlock-directory .hd-intro-details summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:10px 12px;color:var(–hd-green);font-weight:750}.hemlock-directory .hd-intro-details summary::-webkit-details-marker{display:none}.hemlock-directory .hd-intro-details summary::after{content:”+”;margin-left:auto;font-size:1.25rem;line-height:1}.hemlock-directory .hd-intro-details[open] summary::after{content:”–”}.hemlock-directory .hd-intro-body{padding:0 14px 14px;color:var(–hd-muted)}.hemlock-directory .hd-intro-body ul{margin:10px 0 0;padding-left:20px}.hemlock-directory .hd-toolbar{margin:20px 0 18px;padding:8px;border:1px solid var(–hd-border);border-radius:16px;background:var(–hd-white);display:grid;grid-template-columns:minmax(220px,1.4fr)minmax(140px,0.8fr)minmax(140px,0.8fr)minmax(145px,0.8fr)auto;gap:8px;align-items:center}.hemlock-directory .hd-toolbar input,.hemlock-directory .hd-toolbar select{width:100%;min-height:38px;border:1px solid var(–hd-border);border-radius:999px;background:#fff;padding:7px 12px;color:var(–hd-text)}.hemlock-directory .hd-toolbar input::placeholder{color:#7d897f}.hemlock-directory .hd-search-wrap{position:relative}.hemlock-directory .hd-search-wrap i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(–hd-muted);font-size:.9rem}.hemlock-directory .hd-search-wrap input{padding-left:34px}.hemlock-directory .hd-reset{min-height:38px;border:0;border-radius:999px;background:var(–hd-green);color:white;padding:7px 13px;cursor:pointer;font-weight:750}.hemlock-directory .hd-utility-row{margin:-6px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.hemlock-directory .hd-small-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.hemlock-directory .hd-check{display:inline-flex;align-items:center;gap:7px;color:var(–hd-muted);font-size:.92rem;cursor:pointer}.hemlock-directory .hd-check input{accent-color:var(–hd-green)}.hemlock-directory .hd-results-count{color:var(–hd-muted);font-size:.92rem}.hemlock-directory .hd-results{display:grid;grid-template-columns:1fr;gap:14px}.hemlock-directory .hd-card{border:1px solid var(–hd-border);border-radius:22px;background:var(–hd-cream);padding:clamp(15px,2.6vw,22px);box-shadow:none}.hemlock-directory .hd-card:nth-child(even){background:var(–hd-cream-2)}.hemlock-directory .hd-card[data-featured=”true”]{border-color:rgba(198,155,51,0.65);background:linear-gradient(0deg,rgba(198,155,51,0.08),rgba(198,155,51,0.08)),var(–hd-cream)}.hemlock-directory .hd-card[hidden]{display:none !important}.hemlock-directory .hd-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.hemlock-directory .hd-title-group{display:flex;align-items:center;gap:12px;min-width:0}.hemlock-directory .hd-logo{width:56px;height:56px;object-fit:contain;flex:0 0 56px;border-radius:14px;background:#fff;padding:8px;border:1px solid rgba(17,82,40,.12)}.hemlock-directory .hd-logo-fallback{width:56px;height:56px;flex:0 0 56px;display:none;place-items:center;border-radius:14px;background:var(–hd-green);color:white;font-weight:900}.hemlock-directory .hd-rank{margin:0 0 3px;color:var(–hd-green);font-size:.78rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.hemlock-directory .hd-rank span{color:var(–hd-muted);font-weight:700;letter-spacing:0;text-transform:none}.hemlock-directory h2{margin:0;color:var(–hd-green-dark);font-size:clamp(1.22rem,2.5vw,1.7rem);line-height:1.15;letter-spacing:-0.02em}.hemlock-directory .hd-score-badge{min-width:78px;min-height:58px;border-radius:17px;display:grid;place-items:center;align-content:center;border:1px solid var(–hd-border-strong);background:rgba(255,255,254,.68);color:var(–hd-green-dark)}.hemlock-directory .hd-score-badge strong{display:block;font-size:1.55rem;line-height:1}.hemlock-directory .hd-score-badge span{color:var(–hd-muted);font-size:.78rem;font-weight:750}.hemlock-directory .hd-description{margin:0 0 12px;color:var(–hd-text)}.hemlock-directory .hd-meta-line{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 10px;color:var(–hd-muted);font-size:.94rem}.hemlock-directory .hd-meta-line span{display:inline-flex;align-items:center;gap:7px}.hemlock-directory .hd-meta-line i{color:var(–hd-green)}.hemlock-directory .hd-best-for{margin:0 0 12px;color:var(–hd-text)}.hemlock-directory .hd-best-for strong{color:var(–hd-green-dark)}.hemlock-directory .hd-pills{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.hemlock-directory .hd-pills span{border:1px solid rgba(17,82,40,.14);background:rgba(255,255,254,.66);border-radius:999px;padding:5px 9px;color:var(–hd-green-dark);font-size:.82rem;font-weight:720}.hemlock-directory .hd-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border-top:1px solid var(–hd-border);padding-top:12px}.hemlock-directory .hd-visit{display:inline-flex;align-items:center;gap:8px;min-height:36px;border-radius:999px;background:var(–hd-green);color:#fff;padding:7px 12px;font-weight:800;text-decoration:none}.hemlock-directory .hd-visit:hover,.hemlock-directory .hd-visit:focus-visible{color:#fff;background:var(–hd-green-dark)}.hemlock-directory .hd-icon-toggle{min-height:36px;display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(–hd-green);padding:7px 8px;cursor:pointer;border-radius:999px;font-weight:800}.hemlock-directory .hd-icon-toggle:hover,.hemlock-directory .hd-icon-toggle[aria-expanded=”true”]{background:rgba(17,82,40,.08);color:var(–hd-green-dark)}.hemlock-directory .hd-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(–hd-border)}.hemlock-directory .hd-panel-heading h3{margin:0 0 4px;color:var(–hd-green-dark);font-size:1.05rem}.hemlock-directory .hd-panel-heading p{margin:0 0 10px;color:var(–hd-muted);font-size:.95rem}.hemlock-directory .hd-factor-list,.hemlock-directory .hd-info-list{display:grid;gap:8px}.hemlock-directory .hd-factor{border:1px solid var(–hd-border);border-radius:14px;background:rgba(255,255,254,.64);overflow:hidden}.hemlock-directory .hd-factor summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(–hd-green-dark);font-weight:830}.hemlock-directory .hd-factor summary::-webkit-details-marker{display:none}.hemlock-directory .hd-factor summary::after{content:”+”;color:var(–hd-green);margin-left:4px;font-size:1.15rem}.hemlock-directory .hd-factor[open] summary::after{content:”–”}.hemlock-directory .hd-factor summary strong{margin-left:auto;color:var(–hd-green);white-space:nowrap}.hemlock-directory .hd-factor-body{padding:0 12px 12px;color:var(–hd-muted)}.hemlock-directory .hd-factor-body p{margin:0 0 10px}.hemlock-directory .hd-source-list{display:flex;flex-wrap:wrap;gap:6px}.hemlock-directory .hd-source{display:inline-flex;align-items:center;min-height:27px;border-radius:999px;border:1px solid rgba(17,82,40,.18);padding:4px 8px;background:rgba(255,255,254,.78);color:var(–hd-green);font-size:.81rem;font-weight:760;text-decoration:none}.hemlock-directory .hd-source:hover{background:rgba(176,202,184,.32)}.hemlock-directory .hd-info-row{border:1px solid var(–hd-border);border-radius:14px;background:rgba(255,255,254,.64);padding:11px 12px;display:grid;grid-template-columns:minmax(0,1fr)auto;gap:10px;align-items:start}.hemlock-directory .hd-info-row strong{color:var(–hd-green-dark)}.hemlock-directory .hd-info-row p{margin:3px 0 0;color:var(–hd-muted)}.hemlock-directory .hd-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.hemlock-directory .hd-profile-grid a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(–hd-border);border-radius:999px;background:rgba(255,255,254,.68);color:var(–hd-green);padding:8px 10px;font-weight:780;text-decoration:none}.hemlock-directory .hd-profile-grid a:hover{background:rgba(176,202,184,.32);color:var(–hd-green-dark)}.hemlock-directory .hd-empty{border:1px dashed var(–hd-border-strong);border-radius:18px;padding:18px;color:var(–hd-muted);background:transparent}@media(max-width:980px){.hemlock-directory .hd-toolbar{grid-template-columns:1fr 1fr}.hemlock-directory .hd-search-wrap{grid-column:1 / -1}}@media(max-width:680px){.hemlock-directory .hd-toolbar{grid-template-columns:1fr}.hemlock-directory .hd-card-top{align-items:flex-start}.hemlock-directory .hd-score-badge{min-width:64px;min-height:52px}.hemlock-directory .hd-info-row{grid-template-columns:1fr}.hemlock-directory .hd-card-actions{gap:6px}.hemlock-directory .hd-icon-toggle span{font-size:.9rem}}.hemlock-directory p.hd-rank{padding-bottom:0;margin-bottom:0!important}.hemlock-directory .hd-title-group h2{margin-top:0!important}

Rank
Company
Score/100
Reviews/25
Local fit/20
Process/18
Assurance/15
Pricing/10
Digital/10

1
Hemlock Painting
98
25
20
18
15
10
10

2
WOW 1 DAY PAINTING Vancouver
96
25
19
18
15
9
10

3
ProRise Painting
94
24
19
17
15
9
10

4
CertaPro Painters of Vancouver
92
23
18
17
14
8
10

5
Even Better Painting
91
24
19
17
14
8
9

6
Pro Crew Painting Ltd.

exterior contractor

Cheap Painters vs Quality Painters in Vancouver

.hemlock-article {
–hp-green: #115228;
–hp-green-dark: #04200E;
–hp-green-soft: #EAF2ED;
–hp-cream: #FCFAF4;
–hp-paper: #F7F2E8;
–hp-sage: #B0CAB8;
–hp-sage-line: #6C8474;
–hp-gold: #C69B33;
–hp-gold-soft: #F2E6C2;
–hp-text: #233328;
–hp-muted: #5D6D62;
–hp-border: rgba(17, 82, 40, 0.18);
–hp-shadow: 0 16px 38px rgba(4, 32, 14, 0.11);
color: var(–hp-text);
font-family: system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
line-height: 1.72;
max-width: 880px;
margin: 0 auto;
}
.hemlock-article * {
box-sizing: border-box;
}
.hemlock-article a {
color: var(–hp-green);
font-weight: 700;
text-decoration-thickness: 2px;
text-underline-offset: 4px;
}
.hemlock-article a:hover,
.hemlock-article a:focus-visible {
color: var(–hp-green-dark);
}
.hemlock-article :focus-visible {
outline: 3px solid rgba(198, 155, 51, 0.62);
outline-offset: 4px;
border-radius: 8px;
}
.hemlock-article .hp-hero {
padding: 18px 0 30px;
border-bottom: 1px solid var(–hp-border);
}
.hemlock-article .hp-kicker {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(–hp-green);
font-size: 0.86rem;
font-weight: 800;
letter-spacing: 0.08em;
margin: 0 0 14px;
text-transform: uppercase;
}
.hemlock-article .hp-kicker svg,
.hemlock-article .hp-icon svg,
.hemlock-article .hp-pill svg,
.hemlock-article .hp-btn svg,
.hemlock-article .hp-svg-icon {
width: 20px;
height: 20px;
stroke-width: 2.2;
flex: 0 0 auto;
vertical-align: -0.18em;
}
.hemlock-article .hp-btn svg {
color: currentColor;
}
.hemlock-article h1,
.hemlock-article h2,
.hemlock-article h3,
.hemlock-article h4 {
color: var(–hp-green-dark);
font-family: Georgia, “Times New Roman”, serif;
letter-spacing: -0.02em;
line-height: 1.12;
}
.hemlock-article h1 {
font-size: clamp(2.35rem, 7vw, 4.75rem);
margin: 0 0 18px;
}
.hemlock-article h2 {
font-size: clamp(1.85rem, 4.5vw, 3rem);
margin: 58px 0 18px;
}
.hemlock-article h3 {
font-size: clamp(1.32rem, 3vw, 1.85rem);
margin: 34px 0 12px;
}
.hemlock-article h4 {
font-size: 1.1rem;
margin: 0 0 8px;
}
.hemlock-article p {
margin: 0 0 18px;
}
.hemlock-article .hp-deck {
color: var(–hp-muted);
font-size: clamp(1.09rem, 2vw, 1.26rem);
max-width: 760px;
}
.hemlock-article .hp-meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 20px;
}
.hemlock-article .hp-pill {
align-items: center;
border: 1px solid var(–hp-border);
border-radius: 999px;
color: var(–hp-green-dark);
display: inline-flex;
font-size: 0.88rem;
font-weight: 750;
gap: 8px;
padding: 8px 12px;
}
.hemlock-article .hp-lead-card,
.hemlock-article .hp-card,
.hemlock-article .hp-callout,
.hemlock-article .hp-quote-check,
.hemlock-article .hp-faq details,
.hemlock-article .hp-reference-box {
border: 1px solid var(–hp-border);
border-radius: 22px;
box-shadow: var(–hp-shadow);
}
.hemlock-article .hp-lead-card {
background: var(–hp-cream);
margin: 34px 0;
padding: clamp(20px, 4vw, 34px);
}
.hemlock-article .hp-lead-card h2 {
font-size: clamp(1.45rem, 3vw, 2rem);
margin: 0 0 12px;
}
.hemlock-article .hp-grid,
.hemlock-article .hp-risk-grid,
.hemlock-article .hp-mini-grid {
display: grid;
gap: 18px;
}
.hemlock-article .hp-grid,
.hemlock-article .hp-risk-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hemlock-article .hp-mini-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
margin: 26px 0;
}
.hemlock-article .hp-card {
background: #fff;
padding: 22px;
}
.hemlock-article .hp-card–green {
background: var(–hp-green-soft);
}
.hemlock-article .hp-card–gold {
background: var(–hp-gold-soft);
}
.hemlock-article .hp-icon {
align-items: center;
background: #fff;
border: 1px solid var(–hp-border);
border-radius: 16px;
color: var(–hp-green);
display: inline-flex;
height: 44px;
justify-content: center;
margin-bottom: 14px;
width: 44px;
}
.hemlock-article .hp-card ul,
.hemlock-article .hp-checklist,
.hemlock-article .hp-numbered {
margin: 14px 0 0;
padding-left: 1.25rem;
}
.hemlock-article li {
margin: 8px 0;
}
.hemlock-article .hp-table-wrap {
border: 1px solid var(–hp-border);
border-radius: 22px;
box-shadow: var(–hp-shadow);
margin: 28px 0;
overflow-x: auto;
}
.hemlock-article table {
border-collapse: collapse;
min-width: 760px;
width: 100%;
}
.hemlock-article th,
.hemlock-article td {
border-bottom: 1px solid var(–hp-border);
padding: 16px;
text-align: left;
vertical-align: top;
}
.hemlock-article th {
background: var(–hp-green-dark);
color: #fff!important;
font-size: 0.9rem;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hemlock-article tbody tr:nth-child(even) td {
background: rgba(252, 250, 244, 0.78);
}
.hemlock-article .hp-ref {
font-size: 0.68em;
font-weight: 800;
line-height: 0;
margin-left: 2px;
vertical-align: super;
}
.hemlock-article .hp-ref a {
color: var(–hp-green);
text-decoration: none;
}
.hemlock-article .hp-callout {
align-items: flex-start;
background: var(–hp-green-soft);
display: flex;
gap: 16px;
margin: 28px 0;
padding: 22px;
}
.hemlock-article .hp-callout strong {
color: var(–hp-green-dark);
}
.hemlock-article .hp-image-block {
margin: 36px 0;
}
.hemlock-article .hp-image-block img {
border-radius: 24px;
display: block;
height: auto;
width: 100%;
}
.hemlock-article .hp-image-block figcaption {
color: var(–hp-muted);
font-size: 0.92rem;
margin-top: 10px;
}
.hemlock-article .hp-cta {
background-image: linear-gradient(120deg, rgba(4, 32, 14, 0.94), rgba(17, 82, 40, 0.77)), var(–hp-cta-image);
background-position: center;
background-size: cover;
border-radius: 28px;
box-shadow: 0 22px 52px rgba(4, 32, 14, 0.23);
color: #fff;
margin: 44px 0;
overflow: hidden;
padding: clamp(24px, 5vw, 42px);
position: relative;
}
.hemlock-article .hp-cta * {
position: relative;
z-index: 1;
}
.hemlock-article .hp-cta::after {
background-image: radial-gradient(rgba(255, 255, 255, 0.26) 1px, transparent 1px);
background-size: 16px 16px;
content: “”;
inset: 0;
opacity: 0.23;
position: absolute;
}
.hemlock-article .hp-cta__logo {
display: block;
filter: brightness(0) invert(1);
height: auto;
margin-bottom: 24px;
max-width: 210px;
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3,
.hemlock-article .hp-cta p {
color: #fff;
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3 {
margin-top: 0;
}
.hemlock-article .hp-cta p {
max-width: 650px;
}
.hemlock-article .hp-buttons {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 22px;
}
.hemlock-article .hp-btn {
align-items: center;
border-radius: 999px;
display: inline-flex;
font-weight: 850;
gap: 9px;
justify-content: center;
min-height: 48px;
padding: 12px 20px;
text-decoration: none !important;
transition: transform 0.2s ease, background 0.2s ease;
}
.hemlock-article .hp-btn:hover,
.hemlock-article .hp-btn:focus-visible {
transform: translateY(-2px);
}
.hemlock-article .hp-btn–light {
background: #fff !important;
color: var(–hp-green-dark) !important;
}
.hemlock-article .hp-btn–gold {
background: var(–hp-gold) !important;
color: #fff !important;
}
.hemlock-article .hp-btn–outline {
background: transparent !important;
border: 1px solid rgba(255, 255, 255, 0.8);
color: #fff !important;
}
.hemlock-article .hp-quote-check {
background: var(–hp-cream);
margin: 34px 0;
padding: clamp(20px, 4vw, 32px);
}
.hemlock-article .hp-quote-check ol {
counter-reset: hp-step;
list-style: none;
margin: 0;
padding: 0;
}
.hemlock-article .hp-quote-check li {
border-top: 1px solid var(–hp-border);
counter-increment: hp-step;
display: grid;
gap: 6px;
grid-template-columns: 42px 1fr;
margin: 0;
padding: 18px 0;
}
.hemlock-article .hp-quote-check li:first-child {
border-top: 0;
}
.hemlock-article .hp-quote-check li::before {
align-items: center;
background: var(–hp-green);
border-radius: 50%;
color: #fff;
content: counter(hp-step);
display: inline-flex;
font-weight: 900;
height: 32px;
justify-content: center;
margin-top: 2px;
width: 32px;
}
.hemlock-article .hp-scorecard {
border: 1px solid var(–hp-border);
border-radius: 22px;
margin: 30px 0;
overflow: hidden;
}
.hemlock-article .hp-score-row {
display: grid;
grid-template-columns: 1.2fr 0.8fr 1fr;
}
.hemlock-article .hp-score-row div {
border-bottom: 1px solid var(–hp-border);
padding: 15px;
}
.hemlock-article .hp-score-row:last-child div {
border-bottom: 0;
}
.hemlock-article .hp-score-row:nth-child(odd) div {
background: rgba(252, 250, 244, 0.75);
}
.hemlock-article .hp-score-row strong {
color: var(–hp-green-dark);
}
.hemlock-article .hp-faq details {
background: #fff;
margin: 14px 0;
padding: 0;
}
.hemlock-article .hp-faq summary {
color: var(–hp-green-dark);
cursor: pointer;
font-weight: 850;
list-style: none;
padding: 20px 22px;
}
.hemlock-article .hp-faq summary::-webkit-details-marker {
display: none;
}
.hemlock-article .hp-faq details p {
border-top: 1px solid var(–hp-border);
margin: 0;
padding: 18px 22px 22px;
}
.hemlock-article .hp-references {
border-top: 1px solid var(–hp-border);
margin-top: 58px;
padding-top: 30px;
}
.hemlock-article .hp-references ol {
padding-left: 1.25rem;
}
.hemlock-article .hp-references li {
color: var(–hp-muted);
font-size: 0.92rem;
overflow-wrap: anywhere;
}
.hemlock-article .hp-seo-note {
color: var(–hp-muted);
font-size: 0.95rem;
}
@media (max-width: 760px) {
.hemlock-article {
padding: 18px;
}
.hemlock-article .hp-grid,
.hemlock-article .hp-risk-grid,
.hemlock-article .hp-mini-grid,
.hemlock-article .hp-score-row {
grid-template-columns: 1fr;
}
.hemlock-article .hp-score-row div {
border-bottom: 0;
padding: 14px 16px;
}
.hemlock-article .hp-score-row {
border-bottom: 1px solid var(–hp-border);
}
.hemlock-article .hp-score-row:last-child {
border-bottom: 0;
}
.hemlock-article .hp-callout {
display: block;
}
.hemlock-article .hp-icon {
margin-bottom: 12px;
}
}

A low painting quote can look smart at first.

A can of white paint is poured into a paint rolling pan

How to Compare Painting Quotes in Vancouver

.hemlock-article,
.hemlock-article * {
box-sizing: border-box;
}
.hemlock-article {
–hp-green: #115228;
–hp-green-dark: #04200e;
–hp-green-alt: #1c481d;
–hp-sage: #b0cab8;
–hp-gold: #c69b33;
–hp-gold-light: #d2ab4a;
–hp-paper: #fcfaf4;
–hp-wash: #dddcc8;
–hp-text: #243228;
–hp-muted: #5e6b61;
–hp-border: rgba(17, 82, 40, 0.18);
–hp-white: #fffffe;
–hp-error: #714810;
–hp-shadow: 0 20px 50px rgba(4, 32, 14, 0.12);
–hp-shadow-soft: 0 10px 30px rgba(4, 32, 14, 0.08);
–hp-radius: 24px;
–hp-radius-sm: 14px;
–hp-content: 880px;
color: var(–hp-text);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 17px;
line-height: 1.76;
}
.hemlock-article a {
color: var(–hp-green);
text-decoration-thickness: 2px;
text-underline-offset: 4px;
font-weight: 650;
}
.hemlock-article a:hover,
.hemlock-article a:focus-visible {
color: var(–hp-green-dark);
}
.hemlock-article :focus-visible {
outline: 3px solid rgba(198, 155, 51, 0.55);
outline-offset: 4px;
border-radius: 8px;
}
.hemlock-article__container {
width: min(100%, var(–hp-content));
margin: 0 auto;
padding: 0 20px;
}
.hemlock-article__eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 10px 0 18px;
color: var(–hp-green);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.hemlock-article h1,
.hemlock-article h2,
.hemlock-article h3,
.hemlock-article h4 {
color: var(–hp-green-dark);
font-family: Georgia, “Times New Roman”, serif;
line-height: 1.08;
letter-spacing: -0.025em;
margin: 0;
}
.hemlock-article h1 {
max-width: 840px;
font-size: clamp(2.45rem, 6vw, 5.1rem);
margin-bottom: 22px;
}
.hemlock-article h2 {
font-size: clamp(2rem, 4vw, 3.25rem);
margin-top: 72px;
margin-bottom: 18px;
}
.hemlock-article h3 {
font-size: clamp(1.45rem, 2.7vw, 2rem);
margin-top: 36px;
margin-bottom: 12px;
}
.hemlock-article h4 {
font-size: 1.1rem;
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
letter-spacing: 0;
margin-top: 28px;
margin-bottom: 10px;
}
.hemlock-article p {
margin: 0 0 18px;
}
.hemlock-article .lead {
max-width: 790px;
color: #34463a;
font-size: clamp(1.1rem, 2vw, 1.34rem);
line-height: 1.65;
}
.hemlock-article sup {
vertical-align: super;
font-size: 0.68em;
line-height: 0;
margin-left: 2px;
}
.hemlock-article sup a {
color: var(–hp-green);
font-weight: 800;
text-decoration: none;
}
.hemlock-article__hero {
padding: 64px 0 34px;
}
.hemlock-article__hero-grid {
display: grid;
gap: 30px;
}
.hemlock-article__meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 28px;
}
.hemlock-article__pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 13px;
border: 1px solid var(–hp-border);
border-radius: 999px;
color: var(–hp-green-dark);
background: rgba(252, 250, 244, 0.6);
font-size: 0.88rem;
font-weight: 700;
}
.hemlock-article__summary {
margin: 42px 0 0;
padding: 24px;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius);
box-shadow: var(–hp-shadow-soft);
}
.hemlock-article__summary-title {
display: flex;
align-items: center;
gap: 10px;
color: var(–hp-green-dark);
font-weight: 850;
margin-bottom: 12px;
}
.hemlock-article__summary p:last-child {
margin-bottom: 0;
}
.hemlock-article__section-intro {
color: var(–hp-muted);
font-size: 1.08rem;
max-width: 790px;
}
.hemlock-article ul,
.hemlock-article ol {
margin: 0 0 22px;
padding-left: 1.25rem;
}
.hemlock-article li {
margin: 9px 0;
}
.hemlock-article li::marker {
color: var(–hp-gold);
font-weight: 900;
}
.hemlock-article__card {
padding: 24px;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius);
box-shadow: var(–hp-shadow-soft);
}
.hemlock-article__card-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin: 28px 0;
}
.hemlock-article__mini-card {
padding: 20px;
border: 1px solid var(–hp-border);
border-radius: 18px;
background: rgba(252, 250, 244, 0.55);
}
.hemlock-article__mini-card svg,
.hemlock-article__summary svg,
.hemlock-article__pill svg,
.hemlock-article__eyebrow svg {
width: 18px;
height: 18px;
stroke-width: 2.2;
}
.hemlock-article__mini-card h3 {
margin-top: 8px;
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
font-size: 1.02rem;
line-height: 1.25;
letter-spacing: 0;
}
.hemlock-article__mini-card p {
color: var(–hp-muted);
font-size: 0.95rem;
margin: 8px 0 0;
}
.hemlock-article__callout {
margin: 34px 0;
padding: 24px;
border: 1px solid rgba(198, 155, 51, 0.35);
border-left: 7px solid var(–hp-gold);
border-radius: var(–hp-radius);
background: linear-gradient(180deg, rgba(252, 250, 244, 0.85), rgba(255, 255, 255, 0.92));
}
.hemlock-article__callout strong {
color: var(–hp-green-dark);
}
.hemlock-article__table-wrap {
width: 100%;
margin: 30px 0;
overflow-x: auto;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-sm);
box-shadow: var(–hp-shadow-soft);
}
.hemlock-article table {
width: 100%;
min-width: 780px;
border-collapse: collapse;
background: var(–hp-white);
}
.hemlock-article th,
.hemlock-article td {
padding: 15px 16px;
border-bottom: 1px solid var(–hp-border);
text-align: left;
vertical-align: top;
}
.hemlock-article th {
background: var(–hp-green);
color: var(–hp-white)!important;
font-size: 0.86rem;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hemlock-article tbody tr:nth-child(even) td {
background: rgba(176, 202, 184, 0.14);
}
.hemlock-article__figure {
margin: 42px 0;
}
.hemlock-article__figure img {
display: block;
width: 100%;
height: auto;
border-radius: var(–hp-radius);
box-shadow: var(–hp-shadow);
}
.hemlock-article__figure figcaption {
margin-top: 12px;
color: var(–hp-muted);
font-size: 0.92rem;
}
.hemlock-article__quote-box {
margin: 34px 0;
padding: 26px;
border-radius: var(–hp-radius);
background: var(–hp-green-dark);
color: var(–hp-white);
position: relative;
overflow: hidden;
}
.hemlock-article__quote-box::after {
content: “”;
position: absolute;
inset: auto -40px -70px auto;
width: 180px;
height: 180px;
border-radius: 44% 56% 48% 52%;
background: rgba(198, 155, 51, 0.24);
}
.hemlock-article__quote-box h3,
.hemlock-article__quote-box p,
.hemlock-article__quote-box li {
color: var(–hp-white);
position: relative;
z-index: 1;
}
.hemlock-article__quote-box h3 {
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
font-size: 1.15rem;
letter-spacing: 0;
}
.hemlock-article__copy {
padding: 22px;
border-radius: var(–hp-radius-sm);
background: rgba(252, 250, 244, 0.84);
border: 1px dashed rgba(17, 82, 40, 0.35);
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 0.92rem;
line-height: 1.65;
white-space: pre-wrap;
}
.hemlock-article__cta {
position: relative;
margin: 64px 0;
min-height: 390px;
display: grid;
align-items: end;
overflow: hidden;
border-radius: 30px;
box-shadow: var(–hp-shadow);
background-position: center;
background-size: cover;
}
.hemlock-article__cta::before {
content: “”;
position: absolute;
inset: 0;
background:
linear-gradient(180deg, rgba(4, 32, 14, 0.18), rgba(4, 32, 14, 0.91)),
radial-gradient(circle at top left, rgba(198, 155, 51, 0.3), transparent 38%);
}
.hemlock-article__cta-inner {
position: relative;
z-index: 1;
padding: clamp(24px, 5vw, 44px);
color: var(–hp-white);
}
.hemlock-article__cta-logo {
width: 210px;
max-width: 70%;
height: auto;
margin-bottom: 24px;
filter: brightness(0) invert(1);
}
.hemlock-article__cta h2,
.hemlock-article__cta p {
color: var(–hp-white);
}
.hemlock-article__cta h2 {
max-width: 720px;
margin: 0 0 14px;
font-size: clamp(2rem, 4.8vw, 4rem);
}
.hemlock-article__cta p {
max-width: 640px;
font-size: 1.08rem;
}
.hemlock-article__buttons {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 24px;
}
.hemlock-article__button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-height: 48px;
padding: 13px 22px;
border-radius: 999px;
font-weight: 850;
text-decoration: none;
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.hemlock-article__button:hover,
.hemlock-article__button:focus-visible {
transform: translateY(-2px);
text-decoration: none;
}
.hemlock-article__button–gold {
background: var(–hp-gold);
color: var(–hp-green-dark) !important;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.22);
}
.hemlock-article__button–light {
background: rgba(255, 255, 255, 0.14);
border: 1px solid rgba(255, 255, 255, 0.45);
color: var(–hp-white) !important;
backdrop-filter: blur(6px);
}
.hemlock-article__score {
display: grid;
gap: 14px;
margin: 28px 0;
}
.hemlock-article__score-item {
display: grid;
grid-template-columns: 160px 1fr;
gap: 18px;
padding: 18px;
border: 1px solid var(–hp-border);
border-radius: 18px;
background: rgba(252, 250, 244, 0.54);
}
.hemlock-article__score-item strong {
color: var(–hp-green-dark);
}
.hemlock-article__faq {
display: grid;
gap: 16px;
margin-top: 24px;
}
.hemlock-article__faq details {
border: 1px solid var(–hp-border);
border-radius: 18px;
padding: 18px 20px;
background: rgba(252, 250, 244, 0.5);
}
.hemlock-article__faq summary {
cursor: pointer;
color: var(–hp-green-dark);
font-weight: 850;
}
.hemlock-article__faq details p {
margin-top: 14px;
margin-bottom: 0;
}
.hemlock-article__refs {
margin: 72px 0 24px;
padding-top: 28px;
border-top: 1px solid var(–hp-border);
}
.hemlock-article__refs ol {
padding-left: 1.2rem;
}
.hemlock-article__refs li {
font-size: 0.94rem;
color: var(–hp-muted);
}
.hemlock-article__refs a {
word-break: break-word;
}
@media (max-width: 800px) {
.hemlock-article {
font-size: 16px;
}
.hemlock-article__hero {
padding-top: 38px;
}
.hemlock-article__card-grid {
grid-template-columns: 1fr;
}
.hemlock-article__score-item {
grid-template-columns: 1fr;
}
.hemlock-article__cta {
min-height: 430px;
border-radius: 22px;
}
}

The best painting quote is not always the lowest number.

Hemlock Painting Team

Painter Hiring Checklist for Vancouver: Questions to Ask (Printable)

.hemlock-article {
–hemlock-green: #115228;
–hemlock-green-dark: #04200E;
–hemlock-evergreen: #1C481D;
–hemlock-sage: #B0CAB8;
–hemlock-gold: #C69B33;
–hemlock-gold-light: #D2AB4A;
–hemlock-paper: #FCFAF4;
–hemlock-paper-wash: #DDDCC8;
–hemlock-text: #203328;
–hemlock-muted: #627267;
–hemlock-border: rgba(17, 82, 40, 0.18);
–hemlock-white: #FFFFFF;
–hemlock-radius: 22px;
–hemlock-shadow: 0 18px 48px rgba(4, 32, 14, 0.10);
–hemlock-max: 900px;
color: var(–hemlock-text);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 17px;
line-height: 1.72;
}
.hemlock-article *,
.hemlock-article *::before,
.hemlock-article *::after {
box-sizing: border-box;
}
.hemlock-article a {
color: var(–hemlock-green);
font-weight: 700;
text-decoration-thickness: 2px;
text-underline-offset: 3px;
}
.hemlock-article a:hover,
.hemlock-article a:focus-visible {
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-container {
width: min(100%, var(–hemlock-max));
margin: 0 auto;
padding: 0 20px;
}
.hemlock-article .hp-hero {
padding: 36px 0 22px;
border-bottom: 1px solid var(–hemlock-border);
}
.hemlock-article .hp-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 0 0 18px;
color: var(–hemlock-green);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.hemlock-article h1,
.hemlock-article h2,
.hemlock-article h3,
.hemlock-article h4 {
color: var(–hemlock-green-dark);
font-family: Georgia, “Times New Roman”, serif;
letter-spacing: -0.025em;
line-height: 1.12;
}
.hemlock-article h1 {
max-width: 850px;
margin: 0 0 18px;
font-size: clamp(40px, 6vw, 70px);
}
.hemlock-article h2 {
margin: 58px 0 16px;
font-size: clamp(30px, 4vw, 42px);
}
.hemlock-article h3 {
margin: 34px 0 12px;
font-size: clamp(23px, 3vw, 28px);
}
.hemlock-article h4 {
margin: 24px 0 8px;
font-size: 20px;
}
.hemlock-article p {
margin: 0 0 18px;
}
.hemlock-article .hp-deck {
max-width: 790px;
margin: 0 0 20px;
color: var(–hemlock-muted);
font-size: clamp(19px, 2.5vw, 23px);
line-height: 1.55;
}
.hemlock-article .hp-meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 22px;
}
.hemlock-article .hp-pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border: 1px solid var(–hemlock-border);
border-radius: 999px;
color: var(–hemlock-green-dark);
font-size: 14px;
font-weight: 750;
}
.hemlock-article .hp-summary {
margin: 28px 0 36px;
padding: 24px;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: var(–hemlock-paper);
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-summary strong {
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-summary ul,
.hemlock-article .hp-checklist ul,
.hemlock-article .hp-card ul {
margin: 12px 0 0;
padding-left: 0;
list-style: none;
}
.hemlock-article .hp-summary li,
.hemlock-article .hp-checklist li,
.hemlock-article .hp-card li {
position: relative;
margin: 10px 0;
padding-left: 30px;
}
.hemlock-article .hp-summary li::before,
.hemlock-article .hp-checklist li::before,
.hemlock-article .hp-card li::before {
content: “”;
position: absolute;
top: 0.62em;
left: 0;
width: 15px;
height: 15px;
border-radius: 6px;
background: var(–hemlock-gold);
box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.52);
}
.hemlock-article .hp-proof-row {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
margin: 26px 0;
}
.hemlock-article .hp-proof {
display: flex;
align-items: flex-start;
gap: 13px;
padding: 16px 18px;
border: 1px solid var(–hemlock-border);
border-radius: 18px;
background: #FFFFFF;
}
.hemlock-article .hp-proof svg {
flex: 0 0 22px;
margin-top: 3px;
color: var(–hemlock-green);
}
.hemlock-article .hp-cta {
position: relative;
overflow: hidden;
margin: 42px 0;
padding: 30px;
border-radius: 28px;
color: var(–hemlock-white);
background-image:
linear-gradient(90deg, rgba(4, 32, 14, 0.92), rgba(17, 82, 40, 0.78)),
var(–hp-bg);
background-position: center;
background-size: cover;
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-cta::after {
content: “”;
position: absolute;
inset: 0;
opacity: 0.2;
pointer-events: none;
background-image:
radial-gradient(circle at 20% 20%, rgba(255,255,255,.8) 0 1px, transparent 1px),
radial-gradient(circle at 70% 60%, rgba(255,255,255,.8) 0 1px, transparent 1px);
background-size: 34px 34px, 47px 47px;
}
.hemlock-article .hp-cta-inner {
position: relative;
z-index: 1;
max-width: 690px;
}
.hemlock-article .hp-cta-logo {
display: block;
width: 210px;
max-width: 75%;
height: auto;
margin-bottom: 22px;
filter: brightness(0) invert(1);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3,
.hemlock-article .hp-cta p {
color: var(–hemlock-white);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3 {
margin-top: 0;
}
.hemlock-article .hp-cta p {
max-width: 640px;
font-size: 18px;
}
.hemlock-article .hp-button-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 22px;
}
.hemlock-article .hp-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-height: 48px;
padding: 13px 22px;
border-radius: 999px;
border: 2px solid transparent;
font-weight: 850;
text-decoration: none;
transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.hemlock-article .hp-button:hover,
.hemlock-article .hp-button:focus-visible {
transform: translateY(-2px);
text-decoration: none;
}
.hemlock-article .hp-button-primary {
background: var(–hemlock-gold);
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-button-primary:hover,
.hemlock-article .hp-button-primary:focus-visible {
background: var(–hemlock-gold-light);
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-button-secondary {
border-color: rgba(255,255,255,0.72);
color: var(–hemlock-white);
background: rgba(255,255,255,0.08);
}
.hemlock-article .hp-button-secondary:hover,
.hemlock-article .hp-button-secondary:focus-visible {
color: var(–hemlock-white);
background: rgba(255,255,255,0.16);
}
.hemlock-article .hp-card,
.hemlock-article .hp-checklist,
.hemlock-article .hp-warning,
.hemlock-article .hp-copybox {
margin: 24px 0;
padding: 24px;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: #FFFFFF;
box-shadow: 0 10px 34px rgba(4, 32, 14, 0.06);
}
.hemlock-article .hp-warning {
border-left: 7px solid var(–hemlock-gold);
background: linear-gradient(0deg, rgba(198, 155, 51, 0.08), rgba(198, 155, 51, 0.08)), #FFFFFF;
}
.hemlock-article .hp-copybox {
background: var(–hemlock-paper);
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 15px;
line-height: 1.7;
white-space: pre-wrap;
}
.hemlock-article .hp-table-wrap {
width: 100%;
overflow-x: auto;
margin: 26px 0;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: #FFFFFF;
box-shadow: 0 10px 34px rgba(4, 32, 14, 0.06);
}
.hemlock-article table {
width: 100%;
min-width: 760px;
border-collapse: collapse;
}
.hemlock-article th,
.hemlock-article td {
padding: 15px 16px;
border-bottom: 1px solid var(–hemlock-border);
text-align: left;
vertical-align: top;
}
.hemlock-article th {
color: #FFFFFF!important;
background: var(–hemlock-green);
font-size: 14px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hemlock-article tr:nth-child(even) td {
background: rgba(176, 202, 184, 0.18);
}
.hemlock-article .hp-figure {
margin: 36px 0;
}
.hemlock-article .hp-figure img {
display: block;
width: 100%;
height: auto;
border-radius: 26px;
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-figure figcaption {
margin-top: 10px;
color: var(–hemlock-muted);
font-size: 14px;
}
.hemlock-article .hp-step {
display: grid;
grid-template-columns: 48px 1fr;
gap: 16px;
margin: 22px 0;
}
.hemlock-article .hp-step-number {
display: grid;
place-items: center;
width: 48px;
height: 48px;
border-radius: 16px;
background: var(–hemlock-green);
color: #FFFFFF;
font-weight: 900;
}
.hemlock-article .hp-faq {
margin-top: 28px;
}
.hemlock-article .hp-faq details {
border-top: 1px solid var(–hemlock-border);
padding: 18px 0;
}
.hemlock-article .hp-faq details:last-child {
border-bottom: 1px solid var(–hemlock-border);
}
.hemlock-article .hp-faq summary {
cursor: pointer;
color: var(–hemlock-green-dark);
font-weight: 850;
font-size: 18px;
}
.hemlock-article .hp-references {
margin: 58px 0 20px;
padding-top: 26px;
border-top: 1px solid var(–hemlock-border);
font-size: 14px;
color: var(–hemlock-muted);
}
.hemlock-article .hp-references ol {
padding-left: 22px;
}
.hemlock-article .hp-references li {
margin: 10px 0;
}
.hemlock-article sup {
vertical-align: super;
line-height: 0;
font-size: 0.72em;
}
.hemlock-article sup a {
font-weight: 800;
text-decoration: none;
}
@media (min-width: 760px) {
.hemlock-article .hp-proof-row {
grid-template-columns: repeat(3, 1fr);
}
.hemlock-article .hp-cta {
padding: 42px;
}
}
@media (max-width: 560px) {
.hemlock-article {
font-size: 16px;
}
.hemlock-article .hp-container {
padding: 0 16px;
}
.hemlock-article .hp-step {
grid-template-columns: 1fr;
}
.hemlock-article .hp-cta,
.hemlock-article .hp-card,
.hemlock-article .hp-checklist,
.hemlock-article .hp-warning,
.hemlock-article .hp-summary {
padding: 20px;
}
}

A good painting contract should make the finished result easier to predict.

interior paint

Painter Contract Essentials in Vancouver: Scope, Prep, and Warranty

.hemlock-article {
–hemlock-green: #115228;
–hemlock-green-dark: #04200E;
–hemlock-evergreen: #1C481D;
–hemlock-sage: #B0CAB8;
–hemlock-gold: #C69B33;
–hemlock-gold-light: #D2AB4A;
–hemlock-paper: #FCFAF4;
–hemlock-paper-wash: #DDDCC8;
–hemlock-text: #203328;
–hemlock-muted: #627267;
–hemlock-border: rgba(17, 82, 40, 0.18);
–hemlock-white: #FFFFFF;
–hemlock-radius: 22px;
–hemlock-shadow: 0 18px 48px rgba(4, 32, 14, 0.10);
–hemlock-max: 900px;
color: var(–hemlock-text);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 17px;
line-height: 1.72;
}
.hemlock-article *,
.hemlock-article *::before,
.hemlock-article *::after {
box-sizing: border-box;
}
.hemlock-article a {
color: var(–hemlock-green);
font-weight: 700;
text-decoration-thickness: 2px;
text-underline-offset: 3px;
}
.hemlock-article a:hover,
.hemlock-article a:focus-visible {
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-container {
width: min(100%, var(–hemlock-max));
margin: 0 auto;
padding: 0 20px;
}
.hemlock-article .hp-hero {
padding: 36px 0 22px;
border-bottom: 1px solid var(–hemlock-border);
}
.hemlock-article .hp-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 0 0 18px;
color: var(–hemlock-green);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.hemlock-article h1,
.hemlock-article h2,
.hemlock-article h3,
.hemlock-article h4 {
color: var(–hemlock-green-dark);
font-family: Georgia, “Times New Roman”, serif;
letter-spacing: -0.025em;
line-height: 1.12;
}
.hemlock-article h1 {
max-width: 850px;
margin: 0 0 18px;
font-size: clamp(40px, 6vw, 70px);
}
.hemlock-article h2 {
margin: 58px 0 16px;
font-size: clamp(30px, 4vw, 42px);
}
.hemlock-article h3 {
margin: 34px 0 12px;
font-size: clamp(23px, 3vw, 28px);
}
.hemlock-article h4 {
margin: 24px 0 8px;
font-size: 20px;
}
.hemlock-article p {
margin: 0 0 18px;
}
.hemlock-article .hp-deck {
max-width: 790px;
margin: 0 0 20px;
color: var(–hemlock-muted);
font-size: clamp(19px, 2.5vw, 23px);
line-height: 1.55;
}
.hemlock-article .hp-meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 22px;
}
.hemlock-article .hp-pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border: 1px solid var(–hemlock-border);
border-radius: 999px;
color: var(–hemlock-green-dark);
font-size: 14px;
font-weight: 750;
}
.hemlock-article .hp-summary {
margin: 28px 0 36px;
padding: 24px;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: var(–hemlock-paper);
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-summary strong {
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-summary ul,
.hemlock-article .hp-checklist ul,
.hemlock-article .hp-card ul {
margin: 12px 0 0;
padding-left: 0;
list-style: none;
}
.hemlock-article .hp-summary li,
.hemlock-article .hp-checklist li,
.hemlock-article .hp-card li {
position: relative;
margin: 10px 0;
padding-left: 30px;
}
.hemlock-article .hp-summary li::before,
.hemlock-article .hp-checklist li::before,
.hemlock-article .hp-card li::before {
content: “”;
position: absolute;
top: 0.62em;
left: 0;
width: 15px;
height: 15px;
border-radius: 6px;
background: var(–hemlock-gold);
box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.52);
}
.hemlock-article .hp-proof-row {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
margin: 26px 0;
}
.hemlock-article .hp-proof {
display: flex;
align-items: flex-start;
gap: 13px;
padding: 16px 18px;
border: 1px solid var(–hemlock-border);
border-radius: 18px;
background: #FFFFFF;
}
.hemlock-article .hp-proof svg {
flex: 0 0 22px;
margin-top: 3px;
color: var(–hemlock-green);
}
.hemlock-article .hp-cta {
position: relative;
overflow: hidden;
margin: 42px 0;
padding: 30px;
border-radius: 28px;
color: var(–hemlock-white);
background-image:
linear-gradient(90deg, rgba(4, 32, 14, 0.92), rgba(17, 82, 40, 0.78)),
var(–hp-bg);
background-position: center;
background-size: cover;
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-cta::after {
content: “”;
position: absolute;
inset: 0;
opacity: 0.2;
pointer-events: none;
background-image:
radial-gradient(circle at 20% 20%, rgba(255,255,255,.8) 0 1px, transparent 1px),
radial-gradient(circle at 70% 60%, rgba(255,255,255,.8) 0 1px, transparent 1px);
background-size: 34px 34px, 47px 47px;
}
.hemlock-article .hp-cta-inner {
position: relative;
z-index: 1;
max-width: 690px;
}
.hemlock-article .hp-cta-logo {
display: block;
width: 210px;
max-width: 75%;
height: auto;
margin-bottom: 22px;
filter: brightness(0) invert(1);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3,
.hemlock-article .hp-cta p {
color: var(–hemlock-white);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3 {
margin-top: 0;
}
.hemlock-article .hp-cta p {
max-width: 640px;
font-size: 18px;
}
.hemlock-article .hp-button-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 22px;
}
.hemlock-article .hp-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-height: 48px;
padding: 13px 22px;
border-radius: 999px;
border: 2px solid transparent;
font-weight: 850;
text-decoration: none;
transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.hemlock-article .hp-button:hover,
.hemlock-article .hp-button:focus-visible {
transform: translateY(-2px);
text-decoration: none;
}
.hemlock-article .hp-button-primary {
background: var(–hemlock-gold);
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-button-primary:hover,
.hemlock-article .hp-button-primary:focus-visible {
background: var(–hemlock-gold-light);
color: var(–hemlock-green-dark);
}
.hemlock-article .hp-button-secondary {
border-color: rgba(255,255,255,0.72);
color: var(–hemlock-white);
background: rgba(255,255,255,0.08);
}
.hemlock-article .hp-button-secondary:hover,
.hemlock-article .hp-button-secondary:focus-visible {
color: var(–hemlock-white);
background: rgba(255,255,255,0.16);
}
.hemlock-article .hp-card,
.hemlock-article .hp-checklist,
.hemlock-article .hp-warning,
.hemlock-article .hp-copybox {
margin: 24px 0;
padding: 24px;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: #FFFFFF;
box-shadow: 0 10px 34px rgba(4, 32, 14, 0.06);
}
.hemlock-article .hp-warning {
border-left: 7px solid var(–hemlock-gold);
background: linear-gradient(0deg, rgba(198, 155, 51, 0.08), rgba(198, 155, 51, 0.08)), #FFFFFF;
}
.hemlock-article .hp-copybox {
background: var(–hemlock-paper);
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 15px;
line-height: 1.7;
white-space: pre-wrap;
}
.hemlock-article .hp-table-wrap {
width: 100%;
overflow-x: auto;
margin: 26px 0;
border: 1px solid var(–hemlock-border);
border-radius: var(–hemlock-radius);
background: #FFFFFF;
box-shadow: 0 10px 34px rgba(4, 32, 14, 0.06);
}
.hemlock-article table {
width: 100%;
min-width: 760px;
border-collapse: collapse;
}
.hemlock-article th,
.hemlock-article td {
padding: 15px 16px;
border-bottom: 1px solid var(–hemlock-border);
text-align: left;
vertical-align: top;
}
.hemlock-article th {
color: #FFFFFF!important;
background: var(–hemlock-green);
font-size: 14px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.hemlock-article tr:nth-child(even) td {
background: rgba(176, 202, 184, 0.18);
}
.hemlock-article .hp-figure {
margin: 36px 0;
}
.hemlock-article .hp-figure img {
display: block;
width: 100%;
height: auto;
border-radius: 26px;
box-shadow: var(–hemlock-shadow);
}
.hemlock-article .hp-figure figcaption {
margin-top: 10px;
color: var(–hemlock-muted);
font-size: 14px;
}
.hemlock-article .hp-step {
display: grid;
grid-template-columns: 48px 1fr;
gap: 16px;
margin: 22px 0;
}
.hemlock-article .hp-step-number {
display: grid;
place-items: center;
width: 48px;
height: 48px;
border-radius: 16px;
background: var(–hemlock-green);
color: #FFFFFF;
font-weight: 900;
}
.hemlock-article .hp-faq {
margin-top: 28px;
}
.hemlock-article .hp-faq details {
border-top: 1px solid var(–hemlock-border);
padding: 18px 0;
}
.hemlock-article .hp-faq details:last-child {
border-bottom: 1px solid var(–hemlock-border);
}
.hemlock-article .hp-faq summary {
cursor: pointer;
color: var(–hemlock-green-dark);
font-weight: 850;
font-size: 18px;
}
.hemlock-article .hp-references {
margin: 58px 0 20px;
padding-top: 26px;
border-top: 1px solid var(–hemlock-border);
font-size: 14px;
color: var(–hemlock-muted);
}
.hemlock-article .hp-references ol {
padding-left: 22px;
}
.hemlock-article .hp-references li {
margin: 10px 0;
}
.hemlock-article sup {
vertical-align: super;
line-height: 0;
font-size: 0.72em;
}
.hemlock-article sup a {
font-weight: 800;
text-decoration: none;
}
@media (min-width: 760px) {
.hemlock-article .hp-proof-row {
grid-template-columns: repeat(3, 1fr);
}
.hemlock-article .hp-cta {
padding: 42px;
}
}
@media (max-width: 560px) {
.hemlock-article {
font-size: 16px;
}
.hemlock-article .hp-container {
padding: 0 16px;
}
.hemlock-article .hp-step {
grid-template-columns: 1fr;
}
.hemlock-article .hp-cta,
.hemlock-article .hp-card,
.hemlock-article .hp-checklist,
.hemlock-article .hp-warning,
.hemlock-article .hp-summary {
padding: 20px;
}
}

A good painting contract should make the finished result easier to predict.

For interior and exterior painting services in North Vancouver, call Hemlock Painting

How to Choose a Painter in Vancouver: Questions, Red Flags, and Scorecard

.hemlock-article {
–hp-green: #115228;
–hp-green-dark: #04200E;
–hp-green-alt: #1C481D;
–hp-sage: #B0CAB8;
–hp-gold: #C69B33;
–hp-gold-light: #D2AB4A;
–hp-paper: #DDDCC8;
–hp-cream: #FCFAF4;
–hp-white: #FFFFFF;
–hp-text: #17301f;
–hp-muted: #5e7065;
–hp-border: rgba(17, 82, 40, 0.18);
–hp-shadow: 0 18px 50px rgba(4, 32, 14, 0.10);
–hp-radius-sm: 14px;
–hp-radius-md: 22px;
–hp-radius-lg: 32px;
–hp-max: 920px;
color: var(–hp-text);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
font-size: 17px;
line-height: 1.72;
}
.hemlock-article *,
.hemlock-article *::before,
.hemlock-article *::after {
box-sizing: border-box;
}
.hemlock-article .hp-wrap {
width: min(var(–hp-max), calc(100% – 36px));
margin: 0 auto;
}
.hemlock-article a {
color: var(–hp-green);
font-weight: 700;
text-decoration: underline;
text-decoration-thickness: 1.5px;
text-underline-offset: 4px;
}
.hemlock-article a:hover,
.hemlock-article a:focus-visible {
color: var(–hp-green-dark);
}
.hemlock-article :focus-visible {
outline: 3px solid rgba(198, 155, 51, 0.75);
outline-offset: 4px;
border-radius: 10px;
}
.hemlock-article .hp-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 0 0 18px;
color: var(–hp-green);
font-size: 0.82rem;
font-weight: 850;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.hemlock-article .hp-eyebrow i,
.hemlock-article .hp-chip i,
.hemlock-article .hp-card-title i,
.hemlock-article .hp-mini-title i,
.hemlock-article .hp-list-icon i {
width: 1.05em;
height: 1.05em;
stroke-width: 2;
}
.hemlock-article h1,
.hemlock-article h2,
.hemlock-article h3,
.hemlock-article h4 {
color: var(–hp-green-dark);
line-height: 1.12;
letter-spacing: -0.035em;
margin: 0;
}
.hemlock-article h1 {
max-width: 880px;
font-family: Georgia, “Times New Roman”, serif;
font-size: clamp(2.45rem, 6.4vw, 5.25rem);
font-weight: 700;
}
.hemlock-article h2 {
margin-top: clamp(52px, 8vw, 78px);
font-family: Georgia, “Times New Roman”, serif;
font-size: clamp(2rem, 4vw, 3.2rem);
}
.hemlock-article h3 {
margin-top: 30px;
font-size: clamp(1.35rem, 2.5vw, 1.9rem);
}
.hemlock-article h4 {
margin-top: 24px;
font-size: 1.08rem;
letter-spacing: -0.015em;
}
.hemlock-article p {
margin: 16px 0 0;
}
.hemlock-article .hp-lede {
max-width: 760px;
margin-top: 22px;
color: var(–hp-muted);
font-size: clamp(1.08rem, 2vw, 1.28rem);
}
.hemlock-article .hp-meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 24px;
}
.hemlock-article .hp-chip {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 13px;
border: 1px solid var(–hp-border);
border-radius: 999px;
color: var(–hp-green-dark);
font-size: 0.88rem;
font-weight: 800;
}
.hemlock-article .hp-quick-answer {
margin: 34px 0 0;
padding: clamp(22px, 4vw, 34px);
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-lg);
background: linear-gradient(180deg, rgba(252, 250, 244, 0.96), rgba(255, 255, 255, 0.98));
box-shadow: var(–hp-shadow);
}
.hemlock-article .hp-quick-answer strong {
color: var(–hp-green-dark);
}
.hemlock-article .hp-grid {
display: grid;
gap: 18px;
margin-top: 22px;
}
.hemlock-article .hp-grid-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hemlock-article .hp-grid-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hemlock-article .hp-card {
padding: 22px;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-md);
background: var(–hp-white);
}
.hemlock-article .hp-card.hp-tint {
background: var(–hp-cream);
}
.hemlock-article .hp-card-title,
.hemlock-article .hp-mini-title {
display: flex;
align-items: center;
gap: 10px;
color: var(–hp-green-dark);
font-weight: 900;
}
.hemlock-article .hp-card p,
.hemlock-article .hp-card ul {
margin-top: 10px;
}
.hemlock-article .hp-list {
display: grid;
gap: 12px;
margin: 20px 0 0;
padding: 0;
list-style: none;
}
.hemlock-article .hp-list li {
display: grid;
grid-template-columns: 28px 1fr;
gap: 12px;
align-items: start;
}
.hemlock-article .hp-list-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: 999px;
background: rgba(17, 82, 40, 0.10);
color: var(–hp-green);
}
.hemlock-article .hp-callout {
margin-top: 28px;
padding: 22px;
border-left: 6px solid var(–hp-green);
border-radius: var(–hp-radius-md);
background: var(–hp-cream);
}
.hemlock-article .hp-warning {
border-left-color: #8a3d1c;
background: #fff8f1;
}
.hemlock-article .hp-gold {
border-left-color: var(–hp-gold);
}
.hemlock-article .hp-table-wrap {
width: 100%;
margin-top: 24px;
overflow-x: auto;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-md);
background: var(–hp-white);
box-shadow: 0 8px 26px rgba(4, 32, 14, 0.06);
}
.hemlock-article table {
width: 100%;
min-width: 760px;
border-collapse: collapse;
font-size: 0.94rem;
line-height: 1.45;
}
.hemlock-article th,
.hemlock-article td {
padding: 14px 16px;
border-bottom: 1px solid rgba(17, 82, 40, 0.13);
vertical-align: top;
text-align: left;
}
.hemlock-article th {
background: var(–hp-green-dark);
color: var(–hp-white)!important;
font-weight: 500;
}
.hemlock-article tbody tr:nth-child(even) td {
background: rgba(252, 250, 244, 0.72);
}
.hemlock-article .hp-score {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 58px;
padding: 5px 9px;
border-radius: 999px;
background: rgba(198, 155, 51, 0.15);
color: var(–hp-green-dark);
font-weight: 900;
}
.hemlock-article .hp-cta {
position: relative;
isolation: isolate;
margin: clamp(38px, 6vw, 62px) 0;
padding: clamp(24px, 5vw, 44px);
overflow: hidden;
border-radius: var(–hp-radius-lg);
color: var(–hp-white);
box-shadow: 0 22px 68px rgba(4, 32, 14, 0.26);
background-size: cover;
background-position: center;
}
.hemlock-article .hp-cta::before {
content: “”;
position: absolute;
inset: 0;
z-index: -2;
background: rgba(4, 32, 14, 0.68);
}
.hemlock-article .hp-cta::after {
content: “”;
position: absolute;
inset: 0;
z-index: -1;
background:
radial-gradient(circle at top right, rgba(198, 155, 51, 0.34), transparent 42%),
linear-gradient(90deg, rgba(4, 32, 14, 0.90), rgba(4, 32, 14, 0.42));
}
.hemlock-article .hp-cta–crew {
background-image: url(“https://www.hemlockpainting.com/wp-content/uploads/2020/10/hemlock_1152-2-copy-scaled.jpg”);
}
.hemlock-article .hp-cta–prep {
background-image: url(“https://www.hemlockpainting.com/wp-content/uploads/2020/10/hemlock_1328-copy-scaled.jpg”);
}
.hemlock-article .hp-cta–exterior {
background-image: url(“https://www.hemlockpainting.com/wp-content/uploads/2023/06/Hemlock-Painting-Exterior-Painting-Process.png”);
}
.hemlock-article .hp-cta-logo {
display: block;
width: min(250px, 58vw);
height: auto;
margin-bottom: 22px;
filter: brightness(0) invert(1);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3,
.hemlock-article .hp-cta p {
color: var(–hp-white);
}
.hemlock-article .hp-cta h2,
.hemlock-article .hp-cta h3 {
max-width: 660px;
margin-top: 0;
}
.hemlock-article .hp-cta p {
max-width: 670px;
color: rgba(255, 255, 255, 0.90);
}
.hemlock-article .hp-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 24px;
}
.hemlock-article .hp-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 48px;
padding: 13px 20px;
border: 2px solid transparent;
border-radius: 999px;
font-weight: 900;
text-decoration: none;
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.hemlock-article .hp-btn:hover,
.hemlock-article .hp-btn:focus-visible {
transform: translateY(-2px);
text-decoration: none;
}
.hemlock-article .hp-btn-primary {
background: var(–hp-white);
color: var(–hp-green-dark) !important;
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.20);
}
.hemlock-article .hp-btn-secondary {
border-color: rgba(255, 255, 255, 0.60);
color: var(–hp-white) !important;
background: rgba(255, 255, 255, 0.08);
}
.hemlock-article .hp-btn-green {
background: var(–hp-green);
color: var(–hp-white) !important;
}
.hemlock-article .hp-figure {
margin: 34px 0 0;
}
.hemlock-article .hp-figure img {
display: block;
width: 100%;
height: auto;
border-radius: var(–hp-radius-lg);
box-shadow: var(–hp-shadow);
}
.hemlock-article .hp-figure figcaption {
margin-top: 10px;
color: var(–hp-muted);
font-size: 0.92rem;
}
.hemlock-article .hp-step {
display: grid;
grid-template-columns: 54px 1fr;
gap: 16px;
margin-top: 22px;
padding: 22px;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-md);
background: var(–hp-white);
}
.hemlock-article .hp-step-num {
display: flex;
align-items: center;
justify-content: center;
width: 54px;
height: 54px;
border-radius: 18px;
background: var(–hp-green);
color: var(–hp-white);
font-weight: 950;
}
.hemlock-article .hp-redflag {
border-color: rgba(138, 61, 28, 0.25);
background: #fff8f1;
}
.hemlock-article .hp-good {
border-color: rgba(17, 82, 40, 0.25);
background: #f6fbf7;
}
.hemlock-article .hp-note {
color: var(–hp-muted);
font-size: 0.94rem;
}
.hemlock-article .hp-ref {
white-space: nowrap;
font-size: 0.72em;
vertical-align: super;
line-height: 0;
}
.hemlock-article .hp-ref a {
font-weight: 850;
text-decoration: none;
}
.hemlock-article .hp-kicker {
margin-top: 10px;
color: var(–hp-green);
font-weight: 900;
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 0.8rem;
}
.hemlock-article .hp-faq details {
margin-top: 14px;
padding: 18px 20px;
border: 1px solid var(–hp-border);
border-radius: var(–hp-radius-md);
background: var(–hp-white);
}
.hemlock-article .hp-faq summary {
cursor: pointer;
color: var(–hp-green-dark);
font-weight: 900;
}
.hemlock-article .hp-references {
margin: 52px 0 0;
padding-top: 28px;
border-top: 1px solid var(–hp-border);
color: var(–hp-muted);
font-size: 0.92rem;
}
.hemlock-article .hp-references ol {
padding-left: 22px;
}
.hemlock-article .hp-references li {
margin-top: 10px;
}
.hemlock-article .hp-print-box {
margin-top: 24px;
padding: 20px;
border: 2px dashed rgba(17, 82, 40, 0.26);
border-radius: var(–hp-radius-md);
background: var(–hp-cream);
}
.hemlock-article .hp-compact ul {
margin: 10px 0 0;
padding-left: 20px;
}
.hemlock-article .hp-compact li {
margin: 6px 0;
}
@media (max-width: 760px) {
.hemlock-article {
font-size: 16px;
}
.hemlock-article .hp-grid-2,
.hemlock-article .hp-grid-3 {
grid-template-columns: 1fr;
}
.hemlock-article .hp-step {
grid-template-columns: 1fr;
}
.hemlock-article table {
min-width: 720px;
}
.hemlock-article .hp-cta {
border-radius: 24px;
}
}
@media print {
.hemlock-article .hp-cta,
.hemlock-article script {
display: none !important;
}
.hemlock-article a {
color: #000;
text-decoration: underline;
}
.hemlock-article .hp-card,
.hemlock-article .hp-step,
.hemlock-article .hp-table-wrap {
box-shadow: none;
}
}

A good painter is not just the person with the lowest number on a quote.

Kitchen Cabinet Painting Cost in Vancouver: Realistic Ranges

#hp-article{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;color:#101418;max-width:860px;margin:0 auto;padding:24px 16px}#hp-article *{box-sizing:border-box}#hp-article a{color:#115228;text-decoration:underline;text-underline-offset:3px}#hp-article a:hover{text-decoration-thickness:2px}#hp-article h1,#hp-article h2,#hp-article h3{line-height:1.25;margin:0 0 10px}#hp-article h1{font-size:clamp(28px,3.6vw,40px);letter-spacing:-.02em}#hp-article h2{font-size:clamp(22px,2.6vw,28px);margin-top:28px}#hp-article h3{font-size:18px;margin-top:18px}#hp-article p{margin:0 0 12px}#hp-article ul,#hp-article ol{margin:0 0 12px;padding-left:18px}#hp-article li{margin:6px 0}#hp-article .hp-kicker{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 12px;font-size:13px;color:#44505c}#hp-article .hp-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d6dde3;border-radius:999px;padding:6px 10px;background:#fff}#hp-article .hp-icon{width:18px;height:18px;vertical-align:-4px;opacity:.9}#hp-article .hp-card{border:1px solid #d6dde3;border-radius:14px;padding:14px;background:#fff}#hp-article .hp-callout{border-left:4px solid #115228;background:#FCFAF4;border-radius:10px;padding:12px}#hp-article .hp-toc{margin:16px 0 0}#hp-article .hp-toc a{text-decoration:none}#hp-article .hp-toc a:hover{text-decoration:underline}#hp-article .hp-toc ul{list-style:none;padding-left:0;margin:10px 0 0}#hp-article .hp-toc li{margin:8px 0}#hp-article .hp-figure{margin:14px 0}#hp-article .hp-figure img{width:100%;height:auto;border-radius:14px;border:1px solid #d6dde3}#hp-article figcaption{font-size:13px;color:#44505c;margin-top:8px}#hp-article .hp-table{width:100%;border-collapse:collapse;border:1px solid #d6dde3;border-radius:14px;overflow:hidden}#hp-article .hp-table th,#hp-article .hp-table td{padding:10px;border-bottom:1px solid #e6edf2;text-align:left;vertical-align:top}#hp-article .hp-table th{font-size:13px;color:#2b343d;background:#FCFAF4}#hp-article .hp-table tr:last-child td{border-bottom:0}#hp-article .hp-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#2b343d;border:1px solid #d6dde3;border-radius:999px;padding:6px 10px;background:#fff}#hp-article .hp-ref{font-size:12px;vertical-align:super}#hp-article .hp-ref a{text-decoration:none;color:#2b343d;border-bottom:1px dotted #2b343d}#hp-article .hp-ref a:hover{border-bottom-style:solid}#hp-article .hp-hr{border:0;border-top:1px solid #e6edf2;margin:18px 0}#hp-article .hp-form{display:grid;gap:10px;margin-top:10px}#hp-article .hp-row{display:grid;gap:10px}#hp-article .hp-field label{display:block;font-size:13px;color:#44505c;margin:0 0 6px}#hp-article .hp-field input,#hp-article .hp-field select{width:100%;padding:10px;border:1px solid #cfd8df;border-radius:12px;font-size:15px;background:#fff}#hp-article .hp-field input:focus,#hp-article .hp-field select:focus{outline:2px solid #115228;outline-offset:2px}#hp-article .hp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;padding:12px 14px;border:1px solid #115228;background:#115228;color:#fff;font-weight:700;text-decoration:none}#hp-article .hp-btn:hover{filter:brightness(.95)}#hp-article .hp-btn.hp-btn–ghost{background:transparent;color:#115228}#hp-article .hp-btn.hp-btn–ghost:hover{background:#FCFAF4}#hp-article .hp-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}#hp-article .hp-result{border:1px solid #d6dde3;border-radius:14px;padding:12px;background:#fff}#hp-article .hp-result strong{font-size:18px}#hp-article .hp-small{font-size:13px;color:#44505c}#hp-article .hp-cta{position:relative;border-radius:16px;overflow:hidden;border:1px solid #d6dde3;margin:18px 0}#hp-article .hp-cta::before{content:””;position:absolute;inset:0;background-image:var(–hp-cta-bg);background-size:cover;background-position:center}#hp-article .hp-cta::after{content:””;position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.18))}#hp-article .hp-cta-inner{position:relative;z-index:1;padding:18px}#hp-article .hp-cta h2,#hp-article .hp-cta p{color:#fff}#hp-article .hp-logo{height:20px;width:auto;display:inline-block}#hp-article .hp-logo–white{filter:brightness(0) invert(1)}#hp-article .hp-cta .hp-btn{border-color:#fff;background:#fff;color:#101418}#hp-article .hp-cta .hp-btn.hp-btn–ghost{background:transparent;color:#fff;border-color:#fff}#hp-article .hp-cta .hp-btn:hover{filter:brightness(.96)}#hp-article .hp-faq details{border:1px solid #d6dde3;border-radius:14px;padding:12px;background:#fff;margin:10px 0}#hp-article .hp-faq summary{cursor:pointer;font-weight:700}#hp-article .hp-faq summary::-webkit-details-marker{display:none}#hp-article .hp-footnotes ol{padding-left:18px}#hp-article .hp-footnotes li{margin:10px 0;font-size:13px;color:#2b343d}#hp-article .hp-footnotes a{word-break:break-word}@media (min-width:680px){#hp-article{padding:28px 18px}#hp-article .hp-row{grid-template-columns:1fr 1fr}}

Vancouver, BCUpdated 2026-03-02All ranges in CAD (before GST)
Kitchen Cabinet Painting Cost in Vancouver: Realistic Ranges

If you’ve been quoted anything from “$1,500” to “$9,000,” you’re not alone.