*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} :root{--slate:#0f1923;--slate2:#1a2635;--amber:#e8a020;--amber2:#f5b940;--cream:#f5f0e8;--grey:#8a9bb0;--light:#dde4ec;--white:#ffffff;--danger:#c0392b} html{scroll-behavior:smooth;overflow-x:hidden} body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--slate);line-height:1.6;overflow-x:hidden;width:100%;padding-top:98px} header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--slate);width:100%} .emergency-banner{background:var(--danger);color:var(--white);text-align:center;padding:.5rem 5%;font-size:.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase} .emergency-banner a{color:var(--white);text-decoration:underline} .header-nav{display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:64px;border-bottom:3px solid var(--amber)} .logo{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;color:var(--white);letter-spacing:2px;text-decoration:none} .logo span{color:var(--amber)} nav a{color:var(--light);text-decoration:none;font-size:.85rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-left:2rem;transition:color .2s} nav a:hover{color:var(--amber)} .nav-cta{background:var(--amber);color:var(--slate)!important;padding:.5rem 1.2rem;border-radius:2px} .breadcrumb{background:var(--slate2);padding:.7rem 5%;border-bottom:1px solid rgba(232,160,32,.15)} .breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center} .breadcrumb li{font-size:.78rem;color:var(--grey)} .breadcrumb li a{color:var(--grey);text-decoration:none;transition:color .2s} .breadcrumb li a:hover{color:var(--amber)} .breadcrumb li+li::before{content:'›';margin-right:.4rem;color:rgba(138,155,176,.5)} .breadcrumb li:last-child{color:var(--amber);font-weight:700} .snav{background:var(--slate2);padding:1rem 5%;border-bottom:1px solid rgba(232,160,32,.15)} .snav-inner{display:flex;gap:.5rem;flex-wrap:wrap} .snav a{color:var(--grey);text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:.4rem .9rem;border:1px solid rgba(138,155,176,.25);border-radius:2px;transition:all .2s} .snav a:hover,.snav a.active{color:var(--amber);border-color:var(--amber);background:rgba(232,160,32,.08)} .hero{background:var(--slate);display:flex;align-items:center;padding:4rem 5%;position:relative;overflow:hidden;width:100%;box-sizing:border-box} .hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#1a2635 0%,#0f1923 50%,#1a2a1a 100%);z-index:0} .hero-bg::after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(232,160,32,.03) 40px,rgba(232,160,32,.03) 80px)} .hero::before{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--amber),var(--amber2),var(--amber));z-index:2} .hero-content{position:relative;z-index:1;max-width:700px;width:100%;display:flex;flex-direction:column;align-items:flex-start} .hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(232,160,32,.15);border:1px solid var(--amber);color:var(--amber);font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:.4rem 1rem;border-radius:2px;margin-bottom:1.5rem;animation:fadeUp .6s ease both} .hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,6rem);line-height:.95;color:var(--white);letter-spacing:2px;margin-bottom:1.5rem;animation:fadeUp .6s ease .1s both} .hero h1 span{color:var(--amber);display:block} .hero p{font-size:1.05rem;color:var(--light);font-weight:300;width:100%;max-width:100%;margin-bottom:2rem;animation:fadeUp .6s ease .2s both} .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;animation:fadeUp .6s ease .3s both} .btn-primary{background:var(--amber);color:var(--slate);font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;padding:1rem 2.5rem;border-radius:2px;text-decoration:none;transition:all .2s;border:2px solid var(--amber)} .btn-primary:hover{background:var(--amber2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(232,160,32,.4)} .btn-outline{background:transparent;color:var(--white);font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;padding:1rem 2.5rem;border-radius:2px;text-decoration:none;border:2px solid rgba(255,255,255,.4);transition:all .2s} .btn-outline:hover{border-color:var(--white);background:rgba(255,255,255,.08)} .hero-stats{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin-top:2.5rem;width:100%;animation:fadeUp .6s ease .4s both} .stat{text-align:center;min-width:80px} .stat-num{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--amber);line-height:1} .stat-label{font-size:.7rem;color:var(--grey);text-transform:uppercase;letter-spacing:1px} .trust-bar{background:var(--slate2);padding:1.2rem 5%;display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;border-bottom:1px solid rgba(232,160,32,.2)} .trust-item{display:flex;align-items:center;gap:.6rem;color:var(--light);font-size:.85rem;font-weight:700;letter-spacing:.5px} .trust-icon{color:var(--amber);font-size:1.1rem} section{padding:5rem 5%} .section-label{font-size:.75rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--amber);margin-bottom:.8rem} h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,4vw,3.5rem);line-height:1;letter-spacing:1px;margin-bottom:1.2rem;color:var(--slate)} .section-intro{font-size:1.05rem;color:#4a5568;max-width:600px;margin-bottom:3rem} .services-section{background:var(--white)} .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5px;background:var(--light);border:1.5px solid var(--light)} .service-card{background:var(--white);padding:2.5rem 2rem;transition:all .25s;position:relative;overflow:hidden} .service-card::before{content:'';position:absolute;bottom:0;left:0;width:0;height:3px;background:var(--amber);transition:width .3s} .service-card:hover::before{width:100%} .service-card:hover{background:#fafbff} .service-icon{font-size:2rem;margin-bottom:1rem} .service-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:1px;margin-bottom:.6rem;color:var(--slate)} .service-card p{font-size:.92rem;color:#4a5568;line-height:1.7} .service-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.82rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--amber);text-decoration:none} .why-section{background:var(--slate);color:var(--white)} .why-section h2{color:var(--white)} .why-section .section-label{color:var(--amber)} .why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-top:3rem} .why-item{border-left:3px solid var(--amber);padding-left:1.5rem} .why-num{font-family:'Bebas Neue',sans-serif;font-size:3rem;color:rgba(232,160,32,.2);line-height:1} .why-item h3{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:1px;color:var(--amber);margin-bottom:.5rem} .why-item p{font-size:.9rem;color:var(--grey);line-height:1.7} .areas-section{background:var(--cream)} .areas-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem} .area-tag{background:var(--white);border:1.5px solid var(--light);color:var(--slate);padding:.5rem 1.2rem;border-radius:2px;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s;letter-spacing:.5px} .area-tag:hover{border-color:var(--amber);color:var(--amber)} .area-tag.primary{background:var(--amber);color:var(--slate);border-color:var(--amber)} .reviews-section{background:var(--white)} .reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:3rem} .review-card{background:var(--cream);padding:2rem;border-radius:2px;border-top:3px solid var(--amber)} .review-stars{color:var(--amber);font-size:1rem;margin-bottom:.8rem;letter-spacing:2px} .review-text{font-size:.95rem;color:#4a5568;line-height:1.7;font-style:italic;margin-bottom:1rem} .reviewer{font-weight:700;font-size:.85rem;color:var(--slate)} .reviewer span{font-weight:400;color:var(--grey);margin-left:.5rem} .faq-section{background:var(--cream)} .faq-list{max-width:800px;margin-top:2.5rem} .faq-item{border-bottom:1px solid var(--light)} .faq-question{width:100%;background:none;border:none;text-align:left;padding:1.4rem 0;font-family:'Lato',sans-serif;font-size:1rem;font-weight:700;color:var(--slate);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem} .faq-question::after{content:'+';font-size:1.4rem;color:var(--amber);flex-shrink:0;transition:transform .2s} .faq-item.open .faq-question::after{transform:rotate(45deg)} .faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease} .faq-item.open .faq-answer{max-height:300px} .faq-answer p{padding-bottom:1.4rem;font-size:.95rem;color:#4a5568;line-height:1.7} .content-section{background:var(--white)} .two-col{display:grid;grid-template-columns:2fr 1fr;gap:4rem;align-items:start} .two-col-equal{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start} .prose p{font-size:.95rem;color:#4a5568;line-height:1.8;margin-bottom:1.2rem} .prose h3{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:1px;margin:2rem 0 .8rem;color:var(--slate)} .prose ul{margin:0 0 1.2rem 1.2rem} .prose ul li{font-size:.95rem;color:#4a5568;line-height:1.9} .pricing-section{background:var(--cream)} .pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-top:2.5rem} .pricing-card{background:var(--white);padding:2rem;border-radius:2px;border-top:3px solid var(--amber)} .pricing-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:1px;color:var(--slate);margin-bottom:.5rem} .pricing-price{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--amber);margin-bottom:.5rem} .pricing-card p{font-size:.88rem;color:#4a5568;line-height:1.7} .callout-box{background:var(--slate2);padding:2rem;border-radius:2px;border-left:4px solid var(--amber)} .callout-box h4{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--amber);margin-bottom:1rem} .callout-box p{font-size:.88rem;color:var(--light);line-height:1.7;margin-bottom:.8rem} .callout-phone{display:block;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;color:var(--amber);letter-spacing:2px;text-decoration:none;margin-top:1rem} .info-box{margin-top:1.5rem;background:var(--cream);padding:1.5rem;border-radius:2px} .info-box strong{font-family:'Bebas Neue',sans-serif;letter-spacing:1px;font-size:1.1rem} .info-box span{font-size:.85rem;color:#4a5568;line-height:2;display:block;margin-top:.5rem} .local-section{background:var(--white)} .map-placeholder{background:var(--slate2);border-radius:2px;height:280px;display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:.85rem;letter-spacing:1px;text-transform:uppercase;border:2px dashed rgba(232,160,32,.3);flex-direction:column;gap:1rem} .cta-section{background:var(--slate);color:var(--white);text-align:center;padding:5rem 5%;position:relative;overflow:hidden} .cta-section::before{content:'PORTSMOUTH';position:absolute;font-family:'Bebas Neue',sans-serif;font-size:18vw;color:rgba(255,255,255,.03);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap} .cta-section .section-label{color:var(--amber)} .cta-section h2{color:var(--white);margin-bottom:1rem} .cta-section p{color:var(--grey);max-width:500px;margin:0 auto 2.5rem} .cta-phone{display:block;font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,4rem);color:var(--amber);letter-spacing:3px;text-decoration:none;margin-bottom:2rem;transition:color .2s} .cta-phone:hover{color:var(--amber2)} footer{background:#080f17;color:var(--grey);padding:3rem 5%;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem} .footer-brand .logo{font-size:1.4rem} .footer-brand p{font-size:.85rem;margin-top:1rem;line-height:1.7;max-width:280px} footer h4{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:2px;color:var(--white);margin-bottom:1rem} footer ul{list-style:none} footer ul li{margin-bottom:.5rem} footer ul li a{color:var(--grey);text-decoration:none;font-size:.85rem;transition:color .2s} footer ul li a:hover{color:var(--amber)} .footer-bottom{background:#080f17;border-top:1px solid rgba(255,255,255,.06);padding:1.2rem 5%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem} .footer-bottom p{font-size:.78rem;color:rgba(138,155,176,.6)} .sticky-call{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--amber);color:var(--slate);text-align:center;padding:1rem;font-weight:700;font-size:1rem;letter-spacing:1px;text-transform:uppercase;text-decoration:none} @keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}} .reveal{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease} .reveal.will-animate{opacity:0;transform:translateY(30px)} .reveal.visible{opacity:1;transform:none} @media(max-width:768px){ nav{display:none} .hero{padding:4rem 5% 5rem} .hero-actions{flex-direction:column} .btn-primary,.btn-outline{text-align:center;width:100%} .two-col,.two-col-equal{grid-template-columns:1fr} footer{grid-template-columns:1fr;gap:2rem} .sticky-call{display:block} body{padding-bottom:60px} .trust-bar{gap:1.2rem;justify-content:flex-start} }
Full roof replacement in Fratton with marine-grade fixings and 10-year guarantee. Fratton's Victorian terraces are typically on narrow plots with limited scaffold access from the rear. Written survey, itemised quote before we lift a tile.
Every Fratton re-roof survey includes batten and rafter condition assessment, tile identification for heritage matching where required, and fixing specification for the coastal exposure zone.
Full strip, breathable membrane, pressure-treated battens, marine-grade stainless ring-shank fixings as standard. Scaffold included in the quote. Written 10-year guarantee on completion.
Standard galvanised fixings have a reduced design life in Fratton's coastal-adjacent environment. Marine-grade stainless is specified as standard on all our Fratton re-roofs at modest additional cost for a 20-plus-year life difference.
Fratton's housing stock creates a specific re-roof specification profile. Fratton's Victorian terraces are typically on narrow plots with limited scaffold access from the rear. We use tower scaffold systems and mobile elevated platforms on streets where traditional scaffold cannot be erected. We survey the full batten and rafter structure before quoting — any deck or structural issues are identified upfront and included in the price, not presented as mid-job extras.
Every Fratton re-roof includes full strip of existing tiles and underlay, structural assessment of battens and rafters, installation of breathable membrane underlay, pressure-treated battens, and marine-grade stainless fixings as standard. Scaffold is included in the quote — we do not carry out re-roof work without proper access.
Fratton is within Portsea Island's general salt microclimate — marine-grade stainless fixings are specified on all Fratton re-roofs. We specify marine-grade stainless fixings on all our Portsmouth area re-roofs as standard — not as an optional extra. The additional cost over standard galvanised is modest; the difference in design life in this environment is 20-30 years.
| Service | Cost Guide | Notes |
|---|---|---|
| 2-bed terrace | £5,500–£8,500 | Strip, membrane, battens, tiles |
| 3-bed semi | £7,000–£11,000 | Marine-grade fixings included |
| 3-bed Victorian/Edwardian | £8,000–£13,000 | Heritage tile matching available |
| 4-bed detached | £11,000–£16,000 | Full specification quote |
"Party wall chimney stack repair in Fratton — our half had failed but they assessed the full stack. Coordinated with next door and sorted both sides properly. Really professional approach."
"Clay tile slippage on our Fratton Victorian — sourced matching reclaimed tiles and re-fixed the slope properly. You can't tell which tiles are original."
"Ridge repointing across our full Fratton terrace. Tight scaffold on a narrow street — they managed it without blocking the road for long. Good communication throughout."
Yes — Fratton is within our core service area. Call 0239 307 1334 for availability and free quote.
Yes — free, no-obligation survey and written quote before any work starts. No call-out fee.
Yes. NFRC registration, full public liability insurance and 10-year written guarantee on all work.
Most jobs are surveyed within 48 hours and started within 1–2 weeks. Emergency work is available same day — call 0239 307 1334.
A standard 3-bed semi takes 4–6 days. Victorian terraces with chimney work can run to 7–8 days. We give a realistic timeline in the written quote.
Yes — scaffold is included in the quote on all re-roof projects. We do not undertake re-roof work without proper scaffold access.
10-year written workmanship guarantee on all re-roof projects, backed by our public liability insurance.
No call-out fees. No obligation. Local Portsmouth roofers covering this area.
0239 307 1334