22 December 2025

BC PST for Contractors and Trades in Vancouver: When to Charge vs Pay



Understanding when to charge or pay Provincial Sales Tax (PST) is crucial for contractors and tradespeople in British Columbia. Misapplying PST rules can lead to costly audits, penalties, and client disputes. This guide clarifies the key distinctions between contractors and vendors, when PST applies to materials versus services, and how to structure your invoices to pass CRA audits.

Why PST Rules Matter for Contractors

BC’s PST rules differ significantly from GST. The key distinction is between tangible personal property (materials, equipment) and real property (installations that become part of a building). Understanding this difference determines whether you charge PST to clients or pay it on purchases—and getting it wrong can cost thousands in penalties.

Contractor vs Vendor: Key Distinctions

In BC, how PST applies depends on whether you’re acting as a contractor (installing/fabricating) or a vendor (selling goods). Most tradespeople operate as contractors, which changes PST obligations:

Contractor

Definition: Installs, fabricates, or modifies real property (buildings, structures)

  • Pays PST on materials purchased
  • Does NOT charge PST on installation labor
  • May charge PST on materials if itemized separately
  • Examples: Electricians, plumbers, carpenters, HVAC installers

Vendor

Definition: Sells tangible personal property (goods) without installation

  • Charges PST on all sales
  • Pays PST on inventory purchases (if not registered)
  • Collects and remits PST to government
  • Examples: Building supply stores, equipment retailers

Common Mistake: Many contractors incorrectly charge PST on their entire invoice (labor + materials). For installation work, you should only charge PST on materials if you itemize them separately. Labor for real property installation is PST-exempt.

When to Pay PST on Materials

As a contractor, you typically pay PST when purchasing materials from suppliers. This is because you’re buying tangible personal property that you’ll use in your work:

Materials for Installation

When buying lumber, wiring, pipes, fixtures, or other materials that will be installed into real property, you pay PST at the point of purchase.

Example: Electrician buys $1,000 of wire and conduit. Pays $70 PST (7%) to supplier. This cost is included in the project quote.

Tools and Equipment

Tools and equipment used in your business operations (not installed) are subject to PST. You pay PST when purchasing.

Example: Contractor buys a $500 power drill. Pays $35 PST. This is a business expense, not passed to clients.

Materials You Resell

If you purchase materials to resell (not install), you may need to register as a PST vendor and charge PST to your customers.

Example: Contractor buys paint to resell to clients. Must register for PST and charge 7% on paint sales.

When to Charge PST to Clients

Contractors charge PST to clients in specific situations. The key is understanding real property (installations) versus tangible personal property (goods):

Real Property Installation Rules

Installation Labor: PST-exempt. When you install materials into real property (wiring in walls, plumbing in buildings), your labor is not subject to PST.

Materials (Lump Sum): No PST charged. If you quote a total price for “kitchen renovation” without itemizing materials, you don’t charge PST (you already paid it when purchasing).

Materials (Itemized): Charge PST. If you separately list materials on your invoice, you must charge PST on those materials (even though you already paid PST when buying them).

Tangible Personal Property: Charge PST. If you sell goods without installation (appliances, fixtures sold separately), you charge PST.

Invoice Examples That Pass Audits

Proper invoice structure is critical for PST compliance. Here are examples of invoices that will pass CRA audits:

Example 1: Lump Sum Installation (No PST Charged)

Kitchen Plumbing Installation
$5,000.00
GST (5%)
$250.00
Total
$5,250.00
? Correct: No PST on installation work. Contractor paid PST when purchasing materials.

Example 2: Itemized Materials (PST Charged)

Materials:
Copper pipe and fittings
$800.00
Fixtures
$400.00
Subtotal (Materials)
$1,200.00
PST (7%) on Materials
$84.00
Installation Labor
$1,500.00
GST (5%)
$135.00
Total
$2,919.00
? Correct: PST charged on itemized materials. Labor is PST-exempt.

Example 3: Sale of Goods (PST Required)

Water Heater (not installed)
$1,200.00
PST (7%)
$84.00
GST (5%)
$60.00
Total
$1,344.00
? Correct: PST charged on tangible personal property sold without installation.

Common PST Exemptions for Contractors

Several exemptions apply to contractor purchases, which can reduce your PST costs:

Production Machinery

Machinery and equipment used primarily in manufacturing or processing are PST-exempt.

Commercial Vehicles

Vehicles used primarily for commercial purposes (trucks, vans) may be PST-exempt.

Resale Items

If you’re registered as a PST vendor, materials purchased for resale are exempt (you’ll charge PST when selling).

Government Contracts

Materials purchased for government contracts may be PST-exempt with proper documentation.

Reconciling PST with Bookkeeping

Proper bookkeeping ensures PST compliance and simplifies audits. Here’s how to track PST correctly:

PST Tracking Best Practices

Separate PST Accounts: Create separate expense accounts for “Materials – PST Paid” and “PST Collected” to track both sides.

Keep Receipts: Maintain all supplier invoices showing PST paid. These prove you paid PST and justify not charging it (in lump sum contracts).

Invoice Structure: Clearly distinguish between labor (PST-exempt) and materials (PST-applicable if itemized) on all invoices.

Monthly Reconciliation: Reconcile PST paid vs. PST collected monthly. If you collect more PST than you pay, you may need to register as a vendor.

Professional Help: PST rules can be complex, especially for contractors who both install and sell goods. Consider working with a bookkeeping professional or business accountant to ensure proper PST handling and avoid costly mistakes.

PST Checklist for New Quotes

Use this checklist when preparing quotes to ensure PST compliance:

Determine if work is installation (real property) or sale of goods

If installation: Decide whether to quote lump sum (no PST) or itemize materials (charge PST)

If selling goods without installation: Plan to charge PST (may need vendor registration)

Factor PST paid on materials into your material cost calculations

Structure invoice to clearly show labor vs. materials (if itemizing)

Keep all supplier receipts showing PST paid for audit purposes

Common Audit Pitfalls to Avoid

Charging PST on Labor

Never charge PST on installation labor. This is a common error that triggers audits and requires refunds to clients.

Missing PST on Itemized Materials

If you itemize materials on invoices, you must charge PST. Failing to do so can result in penalties.

Poor Documentation

Without receipts showing PST paid, auditors may assume you didn’t pay PST and assess additional tax.

Mixing Contractor and Vendor Activities

If you both install and sell goods, ensure proper PST registration and separate tracking to avoid confusion.

Book a 15-Minute PST Review

PST rules for contractors can be confusing, and mistakes are costly. J. Wang Chartered Professional Accountant offers quick PST reviews to help Vancouver contractors ensure compliance and avoid audit issues. We’ll review your invoice structure, bookkeeping practices, and help you understand when to charge or pay PST.

PST Compliance Review

Invoice Structure Analysis

Bookkeeping Setup

CRA Audit Support

Schedule Your PST Review

Let’s discuss your PST compliance and ensure your invoices are structured correctly

Name(Required)
Please let us know what's on your mind. Have a question for us? Ask away.
OR CONTACT US DIRECTLY

Need help understanding GST and HST as well? Schedule an appointment with our Vancouver accounting team today.

.pst-contractors-guide {
max-width: 1000px;
margin: 0 auto;
padding: 20px;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, ‘Helvetica Neue’, Arial, sans-serif;
line-height: 1.7;
color: #1e293b;
font-size: 16px;
}

/* SVG Icon Styles */
.pst-svg-icon {
color: currentColor;
stroke: currentColor;
transition: all 0.3s ease;
}

/* Icon Animations */
@keyframes pst-pulse {
0%, 100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.85;
transform: scale(1.05);
}
}

@keyframes pst-float {
0%, 100% {
transform: translateY(0px);
}
50% {
transform: translateY(-8px);
}
}

@keyframes pst-glow {
0%, 100% {
filter: drop-shadow(0 0 5px rgba(59, 130, 246, 0.5));
}
50% {
filter: drop-shadow(0 0 15px rgba(59, 130, 246, 0.8));
}
}

@keyframes pst-shake {
0%, 100% { transform: translateX(0); }
10%, 30%, 50%, 70%, 90% { transform: translateX(-0.3px); }
20%, 40%, 60%, 80% { transform: translateX(0.3px); }
}

@keyframes pst-rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

.pst-icon-pulse {
animation: pst-pulse 2s ease-in-out infinite;
}

.pst-icon-float {
animation: pst-float 3s ease-in-out infinite;
}

.pst-icon-glow {
animation: pst-glow 3s ease-in-out infinite;
}

.pst-icon-shake {
animation: pst-shake 3s ease-in-out;
}

.pst-icon-spin-slow {
transition: transform 0.6s ease;
}

.pst-icon-spin-slow:hover {
transform: rotate(360deg);
}

.pst-contractors-guide h2 {
font-size: 2em;
color: #1e40af;
margin-top: 50px;
margin-bottom: 20px;
font-weight: 700;
border-bottom: 3px solid #3b82f6;
padding-bottom: 12px;
}

.pst-contractors-guide h2:first-of-type {
margin-top: 0;
}

.pst-contractors-guide h3 {
font-size: 1.5em;
color: #334155;
margin-top: 35px;
margin-bottom: 15px;
font-weight: 600;
}

.pst-contractors-guide h4 {
font-size: 1.2em;
color: #475569;
margin-top: 20px;
margin-bottom: 12px;
font-weight: 600;
}

.pst-contractors-guide p {
margin-bottom: 18px;
line-height: 1.8;
}

.pst-contractors-guide .lead-text {
font-size: 1.15em;
color: #475569;
line-height: 1.8;
margin-bottom: 30px;
border-left: 4px solid #3b82f6;
background: #f8fafc;
padding: 20px;
border-radius: 4px;
}

/* Intro Box */
.pst-intro-box {
background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
border: 2px solid #3b82f6;
border-radius: 8px;
padding: 25px;
margin: 30px 0;
position: relative;
padding-top: 60px;
text-align: center;
}

.pst-intro-icon {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
background: #3b82f6;
color: white;
border-radius: 50%;
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.pst-intro-box h3 {
margin-top: 0;
color: #1e40af;
}

/* Comparison Grid */
.pst-comparison-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 25px;
margin: 30px 0;
}

.pst-comparison-card {
background: white;
border: 2px solid #e2e8f0;
border-radius: 12px;
padding: 25px;
transition: all 0.3s ease;
position: relative;
padding-top: 70px;
}

.pst-comparison-card:hover {
border-color: #3b82f6;
box-shadow: 0 8px 20px rgba(59, 130, 246, 0.15);
transform: translateY(-5px);
}

.comparison-icon {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #3b82f6 0%, #1e40af 100%);
color: white;
border-radius: 50%;
width: 70px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.comparison-icon svg {
color: white;
}

.pst-comparison-card h4 {
margin-top: 10px;
margin-bottom: 12px;
color: #1e40af;
}

.pst-comparison-card ul {
margin: 15px 0;
padding-left: 20px;
color: #64748b;
}

.pst-comparison-card li {
margin-bottom: 8px;
line-height: 1.6;
}

/* Warning Box */
.pst-warning-box {
background: #fef2f2;
border-left: 5px solid #ef4444;
padding: 20px;
margin: 30px 0;
border-radius: 8px;
display: flex;
gap: 15px;
align-items: flex-start;
}

.pst-warning-box svg {
color: #ef4444;
flex-shrink: 0;
margin-top: 2px;
}

.pst-warning-box strong {
color: #991b1b;
}

/* Scenarios Grid */
.pst-scenarios-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
margin: 30px 0;
}

.pst-scenario-card {
background: white;
border: 2px solid #cbd5e1;
border-left: 5px solid #22c55e;
border-radius: 8px;
padding: 25px;
transition: all 0.3s ease;
position: relative;
padding-top: 70px;
}

.pst-scenario-card:hover {
border-color: #22c55e;
box-shadow: 0 4px 12px rgba(34, 197, 94, 0.15);
transform: translateY(-3px);
}

.scenario-icon {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
color: white;
border-radius: 50%;
width: 70px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(34, 197, 94, 0.4);
}

.scenario-icon svg {
color: white;
}

.pst-scenario-card h4 {
margin-top: 10px;
margin-bottom: 12px;
color: #166534;
}

.scenario-example {
background: #f0fdf4;
padding: 12px;
border-radius: 6px;
margin-top: 15px;
font-size: 0.9em;
line-height: 1.6;
}

.scenario-example strong {
color: #166534;
}

/* Rules Box */
.pst-rules-box {
background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
border: 2px solid #22c55e;
border-radius: 12px;
padding: 30px;
margin: 30px 0;
}

.pst-rules-box h3 {
margin-top: 0;
color: #166534;
text-align: center;
margin-bottom: 25px;
}

.rules-content {
display: flex;
flex-direction: column;
gap: 15px;
}

.rule-item {
display: flex;
align-items: flex-start;
gap: 15px;
background: white;
padding: 20px;
border-radius: 8px;
transition: all 0.3s ease;
}

.rule-item:hover {
transform: translateX(5px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.rule-item svg {
color: #22c55e;
flex-shrink: 0;
margin-top: 2px;
}

.rule-item strong {
color: #166534;
}

/* Invoice Examples */
.pst-invoice-examples {
display: flex;
flex-direction: column;
gap: 25px;
margin: 30px 0;
}

.invoice-example h4 {
color: #1e40af;
margin-bottom: 15px;
}

.invoice-box {
background: white;
border: 2px solid #e2e8f0;
border-radius: 8px;
padding: 25px;
font-family: ‘Courier New’, monospace;
}

.invoice-line {
display: flex;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px solid #f1f5f9;
}

.invoice-line.invoice-sub {
padding-left: 20px;
font-size: 0.95em;
color: #64748b;
}

.invoice-line.invoice-total {
border-top: 2px solid #3b82f6;
border-bottom: none;
margin-top: 10px;
padding-top: 15px;
font-weight: bold;
font-size: 1.1em;
color: #1e40af;
}

.invoice-note {
margin-top: 15px;
padding: 12px;
background: #f0fdf4;
border-left: 4px solid #22c55e;
border-radius: 4px;
font-size: 0.9em;
color: #166534;
}

/* Exemptions Grid */
.pst-exemptions-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin: 30px 0;
}

.pst-exemption-card {
background: white;
border: 2px solid #cbd5e1;
border-left: 5px solid #3b82f6;
border-radius: 8px;
padding: 20px;
text-align: center;
transition: all 0.3s ease;
}

.pst-exemption-card:hover {
border-color: #3b82f6;
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
transform: translateY(-3px);
}

.exemption-icon {
margin-bottom: 12px;
}

.exemption-icon svg {
color: #3b82f6;
}

.pst-exemption-card h4 {
color: #1e40af;
margin-top: 0;
margin-bottom: 10px;
}

.pst-exemption-card p {
margin-bottom: 0;
color: #64748b;
font-size: 0.95em;
}

/* Bookkeeping Box */
.pst-bookkeeping-box {
background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
border: 2px solid #3b82f6;
border-radius: 12px;
padding: 30px;
margin: 30px 0;
}

.pst-bookkeeping-box h3 {
margin-top: 0;
color: #1e40af;
text-align: center;
margin-bottom: 25px;
}

.bookkeeping-items {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 15px;
}

.bookkeeping-item {
display: flex;
align-items: flex-start;
gap: 12px;
background: white;
padding: 15px;
border-radius: 8px;
transition: all 0.3s ease;
}

.bookkeeping-item:hover {
transform: translateX(5px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.bookkeeping-item svg {
color: #3b82f6;
flex-shrink: 0;
margin-top: 2px;
}

.bookkeeping-item strong {
color: #1e40af;
}

/* Info Box */
.pst-info-box {
background: #eff6ff;
border-left: 5px solid #3b82f6;
padding: 20px;
margin: 30px 0;
border-radius: 8px;
display: flex;
gap: 15px;
align-items: flex-start;
}

.pst-info-box svg {
color: #3b82f6;
flex-shrink: 0;
margin-top: 2px;
}

.pst-info-box strong {
color: #1e40af;
}

/* Checklist Box */
.pst-checklist-box {
background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
border: 2px solid #22c55e;
border-radius: 12px;
padding: 30px;
margin: 30px 0;
}

.checklist-items {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 15px;
}

.checklist-item {
display: flex;
align-items: flex-start;
gap: 12px;
background: white;
padding: 15px;
border-radius: 8px;
transition: all 0.3s ease;
}

.checklist-item:hover {
transform: translateX(5px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.checklist-item svg {
color: #22c55e;
flex-shrink: 0;
margin-top: 2px;
}

.checklist-item span {
color: #1e293b;
line-height: 1.6;
}

/* Pitfalls Grid */
.pst-pitfalls-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
margin: 30px 0;
}

.pst-pitfall-card {
background: #fef2f2;
border: 2px solid #fecaca;
border-left: 5px solid #ef4444;
border-radius: 8px;
padding: 20px;
text-align: center;
transition: all 0.3s ease;
}

.pst-pitfall-card:hover {
border-color: #ef4444;
box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
transform: translateY(-3px);
}

.pst-pitfall-card svg {
color: #ef4444;
margin-bottom: 12px;
}

.pst-pitfall-card h4 {
color: #991b1b;
margin-top: 0;
margin-bottom: 10px;
}

.pst-pitfall-card p {
margin-bottom: 0;
color: #7f1d1d;
font-size: 0.95em;
}

/* CTA Box */
.pst-contractors-guide .cta-box {
background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);
color: white;
padding: 40px;
border-radius: 12px;
margin-top: 50px;
box-shadow: 0 10px 25px rgba(30, 64, 175, 0.3);
position: relative;
overflow: hidden;
}

.pst-contractors-guide .cta-box::before {
content: ”;
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
animation: pst-rotate 20s linear infinite;
pointer-events: none;
}

.pst-cta-icon-container {
text-align: center;
margin-bottom: 30px;
}

.pst-cta-icon-container .pst-svg-icon {
color: white;
}

.pst-contractors-guide .cta-box h3 {
color: white;
margin-top: 0;
font-size: 1.8em;
text-align: center;
}

.pst-contractors-guide .cta-box h4 {
color: white;
}

.pst-contractors-guide .cta-box p {
color: rgba(255, 255, 255, 0.95);
}

.pst-contractors-guide .cta-box strong {
color: white;
}

/* Services Grid */
.pst-services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 15px;
margin: 25px 0;
}

.pst-service-item {
display: flex;
align-items: center;
gap: 12px;
background: rgba(255, 255, 255, 0.1);
padding: 15px;
border-radius: 8px;
transition: all 0.3s ease;
}

.pst-service-item:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateX(5px);
}

.pst-service-item svg {
flex-shrink: 0;
color: #22c55e;
}

.pst-service-item span {
color: rgba(255, 255, 255, 0.95);
font-size: 0.95em;
}

/* Contact Form Container */
.pst-contact-form-container {
background: rgba(255, 255, 255, 0.1);
border-radius: 12px;
padding: 30px;
margin-top: 30px;
backdrop-filter: blur(10px);
}

.pst-form-wrapper {
background: white;
padding: 25px;
border-radius: 8px;
margin-bottom: 30px;
}

/* Gravity Forms Field Visibility Fixes */
.pst-form-wrapper .gform_wrapper {
max-width: 100% !important;
}

.pst-form-wrapper .gfield {
margin-bottom: 20px !important;
}

.pst-form-wrapper .gfield_label {
display: block !important;
font-weight: 600 !important;
color: #1e293b !important;
margin-bottom: 8px !important;
font-size: 0.95em !important;
}

.pst-form-wrapper .gfield_required {
color: #ef4444 !important;
margin-left: 4px !important;
}

.pst-form-wrapper .ginput_container {
margin-top: 8px !important;
}

.pst-form-wrapper input[type=”text”],
.pst-form-wrapper input[type=”email”],
.pst-form-wrapper input[type=”tel”],
.pst-form-wrapper input[type=”number”],
.pst-form-wrapper input[type=”url”],
.pst-form-wrapper textarea,
.pst-form-wrapper select {
width: 100% !important;
padding: 12px !important;
border: 2px solid #e2e8f0 !important;
border-radius: 6px !important;
font-size: 16px !important;
transition: border-color 0.3s ease !important;
background: white !important;
box-sizing: border-box !important;
}

.pst-form-wrapper input:focus,
.pst-form-wrapper textarea:focus,
.pst-form-wrapper select:focus {
outline: none !important;
border-color: #3b82f6 !important;
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
}

.pst-form-wrapper .gform_button,
.pst-form-wrapper input[type=”submit”] {
width: 100% !important;
padding: 15px !important;
background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%) !important;
color: white !important;
border: none !important;
border-radius: 8px !important;
font-size: 1.1em !important;
font-weight: bold !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
margin-top: 10px !important;
}

.pst-form-wrapper .gform_button:hover,
.pst-form-wrapper input[type=”submit”]:hover {
transform: translateY(-2px) !important;
box-shadow: 0 6px 20px rgba(30, 64, 175, 0.4) !important;
}

.pst-form-wrapper .validation_error {
background: #fef2f2 !important;
border: 2px solid #ef4444 !important;
color: #991b1b !important;
padding: 15px !important;
border-radius: 6px !important;
margin-bottom: 20px !important;
}

.pst-form-wrapper .gfield_error {
background: #fef2f2 !important;
border: 2px solid #ef4444 !important;
border-radius: 6px !important;
padding: 15px !important;
}

.pst-form-wrapper .validation_message {
color: #ef4444 !important;
font-size: 0.9em !important;
margin-top: 5px !important;
display: block !important;
}

.pst-form-wrapper .gform_confirmation_message {
background: #f0fdf4 !important;
border: 2px solid #22c55e !important;
color: #166534 !important;
padding: 20px !important;
border-radius: 8px !important;
text-align: center !important;
font-size: 1.1em !important;
}

/* Divider */
.pst-divider {
text-align: center;
position: relative;
margin: 30px 0;
}

.pst-divider span {
background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);
padding: 0 20px;
color: white;
font-weight: bold;
font-size: 0.9em;
letter-spacing: 1px;
position: relative;
z-index: 1;
}

.pst-divider::before {
content: ”;
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 2px;
background: rgba(255, 255, 255, 0.3);
}

/* Contact Grid */
.pst-contact-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-top: 25px;
}

.pst-contact-item {
display: flex;
align-items: center;
gap: 12px;
background: rgba(255, 255, 255, 0.1);
padding: 20px;
border-radius: 8px;
text-decoration: none;
color: white;
transition: all 0.3s ease;
border: 2px solid rgba(255, 255, 255, 0.2);
}

.pst-contact-item:hover {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.4);
transform: translateY(-3px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.pst-contact-item svg {
flex-shrink: 0;
color: #fbbf24;
}

.pst-contact-item div {
display: flex;
flex-direction: column;
gap: 4px;
}

.pst-contact-item strong {
font-size: 0.85em;
text-transform: uppercase;
letter-spacing: 0.5px;
opacity: 0.9;
}

.pst-contact-item span {
font-size: 1.05em;
font-weight: 500;
}

.pst-action {
font-size: 1.1em;
font-weight: bold;
text-align: center;
margin-top: 30px;
padding: 20px;
background: rgba(255, 255, 255, 0.1);
border-radius: 8px;
border: 2px solid rgba(255, 255, 255, 0.2);
}

/* Responsive Design */
@media (max-width: 768px) {
.pst-contractors-guide {
padding: 15px;
}

.pst-contractors-guide h2 {
font-size: 1.6em;
}

.pst-contractors-guide h3 {
font-size: 1.3em;
}

.pst-comparison-grid,
.pst-scenarios-grid,
.pst-exemptions-grid,
.pst-pitfalls-grid,
.pst-services-grid,
.pst-contact-grid,
.bookkeeping-items,
.checklist-items {
grid-template-columns: 1fr;
}

.pst-comparison-card,
.pst-scenario-card {
padding-top: 70px;
}

.pst-form-wrapper {
padding: 15px;
}
}

// Scoped JavaScript for PST Contractors Guide article
(function() {
‘use strict’;

// Animate elements when scrolled into view
if (‘IntersectionObserver’ in window) {
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
entry.target.style.opacity = ‘0’;
entry.target.style.transform = ‘translateY(20px)’;
entry.target.style.transition = ‘opacity 0.6s ease, transform 0.6s ease’;

setTimeout(function() {
entry.target.style.opacity = ‘1’;
entry.target.style.transform = ‘translateY(0)’;
}, 100);

observer.unobserve(entry.target);
}
});
}, {
threshold: 0.1
});

// Observe cards and boxes
document.querySelectorAll(‘.pst-comparison-card, .pst-scenario-card, .pst-exemption-card, .pst-pitfall-card, .pst-bookkeeping-box, .pst-checklist-box, .invoice-example’).forEach(function(el) {
observer.observe(el);
});
}

// Add click handlers for checklist items
document.querySelectorAll(‘.checklist-item’).forEach(function(item) {
item.addEventListener(‘click’, function() {
var svg = this.querySelector(‘svg’);
if (svg) {
svg.style.transform = ‘scale(1.2)’;
setTimeout(function() {
svg.style.transform = ”;
}, 200);
}
});
});
})();