# Roof Installation

```
<!-- ============================================================
REASONABLE ROOFING & CONTRACTING — SEASONAL SPECIALS (SLIM-HERO build)
Rebrand "THE STANDARD" (Direction A) · built to REASONABLE_PAGE_SYSTEM.
Tier-2 secondary page: SLIM hero (bg photo + navy overlay) + inline trust line,
NO full stats band — keeps the page lighter than Home/Service pages so the
hierarchy reads. Drop into the Divi Code module. Scoped .rr / .rr-specials.

PRESERVED PER BLAKE: instant-quote -> Roofle [data-rr-quote]; free-estimate -> /free-estimate/.
HERO PHOTO: .rr-hero-slim background is a navy fallback for preview — in WordPress,
  set background-image to a real hero photo URL (same imagery as the homepage drone shots).
SERVICE CARD PHOTOS: placeholders — point at the homepage roofing/siding media URLs.
ACCURACY (Page System §2 + Brand Guide §0): 42 years / since 1984 · dual-elite /
  top 3% (not the inflated tier) · 4.8 / 255+ · 3,000+ / 100+ / 16 counties ·
  "Michigan" only (no regional prefix) · no always-on claim · real offers only.
============================================================ -->
<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}}

<!-- [et_pb_line_break_holder] -->/* ===== FALL SAVINGS STRIP (offer ends 2026-12-15) ===== */<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:24px 0 0;<!-- [et_pb_line_break_holder] -->  padding:14px 18px;border:1px solid rgba(255,140,66,.6);border-radius:var(--r-md);<!-- [et_pb_line_break_holder] -->  background:linear-gradient(90deg,rgba(255,140,66,.20),rgba(17,30,45,.34));}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall-tag{flex:none;font-family:'Archivo',sans-serif;font-weight:800;font-size:11px;<!-- [et_pb_line_break_holder] -->  letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--orange-deep);<!-- [et_pb_line_break_holder] -->  padding:6px 11px;border-radius:var(--r-pill);}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall-main{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;<!-- [et_pb_line_break_holder] -->  color:#fff;line-height:1.25;}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall-main strong{font-weight:800;color:var(--orange);}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall-meta{flex-basis:100%;font-size:13px;color:rgba(255,255,255,.82);line-height:1.5;}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall-meta a{color:#fff;font-weight:700;text-decoration:underline;<!-- [et_pb_line_break_holder] -->  text-underline-offset:2px;}<!-- [et_pb_line_break_holder] -->.rr-hero .rr-fall br{display:none!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:768px){<!-- [et_pb_line_break_holder] -->  .rr-hero .rr-fall{padding:13px 15px;gap:8px 11px;margin-top:20px;<!-- [et_pb_line_break_holder] -->    justify-content:center;text-align:center;}<!-- [et_pb_line_break_holder] -->  .rr-hero .rr-fall-main{font-size:16px;flex-basis:100%;}<!-- [et_pb_line_break_holder] -->  .rr-hero .rr-fall-meta{font-size:12px;}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --></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}}.rr .rr-ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.rr .rr-ba-grid.solo{grid-template-columns:1fr;max-width:620px;margin-left:auto;margin-right:auto}.rr .rr-ba-grid.c3{grid-template-columns:repeat(3,1fr);gap:18px}.rr .rr-ba-grid.c3 .rr-ba-cap{font-size:14px}@media(max-width:980px){.rr .rr-ba-grid.c3{grid-template-columns:1fr 1fr}}@media(max-width:640px){.rr .rr-ba-grid.c3{grid-template-columns:1fr}}.rr .rr-ba{position:relative;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-cool);box-shadow:var(--shadow-md);cursor:ew-resize;user-select:none;-webkit-user-select:none;touch-action:none}.rr .rr-ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.rr .rr-ba .rr-ba-before{clip-path:inset(0 50% 0 0)}.rr .rr-ba-divider{position:absolute;top:0;bottom:0;left:50%;width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 8px rgba(15,30,45,.5);pointer-events:none}.rr .rr-ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 2px 12px rgba(15,30,45,.4);display:flex;align-items:center;justify-content:center}.rr .rr-ba-knob svg{width:22px;height:22px;stroke:var(--navy);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.rr .rr-ba-lbl{position:absolute;top:12px;font-family:'Space Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(15,30,45,.72);padding:4px 11px;border-radius:999px;pointer-events:none}.rr .rr-ba-lbl.b{left:12px}.rr .rr-ba-lbl.a{right:12px}.rr .rr-ba-cap{margin-top:12px;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;color:var(--navy);text-align:center}@media(max-width:760px){.rr .rr-ba-grid{grid-template-columns:1fr}}</style><script>document.documentElement.classList.add("rr-js");</script><section class="rr-hero" style="background:linear-gradient(100deg,rgba(14,25,36,.86) 0%,rgba(20,46,71,.68) 45%,rgba(20,46,71,.34) 100%),url('https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948.jpg') center/cover no-repeat"><video class="rr-hero-vid" data-msrc="https://reasonablecontractingservices.com/wp-content/uploads/2026/10/residential-hero-loop-v8-mobile.mp4" data-mposter="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/residential-hero-loop-poster-v7-mobile-1.jpg" autoplay muted loop playsinline preload="metadata" poster="https://reasonablecontractingservices.com/wp-content/uploads/2026/09/residential-hero-loop-poster-v7-1.jpg" aria-hidden="true"><source src="https://reasonablecontractingservices.com/wp-content/uploads/2026/10/residential-hero-loop-v8.mp4" type="video/mp4" media="(min-width:768px)"></video><div class="rr-hero-veil" aria-hidden="true"></div><script>/* rr-vidswap */(function(){try{var v=document.querySelector(".rr-hero-vid");if(!v)return;if(window.matchMedia("(max-width:767px)").matches){/* the mobile layer shows a still band instead, so the video is never visible. Strip it rather than download it. */var s=v.querySelector("source");if(s)s.removeAttribute("src");v.removeAttribute("poster");v.removeAttribute("autoplay");v.setAttribute("preload","none");try{v.pause();}catch(e){}try{v.load();}catch(e){}if(v.parentNode)v.parentNode.removeChild(v);}}catch(e){}})();</script><div class="rr-wrap"><div class="rr-hero-grid"><div class="rr-hero-left"><div class="rrs-m rrs-band"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948.jpg" class="skip-lazy" loading="eager" fetchpriority="high" decoding="sync" alt="Aerial view of a completed Reasonable Roofing architectural shingle roof on a Michigan home" srcset="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-480x270.jpg 480w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-510x382.jpg 510w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-768x433.jpg 768w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-980x552.jpg 980w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-1024x577.jpg 1024w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-1080x608.jpg 1080w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-1280x721.jpg 1280w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948-1536x865.jpg 1536w, https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948.jpg 1640w" 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">Owens Corning Platinum Preferred · GAF Master Elite</div><h1>Roof replacement built for Michigan winters.</h1><div class="rr-tagline-rule"></div><div class="rr-hero-services">Roofing · Siding · Gutters · Windows · Doors · Storm Restoration</div><p class="rr-sub">Premium materials, expert installation, and the strongest manufacturer warranties in roofing — from the dual Platinum Preferred and Master Elite crew that's protected Michigan homes since 1984.</p><div class="rr-hero-ctas"><a class="rr-btn rr-btn-ghost" href="tel:8109843420">Call (810) 984-3420</a></div><div class="rr-fall" data-offer-ends="2026-12-15"><span class="rr-fall-tag">Fall Savings</span><span class="rr-fall-main"><strong>$1,000 off</strong> full roofing & siding projects</span><span class="rr-fall-meta">New contracts only · Stacks with 0% financing · Ends December 15 · <a href="https://reasonablecontractingservices.com/seasonal-specials/">See details</a></span></div><!-- [et_pb_line_break_holder] -->          <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">Dual Manufacturer-Elite</div><div class="item">Up to 50-Yr Warranties</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 roof estimate</h3><p>Tell us about your home — we'll be in touch within one business day.</p></div>

Service Type Form Fill

GET IN TOUCH

If you are human, leave this field blank.			

<div class="privacy">No spam, ever. Your details are used only to prepare your estimate.</div></div></div></div></section><div class="rr-badgebar"><div class="rr-wrap"><div class="row"><div class="rr-badge"><span class="dot"></span><strong>Since 1984</strong></div><div class="rr-badge"><span class="dot"></span>3,000+ Roofs Installed</div><div class="rr-badge"><span class="dot"></span>Owens Corning Platinum</div><div class="rr-badge"><span class="dot"></span>GAF Master Elite</div><div class="rr-badge"><span class="dot"></span><span data-rr-live="avg">4.8</span>★ <span data-rr-live="total">255</span> Reviews</div></div></div></div><section class="rr-reveal rr-section is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Certified & Trusted</span><h2>Credentials that actually mean something.</h2><p>Most roofers can't carry these. The certifications and licenses behind every Reasonable roof — and the warranties they unlock for you.</p></div><div class="rr-creds"><div class="rr-cred"><div class="rr-cred-logo"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-design-2025-11-04T160239.734.jpg" alt="Owens Corning logo" loading="lazy"/></div><h4>Owens Corning</h4><p>Platinum Preferred</p></div><div class="rr-cred"><div class="rr-cred-logo"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/GAF_logo.svg.png" alt="GAF Master Elite™ logo" loading="lazy"/></div><h4>GAF Master Elite™</h4><p>Top 3% of Roofers</p></div><div class="rr-cred"><div class="rr-cred-logo"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-14T131606.093.jpg" alt="CertainTeed logo" loading="lazy"/></div><h4>CertainTeed</h4><p>Master Shingle Applicator</p></div><div class="rr-cred"><div class="rr-cred-logo"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/01/big-haag.webp" alt="HAAG Certified logo" loading="lazy"/></div><h4>HAAG Certified</h4><p>Inspectors on Staff</p></div><div class="rr-cred"><div class="rr-cred-logo"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/11/Untitled-2025-11-14T132059.066.png" alt="BBB A+ Rated logo" loading="lazy"/></div><h4>BBB A+ Rated</h4><p>Accredited Since 1984</p></div></div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Expert Roof Replacement</span><h2>When quality matters most.</h2></div><p class="rr-prose">Your roof is your home's first line of defense against Michigan's brutal winters, heavy snow load, and summer storms. When it's time for a replacement, the contractor you choose matters more than almost any other decision you'll make on the house.</p><p class="rr-prose">Reasonable Roofing & Contracting has been the trusted choice for Michigan homeowners since 1984. As an <b>Owens Corning Platinum Preferred Contractor and GAF Master Elite™</b> roofer — a dual credential held by roughly the top 3% of contractors — we install premium materials with careful workmanship, backed by warranties that actually protect you.</p><p class="rr-prose">From architectural shingles to designer profiles, standing-seam metal to synthetic slate, we'll help you choose the right system for your home, budget, and style — and coordinate <a href="https://reasonablecontractingservices.com/siding/">siding</a> and <a href="https://reasonablecontractingservices.com/gutters/">gutters</a> if you're doing the whole exterior at once.</p></div></section><section class="rr-reveal rr-section rr-spec is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">How We Build It</span><h2>The Reasonable roof system.</h2><p>A roof isn't a layer of shingles — it's six layers working together. Skip or rush any one of them and the whole system fails early. Here's exactly how we build yours.</p></div><div class="rr-ana-grid"><figure class="rr-spec-fig"><svg viewBox="0 0 620 560" role="img" aria-label="Isometric cutaway of a residential roof system" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="gd" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#f0dbad"/><stop offset="1" stop-color="#e1c78c"/></linearGradient><linearGradient id="gi" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#4c5862"/><stop offset="1" stop-color="#39434c"/></linearGradient><linearGradient id="gu" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#d2e0ef"/><stop offset="1" stop-color="#bccddd"/></linearGradient><linearGradient id="gs" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#7a8794"/><stop offset="1" stop-color="#646f7a"/></linearGradient><linearGradient id="gv" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#96a3af"/><stop offset="1" stop-color="#7e8a95"/></linearGradient><linearGradient id="gr" x1="0" y1="0" x2="0.4" y2="1"><stop offset="0" stop-color="#dcc095"/><stop offset="1" stop-color="#caac79"/></linearGradient><filter id="bsh" x="-60%" y="-60%" width="220%" height="220%"><feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#9c4a0c" flood-opacity="0.5"/></filter></defs><ellipse cx="250" cy="492" rx="172" ry="40" fill="#1f3050" opacity="0.10"/><path d="M250.0 485.0 L400.0 410.0 L400.0 436.0 L250.0 511.0 Z" fill="#b08f5c" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 410.0 L250.0 485.0 L250.0 511.0 L100.0 436.0 Z" fill="#c4a877" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 410.0 L250.0 335.0 L400.0 410.0 L250.0 485.0 Z" fill="url(#gr)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M137.5 391.2 L287.5 466.2" stroke="#c2a06e" stroke-width="1.2"/><path d="M175.0 372.5 L325.0 447.5" stroke="#c2a06e" stroke-width="1.2"/><path d="M212.5 353.8 L362.5 428.8" stroke="#c2a06e" stroke-width="1.2"/><path d="M250.0 431.0 L400.0 356.0 L400.0 372.0 L250.0 447.0 Z" fill="#c3a86d" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 356.0 L250.0 431.0 L250.0 447.0 L100.0 372.0 Z" fill="#d6bc85" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 356.0 L250.0 281.0 L400.0 356.0 L250.0 431.0 Z" fill="url(#gd)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M150.0 331.0 L300.0 406.0" stroke="#cfae74" stroke-width="1.4"/><path d="M200.0 306.0 L350.0 381.0" stroke="#cfae74" stroke-width="1.4"/><path d="M250.0 385.0 L400.0 310.0 L400.0 321.0 L250.0 396.0 Z" fill="#2e373f" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 310.0 L250.0 385.0 L250.0 396.0 L100.0 321.0 Z" fill="#3b454e" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 310.0 L250.0 235.0 L400.0 310.0 L250.0 385.0 Z" fill="url(#gi)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M175.0 272.5 L325.0 347.5" stroke="#586470" stroke-width="1"/><path d="M250.0 343.0 L400.0 268.0 L400.0 277.0 L250.0 352.0 Z" fill="#9badbf" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 268.0 L250.0 343.0 L250.0 352.0 L100.0 277.0 Z" fill="#aebfd0" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 268.0 L250.0 193.0 L400.0 268.0 L250.0 343.0 Z" fill="url(#gu)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M150.0 243.0 L300.0 318.0" stroke="#b6c6d6" stroke-width="1"/><path d="M200.0 218.0 L350.0 293.0" stroke="#b6c6d6" stroke-width="1"/><path d="M250.0 295.0 L400.0 220.0 L400.0 236.0 L250.0 311.0 Z" fill="#4c5660" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 220.0 L250.0 295.0 L250.0 311.0 L100.0 236.0 Z" fill="#5c6772" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M100.0 220.0 L250.0 145.0 L400.0 220.0 L250.0 295.0 Z" fill="url(#gs)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M125.0 207.5 L275.0 282.5" stroke="#525c66" stroke-width="1.3"/><path d="M150.0 195.0 L300.0 270.0" stroke="#525c66" stroke-width="1.3"/><path d="M175.0 182.5 L325.0 257.5" stroke="#525c66" stroke-width="1.3"/><path d="M200.0 170.0 L350.0 245.0" stroke="#525c66" stroke-width="1.3"/><path d="M225.0 157.5 L375.0 232.5" stroke="#525c66" stroke-width="1.3"/><path d="M121.4 230.7 L271.4 155.7" stroke="#586470" stroke-width="1"/><path d="M142.9 241.4 L292.9 166.4" stroke="#586470" stroke-width="1"/><path d="M164.3 252.1 L314.3 177.1" stroke="#586470" stroke-width="1"/><path d="M185.7 262.9 L335.7 187.9" stroke="#586470" stroke-width="1"/><path d="M207.1 273.6 L357.1 198.6" stroke="#586470" stroke-width="1"/><path d="M228.6 284.3 L378.6 209.3" stroke="#586470" stroke-width="1"/><path d="M250.0 311.0 L400.0 236.0 L409.0 244.0 L259.0 319.0 Z" fill="#b4c1ce" stroke="#23344a" stroke-width="1"/><path d="M250.0 204.0 L342.0 158.0 L342.0 169.0 L250.0 215.0 Z" fill="#646e79" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M158.0 158.0 L250.0 204.0 L250.0 215.0 L158.0 169.0 Z" fill="#76808c" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M158.0 158.0 L250.0 112.0 L342.0 158.0 L250.0 204.0 Z" fill="url(#gv)" stroke="#23344a" stroke-width="1.1" stroke-linejoin="round"/><path d="M209.8 148.1 L269.8 178.1" stroke="#69747f" stroke-width="1.4"/><path d="M220.0 143.0 L280.0 173.0" stroke="#69747f" stroke-width="1.4"/><path d="M229.6 138.2 L289.6 168.2" stroke="#69747f" stroke-width="1.4"/><path d="M400.0 356.0 L486.0 360.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="400.0" cy="356.0" r="3.2" fill="#FF8C42"/><g><circle cx="486.0" cy="360.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="486.0" y="365.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">1</text></g><path d="M400.0 310.0 L486.0 314.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="400.0" cy="310.0" r="3.2" fill="#FF8C42"/><g><circle cx="486.0" cy="314.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="486.0" y="319.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">2</text></g><path d="M400.0 268.0 L486.0 270.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="400.0" cy="268.0" r="3.2" fill="#FF8C42"/><g><circle cx="486.0" cy="270.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="486.0" y="275.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">3</text></g><path d="M409.0 240.0 L494.0 228.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="409.0" cy="240.0" r="3.2" fill="#FF8C42"/><g><circle cx="494.0" cy="228.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="494.0" y="233.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">4</text></g><path d="M308.0 194.0 L486.0 184.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="308.0" cy="194.0" r="3.2" fill="#FF8C42"/><g><circle cx="486.0" cy="184.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="486.0" y="189.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">5</text></g><path d="M342.0 158.0 L442.0 128.0" stroke="#c4cdd6" stroke-width="1.5" stroke-dasharray="2 4" stroke-linecap="round"/><circle cx="342.0" cy="158.0" r="3.2" fill="#FF8C42"/><g><circle cx="442.0" cy="128.0" r="15.5" fill="#FF8C42" stroke="#fff" stroke-width="2.5" filter="url(#bsh)"/><text x="442.0" y="133.0" text-anchor="middle" font-family="Space Mono, monospace" font-weight="700" font-size="14" fill="#fff">6</text></g></svg><figcaption>Residential roof system · layered cutaway</figcaption></figure><div class="rr-spec-list"><span class="rr-spec-tag">Build Spec · Six non-negotiables</span><div class="rr-arow"><span class="num">01</span><div><h4>Roof deck</h4><p>We strip to the bare deck and inspect every sheet of sheathing — soft, rotted, or delaminated wood gets replaced before anything goes back on.</p></div></div><div class="rr-arow"><span class="num">02</span><div><h4>Ice & water shield</h4><p>Self-adhering membrane at the eaves, valleys, and penetrations — the waterproof barrier that stops ice-dam backup from ever reaching the deck.</p></div></div><div class="rr-arow"><span class="num">03</span><div><h4>Synthetic underlayment</h4><p>A full layer of synthetic felt over the deck — a secondary water barrier that won't wrinkle, tear, or rot like the old #15 felt.</p></div></div><div class="rr-arow"><span class="num">04</span><div><h4>Drip edge & flashing</h4><p>Metal drip edge at every eave and rake, plus step and counter-flashing at walls and chimneys — where water gets directed off the roof, not into it.</p></div></div><div class="rr-arow"><span class="num">05</span><div><h4>Starter strip & shingles</h4><p>A sealed starter course, then architectural shingles nailed to spec in the manufacturer's nailing zone — the difference between a 30-year roof and a 12-year one.</p></div></div><div class="rr-arow"><span class="num">06</span><div><h4>Ridge vent</h4><p>Continuous ridge-vent exhaust paired with soffit intake — balanced ventilation that keeps the attic dry, the shingles cool, and the warranty intact.</p></div></div></div></div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-feature"><div class="rr-feat-media"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/Untitled-design-2026-06-22T125821.948.jpg" alt="Why our roofs outlast the other guys." loading="lazy"/></div><div class="rr-feat-body"><span class="rr-eyebrow">The Reasonable Difference</span><h2>Why our roofs outlast the other guy's.</h2><p>Two roofs can use the exact same shingle and last completely different lifetimes. The difference is everything you don't see from the street — and it's where most roofers cut the corners that cost you in year eight.</p><p>We install the complete system, on our own crews, to manufacturer spec. That's what earns the dual-elite warranties — and what keeps your roof watertight through thirty Michigan winters.</p><ul class="rr-feat-list"><li><b>Full tear-off</b> to the deck — never a layover that hides rot</li><li><b>Ice & water shield</b> at eaves and valleys against ice dams</li><li><b>Spec nailing</b> in the manufacturer's zone — six nails, every shingle</li><li><b>Balanced ventilation</b> that protects the shingle warranty</li><li><b>Our own crews</b> — never subcontracted day-labor</li><li><b>Dual-elite warranties</b> most roofers simply can't offer</li></ul></div></div></div></section><section class="rr-reveal rr-section is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Recent Work</span><h2>Roofs we've replaced across Michigan.</h2><p>A few recent projects — the same complete system and the same craftsmanship, on a different Michigan home each time.</p></div><div class="rr-projects"><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/01/DJI_20251013121707_0177_D-1-scaled.jpg" alt="Roof Replacement" loading="lazy"/><div class="cap"><h4>Roof Replacement</h4><span>Port Huron, MI</span></div></div><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/10/Untitled-design-2025-10-14T141841.711-1-scaled.jpg" alt="Complete Tear-Off & Replacement" loading="lazy"/><div class="cap"><h4>Complete Tear-Off & Replacement</h4><span>St. Clair, MI</span></div></div><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2025/09/dji_fly_20250915_112634_0020_1757952063211_photo-scaled.jpg" alt="Architectural Shingle Roof" loading="lazy"/><div class="cap"><h4>Architectural Shingle Roof</h4><span>Bloomfield Hills, MI</span></div></div><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/bb079af6-5d0c-4d1a-8f6a-35c44a52b5b1-1.jpg" alt="Roof Replacement" loading="lazy"/><div class="cap"><h4>Roof Replacement</h4><span>Lexington, MI</span></div></div><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/img_8593449124640180874-scaled.jpg" alt="Shingle Roof Replacement" loading="lazy"/><div class="cap"><h4>Shingle Roof Replacement</h4><span>Birmingham, MI</span></div></div><div class="rr-proj"><img src="https://reasonablecontractingservices.com/wp-content/uploads/2026/06/img_227649320552642416-scaled.jpg" alt="New Roof Installation" loading="lazy"/><div class="cap"><h4>New Roof Installation</h4><span>Allenton, MI</span></div></div></div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Warning Signs</span><h2>Signs you need a new roof.</h2><p>Don't wait until a small problem becomes a major expense. These are the warning signs we look for during every inspection.</p></div><div class="rr-signs"><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Age over 20 years</h3><p>Most asphalt shingle roofs last 20–25 years. If yours is approaching that age, it's worth a closer look before it starts to fail.</p></div></div><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Curling or missing shingles</h3><p>Shingles that curl, crack, or go missing leave your home vulnerable to water damage and leaks — and they rarely improve on their own.</p></div></div><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Water stains or leaks</h3><p>Water spots on ceilings or walls usually mean your roof is already failing. These are the warnings you don't ignore.</p></div></div><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Sagging roof deck</h3><p>A sagging roofline points to structural damage or trapped moisture in the deck — it needs professional attention now, not later.</p></div></div><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Granules in the gutters</h3><p>Excessive granule loss means your shingles are wearing out and losing the protective layer that keeps water off the deck.</p></div></div><div class="rr-sign"><div class="sk"><svg viewBox="0 0 24 24"><path d="M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg></div><div><h3>Rising energy bills</h3><p>Poor roof ventilation or failing insulation makes your HVAC work harder. Sometimes the roof is the reason the bills keep climbing.</p></div></div></div></div></section><section class="rr-reveal rr-section is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Roofing Materials</span><h2>Roofing materials we install.</h2><p>From the architectural asphalt most Michigan homes need to metal, synthetic slate, and cedar — here's what we install and how long each one lasts.</p></div><div class="rr-cards-grid"><div class="rr-card2"><div class="rr-card2-top"><h3>Architectural Shingles</h3><span class="badge">Most Popular</span></div><p>The default for Michigan homes — dimensional asphalt shingles from Owens Corning and GAF. Great looks, strong wind ratings, and the best overall value in roofing.</p></div><div class="rr-card2"><div class="rr-card2-top"><h3>Designer & Luxury Shingles</h3><span class="badge">Premium Asphalt</span></div><p>Thicker, multi-layer shingles that mimic slate and cedar shake — the high-end asphalt option when curb appeal is the priority.</p></div><div class="rr-card2"><div class="rr-card2-top"><h3>Standing-Seam Metal</h3><span class="badge">50+ Yr Lifespan</span></div><p>Concealed-fastener <a href="https://reasonablecontractingservices.com/metal-roofing-installation-contractors-st-clair-mi/">metal roofing</a> that sheds snow, resists wind, and lasts decades. A premium upgrade that pays back in longevity.</p></div><div class="rr-card2"><div class="rr-card2-top"><h3>Synthetic Slate & Shake</h3><span class="badge">Lifetime</span></div><p>The look of natural slate or cedar at a fraction of the weight and maintenance — engineered polymer built to handle freeze-thaw.</p></div><div class="rr-card2"><div class="rr-card2-top"><h3>Impact-Resistant (Class 4)</h3><span class="badge">Hail-Rated</span></div><p>UL 2218 Class 4 shingles that stand up to hail and may earn you an insurance discount — worth it in storm-prone areas.</p></div><div class="rr-card2"><div class="rr-card2-top"><h3>Cedar Shake</h3><span class="badge">Natural Wood</span></div><p>Authentic cedar for historic and high-end homes — timeless character for homeowners who want the real thing.</p></div></div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Compare Materials</span><h2>Asphalt, metal, or synthetic?</h2><p>The materials we install most, side by side — so you can see where each one is the right call before we ever quote it.</p></div><div class="rr-ctable"><div class="rr-ctrow rr-cthead"><div>Material</div><div>Lifespan</div><div>Cost</div><div>Best For</div></div><div class="rr-ctrow pick"><div class="m">Architectural Asphalt<span class="pill">Most Popular</span></div><div><span class="cl">Lifespan</span><span class="ls">30–50 yrs</span></div><div><span class="cl">Cost</span><span class="ct">$$</span></div><div><span class="cl">Best For</span>Best overall value for the vast majority of Michigan homes</div></div><div class="rr-ctrow"><div class="m">Standing-Seam Metal</div><div><span class="cl">Lifespan</span><span class="ls">50+ yrs</span></div><div><span class="cl">Cost</span><span class="ct">$$$$</span></div><div><span class="cl">Best For</span>Maximum longevity, snow-shedding, and low maintenance</div></div><div class="rr-ctrow"><div class="m">Synthetic Slate</div><div><span class="cl">Lifespan</span><span class="ls">50+ yrs</span></div><div><span class="cl">Cost</span><span class="ct">$$$$</span></div><div><span class="cl">Best For</span>Slate and shake looks without the weight or upkeep</div></div><div class="rr-ctrow"><div class="m">Designer Asphalt</div><div><span class="cl">Lifespan</span><span class="ls">30–50 yrs</span></div><div><span class="cl">Cost</span><span class="ct">$$$</span></div><div><span class="cl">Best For</span>Premium curb appeal on an asphalt budget</div></div></div><div class="rr-compare-note" style="margin-top:22px">Relative cost is installed, per square foot. We'll give you exact pricing for your home at the free estimate.</div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Our Services</span><h2>Complete roofing services.</h2><p>From a full tear-off to ventilation and storm work — we handle every part of the system that keeps water out of your house.</p></div><div class="rr-pillars"><div class="rr-pillar"><div class="pidx">01</div><h3>Complete Tear-Off & Replacement</h3><div class="promise">Full removal down to the deck, inspection and repair of the sheathing, and a brand-new system installed to manufacturer spec — never a layover that hides problems.</div></div><div class="rr-pillar"><div class="pidx">02</div><h3>Architectural & Designer Shingles</h3><div class="promise">Owens Corning and GAF dimensional shingles in dozens of colors, plus luxury profiles that convincingly mimic slate and cedar shake.</div></div><div class="rr-pillar"><div class="pidx">03</div><h3>Metal & Synthetic Roofing</h3><div class="promise">Standing-seam metal and synthetic slate or shake for homeowners who want maximum longevity and a distinctive, lasting look.</div></div><div class="rr-pillar"><div class="pidx">04</div><h3>Roof Ventilation Systems</h3><div class="promise">Balanced intake and ridge-vent exhaust that keeps the attic dry, prevents ice dams, and protects your shingle manufacturer's warranty.</div></div><div class="rr-pillar"><div class="pidx">05</div><h3>Storm Damage & Insurance</h3><div class="promise">Wind and hail damage documented and restored — we work directly with your carrier. See our <a href="https://reasonablecontractingservices.com/emergency-services/">emergency & storm services</a>.</div></div><div class="rr-pillar"><div class="pidx">06</div><h3>Flashing & Detail Work</h3><div class="promise">Chimneys, valleys, skylights, and wall transitions flashed right — the details where a cheap roof springs its first leak.</div></div></div></div></section><section class="rr-reveal rr-ctaband"><div class="rr-wrap"><span class="ey">Free Estimate</span><h3>Your roof, inspected by a dual-elite crew.</h3><p>A free estimate, a detailed written estimate, and honest guidance on materials and warranties — with no high-pressure pitch.</p><a class="rr-btn rr-btn-primary" href="https://reasonablecontractingservices.com/free-estimate/">Get My Free Estimate →</a></div></section><section class="rr-reveal rr-section rr-svcsteps is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Our Process</span><h2>How a roof replacement actually works.</h2><p>Five steps from your first call to a finished roof and a clean yard. Most roofs wrap in one to three days.</p></div><div class="rr-steps"><div class="rr-step"><div class="idx">01</div><div class="tick"></div><h3>Free Estimate & Quote</h3><p>We inspect the roof inside and out, photograph the problem areas, and write a detailed, itemized estimate — no obligation.</p></div><div class="rr-step"><div class="idx">02</div><div class="tick"></div><h3>Material Selection</h3><p>Choose your shingle line, color, and any upgrades — with samples in hand and the real warranty options laid out.</p></div><div class="rr-step"><div class="idx">03</div><div class="tick"></div><h3>Tear-Off & Deck Check</h3><p>Old roof stripped to the deck, sheathing inspected and repaired, then ice-and-water shield and synthetic underlayment go down.</p></div><div class="rr-step"><div class="idx">04</div><div class="tick"></div><h3>Installation</h3><p>Starter strip, shingles, flashing, and ridge vent installed to manufacturer spec by our own crews — never day-labor.</p></div><div class="rr-step"><div class="idx">05</div><div class="tick"></div><h3>Walkthrough & Cleanup</h3><p>We magnet-sweep every nail, haul away all debris, and walk the finished roof with you before we leave the site.</p></div></div></div></section><style>@media(min-width:981px){.rr .rr-svcsteps .rr-steps{grid-template-columns:repeat(5,1fr)}}</style><section class="rr-reveal rr-section is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">By The Numbers</span><h2>42 years. One standard.</h2><p>The kind of track record that only comes from doing it right, in the same communities, for a very long time.</p></div><div class="rr-svcstats"><div class="rr-svcstat"><span class="rr-svcstatnum" data-to="42" data-suf="+">0</span><span class="lbl">Years in Michigan</span><span class="sub">Family-owned since 1984</span></div><div class="rr-svcstat"><span class="rr-svcstatnum" data-to="3000" data-suf="+">0</span><span class="lbl">Roofs Installed</span><span class="sub">Across Michigan since 1984</span></div><div class="rr-svcstat"><span class="rr-svcstatnum" data-to="4.8">0</span><span class="star">★</span><span class="lbl">Google Rating</span><span class="sub"><span data-rr-live="total">255</span> homeowner reviews</span></div><div class="rr-svcstat"><span class="rr-svcstatnum" data-to="2">0</span><span class="lbl">Elite Certifications</span><span class="sub">Owens Corning & GAF</span></div></div></div></section><section class="rr-reveal rr-edband"><div class="rr-wrap"><span class="eb-ey">Since 1984</span><p class="eb-q">“A roof is the one thing on your house you hope you never have to think about. That only happens when the layers you can't see — the deck, the shield, the flashing — were done right.”</p><p class="eb-s">Family-run since 1984, with 3,000+ Michigan roofs behind us and the dual manufacturer-elite credentials to back every warranty. We build roofs for the winters here, because we're here through them too.</p></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">The Reasonable Difference</span><h2>Why homeowners choose us.</h2><p>Dual manufacturer-elite credentials, a full-system install, and 42 years of doing it right in the same Michigan winters.</p></div><div class="rr-values"><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="8" r="6"/><path d="M8.5 13.5 7 22l5-3 5 3-1.5-8.5"/></svg></div><h3>Dual Manufacturer-Elite</h3><p>We're an Owens Corning Platinum Preferred Contractor <b>and</b> GAF Master Elite™ — a dual credential held by roughly the top 3% of roofers, and the reason we can offer the strongest warranties in the industry.</p></div><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><path d="M14.7 6.3a4 4 0 0 0-5.4 5.4l-6 6 2 2 6-6a4 4 0 0 0 5.4-5.4l-2.3 2.3-2-2 2.3-2.3z"/></svg></div><h3>Full Tear-Off, Done Right</h3><p>We strip to the deck and inspect the sheathing — never a layover that hides rot. Ice-and-water shield, synthetic underlayment, and spec nailing on every single job.</p></div><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><path d="M11 20A7 7 0 0 1 4 13c0-6 8-9 16-9 0 8-3 16-9 16zM4 21c3-3 5-5 8-7"/></svg></div><h3>Proper Ventilation</h3><p>Balanced intake and ridge-vent exhaust on every roof — the step most contractors skip, and the one that prevents ice dams and keeps your shingle warranty valid.</p></div><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><path d="M12 3l8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4z"/><path d="M9 12l2 2 4-4"/></svg></div><h3>Storm & Insurance Expertise</h3><p>Decades of storm-claim experience — we document the damage, meet the adjuster, and handle the <a href="https://reasonablecontractingservices.com/emergency-services/">insurance process</a> right alongside the work.</p></div><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><path d="M12 21s-7-5.2-7-11a7 7 0 0 1 14 0c0 5.8-7 11-7 11z"/><circle cx="12" cy="10" r="2.5"/></svg></div><h3>42 Years in Michigan</h3><p>Family-run since 1984, with 3,000+ roofs installed across Michigan. We know exactly what our winters do to a roof — and how to build one that outlasts them.</p></div><div class="rr-value"><div class="ic"><svg viewBox="0 0 24 24"><path d="M12 3l8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4z"/><path d="M12 8v8M9.5 10.5h3.5a1.5 1.5 0 0 1 0 3h-2a1.5 1.5 0 0 0 0 3H14"/></svg></div><h3>Strong Warranties & Financing</h3><p>Manufacturer-backed system warranties plus our own workmanship guarantee, and flexible <a href="https://reasonablecontractingservices.com/financing/">financing</a> including 0% on qualifying projects.</p></div></div></div></section><section class="rr-reveal rr-section"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Roof Replacement FAQ</span><h2>Roof replacement FAQs.</h2></div><div class="rr-faq-list"><div class="rr-qa"><button class="rr-qa-q" type="button">How much does a new roof cost in Michigan?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">A typical asphalt shingle replacement runs $6–9 per square foot installed — roughly $9,000–18,000 for an average home, depending on size, pitch, layers to remove, and shingle line. Metal and synthetic cost more. We provide free, itemized written estimates with exact pricing for your home.</div></div></div><div class="rr-qa"><button class="rr-qa-q" type="button">How long does a roof replacement take?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">Most residential roofs are torn off and replaced in 1–3 days, weather permitting. Larger or steeper homes, or roofs that need significant deck repair, take longer. We give you a firm timeline at the estimate and keep you posted throughout.</div></div></div><div class="rr-qa"><button class="rr-qa-q" type="button">Should I repair or replace my roof?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">If the roof is under about 15 years old and the damage is localized, <a href="https://reasonablecontractingservices.com/storm-damage-roof-repair/">repair</a> usually makes sense. If it's 20+ years old, leaking in multiple spots, or losing granules across the whole surface, replacement is the better long-term math. We'll inspect and tell you straight.</div></div></div><div class="rr-qa"><button class="rr-qa-q" type="button">What's actually included in a roof replacement?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">Complete tear-off to the deck, sheathing inspection and repair, ice-and-water shield at eaves and valleys, full synthetic underlayment, new drip edge and flashing, starter strip, your chosen shingles, ridge vent, a full magnetic nail sweep, and haul-away. We don't bill as 'extras' the things that should be standard.</div></div></div><div class="rr-qa"><button class="rr-qa-q" type="button">What's the best shingle for Michigan weather?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">For our freeze-thaw cycles, heavy snow, and summer storms, architectural (dimensional) asphalt shingles from Owens Corning or GAF are the value sweet spot — strong wind ratings and excellent warranties. Impact-resistant Class 4 shingles are worth considering in hail-prone areas and may earn an insurance discount.</div></div></div><div class="rr-qa"><button class="rr-qa-q" type="button">What kind of warranty do you offer?<span class="mk"></span></button><div class="rr-qa-a"><div class="inner">As a dual Platinum Preferred and Master Elite contractor, we offer manufacturer system warranties most roofers can't — up to 50-year material and extended labor coverage — plus our own workmanship warranty on top. We register every warranty in your name.</div></div></div></div></div></section><section class="rr-reveal rr-section is-mist"><div class="rr-wrap"><div class="rr-shead"><span class="rr-eyebrow">Service Areas</span><h2>Roofing across Michigan.</h2><p>With offices in <a href="https://reasonablecontractingservices.com/roofers-in-port-huron-mi/">Port Huron</a> and <a href="https://reasonablecontractingservices.com/roofers-troy-mi/">Troy</a>, we serve homeowners throughout the region.</p></div><div class="rr-areas"><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/roofing-contractors-oakland-county-mi/">Oakland County</a><p><a href="https://reasonablecontractingservices.com/roofers-troy-mi/">Troy</a> · <a href="https://reasonablecontractingservices.com/rochester-michigan-roofers/">Rochester</a> · <a href="https://reasonablecontractingservices.com/auburn-hills-roofers/">Auburn Hills</a> · <a href="https://reasonablecontractingservices.com/roofers-birmingham-mi/">Birmingham</a> · <a href="https://reasonablecontractingservices.com/bloomfield-hills-roofers/">Bloomfield Hills</a> · <a href="https://reasonablecontractingservices.com/royal-oak-roofers/">Royal Oak</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/macomb-county/">Macomb County</a><p><a href="https://reasonablecontractingservices.com/clinton-township-roofers/">Clinton Township</a> · <a href="https://reasonablecontractingservices.com/shelby-township-roofers/">Shelby Township</a> · <a href="https://reasonablecontractingservices.com/macomb-township-roofers/">Macomb Township</a> · <a href="https://reasonablecontractingservices.com/utica-roofers/">Utica</a> · <a href="https://reasonablecontractingservices.com/mount-clemens-roofers/">Mount Clemens</a> · <a href="https://reasonablecontractingservices.com/new-baltimore-roofers/">New Baltimore</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/st-clair-roofers/">St. Clair County</a><p><a href="https://reasonablecontractingservices.com/roofers-in-port-huron-mi/">Port Huron</a> · <a href="https://reasonablecontractingservices.com/marysville-roofers/">Marysville</a> · <a href="https://reasonablecontractingservices.com/fort-gratiot-roofers/">Fort Gratiot</a> · <a href="https://reasonablecontractingservices.com/st-clair-roofers/">St. Clair</a> · <a href="https://reasonablecontractingservices.com/marine-city-roofers/">Marine City</a> · <a href="https://reasonablecontractingservices.com/algonac-roofers/">Algonac</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/lapeer-county/">Lapeer County</a><p><a href="https://reasonablecontractingservices.com/lapeer-roofers/">Lapeer</a> · <a href="https://reasonablecontractingservices.com/imlay-city-roofers/">Imlay City</a> · <a href="https://reasonablecontractingservices.com/almont-roofers/">Almont</a> · <a href="https://reasonablecontractingservices.com/metamora-roofers/">Metamora</a> · <a href="https://reasonablecontractingservices.com/dryden-roofers/">Dryden</a> · <a href="https://reasonablecontractingservices.com/north-branch-roofers/">North Branch</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/sanilac-county-roofers/">Sanilac County</a><p><a href="https://reasonablecontractingservices.com/sandusky-roofers/">Sandusky</a> · <a href="https://reasonablecontractingservices.com/lexington-roofers/">Lexington</a> · <a href="https://reasonablecontractingservices.com/croswell-roofers/">Croswell</a> · <a href="https://reasonablecontractingservices.com/deckerville-roofers/">Deckerville</a> · <a href="https://reasonablecontractingservices.com/brown-city-roofers/">Brown City</a> · <a href="https://reasonablecontractingservices.com/marlette-roofers/">Marlette</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/kalamazoo-roofers/">Kalamazoo Area</a><p><a href="https://reasonablecontractingservices.com/kalamazoo-city-roofers/">Kalamazoo</a> · <a href="https://reasonablecontractingservices.com/portage-roofers/">Portage</a> · <a href="https://reasonablecontractingservices.com/battle-creek-roofers/">Battle Creek</a> · <a href="https://reasonablecontractingservices.com/texas-township-roofers/">Texas Township</a> · <a href="https://reasonablecontractingservices.com/oshtemo-roofers/">Oshtemo Township</a> · <a href="https://reasonablecontractingservices.com/richland-roofers/">Richland & Gull Lake</a> · <a href="https://reasonablecontractingservices.com/comstock-roofers/">Comstock</a></p></div><div class="rr-area"><a class="cty" href="https://reasonablecontractingservices.com/grand-rapids-roofers/">Grand Rapids Area</a><p><a href="https://reasonablecontractingservices.com/grand-rapids-roofers/">Grand Rapids</a> · <a href="https://reasonablecontractingservices.com/wyoming-roofers/">Wyoming</a> · <a href="https://reasonablecontractingservices.com/kentwood-roofers/">Kentwood</a> · <a href="https://reasonablecontractingservices.com/holland-roofers/">Holland</a> · <a href="https://reasonablecontractingservices.com/grandville-roofers/">Grandville</a> · <a href="https://reasonablecontractingservices.com/jenison-roofers/">Jenison</a> · <a href="https://reasonablecontractingservices.com/byron-center-roofers/">Byron Center</a></p></div></div><div class="rr-compare-note" style="margin-top:26px"><b>Don't see your town?</b> <a href="https://reasonablecontractingservices.com/areas-served/">See the full list of 100+ communities →</a></div></div></section><section class="rr-reveal rr-final"><div class="rr-wrap"><h2>Ready for a roof that lasts?</h2><p>A free estimate, a detailed written estimate, and honest guidance on materials and warranties — with no high-pressure pitch. We'll get on your roof and tell you exactly what it needs.</p><div class="rr-hero-ctas"><a href="https://reasonablecontractingservices.com/free-estimate/" class="rr-btn rr-btn-primary">Get My Free Estimate →</a><a href="tel:8109843420" class="rr-btn rr-btn-ghost">Call (810) 984-3420</a></div><div class="phones">Port Huron <a href="tel:8109843420">(810) 984-3420</a>  ·  Troy <a href="tel:2488003269">(248) 800-3269</a></div></div></section><div class="rr-mcta" id="rrMcta"><a href="tel:8109843420" class="rr-btn rr-btn-ghost" style="color:var(--navy);border-color:rgba(20,46,71,.3)">Call Now</a><a href="https://reasonablecontractingservices.com/free-estimate/" class="rr-btn rr-btn-primary">Free Estimate</a></div><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(){var D=document;function ready(fn){if(D.readyState!='loading')fn();else D.addEventListener('DOMContentLoaded',fn);}ready(function(){[].slice.call(D.querySelectorAll('.rr-ba')).forEach(function(ba){var bf=ba.querySelector('.rr-ba-before'),dv=ba.querySelector('.rr-ba-divider');if(!bf||!dv)return;function set(x){x=Math.max(0,Math.min(100,x));bf.style.clipPath='inset(0 '+(100-x).toFixed(1)+'% 0 0)';dv.style.left=x.toFixed(1)+'%';}function ev(e){var r=ba.getBoundingClientRect();var cx=(e.touches&&e.touches[0])?e.touches[0].clientX:e.clientX;set((cx-r.left)/r.width*100);}var drag=false;ba.addEventListener('pointerdown',function(e){drag=true;ev(e);try{ba.setPointerCapture(e.pointerId);}catch(_){}});ba.addEventListener('pointermove',function(e){if(drag)ev(e);});ba.addEventListener('pointerup',function(){drag=false;});ba.addEventListener('pointercancel',function(){drag=false;});ba.addEventListener('click',ev);});});})();</script></div><!-- /.rr roofing-contractors --><script type="application/ld+json">{"@context": "https://schema.org", "@type": "Service", "serviceType": "Roof Replacement", "name": "Roof Replacement & Installation in Michigan", "provider": {"@type": "RoofingContractor", "name": "Reasonable Roofing & Contracting", "telephone": "+1-810-984-3420", "url": "https://reasonablecontractingservices.com", "hasCredential":{"@type":"EducationalOccupationalCredential","credentialCategory":"license","name":"Michigan Builders License #262000657"},"foundingDate": "1984", "address": {"@type": "PostalAddress", "streetAddress": "1605 Beard St", "addressLocality": "Port Huron", "addressRegion": "MI", "postalCode": "48060", "addressCountry": "US"}}, "areaServed": [{"@type": "County", "name": "St. Clair County, MI"}, {"@type": "County", "name": "Macomb County, MI"}, {"@type": "County", "name": "Oakland County, MI"}, {"@type": "County", "name": "Lapeer County, MI"}, {"@type": "County", "name": "Sanilac County, MI"}], "description": "Roof replacement and installation across Michigan by a dual Owens Corning Platinum Preferred and GAF Master Elite contractor — architectural and designer asphalt shingles, standing-seam metal, and synthetic slate, with full tear-off, ice-and-water shield, and ventilation. Since 1984.", "offers": {"@type": "Offer", "priceRange": "$$"}}</script><script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How much does a new roof cost in Michigan?", "acceptedAnswer": {"@type": "Answer", "text": "A typical asphalt shingle replacement runs $6-9 per square foot installed - roughly $9,000-18,000 for an average home, depending on size, pitch, layers to remove, and shingle line. Metal and synthetic cost more. We provide free, itemized written estimates with exact pricing for your home."}}, {"@type": "Question", "name": "How long does a roof replacement take?", "acceptedAnswer": {"@type": "Answer", "text": "Most residential roofs are torn off and replaced in 1-3 days, weather permitting. Larger or steeper homes, or roofs that need significant deck repair, take longer. We give you a firm timeline at the estimate and keep you posted throughout."}}, {"@type": "Question", "name": "Should I repair or replace my roof?", "acceptedAnswer": {"@type": "Answer", "text": "If the roof is under about 15 years old and the damage is localized, repair usually makes sense. If it's 20+ years old, leaking in multiple spots, or losing granules across the whole surface, replacement is the better long-term math. We'll inspect and tell you straight."}}, {"@type": "Question", "name": "What's actually included in a roof replacement?", "acceptedAnswer": {"@type": "Answer", "text": "Complete tear-off to the deck, sheathing inspection and repair, ice-and-water shield at eaves and valleys, full synthetic underlayment, new drip edge and flashing, starter strip, your chosen shingles, ridge vent, a full magnetic nail sweep, and haul-away. We don't bill as 'extras' the things that should be standard."}}, {"@type": "Question", "name": "What's the best shingle for Michigan weather?", "acceptedAnswer": {"@type": "Answer", "text": "For our freeze-thaw cycles, heavy snow, and summer storms, architectural (dimensional) asphalt shingles from Owens Corning or GAF are the value sweet spot - strong wind ratings and excellent warranties. Impact-resistant Class 4 shingles are worth considering in hail-prone areas and may earn an insurance discount."}}, {"@type": "Question", "name": "What kind of warranty do you offer?", "acceptedAnswer": {"@type": "Answer", "text": "As a dual Platinum Preferred and Master Elite contractor, we offer manufacturer system warranties most roofers can't - up to 50-year material and extended labor coverage - plus our own workmanship warranty on top. We register every warranty in your name."}}]}</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 type="application/ld+json">
{"@context":"https://schema.org","@type":"RoofingContractor","name":"Reasonable Roofing & Contracting","url":"https://reasonablecontractingservices.com","telephone":"+1-810-984-3420","address":[{"@type":"PostalAddress","streetAddress":"1605 Beard St","addressLocality":"Port Huron","addressRegion":"MI","postalCode":"48060","addressCountry":"US"},{"@type":"PostalAddress","streetAddress":"1470 Souter Blvd","addressLocality":"Troy","addressRegion":"MI","postalCode":"48083","addressCountry":"US"}],"openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"08:00","closes":"17:00"},"priceRange":"$$","aggregateRating":{"@type":"AggregateRating","ratingValue": "4.8", "reviewCount": "255"},"areaServed":[{"@type":"County","name":"St. Clair County, MI"},{"@type":"County","name":"Macomb County, MI"},{"@type":"County","name":"Oakland County, MI"},{"@type":"County","name":"Lapeer County, MI"},{"@type":"County","name":"Sanilac County, MI"}],"foundingDate":"1984","slogan":"Michigan's Exterior Standard","award":["BBB A+ Rating","Owens Corning Platinum Preferred Contractor","GAF Master Elite Contractor — Top 3%","HAAG Certified Inspector"]}
</script>
```
