.vsa-article{–vsa-green:#115228;–vsa-green2:#115227;–vsa-gold:#C69B33;–vsa-ink:#04200E;–vsa-sage:#B0CAB8;–vsa-paper:#FCFAF4;–vsa-line:rgba(4,32,14,.14);–vsa-shadow:0 10px 30px rgba(4,32,14,.08);color:var(–vsa-ink);max-width:920px;margin:0 auto;padding:clamp(18px,3vw,34px);font-size:16px;line-height:1.65}.vsa-article a{color:var(–vsa-green);text-decoration-thickness:2px;text-underline-offset:3px}.vsa-article a:hover{color:var(–vsa-green2)}.vsa-article img{max-width:100%;height:auto;border-radius:18px;display:block}.vsa-hero{margin-bottom:22px}.vsa-breadcrumbs{font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}.vsa-breadcrumbs span{opacity:.7}.vsa-eyebrow{margin:0 0 8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(–vsa-green)}.vsa-hero-grid{display:grid;grid-template-columns:1fr;gap:18px}.vsa-hero-copy h1{margin:0 0 10px;line-height:1.15;font-size:clamp(30px,4.3vw,46px)}.vsa-lede{margin:0 0 14px;font-size:18px;max-width:70ch}.vsa-learn{margin:0 0 16px;padding-left:18px}.vsa-learn li{margin:.35em 0}.vsa-hero-cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.vsa-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:12px 16px;font-weight:700;line-height:1;white-space:nowrap;border:2px solid transparent}.vsa-btn-primary{background:var(–vsa-green)!important;color:#fff!important;border-color:var(–vsa-green)!important;box-shadow:var(–vsa-shadow)}.vsa-btn-primary:hover{background:var(–vsa-green2)!important;border-color:var(–vsa-green2)!important}.vsa-btn-ghost{background:transparent!important;color:var(–vsa-green)!important;border-color:rgba(17,82,40,.35)!important}.vsa-btn-ghost:hover{border-color:rgba(17,82,40,.65)!important;background:rgba(17,82,40,.06)!important}.vsa-btn-full{width:100%!important}.vsa-cta-note{margin:6px 0 0;font-size:13px;opacity:.85}.vsa-hero-media figcaption{margin-top:10px;font-size:13px;opacity:.85}.vsa-section{margin:26px 0}.vsa-section h2{margin:0 0 10px;font-size:clamp(22px,2.6vw,30px);line-height:1.25}.vsa-section h3{margin:18px 0 8px;font-size:20px;line-height:1.3}.vsa-section h4{margin:16px 0 8px;font-size:17px;line-height:1.35}.vsa-card{background:#fff;border:1px solid var(–vsa-line);border-radius:22px;box-shadow:0 6px 18px rgba(4,32,14,.05);padding:16px}.vsa-mini{padding:14px}.vsa-toc ol{margin:0;padding-left:18px}.vsa-toc li{margin:.35em 0}.vsa-callout{border:1px solid var(–vsa-line);border-radius:18px;padding:14px 14px 14px 16px;background:rgba(252,250,244,.92)}.vsa-callout-qa{border-left:6px solid var(–vsa-green)}.vsa-callout-tip{border-left:6px solid var(–vsa-gold)}.vsa-callout-warn{border-left:6px solid #714810}.vsa-callout-list h3{margin:0 0 8px}.vsa-small{font-size:13px;opacity:.85}.vsa-note{font-size:14px;opacity:.9}.vsa-table-wrap{margin:14px 0;border-radius:18px;overflow:auto;border:1px solid var(–vsa-line);background:#fff}.vsa-table{width:100%;border-collapse:collapse;min-width:820px}.vsa-table th,.vsa-table td{padding:12px 12px;border-bottom:1px solid var(–vsa-line);vertical-align:top}.vsa-table th{position:sticky;top:0;background:var(–vsa-paper);text-align:left;font-size:14px}.vsa-grid-2{display:grid;grid-template-columns:1fr;gap:14px}.vsa-grid-3{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:780px){.vsa-grid-2{grid-template-columns:1fr 1fr}.vsa-grid-3{grid-template-columns:1fr 1fr 1fr}}.vsa-checklist ul{margin:0;padding-left:18px}.vsa-ranked{padding-left:20px}.vsa-ranked li{margin:.55em 0}.vsa-details{border:1px solid var(–vsa-line);border-radius:18px;background:#fff;margin:12px 0;overflow:hidden}.vsa-detailssummary{cursor:pointer;padding:14px 16px;font-weight:800;list-style:none}.vsa-detailssummary::-webkit-details-marker{display:none}.vsa-detailssummary span{display:block}.vsa-details-body{padding:0 16px 14px}.vsa-details[open]summary{background:rgba(17,82,40,.06)}.vsa-stat{border:1px solid var(–vsa-line);border-radius:20px;background:#fff;padding:14px}.vsa-stat-num{font-size:28px;font-weight:900;margin:0}.vsa-stat-label{margin:4px 0 0;font-weight:700}.vsa-stat-note{margin:4px 0 0;font-size:13px;opacity:.85}.vsa-steps{display:grid;gap:12px}.vsa-step{display:flex;gap:12px;align-items:flex-start;border:1px solid var(–vsa-line);border-radius:20px;background:#fff;padding:14px}.vsa-step-num{width:34px;height:34px;border-radius:999px;background:rgba(17,82,40,.10);display:flex;align-items:center;justify-content:center;font-weight:900;color:var(–vsa-green);flex:0 0 auto}.vsa-step-body h3{margin:0 0 6px;font-size:18px}.vsa-step-body p{margin:0}.vsa-related ul{margin:0;padding-left:18px}.vsa-related li{margin:.35em 0}.vsa-inline-cta{margin:18px 0;border-radius:24px;overflow:hidden;border:1px solid rgba(17,82,40,.2);background:rgba(17,82,40,.06)}.vsa-inline-cta-inner{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:16px}.vsa-inline-logo{width:140px;height:auto;border-radius:0}.vsa-inline-cta-copy{flex:1 1 280px}.vsa-inline-cta-title{margin:0;font-weight:900;font-size:18px}.vsa-inline-cta-text{margin:6px 0 0;opacity:.9}.vsa-inline-cta-actions{flex:0 0 auto}.vsa-inline-cta-end .vsa-inline-cta-inner{justify-content:space-between}.vsa-calc{padding:16px}.vsa-calc-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:780px){.vsa-calc-grid{grid-template-columns:repeat(3,1fr)}.vsa-field-btn{grid-column:3}}.vsa-field{display:flex;flex-direction:column;gap:6px;font-weight:800}.vsa-input{border:1px solid rgba(4,32,14,.25);border-radius:14px;padding:12px 12px;font-size:16px;background:#fff}.vsa-input:focus{outline:3px solid rgba(17,82,40,.18);border-color:rgba(17,82,40,.55)}.vsa-calc-out{margin-top:14px;border-top:1px solid var(–vsa-line);padding-top:14px}.vsa-calc-result{margin:0;font-size:18px;font-weight:900}.vsa-cta-block{position:relative;border-radius:28px;overflow:hidden;margin:28px 0;border:1px solid rgba(255,255,255,.35)}.vsa-cta-bg{position:absolute;inset:0;background-image:url(https://www.hemlockpainting.com/wp-content/uploads/2026/02/hemlock_1152-2-scaled-1.jpg);background-size:cover;background-position:center;filter:saturate(1.05) contrast(1.03)}.vsa-cta-block:before{content:””;position:absolute;inset:0;background:rgba(4,32,14,.72)}.vsa-cta-inner{position:relative;padding:22px;color:#fff}.vsa-cta-logo{width:200px;height:auto;border-radius:0;margin:0 0 12px}.vsa-cta-inner h2{margin:0 0 8px;color:#fff}.vsa-cta-inner p{margin:0 0 14px;opacity:.95;max-width:70ch}.vsa-cta-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px}.vsa-trust{margin:0;padding-left:18px;display:grid;gap:6px}@media(min-width:780px){.vsa-trust{grid-template-columns:repeat(2,1fr)}}.vsa-faq{display:grid;gap:10px}.vsa-summary{margin:0;padding-left:18px}.vsa-footer{margin-top:24px;border-top:1px solid var(–vsa-line);padding-top:14px}
Home/Blog/Painter cost per square foot in Vancouver
Vancouver, BC pricing guide
Painter Cost Per Square Foot in Vancouver: When This Pricing Model Works and When It Doesn’t
In Vancouver, professional painting is commonly priced three ways: per square foot, per room, or a fixed project quote.