<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modpro — City Page Template Wireframe</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@400;500&family=DM+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap');
:root {
--ink: #1a1a18;
--paper: #f5f0e8;
--accent: #c94b1e;
--blue: #1a3a5c;
--green: #2a6b3c;
--muted: #6b6358;
--border: #d6cfc3;
--wire-bg: #e8e2d6;
--wire-dark: #c8c0b0;
--new-bg: #d4f0de;
--new-border: #2a6b3c;
--match-bg: #dce8f4;
--match-border: #1a3a5c;
--schema-bg: #fff3cd;
--schema-border: #c97a1e;
--cta-bg: #fde8e2;
--cta-border: #c94b1e;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
background: #e0d8cc;
font-family: 'DM Sans', sans-serif;
font-size: 13px;
color: var(--ink);
padding: 32px 20px;
}
.page-wrap {
max-width: 900px;
margin: 0 auto;
}
/* HEADER */
.doc-header {
background: var(--blue);
color: white;
padding: 28px 32px;
margin-bottom: 4px;
border-radius: 4px 4px 0 0;
}
.doc-header h1 {
font-family: 'DM Serif Display', serif;
font-size: 22px;
font-weight: normal;
margin-bottom: 4px;
}
.doc-header .sub {
font-size: 11px;
opacity: 0.7;
text-transform: uppercase;
letter-spacing: 0.1em;
}
/* LEGEND */
.legend {
background: white;
padding: 14px 20px;
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: center;
margin-bottom: 24px;
border-radius: 0 0 4px 4px;
border-top: 3px solid var(--accent);
}
.legend-title {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--muted);
width: 100%;
}
.leg-item {
display: flex;
align-items: center;
gap: 7px;
font-size: 11px;
font-weight: 500;
}
.leg-dot {
width: 12px;
height: 12px;
border-radius: 2px;
flex-shrink: 0;
}
/* SECTION BLOCKS */
.section-block {
margin-bottom: 6px;
border-radius: 4px;
overflow: hidden;
border: 1.5px solid var(--border);
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 16px;
cursor: pointer;
}
.section-header .left {
display: flex;
align-items: center;
gap: 10px;
}
.section-num {
font-family: 'DM Mono', monospace;
font-size: 11px;
font-weight: 500;
color: var(--muted);
min-width: 24px;
}
.section-title {
font-weight: 600;
font-size: 13px;
}
.section-badge {
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
padding: 2px 7px;
border-radius: 3px;
}
.badge-new { background: var(--new-bg); color: var(--green); border: 1px solid var(--new-border); }
.badge-match { background: var(--match-bg); color: var(--blue); border: 1px solid var(--match-border); }
.badge-schema { background: var(--schema-bg); color: #6b4a00; border: 1px solid var(--schema-border); }
.badge-cta { background: var(--cta-bg); color: var(--accent); border: 1px solid var(--cta-border); }
.section-body {
padding: 16px 20px 20px;
background: white;
border-top: 1px solid var(--border);
}
/* STATUS: MATCH */
.status-match .section-header { background: var(--match-bg); }
/* STATUS: NEW */
.status-new .section-header { background: var(--new-bg); }
/* STATUS: SCHEMA */
.status-schema .section-header { background: var(--schema-bg); }
/* STATUS: CTA */
.status-cta .section-header { background: var(--cta-bg); }
/* WIREFRAME BLOCKS */
.wire-box {
background: var(--wire-bg);
border: 1.5px dashed var(--wire-dark);
border-radius: 4px;
padding: 12px 16px;
margin: 10px 0;
font-size: 12px;
color: var(--muted);
font-style: italic;
}
.wire-box.dark {
background: #2c2c2a;
border-color: #555;
color: #aaa;
}
.wire-box.accent {
background: var(--cta-bg);
border-color: var(--accent);
color: var(--accent);
font-weight: 600;
font-style: normal;
}
.wire-row {
display: grid;
gap: 10px;
margin: 10px 0;
}
.wire-row.cols-2 { grid-template-columns: 1fr 1fr; }
.wire-row.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.wire-row.cols-left-heavy { grid-template-columns: 2fr 1fr; }
.wire-row.cols-right-heavy { grid-template-columns: 1fr 1.5fr; }
.wire-label {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted);
margin-bottom: 6px;
}
.wire-heading {
font-family: 'DM Serif Display', serif;
font-size: 18px;
color: var(--ink);
margin-bottom: 6px;
}
.wire-body-text {
font-size: 11px;
color: var(--muted);
line-height: 1.6;
font-style: italic;
}
.wire-pill {
display: inline-block;
background: var(--wire-dark);
color: var(--ink);
font-size: 10px;
font-weight: 600;
padding: 3px 10px;
border-radius: 20px;
margin: 3px 3px 3px 0;
}
.wire-img {
background: var(--wire-dark);
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
font-weight: 600;
color: var(--muted);
text-align: center;
padding: 20px;
min-height: 90px;
}
.wire-form {
background: #f8f5ef;
border: 1px solid var(--border);
border-radius: 4px;
padding: 14px;
}
.wire-form .form-field {
height: 28px;
background: white;
border: 1px solid var(--border);
border-radius: 3px;
margin-bottom: 8px;
}
.wire-form .form-btn {
background: var(--accent);
color: white;
text-align: center;
padding: 8px;
border-radius: 3px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.annotation {
font-size: 11px;
color: var(--muted);
padding: 8px 12px;
border-left: 3px solid var(--accent);
background: #fafaf7;
margin: 8px 0;
line-height: 1.6;
}
.annotation strong { color: var(--ink); }
.annotation.green { border-color: var(--green); }
.annotation.blue { border-color: var(--blue); }
.annotation.amber { border-color: #c97a1e; }
.schema-tag {
display: inline-flex;
align-items: center;
gap: 5px;
background: var(--schema-bg);
border: 1px solid var(--schema-border);
color: #6b4a00;
font-size: 10px;
font-weight: 700;
font-family: 'DM Mono', monospace;
padding: 2px 8px;
border-radius: 3px;
margin: 4px 4px 4px 0;
}
.star { color: #f0a500; }
.review-card {
background: #fafaf7;
border: 1px solid var(--border);
border-radius: 4px;
padding: 12px;
font-size: 11px;
line-height: 1.6;
}
.review-card .stars { color: #f0a500; margin-bottom: 4px; font-size: 12px; }
.review-card .quote { font-style: italic; color: var(--muted); }
.review-card .reviewer { font-weight: 600; margin-top: 6px; color: var(--ink); }
.faq-item {
border-bottom: 1px solid var(--border);
padding: 10px 0;
}
.faq-item .q {
font-weight: 600;
font-size: 12px;
margin-bottom: 4px;
}
.faq-item .a {
font-size: 11px;
color: var(--muted);
font-style: italic;
}
.city-card {
background: var(--wire-bg);
border: 1px solid var(--wire-dark);
border-radius: 4px;
padding: 10px;
text-align: center;
font-size: 11px;
font-weight: 600;
}
.trust-pill {
border: 1px solid var(--border);
border-radius: 4px;
padding: 12px;
text-align: center;
}
.trust-pill .icon { font-size: 18px; margin-bottom: 4px; }
.trust-pill .label { font-weight: 600; font-size: 11px; }
.trust-pill .desc { font-size: 10px; color: var(--muted); margin-top: 2px; }
.step-card {
background: #fafaf7;
border: 1px solid var(--border);
border-radius: 4px;
padding: 14px;
}
.step-card .num {
font-family: 'DM Serif Display', serif;
font-size: 28px;
color: var(--accent);
line-height: 1;
margin-bottom: 4px;
}
.step-card .step-title { font-weight: 600; font-size: 12px; margin-bottom: 4px; }
.step-card .step-desc { font-size: 11px; color: var(--muted); font-style: italic; }
.process-strip {
background: var(--blue);
color: white;
padding: 14px 20px;
border-radius: 4px;
margin: 10px 0;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.process-strip .ph { font-family: 'DM Serif Display', serif; font-size: 16px; }
.process-strip .ph-num { font-size: 11px; opacity: 0.7; margin-bottom: 2px; }
.word-count-bar {
background: var(--blue);
color: white;
padding: 10px 16px;
border-radius: 4px;
margin-bottom: 24px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 12px;
flex-wrap: wrap;
gap: 8px;
}
.word-count-bar strong { font-family: 'DM Mono', monospace; font-size: 14px; }
.section-divider {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--muted);
padding: 20px 0 8px;
border-bottom: 1px solid var(--border);
margin-bottom: 8px;
}
.bylaw-link {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 11px;
color: var(--blue);
font-weight: 600;
text-decoration: underline;
margin: 3px 0;
}
@media (max-width: 600px) {
.wire-row.cols-2,
.wire-row.cols-3,
.wire-row.cols-left-heavy,
.wire-row.cols-right-heavy { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="page-wrap">
<!-- DOC HEADER -->
<div class="doc-header">
<h1>Modpro Egress Solutions — City Page Template</h1>
<div class="sub">MD Digital · May 2026 · Prepared for Kirk Thompson's approval</div>
</div>
<!-- LEGEND -->
<div class="legend">
<div class="legend-title">Section Status Key</div>
<div class="leg-item"><div class="leg-dot" style="background:#dce8f4; border:1px solid #1a3a5c"></div> Matches competitor template</div>
<div class="leg-item"><div class="leg-dot" style="background:#d4f0de; border:1px solid #2a6b3c"></div> New — competitor doesn't have this</div>
<div class="leg-item"><div class="leg-dot" style="background:#fff3cd; border:1px solid #c97a1e"></div> Schema markup required</div>
<div class="leg-item"><div class="leg-dot" style="background:#fde8e2; border:1px solid #c94b1e"></div> Primary CTA</div>
<div style="margin-left:auto; font-size:11px; color:var(--muted);">Target word count per page: 1,400–1,800 words</div>
</div>
<!-- WORD COUNT TARGET -->
<div class="word-count-bar">
<span>Content depth target</span>
<span><strong>1,400–1,800 words</strong> per city page · Competitor avg: 1,400–1,800 · Goal: match depth + add 4 new sections</span>
</div>
<!-- ========================= -->
<!-- SECTION 1: BREADCRUMB + H1 -->
<!-- ========================= -->
<div class="section-divider">Above the fold</div>
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">01</span>
<span class="section-title">Breadcrumb + H1</span>
<span class="section-badge badge-match">Matches Competitor</span>
<span class="section-badge badge-schema">LocalBusiness Schema</span>
</div>
</div>
<div class="section-body">
<div class="wire-label">Breadcrumb</div>
<div class="wire-box">Home › Service Areas › Egress Window Installation [City]</div>
<div class="wire-label" style="margin-top:10px;">H1 — Templated, keyword-first</div>
<div class="wire-heading">Egress Window Installation in [City], ON</div>
<div class="annotation"><strong>SEO note:</strong> H1 must match URL slug pattern: <code>modproegress.ca/egress-window-installation-[city]</code>. Keyword "egress window installation" front-loaded. "in [City], ON" is the geo modifier.</div>
<div style="margin-top:8px;">
<span class="schema-tag">📋 LocalBusiness</span>
<span class="schema-tag">📋 BreadcrumbList</span>
</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 2: HERO -->
<!-- ========================= -->
<div class="section-block status-cta">
<div class="section-header">
<div class="left">
<span class="section-num">02</span>
<span class="section-title">Hero — Two Column (Landmark Image + Lead Form)</span>
<span class="section-badge badge-new">Upgraded vs. Competitor</span>
<span class="section-badge badge-cta">Primary CTA</span>
</div>
</div>
<div class="section-body">
<div class="wire-row cols-left-heavy">
<div>
<div class="wire-label">Left column — Content</div>
<div class="wire-box">
<div style="font-style:normal; font-weight:600; font-size:12px; color:var(--ink); margin-bottom:6px;">Trusted Egress Window Installation in [City], ON</div>
<div style="font-size:11px; margin-bottom:8px;">80–120 word intro paragraph. Unique per city. Mentions housing stock, neighbourhood context, or a city-specific reason to install (basement suite zoning, local bylaw driver, etc.)</div>
<div>
<div class="wire-pill">✓ 100% dedicated to egress & basement windows</div>
<div class="wire-pill">✓ Ontario Building Code compliant installs</div>
<div class="wire-pill">✓ Free quote within 24 hrs</div>
<div class="wire-pill">✓ Fully insured & licensed</div>
<div class="wire-pill">✓ Serving [City] & Durham Region</div>
</div>
</div>
<div class="wire-label" style="margin-top:10px;">🏛️ Landmark Image — City-specific hero photo</div>
<div class="wire-img">[REAL PROJECT PHOTO — taken in [City], ON]<br><span style="font-size:10px; margin-top:4px; display:block;">NOT stock. Filename: egress-window-installation-[city]-on.jpg<br>Alt text: "Egress window installation in [City], ON by Modpro Egress Solutions"</span></div>
<div class="annotation green"><strong>Steve Toth's landmark image play:</strong> Use a real project photo from that specific city. Google reads image filename + alt text as a local relevance signal. Competitor uses the same "lander-main.jpg" on all 11 city pages — this is one of their biggest weaknesses.</div>
</div>
<div>
<div class="wire-label">Right column — Lead form</div>
<div class="wire-form">
<div style="font-weight:700; font-size:12px; margin-bottom:10px; color:var(--ink);">Get a Free Quote</div>
<div class="form-field"></div>
<div class="form-field"></div>
<div class="form-field"></div>
<div class="form-field"></div>
<div class="form-field"></div>
<div class="form-btn">Request My Free Quote</div>
<div style="text-align:center; font-size:10px; color:var(--muted); margin-top:8px;">Or call <strong>(289)-212-8431</strong></div>
</div>
<div class="annotation blue" style="margin-top:8px;"><strong>CRO note:</strong> City name pre-filled in a hidden form field. Reduces friction. Confirms to Kirk which city the lead came from.</div>
</div>
</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 3: TRUST PILLS -->
<!-- ========================= -->
<div class="section-block status-new">
<div class="section-header">
<div class="left">
<span class="section-num">03</span>
<span class="section-title">Trust Pills — Localized per City</span>
<span class="section-badge badge-new">Upgraded vs. Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-row cols-3">
<div class="trust-pill">
<div class="icon">⭐</div>
<div class="label">Trusted by [City] Homeowners</div>
<div class="desc">e.g. "Trusted by 50+ Oshawa homeowners"</div>
</div>
<div class="trust-pill">
<div class="icon">🔧</div>
<div class="label">100% Egress Window Specialists</div>
<div class="desc">We do nothing else — not a side service</div>
</div>
<div class="trust-pill">
<div class="icon">📋</div>
<div class="label">Free Quote in 24 Hours</div>
<div class="desc">Ontario Building Code compliant installs</div>
</div>
</div>
<div class="annotation green"><strong>Competitor uses the same trust pill text on all 11 pages</strong> — including a typo ("over one thounds egress window projects"). Localizing the first pill to "[City] homeowners" is an easy differentiation point Kirk controls once he has customer postal code data.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 4: THREE SERVICES -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">04</span>
<span class="section-title">Three Services Overview</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">Our Egress Window Services in [City]</div>
<div class="wire-row cols-3">
<div class="step-card">
<div class="step-title">Egress Window Installation</div>
<div class="step-desc">New cut-out, excavation, and install for basement windows. OBC compliant.</div>
</div>
<div class="step-card">
<div class="step-title">Basement Window Enlargement</div>
<div class="step-desc">Expand an existing rough opening to meet egress requirements.</div>
</div>
<div class="step-card">
<div class="step-title">Basement Window Replacement</div>
<div class="step-desc">Replace aging basement windows without enlarging the opening.</div>
</div>
</div>
<div class="annotation blue"><strong>Internal linking:</strong> Each service title links to its corresponding service page (e.g. /egress-window-installation, /basement-window-enlargement, /basement-window-replacement). This is body-content contextual linking — weighted higher than nav links by Google.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 5: WHY EGRESS IN [CITY] -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">05</span>
<span class="section-title">Why Egress Windows in [City]</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:8px;">Why [City] Homeowners Are Installing Egress Windows</div>
<div class="wire-box">
<div style="font-weight:600; font-size:12px; color:var(--ink); margin-bottom:6px;">2–3 paragraphs. 100% unique per city. Must reference:</div>
<div>• City-specific housing stock (e.g. post-war bungalows in Oshawa, newer semis in Whitby)</div>
<div>• Local demand driver (basement suite income, fire safety, resale value)</div>
<div>• Any city-specific zoning context (accessory dwelling unit bylaws)</div>
</div>
<div class="annotation amber"><strong>Content brief for Kirk:</strong> What types of homes are most common in [City]? Are there specific neighbourhoods where basement suite conversions are common? Any local housing market trends driving demand?</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 6: PROCESS -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">06</span>
<span class="section-title">Installation Process — 3 Steps</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">How Modpro Installs Egress Windows in [City]</div>
<div class="wire-row cols-3">
<div class="step-card">
<div class="num">01</div>
<div class="step-title">Free Site Estimate</div>
<div class="step-desc">We visit your [City] home, assess the opening, confirm OBC compliance requirements, and provide a written quote within 24 hours.</div>
</div>
<div class="step-card">
<div class="num">02</div>
<div class="step-title">Precision Cut & Excavation</div>
<div class="step-desc">Professional-grade concrete cutting tools. Structural integrity protected. Work completed in a single day in most cases.</div>
</div>
<div class="step-card">
<div class="num">03</div>
<div class="step-title">Install, Seal & Clean Up</div>
<div class="step-desc">Window installed, properly sealed, and site fully cleaned. We don't leave until the job is done right.</div>
</div>
</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 7: OBC REQUIREMENTS -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">07</span>
<span class="section-title">[City] Building Code & OBC Requirements</span>
<span class="section-badge badge-match">Matches Competitor</span>
<span class="section-badge badge-schema">Schema</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:8px;">Egress Window Requirements in [City], ON</div>
<div class="wire-box">
<div>Standard OBC egress window requirements (same across all pages):</div>
<div style="margin-top:6px;">• Openable area ≥ 3.8 sq ft</div>
<div>• No dimension less than 15 inches</div>
<div>• Openable without tools</div>
<div>• Window well clearance ≥ 22 inches when applicable</div>
<div style="margin-top:6px; font-style:italic;">+ any city-specific addendum (e.g. Whitby secondary suite frontage rules)</div>
</div>
<div class="wire-label" style="margin-top:10px;">Outbound links — critical for E-E-A-T (competitor's #1 strength)</div>
<div>
<div class="bylaw-link">🔗 Ontario Building Code — Window Requirements</div>
<div class="bylaw-link">🔗 [City].ca — Accessory Dwelling Unit Bylaws</div>
<div class="bylaw-link">🔗 [City].ca — Building Permit Requirements</div>
</div>
<div class="annotation green"><strong>This is the competitor's strongest section.</strong> They link directly to municipal websites (whitby.ca bylaw PDFs, ontario.ca OBC regulations). Modpro must match this — outbound links to authoritative municipal sources are an E-E-A-T signal Google explicitly rewards.</div>
<span class="schema-tag">📋 Service Schema</span>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 8: SECONDARY SUITE -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">08</span>
<span class="section-title">Secondary Suite / Two-Unit Dwelling Section</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:8px;">Egress Windows for [City] Basement Suites</div>
<div class="wire-box">
City-specific secondary suite context. Reference [City]'s ADU/basement suite zoning policy. Explain that egress windows are required for a legal secondary suite. Link to [City]'s official registration process or bylaw guide.
</div>
<div class="annotation amber"><strong>Content brief for Kirk:</strong> Does [City] have an active basement suite or ADU incentive program? Any recent zoning changes that make this relevant? This section is the highest-intent section on the page — homeowners planning a suite conversion are serious buyers.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 9: REAL PROJECT PHOTOS (NEW) -->
<!-- ========================= -->
<div class="section-divider">Modpro-exclusive sections — competitor does not have these</div>
<div class="section-block status-new">
<div class="section-header">
<div class="left">
<span class="section-num">09</span>
<span class="section-title">Recent Installs in [City] — Real Project Photos</span>
<span class="section-badge badge-new">New — Competitor Has Nothing</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">Recent Egress Window Projects in [City]</div>
<div class="wire-row cols-3">
<div>
<div class="wire-img">[Before photo]<br><span style="font-size:10px;">Filename: egress-install-[city]-[street-area]-before.jpg</span></div>
<div style="font-size:11px; color:var(--muted); margin-top:4px; font-style:italic;">[Neighbourhood / Street Area], [City]</div>
</div>
<div>
<div class="wire-img">[During / cut photo]<br><span style="font-size:10px;">Filename: egress-install-[city]-[street-area]-during.jpg</span></div>
<div style="font-size:11px; color:var(--muted); margin-top:4px; font-style:italic;">Precision concrete cut in progress</div>
</div>
<div>
<div class="wire-img">[After / finished photo]<br><span style="font-size:10px;">Filename: egress-install-[city]-[street-area]-after.jpg</span></div>
<div style="font-size:11px; color:var(--muted); margin-top:4px; font-style:italic;">Completed install, OBC compliant</div>
</div>
</div>
<div class="annotation green"><strong>This is Modpro's biggest competitive advantage.</strong> Competitor uses the same generic stock photo on all 11 city pages. Real before/after project photos from actual [City] jobs are a local proof signal Google cannot fake. Each image filename and alt text should reference the city. Kirk needs to provide 3–5 photos per priority city.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 10: CITY REVIEWS (NEW) -->
<!-- ========================= -->
<div class="section-block status-new">
<div class="section-header">
<div class="left">
<span class="section-num">10</span>
<span class="section-title">Customer Reviews from [City]</span>
<span class="section-badge badge-new">New — Competitor Has Nothing</span>
<span class="section-badge badge-schema">Review Schema</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">What [City] Homeowners Are Saying</div>
<div class="wire-row cols-3">
<div class="review-card">
<div class="stars">★★★★★</div>
<div class="quote">"[Customer quote — 40–60 words. Genuine review from a real [City] customer. References the job type and general area if possible.]"</div>
<div class="reviewer">— [First Name], [Neighbourhood], [City]</div>
</div>
<div class="review-card">
<div class="stars">★★★★★</div>
<div class="quote">"[Customer quote — 40–60 words. References speed of service, cleanliness of work, or OBC compliance.]"</div>
<div class="reviewer">— [First Name], [Neighbourhood], [City]</div>
</div>
<div class="review-card">
<div class="stars">★★★★★</div>
<div class="quote">"[Customer quote — 40–60 words. References Modpro's specialization — they only do this one thing.]"</div>
<div class="reviewer">— [First Name], [Neighbourhood], [City]</div>
</div>
</div>
<div class="annotation amber"><strong>Content brief for Kirk:</strong> Provide 2–3 genuine customer reviews per priority city — first name + neighbourhood only (no surnames needed). Pull from Google Reviews filtered by city, or request testimonials from past customers in that area.</div>
<span class="schema-tag">📋 Review Schema</span>
<span class="schema-tag">📋 AggregateRating</span>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 11: MID-PAGE CTA -->
<!-- ========================= -->
<div class="section-block status-cta">
<div class="section-header">
<div class="left">
<span class="section-num">11</span>
<span class="section-title">Mid-Page CTA Banner</span>
<span class="section-badge badge-cta">CTA</span>
</div>
</div>
<div class="section-body">
<div class="wire-box accent">
Ready to get started in [City]? Call (289)-212-8431 or request a free quote online — we respond within 24 hours.
</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 12: CITY FAQ (NEW + SCHEMA) -->
<!-- ========================= -->
<div class="section-block status-schema">
<div class="section-header">
<div class="left">
<span class="section-num">12</span>
<span class="section-title">FAQ — [City]-Specific Questions</span>
<span class="section-badge badge-new">New — Competitor Has Nothing</span>
<span class="section-badge badge-schema">FAQ Schema → Rich Results</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">Egress Window FAQs for [City] Homeowners</div>
<div class="faq-item">
<div class="q">How much does egress window installation cost in [City], ON?</div>
<div class="a">City-specific answer. Reference typical [City] housing stock. Provide a realistic price range.</div>
</div>
<div class="faq-item">
<div class="q">Do I need a permit for an egress window in [City]?</div>
<div class="a">Reference [City]'s specific building permit requirements. Link to [City].ca permit page.</div>
</div>
<div class="faq-item">
<div class="q">How long does egress window installation take in [City]?</div>
<div class="a">Typical timeline answer. Note that most [City] installs are completed in one day.</div>
</div>
<div class="faq-item">
<div class="q">Can Modpro help with secondary suite egress windows in [City]?</div>
<div class="a">Yes — link to secondary suite section above. Reference [City]'s ADU bylaw context.</div>
</div>
<div class="annotation green"><strong>FAQ schema = rich results eligibility.</strong> These FAQ blocks can expand directly in Google's SERP, taking up additional real estate on the page. Competitor has zero FAQ schema across all their city pages. This is a direct traffic and CTR advantage.</div>
<span class="schema-tag">📋 FAQPage Schema</span>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 13: SIBLING CITIES (NEW) -->
<!-- ========================= -->
<div class="section-block status-new">
<div class="section-header">
<div class="left">
<span class="section-num">13</span>
<span class="section-title">"We Also Serve" — Sibling City Links</span>
<span class="section-badge badge-new">New — Competitor Has Nothing</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:10px;">Egress Window Installation Across Durham Region</div>
<div class="wire-body-text" style="margin-bottom:10px;">Many of our [City] customers have neighbours in [adjacent city] and [adjacent city]. We serve all of Durham Region and East GTA with the same dedicated team.</div>
<div class="wire-row cols-3" style="margin-top:10px;">
<div class="city-card">Egress Window Installation Oshawa</div>
<div class="city-card">Egress Window Installation Whitby</div>
<div class="city-card">Egress Window Installation Ajax</div>
<div class="city-card">Egress Window Installation Pickering</div>
<div class="city-card">Egress Window Installation Courtice</div>
<div class="city-card">Egress Window Installation Bowmanville</div>
</div>
<div class="annotation green"><strong>Competitor has zero body-content city-to-city links.</strong> All their internal linking flows only through the nav. These sibling city cards create contextual body-content links — the highest-weighted internal link type in Google's algorithm. Each card links to the corresponding city page with keyword-rich anchor text.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 14: ABOUT [CITY] -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">14</span>
<span class="section-title">About [City]</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-heading" style="font-size:15px; margin-bottom:8px;">Serving Homeowners Across [City], ON</div>
<div class="wire-box">
1–2 short paragraphs about [City]. Population, general housing stock profile, municipal context. Not tourism copy — frame it around homeownership and the types of homes Modpro works in. Naturally include "egress window installation in [City]" once in this section.
</div>
<div class="annotation amber"><strong>Content brief for Kirk:</strong> Any local knowledge about [City]'s housing market, popular neighbourhoods, or the types of basements Modpro typically works in there?</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 15: SOURCES -->
<!-- ========================= -->
<div class="section-block status-match">
<div class="section-header">
<div class="left">
<span class="section-num">15</span>
<span class="section-title">Sources List</span>
<span class="section-badge badge-match">Matches Competitor</span>
</div>
</div>
<div class="section-body">
<div class="wire-box">
<div style="font-weight:600; color:var(--ink); margin-bottom:6px;">Sources</div>
<div class="bylaw-link">🔗 ontario.ca/laws — Ontario Building Code, Window Requirements</div>
<div class="bylaw-link">🔗 [city].ca — Accessory Dwelling Unit Registration</div>
<div class="bylaw-link">🔗 [city].ca — Building Permit Guide</div>
<div class="bylaw-link">🔗 [city].ca — Secondary Suite Bylaw PDF</div>
</div>
<div class="annotation blue"><strong>The competitor lists their sources at page bottom.</strong> This is one of their hidden weapons — outbound links to authoritative .ca government domains reinforce editorial credibility with Google. Modpro must match or exceed this. These citations also give the page a legitimacy signal that pure service pages lack.</div>
</div>
</div>
<!-- ========================= -->
<!-- SECTION 16: CLOSING CTA -->
<!-- ========================= -->
<div class="section-block status-cta">
<div class="section-header">
<div class="left">
<span class="section-num">16</span>
<span class="section-title">Closing CTA</span>
<span class="section-badge badge-cta">Primary CTA</span>
</div>
</div>
<div class="section-body">
<div class="wire-box dark">
<div style="font-family:'DM Serif Display',serif; font-size:18px; color:white; margin-bottom:8px;">Ready to Start Your [City] Egress Window Project?</div>
<div style="font-size:12px; margin-bottom:12px;">Modpro Egress Solutions serves [City], Durham Region, and East GTA. We do one thing — egress and basement windows — and we do it right.</div>
<div style="display:flex; gap:10px; flex-wrap:wrap;">
<div style="background:var(--accent); color:white; padding:8px 16px; border-radius:4px; font-weight:700; font-size:12px;">Request a Free Quote</div>
<div style="background:transparent; color:white; padding:8px 16px; border-radius:4px; font-weight:700; font-size:12px; border:1px solid white;">Call (289)-212-8431</div>
</div>
</div>
</div>
</div>
<!-- SCHEMA SUMMARY -->
<div class="section-divider" style="margin-top:28px;">Schema markup summary</div>
<div style="background:var(--schema-bg); border:1.5px solid var(--schema-border); border-radius:4px; padding:16px 20px; margin-bottom:24px;">
<div class="wire-label" style="margin-bottom:10px;">Required on every city page</div>
<span class="schema-tag">📋 LocalBusiness</span>
<span class="schema-tag">📋 BreadcrumbList</span>
<span class="schema-tag">📋 Service</span>
<span class="schema-tag">📋 FAQPage</span>
<span class="schema-tag">📋 Review</span>
<span class="schema-tag">📋 AggregateRating</span>
<div class="annotation amber" style="margin-top:12px;"><strong>Competitor has zero schema markup across all city pages.</strong> Deploying FAQPage schema alone gives Modpro potential rich-result expansion in SERPs. LocalBusiness schema reinforces NAP consistency with the GMB profile.</div>
</div>
<!-- WHAT KIRK NEEDS TO PROVIDE -->
<div class="section-divider">What Kirk provides per city — content brief</div>
<div style="background:white; border:1.5px solid var(--border); border-radius:4px; padding:20px; margin-bottom:32px;">
<div class="wire-row cols-2">
<div>
<div class="wire-label" style="margin-bottom:8px;">Per priority city</div>
<div class="annotation green" style="margin-bottom:6px;"><strong>Real project photos (3–5 per city)</strong> — before, during, after. General street area noted.</div>
<div class="annotation green" style="margin-bottom:6px;"><strong>Customer reviews (2–3 per city)</strong> — first name + neighbourhood only. From Google Reviews or direct testimonials.</div>
<div class="annotation amber" style="margin-bottom:6px;"><strong>Local context notes</strong> — housing stock type, common neighbourhoods, any local bylaw context Kirk is familiar with.</div>
<div class="annotation blue" style="margin-bottom:6px;"><strong>Ranked market priority list</strong> — which cities to build first, based on where leads have actually come from.</div>
</div>
<div>
<div class="wire-label" style="margin-bottom:8px;">Phase 2 timeline</div>
<div class="process-strip">
<div><div class="ph-num">Week 1</div><div class="ph">Template approved · Kirk provides photos + reviews</div></div>
</div>
<div class="process-strip" style="margin-top:6px;">
<div><div class="ph-num">Weeks 2–3</div><div class="ph">Pages 1–4 built: Whitby, Oshawa, Ajax, Pickering</div></div>
</div>
<div class="process-strip" style="margin-top:6px;">
<div><div class="ph-num">Weeks 4–5</div><div class="ph">Pages 5–8: Bowmanville, Courtice, Brooklin, Peterborough</div></div>
</div>
<div class="process-strip" style="margin-top:6px;">
<div><div class="ph-num">Week 6</div><div class="ph">Schema deployed · Internal links wired · GSC submitted</div></div>
</div>
</div>
</div>
</div>
<div style="font-size:10px; color:var(--muted); text-align:center; padding-bottom:20px;">MD Digital · Prepared for Modpro Egress Solutions · May 2026 · Confidential</div>
</div>
</body>
</html>