/* ---- NAV v2 ---- */

.nav-right{display:flex;align-items:center;gap:10px;}

.nav-socials{display:flex;gap:2px;}

.nav-socials a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--ink-faded,#888);transition:color .2s,background .2s;text-decoration:none;}

.nav-socials a:hover{color:var(--sage,#6b7750);background:var(--cream,#faf8f2);}

.nav-call{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:100px;border:1.5px solid var(--sage,#6b7750);color:var(--sage,#6b7750);font-size:13px;font-weight:500;letter-spacing:.02em;white-space:nowrap;text-decoration:none;transition:background .2s,color .2s;}

.nav-call:hover{background:var(--sage,#6b7750);color:#fff;}

.has-dropdown{position:relative;}

.dropdown-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap;}

.nav-caret{font-size:14px;line-height:1;transition:transform .2s;}

.has-dropdown:hover .nav-caret,.has-dropdown:focus-within .nav-caret{transform:rotate(180deg);}

.dropdown-menu{display:none;position:absolute;top:calc(100% + 12px);left:0;background:#fff;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.12);min-width:175px;padding:8px 0;list-style:none;z-index:1000;margin:0;}

.dropdown-menu li a{display:block;padding:10px 20px;font-size:14px;color:var(--ink,#1a1a1a);text-decoration:none;}

.dropdown-menu li a:hover{background:var(--cream,#faf8f2);color:var(--sage,#6b7750);}

.has-dropdown:hover .dropdown-menu,.has-dropdown:focus-within .dropdown-menu{display:block;}

.nav-li-mobile-only{display:none;}

.nav-li-mobile-call{display:none;}

.nav-li-mobile-socials{display:none;}

a.address-link{color:inherit;text-decoration:underline;text-decoration-color:var(--sage-light,#b8c9a0);}

a.address-link:hover{color:var(--sage,#6b7750);}

@media(max-width:960px){

  .nav-right{display:none;}

  .has-dropdown{display:none;}

  .nav-li-mobile-only{display:list-item;}

  .nav-li-mobile-call{display:list-item;}

  .nav-li-mobile-socials{display:flex;gap:16px;padding:16px 0;list-style:none;}

  .nav-li-mobile-socials a{display:flex;align-items:center;color:var(--ink-faded,#888);}

  .nav-li-mobile-socials a:hover{color:var(--sage,#6b7750);}

}

/* ---- dropdown fixes ---- */

.nav-caret{display:none;}

/* bridge gap between nav item and dropdown so hover isn't lost */

.has-dropdown{padding-bottom:0;}

.dropdown-menu{

  top:100%;

  /* visibility-based transition bridges the gap timing */

  opacity:0;

  visibility:hidden;

  pointer-events:none;

  display:block !important;

  transition:opacity .18s,visibility .18s;

}

.has-dropdown:hover .dropdown-menu,

.has-dropdown:focus-within .dropdown-menu{

  opacity:1;

  visibility:visible;

  pointer-events:auto;

}

.dropdown-wide{min-width:230px;}

/* ---- nav label overrides + mobile fix ---- */

/* reduce section padding site-wide */

section{padding:56px 0 !important;}

.hero{padding-top:90px !important;}

.cta-section{padding:56px 0 !important;}



/* footer 3-column */

.footer-grid{grid-template-columns:1.6fr 1fr 1fr !important;gap:48px !important;}

@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr !important;}}

@media(max-width:600px){.footer-grid{grid-template-columns:1fr !important;}}



/* footer contact info block */

.footer-contact-info{margin-top:20px;display:flex;flex-direction:column;gap:8px;}

.footer-contact-info div{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:rgba(255,255,255,.7);}

.footer-contact-info span{flex-shrink:0;font-size:14px;line-height:1.4;}

.footer-contact-info a{color:rgba(255,255,255,.7);text-decoration:none;}

.footer-contact-info a:hover{color:#fff;}



/* mobile nav — fix overlay so toggle stays on top and items start at top */

.nav-toggle{position:relative;z-index:200;}

.nav-links.open{

  justify-content:flex-start !important;

  padding-top:88px !important;

  align-items:flex-start !important;

  padding-left:32px !important;

  padding-right:32px !important;

  gap:24px !important;

  overflow-y:auto;

}

.nav-links.open a{font-size:18px !important;}

/* backdrop for closing mobile nav */

.nav-backdrop{

  display:none;

  position:fixed;top:0;left:0;right:0;bottom:0;

  background:rgba(0,0,0,.4);z-index:89;

}

.nav-backdrop.open{display:block;}

/* === Two-row nav at ≤960px === */



/* Row 2 hidden on desktop */

.nav-row2{display:none;}



@media(max-width:960px){

  /* Hamburger fires at 960px on ALL pages */

  .nav-toggle{display:flex !important;}

  /* Hide inline nav-links — hamburger handles them */

  .nav-links{display:none !important;}



  /* Nav overlay when open */

  .nav-links.open{

    display:flex !important;

    position:fixed !important;

    top:0;left:0;right:0;bottom:0;

    flex-direction:column !important;

    align-items:flex-start !important;

    justify-content:flex-start !important;

    padding:90px 32px 40px !important;

    gap:0 !important;

    background:rgba(250,248,242,.99) !important;

    backdrop-filter:blur(20px) !important;

    -webkit-backdrop-filter:blur(20px) !important;

    overflow-y:auto !important;

    z-index:90 !important;

  }

  .nav-links.open li{

    border-bottom:1px solid rgba(107,119,80,.18);

    width:100%;

    list-style:none;

  }

  .nav-links.open li a,

  .nav-links.open li.nav-li-mobile-call a{

    display:block !important;

    padding:14px 0 !important;

    font-size:15px !important;

    letter-spacing:.06em !important;

    color:var(--ink) !important;

    font-size:15px !important;

  }

  /* Keep backdrop */

  .nav-toggle{z-index:200 !important;}



  /* Hide phone+quote from nav-right on medium screens (moved to row 2) */

  .nav-right .nav-call{display:none !important;}

  .nav-right .nav-cta{display:none !important;}

  /* Keep socials in row 1 */

  .nav-right{display:flex !important;}



  /* Show row 2 */

  .nav-row2{

    display:flex;

    gap:8px;

    padding:8px 32px 12px;

    border-top:1px solid rgba(107,119,80,.15);

    background:inherit;

  }

  .nav-row2 .nav-call{

    flex:1;

    justify-content:center;

    font-size:12px !important;

    padding:9px 12px !important;

  }

  .nav-row2 .nav-cta{

    flex:0 0 auto;

    padding:10px 20px !important;

    font-size:11px !important;

  }



  /* Header: auto-height to accommodate row 2 */

  .site-header{padding-bottom:0 !important;}

  .site-header .container{padding-bottom:0;}

}



/* Override nav-v4 mobile open rules (nav-v5 takes precedence) */

.nav-links.open{font-size:unset !important;}

/* === Nav fixes: logo shrink, equal row-2 buttons === */



/* Prevent logo from ever shrinking */

.nav-logo{flex-shrink:0;}

.nav-logo img{min-height:26px;}



/* Row 2: equal-width buttons */

.nav-row2 .nav-call,

.nav-row2 .nav-cta{

  flex:1 1 0 !important;

  text-align:center !important;

  justify-content:center !important;

  white-space:nowrap;

  font-size:12px !important;

  padding:10px 8px !important;

  min-width:0;

}



/* Areas dropdown — link the toggle to service-areas page */

/* overflow-x: prevent horizontal scroll from hero bleed & ribbon */

html,body{overflow-x:hidden;}

/* hero padding on mobile must clear two-row nav (~114px tall) */

@media(max-width:960px){

  .hero{padding-top:140px !important;}

  /* cap logo width so hamburger stays on-screen */

  .nav-logo img{max-width:110px;}

  /* hide socials from nav-right on mobile -- they are in the overlay menu */

  .nav-right .nav-socials{display:none;}

  /* force row-2 CTA visible (original CSS hides .nav-cta on mobile) */

  .nav-row2 .nav-call,

  .nav-row2 .nav-cta{display:flex !important;}

}

/* === Seamless desktop->mobile nav transition === */



/* 1200px: start shrinking the call button before it gets cramped */

@media(max-width:1200px){

  .nav-right .nav-call{font-size:12px !important;padding:8px 14px !important;letter-spacing:.01em !important;}

}

/* 1100px: further compact */

@media(max-width:1100px){

  .nav-right .nav-call{font-size:11px !important;padding:7px 10px !important;}

  .nav-socials a{width:28px !important;height:28px !important;}

  .nav-links li a{font-size:13px;letter-spacing:.03em;}

}

/* 1024px: drop call button from desktop nav-right gracefully before hamburger fires */

@media(max-width:1024px){

  .nav-right .nav-call{display:none !important;}

}



/* <=960px mobile fixes */

@media(max-width:960px){

  /* Overlay starts below two-row header (~120px tall) */

  .nav-links.open{padding-top:130px !important;}

  /* Phone button: let text wrap to 2 lines instead of clipping */

  .nav-row2 .nav-call{white-space:normal !important;line-height:1.25 !important;height:auto !important;min-height:40px;}

  /* Show social icons in row-1 next to hamburger (24px, fits with logo+toggle) */

  .nav-right .nav-socials{display:flex !important;}

  .nav-right .nav-socials a{width:24px !important;height:24px !important;}

  .nav-right{gap:6px !important;}

}

@media(min-width:961px){

  .nav{flex-wrap:wrap;padding-bottom:0;}

  .nav-logo{order:1;}

  .nav-right{order:2;margin-left:auto;}

  .nav-toggle{display:none !important;}

  .nav-row2{display:none !important;}

  .nav-links{order:3;display:flex !important;flex:0 0 100%;justify-content:center;gap:4px;border-top:1px solid var(--line,rgba(107,119,80,.18));padding:6px 0 4px;list-style:none;margin:0;}

  .has-dropdown{display:list-item !important;}

  .page-hero,.hero{padding-top:160px !important;}

}

@media(max-width:960px){

  .nav-logo img{max-width:90px !important;height:auto;}

  .nav-right .nav-socials a{width:28px !important;height:28px !important;}

  .nav-row2{padding:6px 24px 10px;gap:10px;}

  .nav-row2 .nav-call,.nav-row2 .nav-cta{flex:0 0 auto !important;white-space:nowrap !important;line-height:1 !important;height:auto !important;min-height:0 !important;padding:10px 14px !important;font-size:11px !important;}

  .nav-links.open .has-dropdown{display:list-item !important;}

  .nav-li-mobile-only{display:none !important;}

  .nav-links.open .has-dropdown .dropdown-menu{display:none !important;position:static !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;box-shadow:none !important;background:rgba(107,119,80,.07) !important;border-radius:6px !important;padding:4px 0 8px 12px !important;margin:0 0 6px !important;min-width:0 !important;border-left:2px solid var(--sage,#6b7750);}

  .nav-links.open .has-dropdown.mob-open .dropdown-menu{display:block !important;}

  .nav-links.open .has-dropdown > a.dropdown-toggle::after{content:' \25BE';font-size:11px;display:inline-block;transition:transform .2s;}

  .nav-links.open .has-dropdown.mob-open > a.dropdown-toggle::after{transform:rotate(180deg);}

  .nav-links.open .dropdown-menu li{border-bottom:none !important;}

  .nav-links.open .dropdown-menu li a{padding:7px 0 !important;font-size:13px !important;letter-spacing:.03em !important;color:var(--ink-soft,#4a4a4a) !important;}

}

/* 1. Re-enable has-dropdown items everywhere — nav-links display:none handles mobile hiding */

.has-dropdown{display:list-item !important;}



/* 2. Desktop: cancel nav-v8 shrink breakpoints so row-1 stays stable until 960px */

@media(min-width:961px){

  .nav-right .nav-call{display:flex !important;font-size:13px !important;padding:8px 16px !important;letter-spacing:.02em !important;white-space:nowrap !important;}

  .nav-socials a{width:32px !important;height:32px !important;}

  /* Row 2: spread links out so they don't look like one long phrase */

  .nav-links{gap:24px !important;padding:8px 0 6px !important;border-top-color:rgba(107,119,80,.3) !important;}

  .nav-links a{font-size:13px !important;letter-spacing:.10em !important;}

}

/* Logo: single natural size everywhere, no stretching, no scroll resize */

.nav-logo img{

  height:34px !important;

  width:auto !important;

  max-width:none !important;

  min-height:0 !important;

  transition:none !important;

}

.scrolled .nav-logo img{ height:34px !important; }



/* Header: one comfortable padding on both rows — no jump on scroll */

.site-header{ padding:14px 0 !important; }

.site-header.scrolled{ padding:14px 0 !important; }

/* Mobile logo: reduce height, width:auto keeps aspect ratio intact */

@media(max-width:960px){

  .nav-logo img{ height:26px !important; }

}

/* Kill the "transition:all" on site-header — it animates border/bg on every scroll

   event and makes both rows appear to jump in height */

.site-header{ transition:none !important; }

/* === Mobile nav fixes === */
@media(max-width:960px){
  /* Hamburger: ensure visible + proper size */
  .nav-toggle{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:36px !important;
    height:36px !important;
    flex-shrink:0 !important;
    z-index:200 !important;
    order:10 !important;
  }
  .nav-toggle span{
    width:22px !important;
    height:2px !important;
    background:var(--ink,#1a1a1a) !important;
    display:block !important;
  }
  /* Logo: pin left, limit size so socials+hamburger fit */
  .nav-logo{
    flex-shrink:0 !important;
    margin-right:auto !important;
  }
  .nav-logo img{
    height:30px !important;
    width:auto !important;
    max-width:100px !important;
  }
  /* nav-right: shrink socials so everything fits in one row */
  .nav-right{
    flex-shrink:0 !important;
    gap:4px !important;
  }
  .nav-right .nav-socials a{
    width:22px !important;
    height:22px !important;
  }
  /* Scrolled state: subtle bg change only, no layout shift */
  .site-header,
  .site-header.scrolled{
    padding:10px 0 !important;
    transition:background .3s ease !important;
  }
}

/* === Footer: center each column === */
.footer-grid > div{
  text-align:center !important;
}
.footer-links{
  align-items:center !important;
}
.footer-social{
  justify-content:center !important;
}
.footer-contact-info{
  align-items:center !important;
}
.footer-contact-info div{
  justify-content:center !important;
}
.footer-brand-logo{
  margin:0 auto 16px !important;
  display:block !important;
}
.footer-heading{
  text-align:center !important;
}

/* === Footer: remove blank space above copyright === */
.footer-grid{
  margin-bottom:40px !important;
}
.footer-bottom{
  padding-top:20px !important;
}

/* === Footer: service-areas links center === */
.footer-bottom-links{
  justify-content:center !important;
}

/* active page pill */
.nav-links>.nav-active>a{color:var(--sage,#6b7750)!important;background:var(--sage-pale,#eef2e6);border-radius:999px;padding:4px 12px!important;}