/* =========================================================
   PERFECT BUILDING CONTRACTOR LTD — MASTER LAYOUT
   Single responsive header, menu and footer layer.
   Loaded last so legacy page CSS cannot break global layout.
   ========================================================= */
:root{--pb-green:#086247;--pb-green-dark:#064c39;--pb-green-deep:#043a2c;--pb-light:#c8f5a9;--pb-white:#fff;--pb-text:#124f3d;}
html,body{max-width:100%;overflow-x:hidden;}body{padding-top:166px!important;}
body .promo{position:fixed!important;top:0!important;left:0!important;right:0!important;height:35px!important;min-height:35px!important;margin:0!important;padding:7px 12px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;background:var(--pb-green-deep)!important;color:#fff!important;font-family:Poppins,Arial,sans-serif!important;font-size:12px!important;font-weight:600!important;line-height:1.3!important;z-index:10000!important;border:0!important;}
body .site-header{position:fixed!important;top:35px!important;left:0!important;right:0!important;z-index:9999!important;margin:0!important;background:var(--pb-green)!important;color:#fff!important;box-shadow:0 3px 12px rgba(0,0,0,.16)!important;font-family:Poppins,Arial,sans-serif!important;}
.site-header .brand-row{height:87px!important;min-height:87px!important;display:grid!important;grid-template-columns:70px minmax(0,1fr) auto 46px!important;align-items:center!important;gap:18px!important;padding:0 5.5%!important;border-bottom:1px solid rgba(255,255,255,.14)!important;background:var(--pb-green)!important;}
.site-header .logo-wrap{width:60px!important;height:60px!important;margin:0!important;padding:0!important;border-radius:50%!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important;flex:none!important;}.site-header .logo-wrap img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;display:block!important;}
.site-header .company-details{min-width:0!important;display:flex!important;align-items:center!important;justify-content:center!important;}.site-header .company-name{margin:0!important;color:#fff!important;text-align:center!important;font-size:16px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:.1px!important;white-space:nowrap!important;display:block!important;}.site-header .company-name::after{content:none!important;display:none!important;}
.site-header .socials{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:12px!important;color:var(--pb-light)!important;font-size:17px!important;font-weight:700!important;white-space:nowrap!important;}.site-header .socials a{display:inline-flex!important;align-items:center!important;justify-content:center!important;color:inherit!important;text-decoration:none!important;line-height:1!important;}.site-header .socials a:hover{color:#fff!important;}
.site-header .menu-toggle{display:none!important;width:46px!important;height:46px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#fff!important;font-family:Arial,sans-serif!important;font-size:31px!important;font-weight:300!important;line-height:1!important;cursor:pointer!important;align-items:center!important;justify-content:center!important;box-shadow:none!important;}
.site-header .nav-row{height:44px!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0 5.5%!important;margin:0!important;overflow:visible!important;border:0!important;border-bottom:3px solid #fff!important;background:var(--pb-green)!important;}.site-header .main-nav{display:flex!important;align-items:center!important;gap:28px!important;margin:0!important;padding:0!important;}.site-header .main-nav a{display:inline-flex!important;align-items:center!important;min-height:44px!important;margin:0!important;padding:0!important;color:#fff!important;text-decoration:none!important;font-size:14px!important;font-weight:500!important;white-space:nowrap!important;border:0!important;background:transparent!important;}.site-header .main-nav a:hover,.site-header .main-nav a.active{color:var(--pb-light)!important;}
.site-header .phone-box{flex:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:165px!important;min-height:34px!important;margin:0!important;padding:8px 22px!important;background:#fff!important;color:#222!important;text-decoration:none!important;text-align:center!important;font-size:13px!important;font-weight:600!important;border:0!important;}
/* Master footer */
body .site-footer{display:grid!important;grid-template-columns:1.45fr 1.15fr 1.1fr .95fr!important;gap:34px!important;margin:0!important;padding:58px 5.5% 0!important;background:var(--pb-green)!important;color:#fff!important;font-family:Poppins,Arial,sans-serif!important;overflow:hidden!important;}.site-footer>div{min-width:0!important;margin:0!important;padding:0!important;}.site-footer h3{margin:0 0 14px!important;color:#fff!important;font-size:16px!important;line-height:1.35!important;font-weight:600!important;}.site-footer p{margin:0 0 10px!important;color:rgba(255,255,255,.9)!important;font-size:13px!important;line-height:1.75!important;}.site-footer a{color:#fff!important;text-decoration:none!important;}.site-footer a:hover{color:var(--pb-light)!important;text-decoration:underline!important;}.site-footer .footer-legal{grid-column:1/-1!important;display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:8px!important;padding:14px 0 0!important;font-size:12px!important;color:rgba(255,255,255,.9)!important;}.site-footer .copyright{grid-column:1/-1!important;width:calc(100% + 11%)!important;margin:18px -5.5% 0!important;padding:15px 5.5%!important;text-align:center!important;background:var(--pb-green-deep)!important;color:rgba(255,255,255,.88)!important;font-size:12px!important;}
/* Forms and local SEO additions */
.form-privacy-note{font-size:12px!important;line-height:1.5!important;opacity:.92!important;margin:10px 0!important;}.form-privacy-note a{text-decoration:underline!important;}.local-area-note{background:#f3f8f6!important;border-top:1px solid rgba(8,98,71,.08)!important;border-bottom:1px solid rgba(8,98,71,.08)!important;}.local-area-note .intro-copy{max-width:900px!important;margin:0 auto!important;}.local-area-note h2{color:var(--pb-text)!important;font-size:clamp(24px,3vw,34px)!important;}.local-area-note p{font-size:15px!important;line-height:1.8!important;color:#4f5f59!important;}
/* Third-party map consent */
.map-consent-message{padding:18px!important;background:#f3f8f6!important;color:#244b40!important;font-size:14px!important;line-height:1.6!important;text-align:center!important;}.pb-consent-map{display:none!important;}.pb-consent-map.is-loaded{display:block!important;}
/* Cookie banner */
.pb-cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:20000;max-width:760px;margin:0 auto;padding:18px 20px;background:#fff;color:#1d332b;border:1px solid rgba(8,98,71,.2);box-shadow:0 12px 35px rgba(0,0,0,.2);font-family:Poppins,Arial,sans-serif;border-radius:12px;}.pb-cookie-banner[hidden]{display:none!important;}.pb-cookie-banner p{margin:0 0 12px;font-size:13px;line-height:1.55;}.pb-cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}.pb-cookie-actions button{border:1px solid var(--pb-green);padding:10px 16px;font:600 13px Poppins,Arial,sans-serif;cursor:pointer;}.pb-cookie-accept{background:var(--pb-green);color:#fff;}.pb-cookie-essential{background:#fff;color:var(--pb-green);}
/* Legal pages */
.legal-page{font-family:Poppins,Arial,sans-serif!important;background:#fff;}.legal-hero{padding:72px 6%;background:linear-gradient(135deg,rgba(8,98,71,.96),rgba(4,58,44,.96)),url('assets/premier.webp') center/cover;color:#fff;}.legal-hero>div{max-width:900px;margin:auto;}.legal-kicker{margin:0 0 10px;color:var(--pb-light);font-size:13px;font-weight:700;letter-spacing:1.5px;}.legal-hero h1{margin:0 0 14px;font-size:clamp(32px,5vw,54px);line-height:1.12;}.legal-hero p:last-child{max-width:760px;font-size:16px;line-height:1.7;margin:0;}.legal-content{max-width:900px;margin:0 auto;padding:56px 6%;}.legal-content h2{margin:30px 0 10px;color:var(--pb-text);font-size:24px;line-height:1.3;}.legal-content p{margin:0 0 16px;color:#46564f;font-size:15px;line-height:1.8;}.legal-content a{color:var(--pb-green);text-decoration:underline;}.last-updated{font-size:13px!important;color:#6a7a73!important;}
/* Mobile */
@media(max-width:900px){.site-header .main-nav{gap:20px!important;}.site-header .brand-row{padding:0 4%!important;}.site-header .nav-row{padding:0 4%!important;}}
@media(max-width:768px){body{padding-top:122px!important;padding-bottom:52px!important;}body .promo{height:35px!important;min-height:35px!important;padding:5px 12px!important;font-size:11px!important;}.site-header .brand-row{height:87px!important;min-height:87px!important;grid-template-columns:60px minmax(0,1fr) 46px!important;gap:12px!important;padding:0 6%!important;border-bottom:0!important;}.site-header .logo-wrap{width:55px!important;height:55px!important;}.site-header .company-details{justify-content:flex-start!important;}.site-header .company-name{text-align:left!important;font-size:14px!important;line-height:1.3!important;white-space:normal!important;}.site-header .socials{display:none!important;}.site-header .menu-toggle{display:flex!important;}.site-header .nav-row{display:none!important;height:auto!important;min-height:0!important;padding:0!important;border-bottom:0!important;background:var(--pb-green-dark)!important;}.site-header .nav-row.active{display:block!important;max-height:calc(100vh - 122px)!important;overflow-y:auto!important;box-shadow:0 10px 20px rgba(0,0,0,.18)!important;}.site-header .main-nav,.site-header .main-nav.active{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%!important;margin:0!important;padding:0!important;}.site-header .main-nav a{display:flex!important;width:100%!important;min-height:0!important;padding:16px 7%!important;color:#fff!important;font-size:16px!important;border-bottom:1px solid rgba(255,255,255,.14)!important;}.site-header .phone-box{display:flex!important;width:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:15px 7%!important;background:#fff!important;font-size:15px!important;}body .site-footer{grid-template-columns:1fr 1fr!important;gap:30px 22px!important;padding:45px 6% 0!important;}.site-footer h3{font-size:15px!important;}.site-footer p{font-size:13px!important;line-height:1.75!important;}.site-footer .footer-legal{justify-content:flex-start!important;font-size:12px!important;}.site-footer .copyright{width:calc(100% + 12%)!important;margin:12px -6% 0!important;padding:14px 6%!important;font-size:11px!important;}.pb-cookie-banner{left:10px;right:10px;bottom:10px;padding:16px;}.pb-cookie-actions button{flex:1 1 180px;}.legal-hero{padding:50px 7%;}.legal-content{padding:40px 7%;}.legal-content h2{font-size:22px;}.legal-content p{font-size:15px;}.local-area-note p{font-size:14px!important;}}
@media(max-width:600px){body .site-footer{grid-template-columns:1fr!important;gap:24px!important;}.site-footer .footer-legal{padding-top:4px!important;}.site-footer .copyright{text-align:left!important;}.pb-cookie-banner p{font-size:12px;}.pb-cookie-actions{flex-direction:column;}.pb-cookie-actions button{width:100%;}}
@media(max-width:360px){.site-header .brand-row{grid-template-columns:52px minmax(0,1fr) 42px!important;gap:8px!important;padding:0 4%!important;}.site-header .logo-wrap{width:50px!important;height:50px!important;}.site-header .menu-toggle{width:42px!important;height:42px!important;font-size:29px!important;}.site-header .company-name{font-size:13px!important;}.site-header .main-nav a{font-size:15px!important;}}


/* =========================================================
   FINAL MOBILE MENU FUNCTIONALITY OVERRIDE
   The JavaScript toggles .menu-open on the header and .active
   on both the menu container and navigation, preventing page
   specific legacy CSS from hiding the menu links.
   ========================================================= */
@media(max-width:768px){
  .site-header.menu-open .nav-row,
  .site-header .nav-row.active{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    overflow-y:auto!important;
    max-height:calc(100vh - 122px)!important;
  }

  .site-header.menu-open .main-nav,
  .site-header .main-nav.active{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    visibility:visible!important;
    opacity:1!important;
  }

  .site-header.menu-open .main-nav a,
  .site-header .main-nav.active a{
    display:flex!important;
    width:100%!important;
    min-height:54px!important;
    padding:16px 7%!important;
    color:#fff!important;
    background:transparent!important;
    visibility:visible!important;
    opacity:1!important;
    border-bottom:1px solid rgba(255,255,255,.14)!important;
  }

  .site-header.menu-open .phone-box,
  .site-header .nav-row.active .phone-box{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    min-height:56px!important;
    padding:15px 7%!important;
    margin:0!important;
    background:#fff!important;
    color:#222!important;
  }
}


/* VAT registration line — kept in the master header on every page */
.site-header .company-details{
  flex-direction:column!important;
}
.site-header .vat-number{
  display:block!important;
  margin:3px 0 0!important;
  color:rgba(255,255,255,.82)!important;
  font-size:10px!important;
  font-weight:500!important;
  line-height:1.25!important;
  letter-spacing:.1px!important;
  white-space:nowrap!important;
}
@media(min-width:769px){
  .site-header .company-details{
    align-items:center!important;
  }
}
@media(max-width:768px){
  .site-header .company-details{
    align-items:flex-start!important;
  }
  .site-header .vat-number{
    font-size:10px!important;
    margin-top:3px!important;
  }
  /* Keep the mobile navigation deterministic even when legacy page CSS differs. */
  .site-header.menu-open .nav-row{
    display:block!important;
  }
  .site-header:not(.menu-open) .nav-row{
    display:none!important;
  }
}
