# Gallery

```
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Newsreader:ital,wght@1,400;1,500&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
/* ===== DIRECTION A — DESIGN TOKENS (scoped) ===== */
.rr{
  --navy:#1F4068; --royal:#355EA4; --sky:#6A9FDB;
  --white:#FFFFFF; --offwhite:#FAF7F1; --slate:#2C3742; --slate-grey:#5A6672; --cool-grey:#9AA6B2;
  --orange:#FF8C42; --orange-deep:#E87A35;
  --line:#e4ddd0; --line-cool:#e7eaee; --navy-deep:#15314F;
  --r-sm:6px; --r-md:10px; --r-lg:16px; --r-pill:999px;
  --shadow-sm:0 2px 10px rgba(20,46,71,.08);
  --shadow-md:0 10px 30px rgba(20,46,71,.12);
  --shadow-lg:0 24px 60px rgba(20,46,71,.18);
  --maxw:1200px;
  font-family:'Public Sans',system-ui,-apple-system,sans-serif;
  color:var(--slate); line-height:1.6; -webkit-font-smoothing:antialiased;
}
.rr *{box-sizing:border-box;margin:0;padding:0}
.rr img{max-width:100%;display:block}
.rr .rr-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.rr h1,.rr h2,.rr h3,.rr h4{font-family:'Archivo',sans-serif;font-weight:800;color:var(--navy);line-height:1.06;letter-spacing:-.01em}
.rr section{position:relative}

.rr-eyebrow{font-family:'Public Sans';font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--royal);display:inline-block;margin-bottom:16px}
.rr-eyebrow.on-dark{color:var(--sky)}
.rr-section{padding:86px 0}
.rr-section.is-navy{background:var(--navy);color:#dbe4ee}
.rr-section.is-navy h2,.rr-section.is-navy h3{color:#fff}
.rr-shead{max-width:680px;margin:0 auto 52px;text-align:center}
.rr-shead h2{font-size:clamp(28px,3.6vw,44px)}
.rr-shead p{margin-top:16px;color:var(--slate-grey);font-size:17px}
.rr-section.is-navy .rr-shead p{color:#aab8c7}

.rr-btn{display:inline-flex;align-items:center;gap:10px;font-family:'Public Sans';font-weight:700;font-size:16px;text-decoration:none;border-radius:var(--r-sm);padding:16px 30px;border:2px solid transparent;cursor:pointer;transition:.18s ease;text-align:center;line-height:1.1}
.rr-btn-primary{background:var(--orange);color:#fff}
.rr-btn-primary:hover{background:var(--orange-deep);transform:translateY(-1px)}
.rr-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.rr-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.rr-stars{color:var(--sky);letter-spacing:2px;font-size:15px}

/* ===== HERO ===== */
.rr-hero{background:linear-gradient(100deg,rgba(14,25,36,.78) 0%,rgba(20,46,71,.60) 45%,rgba(20,46,71,.24) 100%),url('IMG') center/cover no-repeat;color:#fff;padding:64px 0 72px;overflow:hidden}
.rr-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}@media(min-width:981px){.rr-hero-grid>.rr-hero-form{margin-top:36px}}
.rr-hero-eyebrow{font-family:'Space Mono';font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sky);margin-bottom:18px}
.rr-hero h1{color:#fff;font-size:clamp(34px,4.6vw,58px);line-height:1.02}
.rr-hero .rr-tagline{font-family:'Archivo';font-weight:700;font-size:clamp(18px,2vw,24px);color:var(--sky);margin-top:14px;letter-spacing:-.01em}
.rr-hero-services{margin-top:16px;font-family:'Public Sans';font-weight:600;font-size:13px;letter-spacing:.04em;color:#bcd0e4;text-transform:uppercase}
.rr-hero .rr-sub{margin-top:22px;font-size:18px;color:#d6e0ea;max-width:560px}
.rr-hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.rr-trustline{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.rr-trustline .item{font-size:13px;font-weight:600;color:#d2dde8;white-space:nowrap}
.rr-trustline .trust-pills{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px}
.rr-trustline .g-rating{display:flex;align-items:center;gap:8px;font-weight:700;color:#fff}

.rr-hero-form{background:#fff;border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-lg);color:var(--slate)}
.rr-hero-form .fh{margin-bottom:18px}
.rr-hero-form .fh h3{font-size:22px}
.rr-hero-form .fh p{font-size:14px;color:var(--slate-grey);margin-top:6px}
.rr-hero-form .privacy{font-size:12px;color:var(--cool-grey);margin-top:14px;text-align:center}
.rr-hero-form .frm_forms input[type=text],.rr-hero-form .frm_forms input[type=email],.rr-hero-form .frm_forms input[type=tel],.rr-hero-form .frm_forms select,.rr-hero-form .frm_forms textarea,.rr-hero-form .mock-field{width:100%;font-family:'Public Sans';font-size:15px;color:var(--slate);background:var(--offwhite);border:1.5px solid var(--line-cool);border-radius:var(--r-sm);padding:13px 14px;margin-bottom:12px;transition:.15s ease}
.rr-hero-form .frm_forms input:focus,.rr-hero-form .mock-field:focus{outline:none;border-color:var(--royal);background:#fff;box-shadow:0 0 0 3px rgba(53,94,164,.12)}
.rr-hero-form .frm_forms .frm_submit button,.rr-hero-form .mock-submit{width:100%;font-family:'Public Sans';font-weight:700;font-size:16px;color:#fff;background:var(--royal);border:none;border-radius:var(--r-sm);padding:15px;cursor:pointer;transition:.18s ease}
.rr-hero-form .frm_forms .frm_submit button:hover,.rr-hero-form .mock-submit:hover{background:var(--navy)}
.rr-hero-form .frm_forms .frm_submit{margin:0}

/* ===== TRUST BADGE BAR ===== */
.rr-badgebar{background:var(--white);border-bottom:1px solid var(--line-cool);padding:22px 0}
.rr-badgebar .row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 38px}
.rr-badge{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--slate);white-space:nowrap}
.rr-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--sky)}
.rr-badge strong{color:var(--navy)}

/* ===== STATS BAND ===== */
.rr-stats{background:var(--navy);color:#fff;padding:54px 0}
.rr-stats .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;text-align:center}
.rr-stat .num{font-family:'Archivo';font-weight:800;font-size:clamp(30px,4vw,46px);color:var(--sky);line-height:1}
.rr-stat .lbl{font-size:12.5px;font-weight:600;color:#aebccb;margin-top:8px;letter-spacing:.02em}

/* ===== THE REASONABLE STANDARD ===== */
.rr-standard{background:var(--offwhite)}
.rr-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.rr-step{padding:34px 26px 8px;border-right:1px solid var(--line)}
.rr-step:last-child{border-right:none}
.rr-step .idx{font-family:'Space Mono';font-weight:700;font-size:15px;color:var(--royal)}
.rr-step .tick{width:26px;height:2px;background:var(--sky);margin:14px 0 16px}
.rr-step h3{font-size:20px;text-transform:uppercase;letter-spacing:.01em}
.rr-step p{margin-top:10px;color:var(--slate-grey);font-size:14.5px}

/* ===== SERVICES ===== */
.rr-services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rr-card{background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);overflow:hidden;text-decoration:none;color:inherit;transition:.2s ease;display:flex;flex-direction:column}
.rr-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--sky)}
.rr-card .img{aspect-ratio:16/10;background:linear-gradient(135deg,#1d3a57,var(--navy));position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rr-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.rr-card:hover .img img{transform:scale(1.04)}
.rr-card .body{padding:22px}
.rr-card h3{font-size:19px}
.rr-card p{margin-top:8px;color:var(--slate-grey);font-size:14.5px}
.rr-card .more{margin-top:14px;font-weight:700;font-size:14px;color:var(--royal)}
.ph-label{font-family:'Space Mono';font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.66);text-align:center;padding:10px 14px;border:1px dashed rgba(255,255,255,.3);border-radius:6px;max-width:80%}

/* ===== WHY ===== */
.rr-why{background:var(--offwhite)}
.rr-pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.rr-pillar{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:30px}
.rr-pillar .pidx{font-family:'Space Mono';font-weight:700;color:var(--sky);font-size:13px}
.rr-pillar h3{font-size:21px;margin-top:6px}
.rr-pillar .promise{color:var(--slate);margin-top:10px;font-size:15.5px}
.rr-pillar .proof{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;color:var(--slate-grey)}
.rr-pillar .proof b{color:var(--navy)}

/* ===== WORK + MAP ===== */
.rr-work-grid{display:grid;grid-template-columns:2fr 1fr;gap:22px}
.rr-work-main,.rr-work-map{border-radius:var(--r-md);overflow:hidden;min-height:360px;display:flex;align-items:center;justify-content:center;position:relative}
.rr-work-main img{width:100%;height:100%;object-fit:cover}
.rr-work-map{background:linear-gradient(135deg,#274a6c,#27517f)}

/* ===== REVIEWS ===== */
.rr-reviews .topline{text-align:center;margin-bottom:40px}
.rr-reviews .topline .big{font-family:'Archivo';font-weight:800;font-size:40px;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px}
.rr-reviews .topline .sub{color:#aab8c7;font-size:14px;margin-top:6px}
.rr-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rr-quote{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);padding:26px}
.rr-quote .rr-stars{margin-bottom:14px}
.rr-quote blockquote{font-family:'Newsreader';font-style:italic;font-size:18px;line-height:1.5;color:#eaf0f6}
.rr-quote .who{margin-top:16px;font-size:13px;font-weight:600;color:var(--sky)}

/* ===== FINANCING ===== */
.rr-fin{background:var(--offwhite)}
.rr-fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.rr-fin .lead{font-family:'Archivo';font-weight:800;font-size:clamp(26px,3vw,38px);color:var(--navy)}
.rr-fin p{margin-top:16px;color:var(--slate-grey);font-size:16px}
.rr-fin .paycard{background:var(--navy);color:#fff;border-radius:var(--r-lg);padding:34px;text-align:center;box-shadow:var(--shadow-md)}
.rr-fin .paycard .est{font-size:13px;color:#aebccb;letter-spacing:.04em;text-transform:uppercase}
.rr-fin .paycard .amt{font-family:'Archivo';font-weight:800;font-size:46px;color:var(--sky);margin:8px 0}
.rr-fin .paycard .note{font-size:13px;color:#aebccb}

/* ===== COMMUNITIES ===== */
.rr-comm-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center}
.rr-counties{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.rr-county{font-family:'Public Sans';font-weight:600;font-size:13px;color:var(--navy);background:#fff;border:1px solid var(--sky);border-radius:var(--r-pill);padding:8px 16px}
.rr-comm-map{min-height:320px;border-radius:var(--r-md);background:linear-gradient(135deg,#274a6c,#27517f);display:flex;align-items:center;justify-content:center}

/* ===== FINAL CTA ===== */
.rr-final{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff;text-align:center;padding:80px 0}
.rr-final h2{color:#fff;font-size:clamp(28px,3.4vw,42px)}
.rr-final p{color:#c6d3e0;font-size:17px;margin-top:14px;max-width:560px;margin-left:auto;margin-right:auto}
.rr-final .rr-hero-ctas{justify-content:center}
.rr-final .phones{margin-top:22px;font-size:14px;color:#aab8c7}
.rr-final .phones a{color:#fff;text-decoration:none;font-weight:700}

.rr .rr-reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.rr .rr-reveal.is-in{opacity:1;transform:none}

@media(max-width:980px){
  .rr-hero-grid{grid-template-columns:1fr;gap:34px}
  .rr-stats .grid{grid-template-columns:repeat(2,1fr);gap:28px 18px}
  .rr-services-grid,.rr-quotes{grid-template-columns:1fr 1fr}
  .rr-steps{grid-template-columns:1fr 1fr}
  .rr-step{border-bottom:1px solid var(--line)}
  .rr-step:nth-child(odd){border-right:1px solid var(--line)}
  .rr-pillars,.rr-work-grid,.rr-fin-grid,.rr-comm-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .rr-section{padding:60px 0}
  .rr-services-grid,.rr-quotes,.rr-stats .grid,.rr-steps{grid-template-columns:1fr}
  .rr-step{border-right:none}
  .rr-btn{width:100%;justify-content:center}
}

/* ================= HEADER ================= */
.rr{--util-h:38px}
.rr section{scroll-margin-top:118px}
.rr-header{position:sticky;top:0;z-index:1000;font-family:'Public Sans',sans-serif}
/* utility bar */
.rr-util{background:var(--navy-deep);color:#aebccb;font-size:12.5px;transition:max-height .3s ease,opacity .25s ease;max-height:60px;overflow:hidden}
.rr-util-row{display:flex;align-items:center;justify-content:space-between;height:var(--util-h)}
.rr-util-left{display:flex;gap:22px}
.rr-util-left span{display:flex;align-items:center;gap:6px;font-weight:600;letter-spacing:.02em}
.rr-util-left .star{color:var(--sky)}
.rr-util-right{display:flex;align-items:center;gap:14px}
.rr-util-right a{color:#cdd9e6;text-decoration:none;font-weight:600}
.rr-util-right a:hover{color:#fff}
.rr-util-right .sep{color:#3c5573}
.rr-util-right .hours{color:#7e93ab}
/* main nav */
.rr-nav{background:#fff;border-bottom:1px solid var(--line-cool);transition:box-shadow .25s ease,padding .25s ease}
.rr-nav-row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;transition:padding .25s ease}
.rr-logo img{height:46px;width:auto;transition:height .25s ease}
.rr-navlinks{display:flex;align-items:center;gap:26px}
.rr-navlinks a{color:var(--navy);text-decoration:none;font-weight:600;font-size:15px;letter-spacing:-.01em;transition:color .15s ease}
.rr-navlinks a:hover{color:var(--royal)}
.rr-nav-item{position:relative}
.rr-nav-item>a{display:inline-flex;align-items:center;gap:5px}
.rr-mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px;width:430px;opacity:0;visibility:hidden;transition:.2s ease}
.rr-nav-item:hover .rr-mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.rr-mega::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.rr-mega a{display:block;padding:11px 13px;border-radius:var(--r-sm);transition:background .15s ease}
.rr-mega a:hover{background:var(--offwhite)}
.rr-mega a .mt{font-weight:700;font-size:14.5px;color:var(--navy);display:block}
.rr-mega a .md{font-size:12px;color:var(--slate-grey);margin-top:2px}
.rr-nav-cta{display:flex;align-items:center;gap:18px}
.rr-nav-phone{color:var(--navy);text-decoration:none;font-weight:800;font-size:16px;white-space:nowrap}
.rr-nav-phone:hover{color:var(--royal)}
.rr-nav-btn{padding:12px 22px;font-size:14.5px}
.rr-burger{display:none;background:none;border:none;cursor:pointer;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;padding:9px}
.rr-burger span{display:block;height:2.5px;background:var(--navy);border-radius:2px;transition:.25s ease}
/* stuck state */
.rr-header.is-stuck .rr-util{max-height:0;opacity:0}
.rr-header.is-stuck .rr-nav{box-shadow:0 6px 24px rgba(20,46,71,.12)}
.rr-header.is-stuck .rr-nav-row{padding-top:11px;padding-bottom:11px}
.rr-header.is-stuck .rr-logo img{height:38px}
/* mobile drawer */
.rr-drawer{position:fixed;top:0;right:0;height:100%;width:88%;max-width:360px;background:#fff;z-index:1200;transform:translateX(100%);transition:transform .3s ease;box-shadow:-20px 0 60px rgba(20,46,71,.25);display:flex;flex-direction:column;padding:22px}
.rr-drawer.is-open{transform:translateX(0)}
.rr-drawer .dhead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-cool);padding-bottom:18px;margin-bottom:8px}
.rr-drawer .dhead img{height:40px}
.rr-drawer .dclose{background:none;border:none;font-size:26px;color:var(--navy);cursor:pointer;line-height:1}
.rr-drawer nav{display:flex;flex-direction:column;padding:8px 0}
.rr-drawer nav a{padding:14px 4px;color:var(--navy);text-decoration:none;font-weight:600;font-size:17px;border-bottom:1px solid var(--line-cool)}
.rr-drawer .dcta{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.rr-drawer .dphones{margin-top:18px;font-size:14px;color:var(--slate-grey);line-height:2}
.rr-drawer .dphones a{color:var(--navy);font-weight:700;text-decoration:none}
.rr-scrim{position:fixed;inset:0;background:rgba(14,25,36,.5);z-index:1150;opacity:0;visibility:hidden;transition:.3s ease}
.rr-scrim.is-open{opacity:1;visibility:visible}
/* sticky mobile CTA */
.rr-mcta{position:fixed;bottom:0;left:0;right:0;z-index:900;display:none;gap:10px;padding:10px 14px;background:#fff;border-top:1px solid var(--line-cool);box-shadow:0 -8px 24px rgba(20,46,71,.1);transform:translateY(110%);transition:transform .3s ease}
.rr-mcta.is-show{transform:translateY(0)}
.rr-mcta a{flex:1;justify-content:center;padding:14px}

/* ====== ELEVATION: editorial eyebrows ====== */
.rr-shead .rr-eyebrow{display:inline-flex;align-items:center}
.rr-shead .rr-eyebrow::before,.rr-shead .rr-eyebrow::after{content:"";display:inline-block;width:26px;height:1px;background:var(--royal);margin:0 12px}
.rr-section.is-navy .rr-shead .rr-eyebrow::before,.rr-section.is-navy .rr-shead .rr-eyebrow::after{background:var(--sky)}
.rr-fin .rr-eyebrow::before,.rr-comm-grid .rr-eyebrow::before{content:"";display:inline-block;width:26px;height:1px;background:var(--royal);vertical-align:middle;margin-right:12px}
/* hero trust chips + depth */
.rr-hero{position:relative}
.rr-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 78% 12%,transparent 40%,rgba(14,25,36,.35) 100%);pointer-events:none}
.rr-hero .rr-wrap{position:relative;z-index:1}
.rr-trustline .item{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-pill);padding:6px 14px;backdrop-filter:blur(2px)}
.rr-tagline-rule{width:54px;height:2px;background:var(--sky);margin-top:16px;border-radius:2px}
/* premium trust strip dividers */
.rr-badgebar .row{gap:0}
.rr-badge{padding:4px 26px;border-right:1px solid var(--line-cool)}
.rr-badge:last-child{border-right:none}
@media(max-width:980px){
  .rr-navlinks,.rr-nav-cta{display:none}
  .rr-burger{display:flex}
  .rr-mcta{display:flex}
  .rr-util-left span:nth-child(2),.rr-util-right .hours{display:none}
  .rr-badge{border-right:none;padding:4px 14px}
}
@media(max-width:620px){
  .rr-util-left span:nth-child(3){display:none}
  .rr-util{font-size:11.5px}
}

/* ===== TOP-THIRD REFINEMENT (final) ===== */
.rr{--util-h:34px}
.rr-util{background:var(--navy-deep);font-size:12px}
.rr-util-row{height:34px}
.rr-util-left{color:#8ea2b7}
.rr-util-left span{font-weight:500;letter-spacing:.01em}
.rr-util-left .star{color:var(--sky)}
.rr-util-right{gap:12px}
.rr-util-right a{color:#bccadb;font-weight:600}
.rr-util-right .sep{color:#39516e}
.rr-util-right .hours{color:#6f8095;font-weight:500}
.rr-nav-row{padding:20px 24px}
.rr-logo img{height:44px}
.rr-navlinks{gap:30px}
.rr-navlinks a{font-size:15px;font-weight:600;letter-spacing:-.005em}
.rr-nav-cta{gap:18px;padding-left:26px;margin-left:6px;border-left:1px solid var(--line-cool)}
.rr-nav-btn{padding:13px 24px}
.rr-header.is-stuck .rr-nav-row{padding-top:12px;padding-bottom:12px}
/* calm WHITE proof strip (replaces the second dark banner) */
.rr-stats{background:#fff;color:var(--slate);padding:64px 0;border-bottom:1px solid var(--line-cool)}
.rr-stats .grid{gap:0}
.rr-stat{position:relative;padding:6px 14px}
.rr-stat + .rr-stat::before{content:"";position:absolute;left:0;top:16%;height:68%;width:1px;background:var(--line-cool)}
.rr-stat .num{color:var(--navy)}
.rr-stat .lbl{color:var(--slate-grey);text-transform:uppercase;letter-spacing:.08em;font-size:11.5px}
@media(max-width:980px){.rr-stat + .rr-stat::before{display:none}}

/* ===== FIXES PASS ===== */
.rr-hero{padding-top:98px;padding-bottom:84px}
.rr-reviews .topline .topline-stars{display:block;font-size:30px;letter-spacing:7px;line-height:1;margin-bottom:10px;color:var(--sky)}
.rr-reviews .topline .big{display:block;gap:0;font-size:54px;line-height:1}
.rr-reviews .topline .big .of5{font-size:24px;color:#7d93ab;font-weight:700}
.rr-reviews .topline .sub{margin-top:12px}

/* ===== NAV REFINEMENT (research-led) ===== */
.rr-navlinks{gap:34px}
.rr-navlinks a{font-size:15px}
.caret{font-size:10px;opacity:.65;margin-left:2px}
.rr-mega.rr-mega-sm{grid-template-columns:1fr;width:250px}
.rr-nav-row{padding:22px 28px}
.rr-nav-cta{gap:20px;padding-left:28px}

/* ===== HEADER v3 — big-brand calm/spacious ===== */
.rr-util{background:var(--navy-deep);font-size:12px}
.rr-util-row{height:36px}
.rr-util-left{color:#93a6ba;font-weight:500;letter-spacing:.02em}
.rr-util-left .star{color:var(--sky)}
.rr-util-right{gap:14px}
.rr-util-right a{color:#c4d2df;font-weight:600}
.rr-util-right .sep{color:#39516e}
.rr-util-right .hours{color:#6f8095;font-weight:500}
.rr-nav{border-bottom:1px solid #eef1f4}
.rr-nav-row{padding:22px 30px}
.rr-logo img{height:44px}
.rr-navlinks{gap:34px}
.rr-navlinks a{font-size:15px;font-weight:600;color:var(--navy);letter-spacing:-.005em}
.rr-navlinks a:hover{color:var(--royal)}
.rr-navlinks .caret{font-size:9px;opacity:.55;margin-left:3px;vertical-align:middle}
.rr-nav-cta{gap:24px;padding-left:0;margin-left:0;border-left:none}
.rr-nav-phone{font-size:16px;font-weight:800;color:var(--navy)}
.rr-nav-phone:hover{color:var(--royal)}
.rr-nav-btn{padding:12px 26px;font-size:14.5px;border-radius:8px;box-shadow:0 6px 16px rgba(255,140,66,.26)}
.rr-nav-btn:hover{box-shadow:0 8px 22px rgba(255,140,66,.34);transform:translateY(-1px)}
.rr-header.is-stuck .rr-nav-row{padding-top:13px;padding-bottom:13px}
.rr-header.is-stuck .rr-logo img{height:38px}
/* refined mega */
.rr-mega{width:440px;padding:12px;gap:2px}
.rr-mega a{padding:12px 14px}
.rr-mega a .mt{font-size:14.5px}
.rr-mega a .md{font-size:11.5px;margin-top:3px}

/* ===== UNIFIED VERTICAL RHYTHM (one system) ===== */
.rr{--sp-section:clamp(72px,8vw,108px); --sp-head:clamp(40px,5vw,56px)}
.rr-section{padding:var(--sp-section) 0}
.rr-final{padding:var(--sp-section) 0}
.rr-stats{padding:clamp(52px,6vw,76px) 0}
.rr-shead{margin-bottom:var(--sp-head)}
.rr-services-grid,.rr-pillars,.rr-quotes,.rr-work-grid{gap:24px}
.rr-reviews .topline{margin-bottom:clamp(36px,4vw,48px)}
.rr-hero{padding-top:clamp(72px,8vw,104px);padding-bottom:clamp(64px,7vw,92px)}
@media(max-width:620px){.rr{--sp-section:60px;--sp-head:36px}}

</style>
<style>
/* ===== ADDITIONS — reusable components for secondary pages (added to the .rr library) ===== */
.rr .rr-btn-navy{background:transparent;color:var(--navy);border-color:var(--line-cool)}
.rr .rr-btn-navy:hover{border-color:var(--royal);color:var(--royal);background:var(--offwhite)}

/* SLIM HERO — tier-2 secondary-page banner (bg photo + navy overlay + inline trust) */
.rr .rr-hero-slim{position:relative;background:linear-gradient(180deg,rgba(14,25,36,.74),rgba(20,46,71,.80)),#1F4068 center/cover no-repeat;color:#fff;text-align:center;padding:clamp(74px,9vw,116px) 0 clamp(58px,7vw,88px)}
.rr .rr-hero-slim .rr-hero-eyebrow{font-family:'Space Mono';font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sky);margin-bottom:16px}
.rr .rr-hero-slim h1{color:#fff;font-size:clamp(32px,4.4vw,52px);line-height:1.04;max-width:880px;margin:0 auto}
.rr .rr-hero-slim .rr-tagline-rule{margin:16px auto 0}
.rr .rr-hero-slim .rr-sub{margin:18px auto 0;max-width:620px;color:#d6e0ea;font-size:18px}
.rr .rr-hero-slim .rr-hero-ctas{justify-content:center;margin-top:28px}
.rr .rr-slim-trust{margin-top:26px;font-size:13.5px;font-weight:600;color:#cdd9e6;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center}
.rr .rr-slim-trust .rr-stars{font-size:15px}

/* Offer cards */
.rr .rr-offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rr .rr-offer{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:.2s ease}
.rr .rr-offer:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--sky)}
.rr .rr-offer-head{background:var(--navy);color:#fff;padding:26px 28px;display:flex;align-items:center;gap:18px}
.rr .rr-offer.is-fin .rr-offer-head{background:var(--royal)}
.rr .rr-offer-tag{font-family:'Archivo';font-weight:800;font-size:30px;color:var(--sky);line-height:1;white-space:nowrap}
.rr .rr-offer-head h3{color:#fff;font-size:20px;line-height:1.15}
.rr .rr-offer-head p{color:#c6d3e0;font-size:13px;margin-top:4px}
.rr .rr-offer-body{padding:26px 28px;display:flex;flex-direction:column;flex:1}
.rr .rr-checks{list-style:none;display:flex;flex-direction:column;gap:12px}
.rr .rr-checks li{position:relative;padding-left:30px;font-size:15px;color:var(--slate)}
.rr .rr-checks li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:rgba(106,159,219,.16)}
.rr .rr-checks li::after{content:"";position:absolute;left:6px;top:7px;width:5px;height:9px;border:solid var(--royal);border-width:0 2px 2px 0;transform:rotate(45deg)}
.rr .rr-offer .fine{font-size:12px;color:var(--cool-grey);margin-top:18px}
.rr .rr-offer .rr-btn{margin-top:20px;justify-content:center}

/* Quick compare */
.rr .rr-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rr .rr-cmp{border:1px solid var(--line-cool);border-radius:var(--r-md);padding:30px;background:#fff}
.rr .rr-cmp .lbl{font-family:'Archivo';font-weight:800;font-size:22px;color:var(--navy)}
.rr .rr-cmp .lbl .pin{display:inline-block;font-family:'Space Mono';font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--royal);background:var(--offwhite);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px;margin-left:8px;vertical-align:middle}
.rr .rr-cmp p{margin-top:12px;color:var(--slate-grey);font-size:15.5px}
.rr .rr-compare-note{margin-top:24px;text-align:center;color:var(--slate-grey);font-size:15.5px}
.rr .rr-compare-note b{color:var(--navy)}

/* FAQ accordion */
.rr .rr-faq-list{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.rr .rr-qa{border-bottom:1px solid var(--line)}
.rr .rr-qa-q{width:100%;background:none;border:none;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 4px;font-family:'Public Sans';font-weight:700;font-size:17px;color:var(--navy)}
.rr .rr-qa-q .mk{flex:0 0 auto;width:22px;height:22px;position:relative;transition:transform .25s ease}
.rr .rr-qa-q .mk::before,.rr .rr-qa-q .mk::after{content:"";position:absolute;background:var(--royal);border-radius:2px}
.rr .rr-qa-q .mk::before{left:0;right:0;top:10px;height:2px}
.rr .rr-qa-q .mk::after{top:0;bottom:0;left:10px;width:2px}
.rr .rr-qa.is-open .rr-qa-q .mk{transform:rotate(135deg)}
.rr .rr-qa-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.rr .rr-qa-a .inner{padding:0 4px 24px;color:var(--slate-grey);font-size:15.5px;line-height:1.65}
.rr .rr-qa-a .inner b{color:var(--navy)}
.rr .rr-section.is-mist{background:var(--offwhite)}

@media(max-width:980px){ .rr .rr-offer-grid,.rr .rr-compare{grid-template-columns:1fr} }

/* ===== font lock (beat Divi theme fonts) ===== */
.rr, .rr p, .rr li, .rr a, .rr span, .rr div, .rr button, .rr input{font-family:'Public Sans',system-ui,-apple-system,sans-serif !important}
.rr h1, .rr h2, .rr h3, .rr h4, .rr .rr-offer-tag, .rr .rr-hero-offer .pct, .rr .rr-cmp .lbl, .rr .num{font-family:'Archivo',sans-serif !important}
.rr .rr-hero-eyebrow, .rr .rr-step .idx, .rr .rr-cmp .pin, .rr .ph-label, .rr .rr-hero-offer .ey{font-family:'Space Mono',monospace !important}
.rr .rr-quote blockquote{font-family:'Newsreader',serif !important}
/* ===== hero featured-offer card (full hero, right column) ===== */
.rr .rr-hero-offer{background:#fff;border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-lg);color:var(--slate);text-align:center}
.rr .rr-hero-offer .ey{font-weight:700;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--royal)}
.rr .rr-hero-offer .pct{font-weight:800;font-size:64px;color:var(--navy);line-height:1;margin:10px 0 4px}
.rr .rr-hero-offer .pct small{font-size:24px;color:var(--royal);vertical-align:super}
.rr .rr-hero-offer h3{font-size:20px}
.rr .rr-hero-offer .or{margin:18px 0;font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--cool-grey);text-transform:uppercase;position:relative}
.rr .rr-hero-offer .or::before,.rr .rr-hero-offer .or::after{content:"";position:absolute;top:50%;width:34%;height:1px;background:var(--line-cool)}
.rr .rr-hero-offer .or::before{left:0}.rr .rr-hero-offer .or::after{right:0}
.rr .rr-hero-offer .fin{font-size:15px;color:var(--slate-grey)}
.rr .rr-hero-offer .fin b{color:var(--navy)}
.rr .rr-hero-offer .rr-btn{width:100%;justify-content:center;margin-top:20px}
.rr .rr-hero-offer .fine{font-size:11.5px;color:var(--cool-grey);margin-top:14px}
/* ===== robust 2-up services (never stack on desktop) ===== */
.rr-specials .rr-services-grid{display:grid !important;grid-template-columns:1fr 1fr !important;gap:24px}.rr-specials .rr-services-grid>.rr-card{min-width:0}.rr-specials .rr-final{margin-bottom:0 !important}
@media(max-width:620px){.rr-services-grid{grid-template-columns:1fr !important}}
.rr .rr-card .img img{width:100%;height:100%;object-fit:cover}
/* MOBILE-OPT v1 — homepage parity: center hero + hide trust pills on phone */@media(max-width:980px){.rr .rr-hero-left{text-align:center}.rr .rr-hero .rr-tagline-rule{margin-left:auto;margin-right:auto}.rr .rr-hero .rr-sub{margin-left:auto;margin-right:auto}.rr .rr-hero .rr-hero-ctas{justify-content:center}.rr .rr-hero .rr-trustline{justify-content:center}.rr .rr-hero .rr-trustline .trust-pills{justify-content:center}}@media(max-width:620px){.rr .rr-hero .rr-trustline .trust-pills{display:none}.rr .rr-hero .rr-sub{font-size:16px}}</style><style>.rr .rr-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rr .rr-card2{background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);padding:26px;transition:.2s ease}.rr .rr-card2:hover{border-color:var(--sky);box-shadow:var(--shadow-md);transform:translateY(-3px)}.rr .rr-card2-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.rr .rr-card2-top h3{font-size:19px}.rr .rr-card2 .badge{font-family:'Space Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--royal);background:rgba(106,159,219,.14);border-radius:999px;padding:5px 12px;white-space:nowrap}.rr .rr-card2 p{color:var(--slate-grey);font-size:15px;line-height:1.6}.rr .rr-card2 p a{color:var(--royal);font-weight:600;text-decoration:none}@media(max-width:900px){.rr .rr-cards-grid{grid-template-columns:1fr 1fr}}@media(max-width:580px){.rr .rr-cards-grid{grid-template-columns:1fr}}.rr .rr-signs{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rr .rr-sign{display:flex;gap:16px;background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);padding:24px}.rr .rr-sign .sk{flex-shrink:0;width:42px;height:42px;border-radius:11px;background:rgba(255,140,66,.12);display:flex;align-items:center;justify-content:center}.rr .rr-sign .sk svg{width:22px;height:22px;stroke:var(--orange-deep);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.rr .rr-sign h3{font-size:16.5px}.rr .rr-sign p{margin-top:6px;color:var(--slate-grey);font-size:14.5px;line-height:1.6}@media(max-width:760px){.rr .rr-signs{grid-template-columns:1fr}}.rr .rr-values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.rr .rr-value{background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);padding:28px}.rr .rr-value .ic{width:46px;height:46px;border-radius:12px;background:rgba(106,159,219,.14);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.rr .rr-value .ic svg{width:23px;height:23px;stroke:var(--royal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rr .rr-value h3{font-size:18px}.rr .rr-value p{margin-top:8px;color:var(--slate-grey);font-size:15px;line-height:1.6}.rr .rr-value p a{color:var(--royal);font-weight:600;text-decoration:none}@media(max-width:880px){.rr .rr-values{grid-template-columns:1fr 1fr}}@media(max-width:560px){.rr .rr-values{grid-template-columns:1fr}}.rr .rr-areas{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.rr .rr-area .cty{font-family:'Archivo',sans-serif;font-weight:800;font-size:16px;color:var(--navy);text-decoration:none;display:block;border-bottom:1px solid var(--line-cool);padding-bottom:8px}.rr .rr-area .cty:hover{color:var(--royal)}.rr .rr-area p{margin-top:10px;color:var(--slate-grey);font-size:13px;line-height:1.9}.rr .rr-area p a{color:var(--slate-grey);text-decoration:none;border-bottom:1px solid var(--line-cool);transition:.15s ease}.rr .rr-area p a:hover{color:var(--royal);border-bottom-color:var(--royal)}@media(max-width:980px){.rr .rr-areas{grid-template-columns:1fr 1fr 1fr}}@media(max-width:620px){.rr .rr-areas{grid-template-columns:1fr 1fr}}.rr .rr-prose{max-width:780px;margin:0 auto;color:var(--slate-grey);font-size:17px;line-height:1.8}.rr .rr-prose b{color:var(--navy)}.rr .rr-prose a{color:var(--royal);font-weight:600;text-decoration:none}.rr .rr-prose+.rr-prose{margin-top:18px}.rr .rr-hero-form .frm_forms input[type=text],.rr .rr-hero-form .frm_forms input[type=email],.rr .rr-hero-form .frm_forms input[type=tel],.rr .rr-hero-form .frm_forms input[type=number],.rr .rr-hero-form .frm_forms select,.rr .rr-hero-form .frm_forms textarea{width:100%;font-family:'Public Sans',system-ui,sans-serif;font-size:15px;color:var(--slate);background:var(--offwhite);border:1.5px solid var(--line-cool);border-radius:var(--r-sm);padding:13px 14px;box-sizing:border-box;margin-bottom:0}.rr .rr-hero-form .frm_forms input:focus,.rr .rr-hero-form .frm_forms select:focus,.rr .rr-hero-form .frm_forms textarea:focus{outline:none;border-color:var(--royal);background:#fff;box-shadow:0 0 0 3px rgba(53,94,164,.12)}.rr .rr-hero-form .frm_forms .frm_submit button,.rr .rr-hero-form .frm_forms .frm_button_submit{width:100%;font-family:'Public Sans',sans-serif;font-weight:700;font-size:16px;color:#fff !important;background:var(--royal) !important;border:none !important;border-radius:var(--r-sm) !important;padding:15px;cursor:pointer;transition:.18s ease}.rr .rr-hero-form .frm_forms .frm_submit button:hover,.rr .rr-hero-form .frm_forms .frm_button_submit:hover{background:#2A5BAE !important}.rr .rr-hero-form .frm_forms,.rr .rr-hero-form form{margin:0;padding:0}.rr .rr-hero-form .frm_form_field{width:100%;margin:0 0 12px}.rr .rr-hero-form .frm_primary_label{font-weight:600;color:var(--slate);font-size:14px;margin-bottom:5px;display:block}.rr .rr-hero-form .frm_forms select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6672' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}.rr .rr-hero-form .frm_forms input::placeholder,.rr .rr-hero-form .frm_forms textarea::placeholder{color:var(--cool-grey);opacity:1}</style><div class="rr rr-specials"><style>.rr-js .rr-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.rr-js .rr-reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.rr-js .rr-reveal{opacity:1 !important;transform:none !important;transition:none}}.rr .rr-ana-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:46px;align-items:center}.rr .rr-spec-fig{margin:0;background:#fff;border:1px solid var(--line-cool);border-radius:18px;padding:24px;box-shadow:var(--shadow-md)}.rr .rr-spec-fig svg{width:100%;height:auto;display:block}.rr .rr-spec-fig figcaption{margin-top:12px;text-align:center;font-family:'Space Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--cool-grey)}.rr .rr-spec-tag{display:inline-block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:10px}.rr .rr-arow{display:flex;gap:16px;padding:17px 0;border-top:1px solid var(--line-cool)}.rr .rr-arow .num{flex-shrink:0;width:27px;height:27px;border-radius:50%;background:var(--orange);color:#fff;font-family:'Space Mono',monospace;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.rr .rr-arow h4{font-family:'Archivo',sans-serif;font-weight:700;font-size:16.5px;color:var(--navy);margin-bottom:4px}.rr .rr-arow p{color:var(--slate-grey);font-size:14px;line-height:1.55}@media(max-width:860px){.rr .rr-ana-grid{grid-template-columns:1fr;gap:26px}}.rr .rr-svcstats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.rr .rr-svcstat{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:30px 16px;text-align:center}.rr .rr-svcstatnum{font-family:'Archivo',sans-serif;font-weight:800;font-size:46px;line-height:1;color:var(--navy);letter-spacing:-.02em;display:inline-block}.rr .rr-svcstat .star{font-family:'Archivo',sans-serif;font-size:30px;color:var(--orange);display:inline-block;margin-left:1px;vertical-align:2px}.rr .rr-svcstat .lbl{display:block;margin-top:12px;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;color:var(--slate)}.rr .rr-svcstat .sub{display:block;margin-top:3px;font-size:12.5px;color:var(--cool-grey)}@media(max-width:760px){.rr .rr-svcstats{grid-template-columns:1fr 1fr;gap:14px}.rr .rr-svcstatnum{font-size:40px}}.rr .rr-ctable{border:1px solid var(--line-cool);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--shadow-md)}.rr .rr-ctrow{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.7fr;align-items:center}.rr .rr-ctrow>div{padding:18px 20px;border-bottom:1px solid var(--line-cool);font-size:15px;color:var(--slate-grey)}.rr .rr-cthead>div{background:var(--navy);color:#fff;font-family:'Archivo',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;border-bottom:none}.rr .rr-ctrow .m{font-family:'Archivo',sans-serif;font-weight:700;color:var(--navy);font-size:16px}.rr .rr-ctrow .ls,.rr .rr-ctrow .ct{font-family:'Space Mono',monospace;color:var(--navy);font-size:14px}.rr .rr-ctrow.pick>div{background:rgba(255,140,66,.06)}.rr .rr-ctrow.pick .m{box-shadow:inset 3px 0 0 var(--orange)}.rr .rr-ctrow .pill{display:inline-block;font-family:'Space Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-deep);background:rgba(255,140,66,.15);border-radius:999px;padding:3px 8px;margin-left:8px;vertical-align:middle}.rr .rr-ctrow:last-child>div{border-bottom:none}.rr .rr-ctable .cl{display:none;font-family:'Space Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--cool-grey);margin-right:8px}@media(max-width:760px){.rr .rr-cthead{display:none}.rr .rr-ctrow{grid-template-columns:1fr;border-bottom:7px solid var(--offwhite)}.rr .rr-ctrow:last-child{border-bottom:none}.rr .rr-ctrow>div{border-bottom:1px solid var(--line-cool);padding:11px 18px}.rr .rr-ctrow .m{padding-top:15px}.rr .rr-ctable .cl{display:inline-block}.rr .rr-ctrow.pick .m{box-shadow:inset 0 3px 0 var(--orange)}}.rr .rr-ror{display:grid;grid-template-columns:1fr 1fr;gap:22px}.rr .rr-ror-card{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:30px;box-shadow:var(--shadow-md)}.rr .rr-ror-tag{display:inline-block;font-family:'Space Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-bottom:12px}.rr .rr-ror-card.rep .rr-ror-tag{color:#1f7a52;background:rgba(46,158,107,.13)}.rr .rr-ror-card.rep2 .rr-ror-tag{color:var(--orange-deep);background:rgba(255,140,66,.15)}.rr .rr-ror-card h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:20px;color:var(--navy);margin-bottom:14px}.rr .rr-ror-card ul{list-style:none;margin:0;padding:0}.rr .rr-ror-card li{position:relative;padding:10px 0 10px 30px;font-size:14.5px;color:var(--slate-grey);line-height:1.5;border-top:1px solid var(--line-cool)}.rr .rr-ror-card li:first-child{border-top:none}.rr .rr-ror-card li:before{position:absolute;left:0;top:9px;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px}.rr .rr-ror-card.rep li:before{content:'\2713';color:#2e9e6b}.rr .rr-ror-card.rep2 li:before{content:'\21BB';color:var(--orange-deep)}@media(max-width:760px){.rr .rr-ror{grid-template-columns:1fr}}.rr .rr-edband{background:#15314F;padding:74px 0;text-align:center}.rr .rr-edband .rr-wrap{max-width:880px}.rr .rr-edband .eb-ey{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--orange)}.rr .rr-edband .eb-q{font-family:'Newsreader',Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(24px,3.4vw,37px);line-height:1.32;color:#fff;margin:20px 0 20px}.rr .rr-edband .eb-s{color:#bccadb;font-size:16px;line-height:1.75;max-width:640px;margin:0 auto}.rr .rr-ctaband{padding:70px 0;background:var(--offwhite);border-top:1px solid var(--line-cool);border-bottom:1px solid var(--line-cool);text-align:center}.rr .rr-ctaband .rr-wrap{max-width:720px}.rr .rr-ctaband .ey{display:inline-block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:16px}.rr .rr-ctaband h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(26px,3.3vw,34px);color:var(--navy);letter-spacing:-.025em;line-height:1.16}.rr .rr-ctaband p{color:var(--slate-grey);font-size:16px;line-height:1.6;margin:16px auto 28px;max-width:560px}.rr .rr-ctaband .rr-btn-primary{white-space:nowrap}.rr .rr-locserv{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rr .rr-locserv a{display:block;background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);padding:24px;text-decoration:none;transition:.2s ease}.rr .rr-locserv a:hover{border-color:var(--sky);box-shadow:var(--shadow-md);transform:translateY(-3px)}.rr .rr-locserv .ic{width:44px;height:44px;border-radius:11px;background:rgba(106,159,219,.14);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.rr .rr-locserv .ic svg{width:22px;height:22px;stroke:var(--royal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rr .rr-locserv h3{font-size:18px;color:var(--navy);margin-bottom:6px}.rr .rr-locserv p{color:var(--slate-grey);font-size:14.5px;line-height:1.55}.rr .rr-locserv .go{display:inline-block;margin-top:10px;font-family:'Space Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--royal)}@media(max-width:880px){.rr .rr-locserv{grid-template-columns:1fr 1fr}}@media(max-width:560px){.rr .rr-locserv{grid-template-columns:1fr}}.rr .rr-chips{display:flex;flex-wrap:wrap;gap:10px}.rr .rr-chips a{display:inline-block;background:#fff;border:1px solid var(--line-cool);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--navy);text-decoration:none;transition:.15s ease}.rr .rr-chips a:hover{border-color:var(--royal);color:var(--royal);box-shadow:var(--shadow-sm)}.rr .rr-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rr .rr-proj{position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-cool);box-shadow:var(--shadow-md);aspect-ratio:4/3;background:var(--navy)}.rr .rr-proj img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.rr .rr-proj:hover img{transform:scale(1.06)}.rr .rr-proj .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 16px 14px;background:linear-gradient(to top,rgba(15,30,45,.92),rgba(15,30,45,.4) 55%,rgba(15,30,45,0))}.rr .rr-proj .cap h4{font-family:'Archivo',sans-serif;font-weight:700;font-size:16px;color:#fff}.rr .rr-proj .cap span{display:block;margin-top:3px;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#bcd6ea}@media(max-width:880px){.rr .rr-projects{grid-template-columns:1fr 1fr}}@media(max-width:560px){.rr .rr-projects{grid-template-columns:1fr}}.rr .rr-creds{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.rr .rr-cred{background:#fff;border:1px solid var(--line-cool);border-radius:var(--r-md);padding:22px 14px 20px;text-align:center;display:flex;flex-direction:column;align-items:center}.rr .rr-cred-logo{height:56px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.rr .rr-cred-logo img{max-height:56px;max-width:100%;width:auto;object-fit:contain;display:block}.rr .rr-cred h4{font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;color:var(--navy);line-height:1.3}.rr .rr-cred p{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--cool-grey);margin-top:5px}@media(max-width:860px){.rr .rr-creds{grid-template-columns:1fr 1fr 1fr}}@media(max-width:520px){.rr .rr-creds{grid-template-columns:1fr 1fr}}.rr .rr-feature{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}.rr .rr-feat-media{border-radius:18px;overflow:hidden;border:1px solid var(--line-cool);box-shadow:var(--shadow-md);aspect-ratio:4/3}.rr .rr-feat-media img{width:100%;height:100%;object-fit:cover;display:block}.rr .rr-feature.rev .rr-feat-media{order:2}.rr .rr-feat-body h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(24px,3vw,32px);color:var(--navy);letter-spacing:-.02em;line-height:1.14;margin:8px 0 14px}.rr .rr-feat-body>p{color:var(--slate-grey);font-size:16px;line-height:1.7;margin-bottom:18px}.rr .rr-feat-list{list-style:none;margin:0;padding:0}.rr .rr-feat-list li{position:relative;padding:9px 0 9px 30px;color:var(--slate-grey);font-size:15px;line-height:1.5;border-top:1px solid var(--line-cool)}.rr .rr-feat-list li:first-child{border-top:none}.rr .rr-feat-list li:before{content:'\2713';position:absolute;left:0;top:9px;color:var(--orange-deep);font-weight:700}.rr .rr-feat-list li b{color:var(--navy)}@media(max-width:820px){.rr .rr-feature{grid-template-columns:1fr;gap:24px}.rr .rr-feature.rev .rr-feat-media{order:0}}.rr .rr-spec-fig svg .rr-hot{cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .25s ease;transform-box:fill-box;transform-origin:center}.rr .rr-spec-fig svg .rr-hot-on{transform:scale(1.28);filter:drop-shadow(0 1px 5px rgba(214,109,38,.65))}.rr .rr-spec-fig svg .rr-hot-dim{opacity:.3}.rr .rr-spec-fig{position:relative}.rr .rr-spec-hint{position:absolute;top:14px;right:16px;font-family:'Space Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cool-grey);background:var(--offwhite);border:1px solid var(--line-cool);border-radius:999px;padding:5px 11px;pointer-events:none;transition:opacity .4s ease}.rr .rr-spec-hint.hide{opacity:0}.rr .rr-spec-list .rr-arow{cursor:pointer;transition:background .22s ease,opacity .22s ease,box-shadow .22s ease;padding-left:14px;margin-left:-14px;border-radius:0 10px 10px 0}.rr .rr-spec-list .rr-arow.rr-row-on{background:rgba(255,140,66,.08);box-shadow:inset 4px 0 0 var(--orange)}.rr .rr-spec-list .rr-arow.rr-row-dim{opacity:.5}.rr .rr-spec-list .rr-arow .num{transition:transform .2s ease,box-shadow .2s ease}.rr .rr-spec-list .rr-arow.rr-row-on .num{transform:scale(1.14);box-shadow:0 0 0 4px rgba(255,140,66,.2)}.rr .rr-spec-list .rr-arow.rr-row-on h4{color:var(--orange-deep)}.rr .rr-arow:focus,.rr .rr-spec-fig svg .rr-hot:focus{outline:none}@media(prefers-reduced-motion:reduce){.rr .rr-spec-fig svg .rr-hot{transition:none}}</style><script>document.documentElement.classList.add("rr-js");</script>
<div class="rr rr-cp">

<style>
.rr.rr-cp{--steel:#2C3742;--steel-deep:#1F4068;--concrete:#FAF7F1;--line:#E4DDD0;--hv:#FF8C42;--hv-deep:#E87A35}
.rr.rr-cp .rr-eyebrow{color:var(--hv-deep)}
.rr.rr-cp .rr-eyebrow.on-dark{color:#F7B96F}
.rr.rr-cp .rr-badgebar .dot{background:var(--hv)}
.rr.rr-cp .is-concrete{background:var(--concrete);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* portfolio switch: two big tabs */
.rr.rr-cp .pf-tabs{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px;background:#FAF7F1;border:1px solid rgba(255,255,255,.6);border-radius:13px;padding:5px;max-width:500px;margin:0 0 20px;box-shadow:0 10px 28px rgba(9,20,34,.28)}
.rr.rr-cp .pf-tab{position:relative;display:flex;align-items:center;gap:10px;padding:8px 14px 10px;border-radius:9px;text-decoration:none;color:#1F4068;min-width:0;transition:background .2s,color .2s}
.rr.rr-cp .pf-tab .ic{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,140,66,.14);color:#E87A35;transition:background .2s,color .2s}
.rr.rr-cp .pf-tab svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9}
.rr.rr-cp .pf-tab b{display:block;font-family:'Archivo',sans-serif;font-weight:800;font-size:15px;line-height:1.15;letter-spacing:-.01em;white-space:nowrap}
.rr.rr-cp .pf-tab b .w{display:inline!important;font:inherit!important;color:inherit!important;letter-spacing:inherit}
.rr.rr-cp .pf-tab span{display:block;font-family:'Public Sans',sans-serif;font-size:11.5px;color:#5A6672;margin-top:1px}
.rr.rr-cp .pf-tab.on{background:#1F4068;color:#fff;box-shadow:0 4px 14px rgba(31,64,104,.35)}
.rr.rr-cp .pf-tab.on span{color:#c9d6e3}
.rr.rr-cp .pf-tab.on .ic{background:#FF8C42;color:#fff}
.rr.rr-cp .pf-tab.on:after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:3px;border-radius:3px;background:#FF8C42}
.rr.rr-cp .pf-tab:not(.on):hover{background:#fff}
.rr.rr-cp .pf-tab:not(.on){padding-right:32px}
.rr.rr-cp .pf-tab:not(.on):after{content:"\2192";position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#FF8C42;font-weight:800;font-size:17px;font-family:'Archivo',sans-serif}
.rr.rr-cp .pf-viewing{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;margin:18px auto 0;font-size:15px;color:var(--slate-grey);text-align:center}
.rr.rr-cp .pf-viewing a{font-family:'Archivo',sans-serif;font-weight:800;color:var(--steel-deep);border:2px solid var(--steel-deep);border-radius:999px;padding:6px 14px;text-decoration:none;white-space:nowrap}
.rr.rr-cp .pf-viewing a:hover{background:var(--steel-deep);color:#fff}
/* filters */
.rr.rr-cp .cp-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 34px}
.rr.rr-cp .cp-filters button{border:1px solid var(--line);background:#fff;color:var(--steel-deep);border-radius:999px;padding:9px 16px;font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;cursor:pointer}
.rr.rr-cp .cp-filters button.on{background:var(--steel-deep);border-color:var(--steel-deep);color:#fff}
/* project cards */
.rr.rr-cp .cp-list{display:flex!important;flex-direction:column;gap:34px;max-width:1180px;margin:0 auto}
.rr.rr-cp .cp-card{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)!important;gap:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-md);scroll-margin-top:120px}
.rr.rr-cp .cp-card.flip .cp-media{order:2}
.rr.rr-cp .cp-card[hidden]{display:none!important}
.rr.rr-cp .cp-media{background:#10181f;display:flex;flex-direction:column;min-width:0}
.rr.rr-cp .cp-main{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in}
.rr.rr-cp .cp-main img{width:100%;height:100%;object-fit:cover;display:block}
.rr.rr-cp .cp-main figcaption{position:absolute;left:12px;bottom:12px;right:12px;background:rgba(16,24,31,.78);color:#fff;font-size:13px;line-height:1.35;padding:7px 11px;border-radius:8px;width:max-content;max-width:calc(100% - 24px)}
.rr.rr-cp .cp-thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto}
.rr.rr-cp .cp-thumbs button{flex:0 0 76px;height:56px;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;cursor:pointer;background:none;opacity:.7}
.rr.rr-cp .cp-thumbs button.on{border-color:var(--hv);opacity:1}
.rr.rr-cp .cp-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.rr.rr-cp .cp-body{padding:32px 34px;display:flex;flex-direction:column;gap:14px;min-width:0}
.rr.rr-cp .cp-kicker{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--hv-deep)}
.rr.rr-cp .cp-body h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:27px;line-height:1.15;color:var(--navy);margin:0}
.rr.rr-cp .cp-body h3 small{display:block;font-size:15px;font-weight:600;color:var(--slate-grey);margin-top:5px}
.rr.rr-cp .cp-body p{color:var(--slate-grey);font-size:15.5px;line-height:1.6;margin:0}
.rr.rr-cp .cp-spec{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0;border-top:2px solid var(--steel-deep);margin:4px 0 0}
.rr.rr-cp .cp-spec div{padding:11px 12px 11px 0;border-bottom:1px solid var(--line);min-width:0}
.rr.rr-cp .cp-spec dt{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-grey)}
.rr.rr-cp .cp-spec dd{margin:3px 0 0;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;color:var(--steel-deep);line-height:1.3}
.rr.rr-cp .cp-chip{align-self:flex-start;margin-top:auto;background:var(--concrete);border:1px solid var(--line);color:var(--steel-deep);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700}
.rr.rr-cp .cp-chip:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--hv);margin-right:8px;vertical-align:1px}
/* how row */
.rr.rr-cp .cp-how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.rr.rr-cp .cp-how div{border-top:3px solid var(--hv);padding-top:14px}
.rr.rr-cp .cp-how b{display:block;font-family:'Archivo',sans-serif;font-size:17px;color:#fff;margin-bottom:6px}
.rr.rr-cp .cp-how p{color:#c7d2dc;font-size:14.5px;line-height:1.55}
/* more work grid */
.rr.rr-cp .cp-more{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rr.rr-cp .cp-more figure{margin:0;aspect-ratio:1/1;border-radius:12px;overflow:hidden;cursor:zoom-in;position:relative}
.rr.rr-cp .cp-more img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.rr.rr-cp .cp-more figure:hover img{transform:scale(1.04)}
.rr.rr-cp .cp-more figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-size:12px;line-height:1.3}
/* brands */
.rr.rr-cp .cp-certs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.rr.rr-cp .cp-certs div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 12px;text-align:center}
.rr.rr-cp .cp-certs b{display:block;font-family:'Archivo',sans-serif;font-weight:800;font-size:17px;color:var(--navy)}
.rr.rr-cp .cp-certs span{display:block;font-size:12.5px;color:var(--slate-grey);margin-top:4px}
/* final CTA button row: the theme's .rr-two-tel leaves them touching */
.rr.rr-cp .rr-two-tel{display:flex!important;flex-wrap:wrap;gap:14px;align-items:center;margin:0 auto;max-width:900px}
.rr.rr-cp .rr-two-tel .rr-btn{margin:0!important}
.rr.rr-cp .rr-two-tel br,.rr.rr-cp .rr-hero-ctas br{display:none!important}   /* wpautop inserts <br> between the anchors */
/* map banner */
.rr.rr-cp .pf-map{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--steel-deep);border-radius:18px;padding:26px 30px;color:#fff}
.rr.rr-cp .pf-map b{font-family:'Archivo',sans-serif;font-weight:800;font-size:22px;display:block}
.rr.rr-cp .pf-map span{color:#c7d2dc;font-size:15px}
/* lightbox */
.cp-lb{position:fixed;inset:0;background:rgba(8,12,16,.92);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;flex-direction:column;gap:12px}
.cp-lb[hidden]{display:none!important}
.cp-lb img{max-width:100%;max-height:82vh;border-radius:8px}
.cp-lb p{color:#fff;font:14px/1.4 'Public Sans',sans-serif;text-align:center;margin:0}
.cp-lb button{position:absolute;top:14px;right:16px;background:none;border:0;color:#fff;font-size:34px;cursor:pointer;line-height:1}
/* responsive */
@media (max-width:1024px){ .rr.rr-cp .cp-certs{grid-template-columns:repeat(3,minmax(0,1fr))}.rr.rr-cp .cp-more{grid-template-columns:repeat(3,minmax(0,1fr))}.rr.rr-cp .cp-how{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.rr.rr-cp .cp-card{grid-template-columns:1fr!important}.rr.rr-cp .cp-card.flip .cp-media{order:0}.rr.rr-cp .cp-body{padding:24px 20px}.rr.rr-cp .cp-body h3{font-size:23px}}
@media (max-width:600px){ .rr.rr-cp .pf-tabs{max-width:100%}.rr.rr-cp .pf-tab{flex-direction:row;align-items:center;gap:9px;padding:7px 10px 9px}.rr.rr-cp .pf-tab b .w{display:none!important}.rr.rr-cp .pf-tab b{font-size:14.5px}.rr.rr-cp .pf-tab .ic{width:26px;height:26px;flex-basis:26px}.rr.rr-cp .pf-tab svg{width:15px;height:15px}.rr.rr-cp .pf-tab.on:after{left:12px;right:12px}
 .rr.rr-cp .cp-spec{grid-template-columns:1fr!important}.rr.rr-cp .cp-certs{grid-template-columns:1fr 1fr}.rr.rr-cp .cp-more{grid-template-columns:1fr 1fr}.rr.rr-cp .cp-how{grid-template-columns:1fr}
 .rr.rr-cp .cp-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.rr.rr-cp .cp-filters button{flex:0 0 auto;font-size:13px}.rr.rr-cp .cp-main figcaption{font-size:12px}
 .rr.rr-cp .pf-map{padding:22px 20px}.rr.rr-cp .pf-map b{font-size:19px}}
</style>
<section class="rr-hero" style="background:linear-gradient(100deg,rgba(15,22,30,.88) 0%,rgba(28,42,56,.7) 48%,rgba(28,42,56,.25) 100%),url('https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-scaled.jpg') center/cover no-repeat">
  <div class="rr-wrap"><div class="rr-hero-grid">
    <div class="rr-hero-left">
      <nav class="pf-tabs" aria-label="Choose a portfolio"><a class="pf-tab on" href="https://reasonablecontractingservices.com/gallery/" aria-current="page"><span class="ic"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3 11.5 12 4l9 7.5"/><path d="M5.5 10v10h13V10"/><path d="M10 20v-6h4v6"/></svg></span><div><b>Residential<span class="w"> Projects</span></b><span>Homes</span></div></a><a class="pf-tab" href="https://reasonablecontractingservices.com/commercial-roofing-projects/"><span class="ic"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20V6l8-3v17"/><path d="M12 9h8v11"/><path d="M2 20h20"/><path d="M7 8h2M7 12h2M7 16h2M15 13h2M15 16h2"/></svg></span><div><b>Commercial<span class="w"> Projects</span></b><span>Buildings</span></div></a></nav>
      <div class="rrs-m rrs-band"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front.jpg" class="skip-lazy" loading="eager" fetchpriority="high" decoding="sync" alt="Aerial view of a completed Reasonable Roofing shingle roof on a columned Michigan colonial in autumn" srcset="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1536x1152.jpg 1536w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front.jpg 2000w" sizes="100vw"><span class="rrs-fade"></span></div><div class="rrs-m rrs-pill"><svg class="rrs-g" viewBox="0 0 48 48" aria-hidden="true"><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"/><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/></svg><b><span data-rr-live="avg">4.8</span></b><span class="rrs-stars">★★★★★</span><span class="rrs-pilltxt"><span data-rr-live="total">255</span> Google reviews</span></div><div class="rrs-m rrs-cta"><a class="rrs-call" href="tel:8109843420"><span class="rrs-callrow"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z"/></svg><b>Call Now</b><span class="rrs-num">(810) 984-3420</span></span><span class="rrs-callsub">Free estimate · No pressure</span></a><a class="rrs-alt" href="#estimate">Can’t talk? Request your estimate →</a><div class="rrs-trust"><span><b>1984</b>Family-run</span><span><b>A+</b>BBB Rated</span><span><b>Dual-Elite</b>Certified</span></div></div><div class="rr-hero-eyebrow">Residential Roofing · Project Gallery</div>
      <h1>Residential roofing, on the record.</h1>
      <p class="rr-tagline">Real homes, real systems, the year we finished.</p>
      <p class="rr-prose" style="color:#dbe4ee">A sample of our recent residential work, from designer synthetic shake to copper-valley estates on the St. Clair River. Each project below lists the kind of home, the roof system that went on, and what the job involved, so you can see the kind of work we do before we ever walk your roof.</p>
      <div class="rr-hero-ctas"><a class="rr-btn rr-btn-primary" href="#estimate">Get My Free Estimate</a><a class="rr-btn rr-btn-ghost" href="tel:8109843420">Port Huron (810) 984-3420</a><a class="rr-btn rr-btn-ghost" href="tel:2488003269">Troy (248) 800-3269</a></div>
      <div class="rr-trustline"><div class="g-rating"><span class="rr-stars">★★★★★</span> <span data-rr-live="avg">4.8</span> · <span data-rr-live="total">255</span> Reviews</div><div class="trust-pills"><div class="item">Since 1984</div><div class="item">Licensed & Insured</div></div></div>
    </div>
    <div class="rr-hero-form" id="estimate">
      <div class="fh"><span class="rrs-m rrs-eyebrow">Free, no-obligation estimate</span><h3>Get your free estimate</h3><p>Tell us about your home and what you are thinking about. A local expert calls you back.</p></div>

Service Type Form Fill

GET IN TOUCH

If you are human, leave this field blank.			

<div class="privacy">No spam, ever. Estimates are free.</div>
    </div>
  </div></div>
</section>

<section class="rr-section" style="padding:30px 0 0"><div class="rr-wrap">
  <div class="pf-viewing"><span>You are viewing <b>residential projects</b> only. Managing a commercial building?</span><a href="https://reasonablecontractingservices.com/commercial-roofing-projects/">See Commercial Projects →</a></div>
</div></section>

<section class="rr-reveal rr-section" style="padding-top:10px"><div class="rr-wrap">
  <div class="rr-shead"><span class="rr-eyebrow">Recent Projects</span><h2>A look at some of our recent residential work.</h2><p>A sample of the homes we have re-roofed, from steep estate roofs to riverfront copper work. We add projects as they wrap up. Filter by the kind of roof you are considering.</p></div>
  <div class="cp-filters" role="group" aria-label="Filter projects"><button type="button" data-f="all" class="on">All projects</button><button type="button" data-f="designer" class="">Designer & synthetic</button><button type="button" data-f="architectural" class="">Architectural shingle</button><button type="button" data-f="steep" class="">Steep & complex roofs</button><button type="button" data-f="waterfront" class="">Waterfront</button><button type="button" data-f="exterior" class="">Roof + siding</button></div>
  <div class="cp-list"><article class="cp-card" id="oakland-hills-estate" data-tags="designer steep"><div class="cp-media"><figure class="cp-main" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-scaled.jpg"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-1024x768.jpg" alt="The front elevation, finished" loading="lazy"><figcaption>The front elevation, finished</figcaption></figure><div class="cp-thumbs"><button type="button" class="on" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-scaled.jpg" data-cap="The front elevation, finished" aria-label="The front elevation, finished"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152042_0255_1781212696647_photo-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152042_0255_1781212696647_photo-scaled.jpg" data-cap="The full estate above the golf course" aria-label="The full estate above the golf course"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152042_0255_1781212696647_photo-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152402_0264_1781212694751_photo-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152402_0264_1781212694751_photo-scaled.jpg" data-cap="Multi-width shake up close" aria-label="Multi-width shake up close"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152402_0264_1781212694751_photo-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152640_0269_1781212692935_photo-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152640_0269_1781212692935_photo-scaled.jpg" data-cap="Garage wing and snow guards" aria-label="Garage wing and snow guards"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152640_0269_1781212692935_photo-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152842_0274_1781212665328_photo-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152842_0274_1781212665328_photo-scaled.jpg" data-cap="Roofline detail" aria-label="Roofline detail"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152842_0274_1781212665328_photo-300x225.jpg" alt="" loading="lazy"></button></div></div><div class="cp-body"><div class="cp-kicker">Designer roof · Golf-course estate</div><h3>Oakland Hills Estate<small>Bloomfield Hills, Michigan</small></h3><p>A white colonial estate overlooking the golf course, re-roofed in DaVinci Multi-Width Shake, a synthetic shake with the look of cedar and none of the upkeep. Steep pitches, woven metal W-valleys, new chimney flashing and snow guards. The project was nominated for DaVinci's Best Roof of the Year 2025.</p><dl class="cp-spec"><div><dt>System</dt><dd>DaVinci Multi-Width Shake</dd></div><div><dt>Completed</dt><dd>2025</dd></div><div><dt>Home</dt><dd>Colonial estate</dd></div><div><dt>Details</dt><dd>W-valleys · snow guards</dd></div></dl><div class="cp-chip">DaVinci Roof of the Year nominee</div></div></article><article class="cp-card flip" id="executive-colonial-estate" data-tags="architectural steep"><div class="cp-media"><figure class="cp-main" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front.jpg"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1024x768.jpg" alt="The front elevation, finished" loading="lazy"><figcaption>The front elevation, finished</figcaption></figure><div class="cp-thumbs"><button type="button" class="on" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front.jpg" data-cap="The front elevation, finished" aria-label="The front elevation, finished"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013120921_0159_D-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013120921_0159_D-scaled.jpg" data-cap="The estate from above" aria-label="The estate from above"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013120921_0159_D-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-gardens-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-gardens.jpg" data-cap="Hip and valley roofing over the gardens" aria-label="Hip and valley roofing over the gardens"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-gardens-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013121411_0170_D-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013121411_0170_D-scaled.jpg" data-cap="Rear elevation and patio" aria-label="Rear elevation and patio"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013121411_0170_D-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-rear-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-rear.jpg" data-cap="The rear, complete" aria-label="The rear, complete"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-rear-300x225.jpg" alt="" loading="lazy"></button></div></div><div class="cp-body"><div class="cp-kicker">Luxury shingle · Steep-slope estate</div><h3>Executive Colonial Estate<small>St. Clair County, Michigan</small></h3><p>A columned colonial estate set in the trees, with roof pitches of 12/12 and steeper. The old wood shake came off and CertainTeed Landmark Grand Manor, CertainTeed's super-heavyweight luxury shingle, went on with black steel W-valleys and new chimney flashing.</p><dl class="cp-spec"><div><dt>System</dt><dd>CertainTeed Grand Manor</dd></div><div><dt>Completed</dt><dd>2025</dd></div><div><dt>Pitch</dt><dd>12/12 and steeper</dd></div><div><dt>Tear-off</dt><dd>Wood shake removed</dd></div></dl><div class="cp-chip">Steep-slope specialist</div></div></article><article class="cp-card" id="riverfront-estate" data-tags="architectural steep waterfront exterior"><div class="cp-media"><figure class="cp-main" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter.jpg"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter-1024x768.jpg" alt="A Great Lakes freighter passing the finished roof" loading="lazy"><figcaption>A Great Lakes freighter passing the finished roof</figcaption></figure><div class="cp-thumbs"><button type="button" class="on" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter.jpg" data-cap="A Great Lakes freighter passing the finished roof" aria-label="A Great Lakes freighter passing the finished roof"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-wide-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-wide.jpg" data-cap="The home above the St. Clair River" aria-label="The home above the St. Clair River"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-wide-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-channel-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-channel.jpg" data-cap="Overlooking the shipping channel" aria-label="Overlooking the shipping channel"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-channel-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-overhead-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-overhead.jpg" data-cap="The full roofscape from overhead" aria-label="The full roofscape from overhead"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-overhead-300x225.jpg" alt="" loading="lazy"></button><button type="button" class="" data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013133945_0205_D-1024x768.jpg" data-big="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013133945_0205_D-scaled.jpg" data-cap="Front of the home" aria-label="Front of the home"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013133945_0205_D-300x225.jpg" alt="" loading="lazy"></button></div></div><div class="cp-body"><div class="cp-kicker">Roof + siding · St. Clair River home</div><h3>Riverfront Estate<small>Saint Clair, Michigan</small></h3><p>A brick home on the St. Clair River, where the freighters pass the back lawn. The cedar shake came off, Owens Corning Duration shingles went on with copper W-valleys and copper flashing, and the siding was redone in the same project.</p><dl class="cp-spec"><div><dt>System</dt><dd>Owens Corning Duration</dd></div><div><dt>Completed</dt><dd>2022</dd></div><div><dt>Details</dt><dd>Copper valleys & flashing</dd></div><div><dt>Scope</dt><dd>Roof + siding</dd></div></dl><div class="cp-chip">Roof + siding, one project</div></div></article></div>
</div></section>

<section class="rr-reveal rr-section is-navy"><div class="rr-wrap">
  <div class="rr-shead"><span class="rr-eyebrow on-dark">What You Get</span><h2>How a residential job runs.</h2></div>
  <div class="cp-how"><div><b>Roof and attic check first</b><p>We look at the roof, the ventilation and the attic before we price anything, and we photograph what we find.</p></div><div><b>The right system for the house</b><p>Architectural shingles, luxury shingles, designer synthetic shake and slate, copper and metal details. We match the system to the home.</p></div><div><b>Permits handled</b><p>We pull the building permit your city or township requires, so the job is inspected and on the record.</p></div><div><b>Documented start to finish</b><p>An aerial roof report and before-and-after photos on every project, for your records and your insurer.</p></div></div>
</div></section>

<section class="rr-reveal rr-section is-concrete"><div class="rr-wrap">
  <div class="rr-shead"><span class="rr-eyebrow">Credentials & Systems</span><h2>The credentials and brands behind the work.</h2><p>Manufacturer credentials mean trained crews and access to the strongest warranties on those systems.</p></div>
  <div class="cp-certs"><div><b>Owens Corning</b><span>Platinum Preferred Contractor</span></div><div><b>GAF</b><span>Master Elite Contractor</span></div><div><b>CertainTeed</b><span>Landmark & Grand Manor</span></div><div><b>DaVinci Roofscapes</b><span>Designer shake & slate</span></div><div><b>Copper & metal</b><span>Valleys, flashing & accents</span></div><div><b>BBB</b><span>A+ rated</span></div></div>
</div></section>

<section class="rr-reveal rr-section"><div class="rr-wrap">
  <div class="rr-shead"><span class="rr-eyebrow">More Work</span><h2>From the rest of the residential archive.</h2><p>Tap any photo to see it full size.</p></div>
  <div class="cp-more"><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-onsite.jpg" alt="Riverfront estate: completed roof on the channel" loading="lazy" decoding="async"><figcaption>Riverfront estate: completed roof on the channel</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-truck.jpg" alt="Riverfront colonial: completed roof replacement" loading="lazy" decoding="async"><figcaption>Riverfront colonial: completed roof replacement</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-onsite.jpg" alt="Executive colonial: completed roof replacement" loading="lazy" decoding="async"><figcaption>Executive colonial: completed roof replacement</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-fountain.jpg" alt="Executive estate: rear elevation and water gardens" loading="lazy" decoding="async"><figcaption>Executive estate: rear elevation and water gardens</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152606_0268_1781212691865_photo-scaled.jpg" alt="Multi-width shake roof: completed" loading="lazy" decoding="async"><figcaption>Multi-width shake roof: completed</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_152656_0270_1781212672736_photo-scaled.jpg" alt="Completed shake roof and garage" loading="lazy" decoding="async"><figcaption>Completed shake roof and garage</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/brick-executive-complete.jpg" alt="Executive brick home: completed roof replacement" loading="lazy" decoding="async"><figcaption>Executive brick home: completed roof replacement</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/winter-colonial-complete.jpg" alt="Historic white colonial: winter roof replacement" loading="lazy" decoding="async"><figcaption>Historic white colonial: winter roof replacement</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-768x432.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-300x169.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-480x270.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-768x432.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-980x552.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-1024x577.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-1080x608.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-1280x721.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete-1536x865.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/craftsman-bungalow-complete.jpg" alt="Craftsman bungalow: completed roof" loading="lazy" decoding="async"><figcaption>Craftsman bungalow: completed roof</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-768x402.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-300x157.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-480x251.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-768x402.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete-980x513.jpg 980w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/cedar-farmhouse-complete.jpg" alt="Cedar-sided farmhouse: completed roof replacement" loading="lazy" decoding="async"><figcaption>Cedar-sided farmhouse: completed roof replacement</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/gambrel-colonial-complete.jpg" alt="Gambrel colonial with standing-seam porch accents" loading="lazy" decoding="async"><figcaption>Gambrel colonial with standing-seam porch accents</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-treeline.jpg" alt="Executive estate in the fall treeline" loading="lazy" decoding="async"><figcaption>Executive estate in the fall treeline</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-768x577.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-480x361.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-768x577.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-980x736.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-1024x770.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-1080x812.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-1280x962.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128-1536x1154.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-10T145437.128.jpg" alt="Recent project detail" loading="lazy" decoding="async"><figcaption>Recent project detail</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-768x576.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-300x225.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-480x360.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-768x576.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-980x735.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-1024x768.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-1080x810.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-1280x960.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-1536x1152.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T142649.334-scaled.jpg" alt="Completed renovation" loading="lazy" decoding="async"><figcaption>Completed renovation</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-768x432.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-300x169.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-400x516.jpg 400w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-480x270.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-768x432.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-980x551.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-1024x576.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-1080x608.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-1280x720.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425-1536x864.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2025/02/Untitled-2025-02-12T102743.425.jpg" alt="Recent residential project" loading="lazy" decoding="async"><figcaption>Recent residential project</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2021/05/Custom-Copper-Trim-768x451.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2021/05/Custom-Copper-Trim-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2021/05/Custom-Copper-Trim-300x176.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2021/05/Custom-Copper-Trim-768x451.jpg 768w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2021/05/Custom-Copper-Trim.jpg" alt="Custom copper trim work" loading="lazy" decoding="async"><figcaption>Custom copper trim work</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-768x506.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-300x198.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-768x506.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-1024x675.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001-1536x1012.jpg 1536w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2021/04/Hines-Don-1406-16th-001.jpg" alt="Legacy residential project" loading="lazy" decoding="async"><figcaption>Legacy residential project</figcaption></figure><figure><img src="https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028-768x584.jpg" srcset='https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028-150x150.jpg 150w, https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028-300x228.jpg 300w, https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028-768x584.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028-1024x778.jpg 1024w' sizes='(max-width:640px) 46vw, (max-width:1024px) 31vw, 23vw' data-full="https://reasonablecontractingservices.com/wp-content/uploads/2021/05/After-pics-028.jpg" alt="Legacy project, after" loading="lazy" decoding="async"><figcaption>Legacy project, after</figcaption></figure></div>
  <div style="margin-top:34px"><div class="pf-viewing"><span>You are viewing <b>residential projects</b> only. Managing a commercial building?</span><a href="https://reasonablecontractingservices.com/commercial-roofing-projects/">See Commercial Projects →</a></div></div>
</div></section>

<section class="rr-reveal rr-section" style="padding-top:0"><div class="rr-wrap">
  <div class="pf-map"><div><b>See 2,000+ completed projects on the map.</b><span>Find the roofs we have done in your neighborhood.</span></div><a class="rr-btn rr-btn-primary" href="https://hub.reasonablecontractingservices.com/projects" target="_blank" rel="noopener">Open the Project Map</a></div>
</div></section>

<section class="rr-reveal rr-section is-navy"><div class="rr-wrap" style="text-align:center">
  <div class="rr-shead" style="margin-bottom:28px"><span class="rr-eyebrow on-dark">Your Home Next</span><h2>Put your roof on this list.</h2><p>Tell us about your home. We will walk the roof and give you a straight estimate. Estimates are free.</p></div>
  <div class="rr-two-tel" style="justify-content:center"><a class="rr-btn rr-btn-primary" href="#estimate">Get My Free Estimate</a><a class="rr-btn rr-btn-ghost" href="tel:8109843420">Port Huron (810) 984-3420</a><a class="rr-btn rr-btn-ghost" href="tel:2488003269">Troy (248) 800-3269</a></div>
  <p style="margin-top:22px;color:#aab8c7;font-size:14px">Family-owned since 1984 · Michigan Builders License #262000657 · Licensed & insured · <a href="https://reasonablecontractingservices.com/roofing-contractors/" style="color:#F7B96F">Residential roofing services</a></p>
</div></section>
</div><script type="application/ld+json">{"@context": "https://schema.org", "@type": "CollectionPage", "name": "Residential Roofing Project Gallery", "url": "https://reasonablecontractingservices.com/gallery/", "description": "Recent residential roofing projects by Reasonable Roofing & Contracting in Michigan, with the roof system and scope of each.", "publisher": {"@type": "RoofingContractor", "name": "Reasonable Roofing & Contracting", "@id": "https://reasonablecontractingservices.com/#organization", "url": "https://reasonablecontractingservices.com/", "telephone": ["(810) 984-3420", "(248) 800-3269"], "hasCredential": {"@type": "EducationalOccupationalCredential", "name": "Michigan Residential Builders License", "identifier": "262000657"}}, "mainEntity": {"@type": "ItemList", "itemListElement": [{"@type": "ListItem", "position": 1, "url": "https://reasonablecontractingservices.com/gallery/#oakland-hills-estate", "item": {"@type": "CreativeWork", "name": "Oakland Hills Estate roofing project", "image": "https://reasonablecontractingservices.com/wp-content/uploads/2026/06/dji_fly_20260611_153506_0287_1781212609945_photo-scaled.jpg", "description": "A white colonial estate overlooking the golf course, re-roofed in DaVinci Multi-Width Shake, a synthetic shake with the look of cedar and none of the upkeep. Steep pitches, woven metal W-valleys, new chimney flashing and snow guards. The project was nominated for DaVinci's Best Roof of the Year 2025.", "contentLocation": {"@type": "Place", "address": {"@type": "PostalAddress", "addressLocality": "Bloomfield Hills", "addressRegion": "MI", "addressCountry": "US"}}, "creator": {"@id": "https://reasonablecontractingservices.com/#organization"}}}, {"@type": "ListItem", "position": 2, "url": "https://reasonablecontractingservices.com/gallery/#executive-colonial-estate", "item": {"@type": "CreativeWork", "name": "Executive Colonial Estate roofing project", "image": "https://reasonablecontractingservices.com/wp-content/uploads/2026/09/executive-estate-front.jpg", "description": "A columned colonial estate set in the trees, with roof pitches of 12/12 and steeper. The old wood shake came off and CertainTeed Landmark Grand Manor, CertainTeed's super-heavyweight luxury shingle, went on with black steel W-valleys and new chimney flashing.", "contentLocation": {"@type": "Place", "address": {"@type": "PostalAddress", "addressLocality": "St. Clair County", "addressRegion": "MI", "addressCountry": "US"}}, "creator": {"@id": "https://reasonablecontractingservices.com/#organization"}}}, {"@type": "ListItem", "position": 3, "url": "https://reasonablecontractingservices.com/gallery/#riverfront-estate", "item": {"@type": "CreativeWork", "name": "Riverfront Estate roofing project", "image": "https://reasonablecontractingservices.com/wp-content/uploads/2026/09/riverfront-estate-freighter.jpg", "description": "A brick home on the St. Clair River, where the freighters pass the back lawn. The cedar shake came off, Owens Corning Duration shingles went on with copper W-valleys and copper flashing, and the siding was redone in the same project.", "contentLocation": {"@type": "Place", "address": {"@type": "PostalAddress", "addressLocality": "Saint Clair", "addressRegion": "MI", "addressCountry": "US"}}, "creator": {"@id": "https://reasonablecontractingservices.com/#organization"}}}]}}</script><script type="application/ld+json">{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://reasonablecontractingservices.com/"}, {"@type": "ListItem", "position": 2, "name": "Gallery", "item": "https://reasonablecontractingservices.com/gallery/"}]}</script><script>document.documentElement.classList.add("rr-js");</script><script>(function(){var D=document;D.documentElement.classList.add("rr-js");function ready(fn){if(D.readyState!="loading")fn();else D.addEventListener("DOMContentLoaded",fn);}ready(function(){var rm=window.matchMedia&&matchMedia("(prefers-reduced-motion: reduce)").matches;var rev=[].slice.call(D.querySelectorAll(".rr-reveal"));if(rm||!("IntersectionObserver"in window)){rev.forEach(function(e){e.classList.add("in");});}else{var io=new IntersectionObserver(function(es){es.forEach(function(en){if(en.isIntersecting){en.target.classList.add("in");io.unobserve(en.target);}});},{threshold:0.12,rootMargin:"0px 0px -8% 0px"});rev.forEach(function(e){io.observe(e);});}var nums=[].slice.call(D.querySelectorAll(".rr-svcstatnum[data-to]"));function run(el){var to=parseFloat(el.getAttribute("data-to")),suf=el.getAttribute("data-suf")||"",dec=to%1!=0,t0=null,dur=1400;function st(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/dur,1),e=1-Math.pow(1-p,3),v=to*e;el.textContent=(dec?v.toFixed(1):Math.round(v))+suf;if(p<1)requestAnimationFrame(st);}requestAnimationFrame(st);}if(rm||!("IntersectionObserver"in window)){nums.forEach(function(el){el.textContent=el.getAttribute("data-to")+(el.getAttribute("data-suf")||"");});}else{var io2=new IntersectionObserver(function(es){es.forEach(function(en){if(en.isIntersecting){run(en.target);io2.unobserve(en.target);}});},{threshold:0.6});nums.forEach(function(el){io2.observe(el);});}});})();</script><script>(function(){var D=document;function init(spec){var fig=spec.querySelector('.rr-spec-fig svg');if(!fig)return;var rows=[].slice.call(spec.querySelectorAll('.rr-arow'));var hotByNum={},rowByNum={};rows.forEach(function(r){var x=r.querySelector('.num');if(x){rowByNum[parseInt(x.textContent,10)]=r;}});[].slice.call(fig.querySelectorAll('g')).forEach(function(g){var t=g.querySelector('text'),c=g.querySelector('circle');if(t&&c){var nn=parseInt(t.textContent,10);if(nn){hotByNum[nn]=g;g.setAttribute('class',(g.getAttribute('class')||'')+' rr-hot');g.setAttribute('tabindex','0');}}});var nums=Object.keys(rowByNum).map(Number).filter(function(x){return hotByNum[x];}).sort(function(a,b){return a-b;});if(!nums.length)return;var fc=spec.querySelector('.rr-spec-fig');var hint=null;if(fc){hint=D.createElement('span');hint.className='rr-spec-hint';hint.textContent='Hover to explore';fc.appendChild(hint);}var cur=-1,timer=null,locked=false;function paint(num){nums.forEach(function(k){var on=(k===num);hotByNum[k].classList.toggle('rr-hot-on',on);hotByNum[k].classList.toggle('rr-hot-dim',!on);rowByNum[k].classList.toggle('rr-row-on',on);rowByNum[k].classList.toggle('rr-row-dim',!on);});cur=num;}function stop(){if(timer){clearInterval(timer);timer=null;}}nums.forEach(function(k){function act(){locked=true;stop();if(hint)hint.classList.add('hide');paint(k);}hotByNum[k].addEventListener('mouseenter',act);hotByNum[k].addEventListener('click',act);hotByNum[k].addEventListener('focus',act);rowByNum[k].setAttribute('tabindex','0');rowByNum[k].addEventListener('mouseenter',act);rowByNum[k].addEventListener('click',act);rowByNum[k].addEventListener('focus',act);});paint(nums[0]);var rm=window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches;if(!rm){timer=setInterval(function(){if(locked){stop();return;}var i=nums.indexOf(cur);paint(nums[(i+1)%nums.length]);},2600);}}function ready(fn){if(D.readyState!='loading')fn();else D.addEventListener('DOMContentLoaded',fn);}ready(function(){[].slice.call(D.querySelectorAll('.rr-spec')).forEach(init);});})();</script><script>
(function(){
  'use strict';
  function tryOpenQuoteWidget(){
    var apis=[
      function(){return window.RoofleWidget&&typeof window.RoofleWidget.open==='function'&&(window.RoofleWidget.open(),true);},
      function(){return window.Roofle&&typeof window.Roofle.open==='function'&&(window.Roofle.open(),true);},
      function(){return typeof window.openRoofleWidget==='function'&&(window.openRoofleWidget(),true);}
    ];
    for(var i=0;i<apis.length;i++){try{if(apis[i]())return true;}catch(e){}}
    var sel=['[data-roofle-widget]','.roofle-widget-trigger','.roofle-launcher','.roofle-trigger','iframe[src*="roofle"]'];
    for(var j=0;j<sel.length;j++){try{var el=document.querySelector(sel[j]);if(el&&el.click){el.click();return true;}}catch(e){}}
    return false;
  }
  document.addEventListener('click',function(e){var t=e.target.closest&&e.target.closest('[data-rr-quote]');if(!t)return;if(tryOpenQuoteWidget())e.preventDefault();},false);
  function initReveal(){
    var targets=document.querySelectorAll('.rr-specials .rr-shead, .rr-specials .rr-offer, .rr-specials .rr-cmp, .rr-specials .rr-step, .rr-specials .rr-card, .rr-specials .rr-final');
    if(!targets.length||!('IntersectionObserver' in window))return;
    targets.forEach(function(el){el.classList.add('rr-reveal');});
    var io=new IntersectionObserver(function(ents){ents.forEach(function(en){if(en.isIntersecting){en.target.classList.add('is-in');io.unobserve(en.target);}});},{threshold:.12,rootMargin:'0px 0px -40px 0px'});
    targets.forEach(function(el){io.observe(el);});
  }
  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',initReveal);else initReveal();
})();
</script><script>
(function(){
  document.querySelectorAll('.rr-specials .rr-qa-q').forEach(function(b){
    b.addEventListener('click',function(){
      var qa=b.closest('.rr-qa'),a=qa.querySelector('.rr-qa-a'),open=qa.classList.contains('is-open');
      qa.classList.toggle('is-open',!open); a.style.maxHeight=open?null:a.scrollHeight+'px';
    });
  });
  var mcta=document.getElementById('rrMcta');
  function onScroll(){if(mcta){mcta.classList.toggle('is-show',window.pageYOffset>520);}}
  window.addEventListener('scroll',onScroll,{passive:true});onScroll();
})();
</script><script>
(function(){
var root=document.querySelector('.rr-cp');if(!root)return;
var lb=document.createElement('div');lb.className='cp-lb';lb.hidden=true;lb.innerHTML='<button type="button" aria-label="Close">×</button><img alt=""><p></p>';document.body.appendChild(lb);
function openLb(src,cap){lb.querySelector('img').src=src;lb.querySelector('img').alt=cap;lb.querySelector('p').textContent=cap;lb.hidden=false;}
lb.addEventListener('click',function(e){if(e.target===lb||e.target.tagName==='BUTTON')lb.hidden=true;});
document.addEventListener('keydown',function(e){if(e.key==='Escape')lb.hidden=true;});
root.querySelectorAll('.cp-card').forEach(function(card){
  var main=card.querySelector('.cp-main img'),cap=card.querySelector('.cp-main figcaption');
  card.querySelectorAll('.cp-thumbs button').forEach(function(b){b.addEventListener('click',function(){
    main.removeAttribute('srcset');main.src=b.dataset.full;main.alt=b.dataset.cap;cap.textContent=b.dataset.cap;card.querySelector('.cp-main').dataset.big=b.dataset.big;
    card.querySelectorAll('.cp-thumbs button').forEach(function(x){x.classList.toggle('on',x===b)});});});
  card.querySelector('.cp-main').addEventListener('click',function(){openLb(this.dataset.big||main.src,main.alt)});
});
root.querySelectorAll('.cp-more figure').forEach(function(f){f.addEventListener('click',function(){var i=f.querySelector('img');openLb(i.dataset.full||i.src,i.alt)})});
var btns=root.querySelectorAll('.cp-filters button');
btns.forEach(function(b){b.addEventListener('click',function(){
  var f=b.dataset.f;btns.forEach(function(x){x.classList.toggle('on',x===b)});
  root.querySelectorAll('.cp-card').forEach(function(c){c.hidden=!(f==='all'||(' '+c.dataset.tags+' ').indexOf(' '+f+' ')>-1)});});});
})();
</script>
```
