*,*::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} }
Emergency roofing in Portchester 24 hours a day. Portchester's harbour-facing properties are vulnerable to the same storm patterns that affect Gosport — direct harbour exposure with no land shelter on the southern and eastern elevations. Call now for immediate response time confirmation.
We aim to reach Portchester within 2 to 4 hours of your call. Call 0239 307 1334 for immediate response time confirmation. Out-of-hours rates are always confirmed before work starts.
Active water ingress into a habitable room, storm damage exposing the roof deck, structural damage or chimney fall risk all count as emergencies. If in doubt call and we will confirm.
On arrival we make safe and assess the full damage extent. Temporary weatherproofing is applied where same-day permanent repair is not possible. Permanent repair is quoted in writing before any additional work begins.
We aim to reach any Portchester address within 2 to 4 hours of your call. Call 0239 307 1334 and we will confirm your response time immediately based on current demand. Out-of-hours rates apply for overnight and Sunday emergencies — confirmed before we start.
Active water ingress into a habitable room, structural damage from storm, large sections of displaced tiles exposing the roof deck, or chimney damage creating a fall risk all count as emergencies. Portchester's harbour-facing properties are vulnerable to the same storm patterns that affect Gosport — direct harbour exposure with no land shelter on the southern and eastern elevations. If in doubt, call — we would rather confirm it is not an emergency than leave you with active water damage.
We arrive, make the roof safe and assess the full extent of damage. Temporary weatherproofing is applied where same-day permanent repair is not possible. We photograph all damage and provide a written quote for permanent repair before any additional work begins. Permanent repair is carried out at the same visit or earliest available slot.
| Service | Cost Guide | Notes |
|---|---|---|
| Emergency call-out (daytime) | Standard rate | No call-out fee |
| Emergency call-out (overnight) | Out-of-hours rate | Confirmed before starting |
| Make-safe and temporary fix | From £200 | Permanent repair quoted separately |
| Storm damage permanent repair | From £250 | Priced on survey |
"Conservation area Victorian near the castle — full re-roof in reclaimed clay tiles. Portsmouth Roofing knew exactly what was required without prompting. Planning sign-off was straightforward."
"Harbour-facing Edwardian with severe lead corrosion on the chimney flashings. Heavier code lead specified — they explained the harbour exposure factor clearly."
"Post-war estate re-roof at Portchester North. Nail sickness across two slopes — assessed and re-fixed with stainless. Exactly as quoted, 10-year guarantee."
Portchester's harbour-facing Shore Road and castle village properties are vulnerable to south-easterly harbour storms. Conservation area properties in the castle village may have planning constraints on emergency repair materials — we carry heritage clay tiles and appropriate lead code on every Portchester call-out to avoid delaying make-safe work on these properties.
Emergency response time to Portchester is typically 30 to 45 minutes from Portsmouth base via the A27. Conservation area emergency work is handled with the same urgency as standard work — heritage material requirements are prepared in advance for Portchester calls.
Lead flashing failure and tile displacement on harbour-facing Shore Road and castle village properties after south-easterly harbour storm events. The conservation area context means we need to carry appropriate materials to avoid an inadequate temporary repair. Call 0239 307 1334 now for immediate response time confirmation.
Yes — Portchester 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.
We aim to reach Portchester within 2–4 hours. Call 0239 307 1334 for immediate confirmation of response time.
No call-out fee during standard hours. Out-of-hours rates apply overnight and Sundays — always confirmed before work starts.
Yes, where the damage allows. We carry materials for the most common emergency repairs on every van.
No call-out fees. No obligation. Local Portsmouth roofers covering this area.
0239 307 1334