
/* V27 — Stable global navigation */
.nav{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.985);
  border-bottom:2px solid #1f6f35;
  box-shadow:0 4px 18px rgba(13,36,21,.04);
}
.nav .nav-inner{
  width:min(1240px,calc(100% - 48px));
  min-height:82px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:22px;
}
.nav .brand{
  display:flex;
  align-items:center;
  gap:11px;
  flex:0 0 auto;
  color:#171c19;
  text-decoration:none;
}
.nav .brand img{
  width:44px !important;
  height:44px !important;
  object-fit:contain;
  flex:0 0 44px;
}
.nav .brand strong{
  display:block;
  max-width:190px;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.95rem;
  line-height:1.02;
  font-weight:800;
  text-transform:uppercase;
}
.nav-links{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:19px;
}
.nav-links > a,
.nav-drop > a{
  color:#343a36;
  text-decoration:none;
  white-space:nowrap;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.76rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.nav-links > a:hover,
.nav-drop > a:hover{
  color:#1f6f35;
}
.nav-drop{
  position:relative;
  padding:31px 0;
  margin:-31px 0;
}
.nav-drop > a:after{
  content:" ▾";
  font-size:.72em;
}
.nav-drop .drop-menu{
  display:none;
  position:absolute;
  left:-18px;
  top:72px;
  min-width:255px;
  padding:8px 0 10px;
  background:#fff;
  border:1px solid #d7ddd7;
  border-top:3px solid #1f6f35;
  border-radius:0 0 12px 12px;
  box-shadow:0 18px 45px rgba(10,28,16,.14);
  z-index:1100;
}
.nav-drop:hover .drop-menu,
.nav-drop:focus-within .drop-menu{
  display:block;
}
.nav-drop .drop-menu .menu-note{
  display:block;
  padding:10px 18px 7px;
  color:#7a827d;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.nav-drop .drop-menu a{
  display:block;
  padding:11px 18px;
  color:#27302a;
  text-decoration:none;
  font-family:Inter,Arial,sans-serif;
  font-size:.87rem;
  line-height:1.3;
  font-weight:650;
  text-transform:none;
  letter-spacing:0;
}
.nav-drop .drop-menu a:hover{
  background:#f3f5f1;
  color:#1f6f35;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:2px;
}
.nav-phone{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#202622;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.81rem;
  font-weight:800;
  white-space:nowrap;
  text-decoration:none;
}
.nav-phone:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#1f7a3d;
  box-shadow:0 0 0 4px rgba(31,122,61,.09);
}
.nav-cta{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:160px;
  padding:13px 17px !important;
  border-radius:8px;
  overflow:hidden;
  background:#1f6f35 !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(31,111,53,.18);
  font-family:Montserrat,Arial,sans-serif;
  font-size:.76rem;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.nav-cta:hover{
  transform:translateY(-2px);
  background:#185b2b !important;
  box-shadow:0 14px 30px rgba(31,111,53,.27);
}
.nav-cta:after{
  content:"";
  position:absolute;
  top:-45%;
  left:-35%;
  width:32%;
  height:190%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.40),transparent);
  animation:navCtaSweep 5s ease-in-out infinite;
}
@keyframes navCtaSweep{
  0%,74%{left:-38%;opacity:0}
  78%{opacity:1}
  91%{left:112%;opacity:1}
  100%{left:112%;opacity:0}
}
.menu-toggle{
  display:none;
  width:42px;
  height:42px;
  padding:9px;
  border:1px solid #d7ddd7;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}
.menu-toggle span{
  display:block;
  width:100%;
  height:2px;
  margin:4px 0;
  background:#1d241f;
}
.mobile-menu{
  display:none;
}

/* Relocated estimate forms on service pages */
.estimate-section-v27{
  padding:78px 0;
  background:#f5f5f1;
  border-top:1px solid #d7ddd7;
}
.estimate-section-v27 .estimate-wrap-v27{
  width:min(900px,calc(100% - 48px));
  margin:auto;
}
.estimate-section-v27 .estimate-intro-v27{
  max-width:700px;
  margin:0 auto 28px;
  text-align:center;
}
.estimate-section-v27 .estimate-intro-v27 h2{
  margin:0 0 10px;
  font-family:Montserrat,Arial,sans-serif;
  color:#171c19;
}
.estimate-section-v27 .estimate-intro-v27 p{
  margin:0;
  color:#626c65;
}
.estimate-section-v27 .quote-card{
  max-width:760px;
  margin:0 auto;
}

@media (max-width:1180px){
  .nav-links{gap:14px}
  .nav-phone{display:none}
}
@media (max-width:1080px){
  .nav .nav-inner{
    width:min(1240px,calc(100% - 30px));
    min-height:72px;
  }
  .nav-links,
  .nav-phone,
  .nav-cta{
    display:none !important;
  }
  .nav-actions{
    margin-left:auto;
  }
  .menu-toggle{
    display:block;
  }
  .mobile-menu.open{
    display:block;
    padding:8px 20px 20px;
    background:#fff;
    border-top:1px solid #d7ddd7;
  }
  .mobile-menu > a,
  .mobile-menu summary{
    display:block;
    padding:14px 2px;
    border-bottom:1px solid #e0e4e0;
    color:#1d241f;
    font-family:Montserrat,Arial,sans-serif;
    font-size:.88rem;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
  }
  .mobile-menu details{
    border:0;
  }
  .mobile-menu summary{
    list-style:none;
    position:relative;
    padding-right:28px;
  }
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary:after{
    content:"+";
    position:absolute;
    right:3px;
    top:12px;
    color:#1f6f35;
    font-size:1.15rem;
  }
  .mobile-menu details[open] summary:after{content:"–"}
  .mobile-submenu{
    padding:5px 0 10px 14px;
    border-bottom:1px solid #e0e4e0;
  }
  .mobile-submenu a{
    display:block;
    padding:9px 0;
    color:#555f59;
    font-family:Inter,Arial,sans-serif;
    font-size:.92rem;
    text-decoration:none;
  }
  .mobile-menu .mobile-estimate{
    margin-top:14px;
    padding:14px 18px;
    border:0;
    border-radius:8px;
    background:#1f6f35;
    color:#fff;
    text-align:center;
  }
}
@media (max-width:560px){
  .nav .brand strong{
    max-width:165px;
    font-size:.83rem;
  }
  .nav .brand img{
    width:40px !important;
    height:40px !important;
  }
  .estimate-section-v27 .estimate-wrap-v27{
    width:calc(100% - 28px);
  }
}
@media (prefers-reduced-motion:reduce){
  .nav-cta:after{animation:none}
  .nav-cta{transition:none}
}


/* V28 — Header CTA emphasis.
   High specificity intentionally overrides legacy page-level button rules. */
.nav .nav-actions a.btn.primary.nav-cta{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:178px !important;
  min-height:50px !important;
  padding:0 22px !important;
  border:1px solid #17612f !important;
  border-radius:9px !important;
  background:#1f7a3d !important;
  color:#ffffff !important;
  box-shadow:
    0 10px 22px rgba(31,122,61,.24),
    0 0 0 1px rgba(255,255,255,.12) inset !important;
  font-family:Montserrat,Arial,sans-serif !important;
  font-size:.79rem !important;
  line-height:1 !important;
  font-weight:850 !important;
  letter-spacing:.015em !important;
  text-decoration:none !important;
  text-transform:none !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  transform:translateZ(0);
  isolation:isolate;
}

.nav .nav-actions a.btn.primary.nav-cta:hover,
.nav .nav-actions a.btn.primary.nav-cta:focus-visible{
  background:#176731 !important;
  color:#ffffff !important;
  border-color:#125427 !important;
  transform:translateY(-2px) scale(1.015) !important;
  box-shadow:
    0 15px 30px rgba(31,122,61,.31),
    0 0 0 3px rgba(31,122,61,.10) !important;
}

.nav .nav-actions a.btn.primary.nav-cta:before{
  content:"";
  position:absolute;
  inset:-3px;
  z-index:-2;
  border-radius:11px;
  border:1px solid rgba(31,122,61,.30);
  animation:estimatePulse 3.4s ease-out infinite;
}

.nav .nav-actions a.btn.primary.nav-cta:after{
  content:"";
  position:absolute;
  top:-45%;
  left:-38%;
  width:30%;
  height:190%;
  z-index:-1;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  animation:estimateSweep 4.8s ease-in-out infinite;
}

@keyframes estimatePulse{
  0%,62%{opacity:0;transform:scale(1)}
  67%{opacity:.65}
  88%{opacity:0;transform:scale(1.09)}
  100%{opacity:0;transform:scale(1.09)}
}
@keyframes estimateSweep{
  0%,68%{left:-38%;opacity:0}
  73%{opacity:1}
  88%{left:112%;opacity:1}
  100%{left:112%;opacity:0}
}

@media (prefers-reduced-motion:reduce){
  .nav .nav-actions a.btn.primary.nav-cta:before,
  .nav .nav-actions a.btn.primary.nav-cta:after{
    animation:none !important;
  }
  .nav .nav-actions a.btn.primary.nav-cta{
    transition:none !important;
  }
}

/* V29 — simplified desktop header after removing visible phone number */
.nav-actions{
  margin-left:8px !important;
}
