*, *::before, *::after { 
   box-sizing: border-box; margin: 0; padding: 0; 
}
html { 
   scroll-behavior: smooth; 
}
body { 
   font-family: 'Open Sans', sans-serif; 
   color: #1C1C1C; 
   background: #FAFAF8; 
}
h1,h2,h3,h4 { 
   font-family: 'Montserrat', sans-serif; 
}

@keyframes fadeUp { 
   from { 
      opacity:0; 
      transform:translateY(24px); 
   } 
   to { 
      opacity:1; 
      transform:translateY(0); 
   } 
}
@keyframes pulse { 
   0%,100% { 
      box-shadow: 0 0 0 0 rgba(0,130,70,0.4); 
   } 
   70% { 
      box-shadow: 0 0 0 12px rgba(0,130,70,0); 
   } 
}
@keyframes slideIn { 
   from { 
      opacity:0; 
      transform:translateX(-20px); 
   } 
   to { 
      opacity:1; 
      transform:translateX(0); 
   } 
}

.btn-call {
   display: inline-flex; 
   align-items: center; 
   gap: 10px;
   background: #008246; 
   color: #fff; 
   font-family: 'Montserrat', sans-serif;
   font-weight: 700; 
   border: none; 
   cursor: pointer; 
   border-radius: 6px;
   text-decoration: none; 
   transition: background 0.2s, transform 0.1s;
}
.btn-call:hover { 
   background: #006B35; 
   transform: translateY(-1px); 
}
.btn-call:active { 
   transform: translateY(0); 
}
.btn-quote {
   display: inline-flex; 
   align-items: center; 
   gap: 8px;
   background: transparent; 
   color: #fff; 
   font-family: 'Montserrat', sans-serif;
   font-weight: 600; 
   border: 2px solid rgba(255,255,255,0.7); 
   cursor: pointer;
   border-radius: 6px; 
   text-decoration: none; 
   transition: all 0.2s;
}
.btn-quote:hover { 
   background: rgba(255,255,255,0.15); 
   border-color: #fff; 
}
.btn-quote-dark {
   display: inline-flex; 
   align-items: center; 
   gap: 8px;
   background: transparent; 
   color: #008246; 
   font-family: 'Montserrat', sans-serif;
   font-weight: 600; 
   border: 2px solid #008246; 
   cursor: pointer;
   border-radius: 6px; 
   text-decoration: none; 
   transition: all 0.2s;
}
.btn-quote-dark:hover { 
   background: #008246; 
   color: #fff; 
}

.section-label {
   font-family: 'Montserrat', sans-serif; 
   font-size: 11px; 
   font-weight: 700;
   letter-spacing: 0.12em; 
   text-transform: uppercase; 
   color: #008246;
   margin-bottom: 10px; 
   display: block;
}
.section-title {
   font-family: 'Montserrat', sans-serif; 
   font-weight: 800; 
   line-height: 1.15;
   color: #1C1C1C;
}

/* FAQ */
.faq-item { 
   border-bottom: 1px solid #E5E5E0; 
}
.faq-question {
   width: 100%; 
   background: none; 
   border: none; 
   cursor: pointer;
   display: flex; 
   align-items: center; 
   justify-content: space-between;
   padding: 20px 0; 
   text-align: left;
   font-family: 'Montserrat', sans-serif; 
   font-weight: 600; 
   font-size: 16px; 
   color: #1C1C1C;
}
.faq-question:hover { 
   color: #008246; 
}
.faq-icon { 
   width: 24px; 
   height: 24px; 
   flex-shrink: 0; 
   transition: transform 0.3s; 
   color: #008246; 
}
.faq-answer { 
   overflow: hidden; 
   transition: max-height 0.4s ease, padding 0.3s; 
   max-height: 0; padding: 0; 
}
.faq-answer.open { 
   max-height: 400px; 
   padding-bottom: 20px; 
}
.faq-icon.open { 
   transform: rotate(45deg); 
}

/* Before/After slider */
.ba-container { 
   position: relative; 
   overflow: hidden; 
   border-radius: 12px; 
   cursor: ew-resize; 
   user-select: none; 
}
.ba-after { 
   position: absolute; 
   inset: 0; 
   overflow: hidden; 
}
.ba-divider { 
   position: absolute; 
   top: 0; 
   bottom: 0; 
   width: 3px; 
   background: #fff; 
   cursor: ew-resize; 
   z-index: 10; 
}
.ba-handle { 
   position: absolute; 
   top: 50%; 
   transform: translate(-50%, -50%); 
   width: 44px; 
   height: 44px; 
   background: #fff; 
   border-radius: 50%; 
   display: flex; 
   align-items: center; 
   justify-content: center; 
   box-shadow: 0 2px 12px rgba(0,0,0,0.3); 
}

/* Reviews */
.review-card { 
   background: #fff; 
   border: 1px solid #E8E8E2; 
   border-radius: 12px; 
   padding: 24px; 
}
.stars { 
   color: #F9A825; 
   font-size: 18px; 
   letter-spacing: 2px; 
}

/* Process */
.process-step { 
   display: flex; 
   flex-direction: column; 
   align-items: center; 
   text-align: center; 
   position: relative; 
   flex: 1; 
}
.process-num { 
   width: 52px; 
   height: 52px; 
   border-radius: 50%; 
   background: #008246; 
   color: #fff; 
   font-family: 'Montserrat', sans-serif; 
   font-weight: 800; 
   font-size: 20px; 
   display: flex; 
   align-items: center; 
   justify-content: center; 
}
.process-line { 
   position: absolute; 
   top: 26px; 
   left: calc(50% + 26px); 
   right: calc(-50% + 26px); 
   height: 2px; 
   background: #D4EAD8; 
}

/* Map SVG */
.map-suburb { 
   fill: #C8E6C9; 
   stroke: #81C784; 
   stroke-width: 1; 
}
.map-suburb-main { 
   fill: #A5D6A7; 
   stroke: #4CAF50; 
   stroke-width: 1.5; 
}
.map-road { 
   stroke: #fff; 
   stroke-width: 1.5; 
   fill: none; 
}
.map-tree { 
   fill: #2D6A2F; 
}

/* Sticky header */
.sticky-header { 
   position: sticky; 
   top: 0; 
   z-index: 100; 
   background: #fff; 
   box-shadow: 0 2px 12px rgba(0,0,0,0.08); 
}

/* Mobile sticky bar */
.mobile-sticky-bar {
   display: none; 
   position: fixed; 
   bottom: 0; 
   left: 0; 
   right: 0; 
   z-index: 200;
   background: #1C1C1C; 
   padding: 12px 16px; 
   gap: 10px;
}

.scp0:hover {
    box-shadow: rgba(0, 130, 70, 0.12) 0px 8px 32px;
    transform: translateY(-3px);
}

@media (max-width: 768px) {
   .mobile-sticky-bar { 
      display: flex; 
   }
   .hide-mobile { 
      display: none !important; 
   }
   .hero-btns { 
      flex-direction: column; 
   }
   .trust-grid { 
      grid-template-columns: repeat(2, 1fr) !important; 
   }
   .services-grid { 
      grid-template-columns: repeat(2, 1fr) !important; 
   }
   .reviews-grid { 
      grid-template-columns: 1fr !important; 
   }
   .process-row { 
      flex-direction: column !important; 
      gap: 24px !important; 
   }
   .process-line { 
      display: none; 
   }
}
@media (min-width: 769px) {
   .mobile-sticky-bar { 
      display: none; 
   }
}
