
body { margin:0; font-family: Arial, sans-serif; color:#333; line-height:1.6; }
header {display:flex; justify-content:space-between; align-items:center; padding:10px 20px; background:#fff; border-bottom:1px solid #ddd; position:sticky; top:0; z-index:10; flex-wrap:wrap; }
nav a { margin-left:20px; text-decoration:none; color:#333; font-weight:bold; }
.hero, .fullwidth{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  margin: 18px auto 22px;
}
section { padding:40px 20px; max-width:1000px; margin:auto; }
section h1 { margin: 0 0 18px; }
section h2 { margin: 0 0 14px; }
section p { margin: 0 0 16px; }
section ul { margin: 0 0 16px 22px; }

/* Top CTA strip (mobile + desktop)
   Goal: keep it compact on mobile while still being tappable. */
.callbar {
  background:#0b5ea8;
  padding:10px 15px;
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.callbtn, .emailbtn { display:inline-block; padding:10px 16px; border-radius:6px; background:#005bab; color:#fff; text-decoration:none; font-weight:bold; }

/* Within the callbar, make the buttons slightly smaller and lay them out neatly */
.callbar .callbtn,
.callbar .emailbtn {
  background: rgba(255,255,255,0.18);
  border: 2px solid rgba(255,255,255,0.35);
  padding: 10px 14px;
  border-radius: 10px;
}

.whatsappbtn { display:inline-flex; align-items:center; padding:10px 14px; border-radius:10px; background:transparent; color:#fff; text-decoration:none; font-weight:bold; border:2px solid rgba(255,255,255,0.35); }
.whatsappbtn svg { width:18px; height:18px; margin-right:8px; fill:#fff; }
.whatsappbtn:hover { opacity:0.85; }

/* Utility CTA cluster used within page content */
.cta-links {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cta-links a {
  flex: 1 1 160px;
  text-align: center;
}

footer { background:#005bab; color:#fff; text-align:center; padding:30px 20px; margin-top:40px; }
.footer-stack { max-width:1000px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:14px; }
.footer-stack img { max-height:72px; }
.footer-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.footer-line { font-size:14px; opacity:0.95; }
.service-block { margin-bottom:40px; }
.service-block img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  margin: 18px auto 22px;
}
.service-block h2 { margin:10px 0 6px; }

/* Header logo doubled in size */
header img {
    max-height: 120px !important; /* doubled from ~60px */
    max-width: 240px;
    height: auto;
    width: auto;
}


@media (max-width: 768px) {
    header img {
        max-height: 90px !important;
        max-width: 200px;
    }


    /* Slightly tighter spacing on mobile to avoid huge gaps between sections */
    section { padding: 28px 20px; }

    /* Keep the top CTA strip compact: Call + Email side-by-side; WhatsApp below */
    .callbar { padding: 8px 10px; gap: 8px; }
    .callbar .callbtn,
    .callbar .emailbtn {
        flex: 1 1 calc(50% - 8px);
        max-width: none;
        margin: 0 !important;
        box-sizing: border-box;
        text-align: center;
    }
    .callbar .whatsappbtn {
        flex: 1 1 100%;
        justify-content: center;
    }

    /* In-page CTA clusters: compact buttons (often 2-up, then wrap) */
    .cta-links {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: stretch;
    }
    .cta-links a {
        /* Force normal button sizing (prevents “massive blocks” on some mobile browsers) */
        width: auto !important;
        flex: 1 1 160px;
        max-width: 240px;
        height: auto !important;
        min-height: 0 !important;
        padding: 12px 16px !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        margin: 0;
    }

    /* Remove global mobile margin that was inflating button stacks */
    .callbtn{ margin-top: 0 !important; }
}


.footer-btn-whatsapp{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:6px;
  border:2px solid #fff;
  color:#fff;
  text-decoration:none;
}
.footer-btn-whatsapp .wa-icon{
  font-size:18px;
  line-height:1;
}
.footer-btn-whatsapp:hover{opacity:.85}


/* Anchor offset helpers (based on 3:2 project photo ratio + section padding) */
.anchor-half-photo,
.anchor-full-photo{
  display:block;
  height:0;
  position:relative;
}
.anchor-half-photo{
  top: calc(-1 * (min(1000px, (100vw - 40px)) / 3));
}
.anchor-full-photo{
  top: calc(-1 * (min(1000px, (100vw - 40px)) * 2 / 3));
}

/* WhatsApp button in callbar (match Call/Email buttons) */
.whatsappcallbtn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:12px;
  background:rgba(255,255,255,0.14);
  border:2px solid rgba(255,255,255,0.35);
  color:#fff;
  text-decoration:none;
  font-weight:bold;
}
.whatsappcallbtn svg{ width:18px; height:18px; }


/* Strapline standard */
.strapline{font-weight:700;font-style:italic;}

/* Figure captions */
figure{margin:0;}
figcaption{font-size:14px;line-height:1.4;margin-top:6px;}



/* Responsive chimney lining image fix */
img {
    max-width: 100%;
    height: auto;
    display: block;
}
body {
    overflow-x: hidden;
}


/* Prevent footer logo stretching */
.footer-stack img,
.footer-logo img {
  height: auto !important;
  width: 100%;
  max-width: 260px;
  display: block;
  margin: 0 auto;
}


/* Location rotation links (above footer) */
.location-rotation { text-align: center; margin: 16px 0 8px; }
.location-rotation a { font-weight: 600; }

.location-rotation-wrap { width: 100%; }


/* Locations dropdown navigation */
.site-nav { display:flex; align-items:center; gap:0; flex-wrap:wrap; }
.site-nav > a { margin-left:20px; }
.site-nav details { margin-left:20px; position:relative; }
.site-nav summary {
  list-style:none;
  cursor:pointer;
  font-weight:bold;
  color:#333;
}
.site-nav details.nav-locations > summary { font-size: 1.06em; }
.site-nav summary::-webkit-details-marker { display:none; }

.site-nav .dropdown {
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  min-width:280px;
  background:#fff;
  border:1px solid #ddd;
  border-radius:10px;
  padding:14px 14px 10px;
  box-shadow:0 8px 24px rgba(0,0,0,0.12);
  display:flex;
  flex-direction:column;
  gap:12px;
}

.site-nav .dropdown-group { display:flex; flex-direction:column; gap:8px; }
.site-nav .dropdown-title { font-weight:800; font-size:14px; padding-bottom:4px; border-bottom:1px solid #eee; }
.site-nav .dropdown a {
  margin:0;
  padding:6px 8px;
  border-radius:8px;
}
.site-nav .dropdown a:hover { background:#f2f6fb; }
.site-nav .coming-soon {
  padding:6px 8px;
  border-radius:8px;
  color:#777;
  font-weight:600;
  opacity:0.85;
}

/* Mobile: keep top nav on one row (Home | Services | Contact | Locations) */
@media (max-width: 768px) {
  .site-nav { width:100%; justify-content:space-between; flex-wrap:nowrap; }
  .site-nav > a, .site-nav details { margin:0; flex:1 1 0; text-align:center; }
  .site-nav summary { display:block; text-align:center; }
  .site-nav .dropdown {
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    right:auto;
    top:calc(100% + 10px);
    min-width:260px;
    width:92vw;
    max-width:92vw;
    box-shadow:0 8px 24px rgba(0,0,0,0.12);
    border:1px solid #ddd;
    margin-top:0;
  }
}
.site-nav > a, .site-nav details { margin-left:0; margin-right:16px; }
  .site-nav details { width:100%; }
  .site-nav .dropdown {
    position:static;
    box-shadow:none;
    border:1px solid #eee;
    margin-top:10px;
  }
}



/* Dropdown scroll fix + styling */
.site-nav summary { color:#0b5ea8; }
.site-nav .dropdown-title { color:#333; text-decoration: underline; }

.site-nav .dropdown {
  max-height: 70vh;
  overflow-y: auto;
}

