/* =========================================================
   Mumford Company — Home
   Recreated from Home-final.jpg for WordPress integration
   ========================================================= */

:root{
  /* Brand */
  --lime:        #96C61A;
  --lime-bright: #A7D81F;
  --forest:      #2E7D4B;
  --forest-deep: #21663A;
  /* Listings plugin vars — mapped to theme colors */
  --green:       #00704A;
  --green-dark:  #21663A;
  --bg:          #f3f3f3;
  --line:        #dde1e3;
  --slate-dark:  #2a3235;
  --emerald:     #0E7A58;

  /* Neutrals */
  --slate:       #353D40;   /* dark featured + footer */
  --slate-2:     #3E484C;
  --prop-bg:     #C9D2D5;   /* property-strip section */
  --testi-bg:    #DEE6E8;   /* testimonials section */
  --paper:       #FFFFFF;

  --ink:         #2C3539;
  --ink-2:       #5C666B;
  --ink-3:       #8B969B;
  --rule:        #E4E8EA;
  --red-pin:     #E23B2E;

  /* Type */
  --f-head: 'Lato', system-ui, sans-serif;
  --f-body: 'Lato', system-ui, sans-serif;
  --f-serif:'Lato', system-ui, sans-serif;

  /* Layout */
  --wrap: 1180px;
  --ease: cubic-bezier(.4,0,.2,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--ink);
  background:var(--paper);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }

/* ============ Reveal-on-scroll ============ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; }
.reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

/* =========================================================
   HEADER  (transparent, overlaid on hero)
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:50;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s var(--ease);
}
.site-header::before{                 /* gradient scrim while transparent */
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(24,42,58,.72) 0%, rgba(30,48,64,.34) 70%, rgba(30,48,64,0) 100%);
  transition:opacity .4s var(--ease); opacity:1; pointer-events:none;
}
.site-header.solid{
  background:#708387;
  box-shadow:0 6px 24px rgba(0,0,0,.22);
}
.site-header.solid::before{ opacity:0; }

/* top utility bar */
.topbar{ position:relative; z-index:60; border-bottom:1px solid rgba(255,255,255,.14); }
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; height:40px; }
/* Left group: phone + divider + nav */
.topbar-left{ display: flex;align-items: center;gap: 40px; }
.topbar-divider{ color:rgba(255,255,255,.3); margin:0 7px; font-size:13px; line-height:1; }
.topbar-nav{ display:flex; align-items:center; gap:2px; }
.topbar-nav > ul{ display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
.topbar-nav li{ list-style:none; position:relative; }
.topbar-nav li > a{
  color:rgba(255,255,255,.8); 
  font-size:14px; 
  letter-spacing:.02em;
  padding:4px 10px; 
  border-radius:3px; 
  transition:color .15s, background .15s;
  white-space:nowrap; 
  text-decoration:none; 
  text-transform: uppercase;
  display:flex; 
  align-items:center; 
  gap:5px;
  font-weight: bold;
}
.topbar-nav li > a:hover, .topbar-nav li.current-menu-item > a{ color:#fff; background:rgba(255,255,255,.12); }
/* Topbar chevron */
.topbar-nav li.menu-item-has-children > a::after{
  content:''; display:inline-block; flex-shrink:0; width:6px; height:6px;
  border-right:1.5px solid rgba(255,255,255,.6); border-bottom:1.5px solid rgba(255,255,255,.6);
  transform:rotate(45deg); position:relative; top:-2px; transition:transform .2s, border-color .2s;
}
.topbar-nav li.menu-item-has-children:hover > a::after{ transform:rotate(-135deg); top:1px; border-color:#fff; }
/* Bridge */
.topbar-nav li.menu-item-has-children::after{ content:''; position:absolute; bottom:-10px; left:0; right:0; height:10px; }
/* Topbar sub-menu */
.topbar-nav .sub-menu{
  position:absolute; top:calc(100% + 10px); left:0;
  min-width:200px; background:#fff;
  box-shadow:0 8px 28px rgba(0,0,0,.16);
  border-top:3px solid var(--forest); border-radius:0 0 6px 6px;
  list-style:none; margin:0; padding:6px 0;
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  z-index:400;
}
.topbar-nav li:hover > .sub-menu, .topbar-nav li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
  transition:opacity .22s ease, transform .22s ease;
}
.topbar-nav .sub-menu::before{
  content:''; position:absolute; top:-7px; left:20px;
  width:0; height:0; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:7px solid var(--forest);
}
.topbar-nav .sub-menu li{ list-style:none; position:relative; }
.topbar-nav .sub-menu li + li{ border-top:1px solid #f0f0f0; }
.topbar-nav .sub-menu a{
  display:block; padding:9px 18px; font-family:var(--f-head); font-size:13px; font-weight:500;
  color:var(--ink); white-space:nowrap; text-decoration:none;
  transition:background .15s, color .15s, padding-left .15s;
}
.topbar-nav .sub-menu a:hover{ background:#f0f6f2; color:var(--forest); padding-left:24px; }
.topbar-nav .sub-menu li.current-menu-item > a{ color:var(--forest); font-weight:700; }

/* Topbar sub-sub-menu — fly out to the right */
.topbar-nav .sub-menu .sub-menu{
  position:absolute; top:-6px; left:100%;
  min-width:200px; background:#fff;
  box-shadow:0 8px 28px rgba(0,0,0,.16);
  border-top:3px solid var(--forest);
  border-radius:0 0 6px 6px;
  list-style:none; margin:0; padding:6px 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateX(6px);
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  z-index:500;
}
.topbar-nav .sub-menu li:hover > .sub-menu,
.topbar-nav .sub-menu li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(0);
  transition:opacity .2s ease, transform .2s ease;
}
.topbar-nav .sub-menu .sub-menu::before{ display:none; }
/* Right arrow indicator on parent */
.topbar-nav .sub-menu li.menu-item-has-children > a::after{
  content:''; display:inline-block; float:right;
  width:6px; height:6px; margin-top:4px; margin-left:8px;
  border-right:1.5px solid var(--forest); border-top:1.5px solid var(--forest);
  transform:rotate(45deg);
}
.topbar, .topbar a{ color:rgba(255,255,255,.85); font-size:15px; letter-spacing:.02em; }
.topbar .phone{ font-family:var(--f-body); white-space:nowrap; font-size: 14px;font-weight: bold; text-transform: uppercase; }
.topbar .phone a{ color:inherit; transition:color .2s var(--ease); }
.topbar .phone a:hover{ color:#fff; }
/* Right group: LinkedIn */
.topbar .util{ display:flex; align-items:center; gap:14px; }
.topbar .util a{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; transition:color .2s var(--ease); }
.topbar .util a:hover{ color:#fff; }
.topbar svg{ width:15px; height:15px; }
.topbar .ln{ width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.15); display:inline-flex; align-items:center; justify-content:center; transition:background .2s; }
.topbar .ln:hover{ background:var(--lime); }
.topbar .ln svg{ width:13px; height:13px; }
.topbar .ln{ width:24px; height:24px; border-radius:50%; display:inline-flex; align-items:center;
  justify-content:center; background:rgba(255,255,255,.16); transition:background .2s var(--ease); }
.topbar .ln:hover{ background:var(--lime); }
.topbar .ln svg{ width:13px; height:13px; }

/* main nav row */
.navbar{ position:relative; z-index:2; }
.navbar .wrap{ display:flex; align-items:center; justify-content:flex-start; height:100px;gap: 60px; }

/* logo */
.logo{ display:flex; align-items:center; }
.logo img,
.logo .custom-logo-link img,
.logo .custom-logo { height:70px; width:auto; display:block; }
.logo .custom-logo-link { display:block; line-height:0; }

/* nav links */
.nav{ display:flex; align-items:center; }
.nav-list{ display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
.nav-list > li{ position:relative; list-style:none; }
.nav-list > li > a{
  position:relative; color:rgba(255,255,255,.92); font-family:var(--f-head);
  font-weight:500; font-size:17px; letter-spacing:.005em; padding:6px 0; white-space:nowrap;
  display:flex; align-items:center; gap:6px; text-decoration:none;text-transform: uppercase;font-weight: bold;
}
.nav-list > li > a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--lime); transition:right .3s var(--ease);
}
.nav-list > li > a:hover::after, .nav-list > li > a.current::after{ right:0; }
.nav-list > li > a:hover{ color:#fff; }
/* Chevron */
.nav-chevron{
  display:inline-block; width:8px; height:8px; flex-shrink:0;
  border-right:2px solid rgba(255,255,255,.55); border-bottom:2px solid rgba(255,255,255,.55);
  transform:rotate(45deg); position:relative; top:-2px;
  transition:transform .22s, border-color .22s;
}
.nav-list > li.menu-item-has-children:hover > a .nav-chevron{ transform:rotate(-135deg); top:2px; border-color:#fff; }
/* Bridge */
.nav-list > li.menu-item-has-children::after{ content:''; position:absolute; bottom:-10px; left:0; right:0; height:10px; }
/* Sub-menu */
.nav-list .sub-menu{
  position:absolute; top:calc(100% + 10px); left:0; transform:translateY(8px);
  min-width:230px; background:#fff;
  box-shadow:0 12px 40px rgba(0,0,0,.18);
  border-top:3px solid var(--forest); border-radius:0 0 6px 6px;
  list-style:none; margin:0; padding:8px 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  z-index:300; will-change:opacity,transform;
}
.nav-list > li:hover > .sub-menu, .nav-list > li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
  transition:opacity .22s ease, transform .22s ease;
}
.nav-list .sub-menu::before{
  content:''; position:absolute; top:-8px; left:24px;
  width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid var(--forest);
}
.nav-list .sub-menu li{ list-style:none; }
.nav-list .sub-menu li + li{ border-top:1px solid #f0f0f0; }
.nav-list .sub-menu a{
  display:block; padding:10px 20px; font-family:var(--f-head); font-size:14px; font-weight:500;
  color:var(--ink); white-space:nowrap; text-decoration:none;
  transition:background .15s, color .15s, padding-left .15s;
}
.nav-list .sub-menu a::after{ display:none !important; }
.nav-list .sub-menu a:hover{ background:#f0f6f2; color:var(--forest); padding-left:26px; }
.nav-list .sub-menu li.current-menu-item > a{ color:var(--forest); font-weight:700; }

/* ── Sub-sub-menu — fly out to the right ── */
.nav-list .sub-menu .sub-menu{
  position:absolute; top:-8px; left:100%;
  min-width:220px; background:#fff;
  box-shadow:0 8px 32px rgba(0,0,0,.18);
  border-top:3px solid var(--forest);
  border-radius:0 0 6px 6px;
  list-style:none; margin:0; padding:8px 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateX(8px);
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  z-index:400;
}
.nav-list .sub-menu li:hover > .sub-menu,
.nav-list .sub-menu li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(0);
  transition:opacity .2s ease, transform .2s ease;
}
/* Arrow on left side of sub-sub-menu */
.nav-list .sub-menu .sub-menu::before{ display:none; }
/* Parent item indicator */
.nav-list .sub-menu li.menu-item-has-children > a::after{
  content:''; display:inline-block; float:right;
  width:6px; height:6px; margin-top:5px; margin-left:8px;
  border-right:2px solid var(--forest); border-top:2px solid var(--forest);
  transform:rotate(45deg);
}

/* Mobile-only nav — hidden on desktop */
.mobile-nav { display:none; }

/* hamburger */
.burger{ display:none; width:42px; height:42px; border:0; background:transparent; cursor:pointer; padding:9px; }
.burger span{ display:block; height:2px; background:#fff; border-radius:2px; margin:5px 0; transition:.3s var(--ease); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:660px; height:74vh; max-height:760px;
  display:flex; align-items:flex-end; justify-content:center;
  text-align:center; color:#fff; overflow:hidden;
}
.hero .hero-slides{ position:absolute; inset:0; overflow:hidden; }
.hero .hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center 42%;
  opacity:0; z-index:0; transform:scale(1.08);
  transition:opacity 1.6s ease-in-out, transform 1.6s ease-in-out;
  will-change:opacity, transform;
  backface-visibility:hidden;
}
/* outgoing slide: stays fully opaque underneath so the bg never shows through */
.hero .hero-slide.prev{ opacity:1; z-index:1; }
/* incoming slide: on top, fades in over everything, slow ken-burns zoom */
.hero .hero-slide.active{ opacity:1; z-index:2; animation:kenburns 9s ease-out forwards; }
@keyframes kenburns{ from{ transform:scale(1.06);} to{ transform:scale(1.13);} }
@media (prefers-reduced-motion:reduce){
  .hero .hero-slide{ transition:opacity .4s ease; transform:none !important; }
  .hero .hero-slide.active{ animation:none; }
}

/* banner dots */
.hero-dots{ display:flex; gap:13px; justify-content:center; margin-top:34px; position:relative; z-index:5; }
.hero-dots button{ width:13px; height:13px; border-radius:50%; border:2px solid rgba(255,255,255,.9);
  background:transparent; cursor:pointer; padding:0; transition:.25s var(--ease);
  box-shadow:0 1px 5px rgba(0,0,0,.35); }
.hero-dots button:hover{ background:rgba(255,255,255,.55); }
.hero-dots button.active{ background:#fff; border-color:#fff; }
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:3;
  background:linear-gradient(to top,
    rgba(8,16,24,0.86) 0px,
    rgba(8,16,24,0.60) 120px,
    rgba(8,16,24,0.30) 300px,
    rgba(8,16,24,0) 497px);
}
.hero .hero-copy{ position:relative; z-index:4; padding-bottom:84px; padding-top:120px; }

/* Slide text — only active text visible */
.hero .hero-text{ display:none; }
.hero .hero-text.active{ display:block; }

.hero h1,
.hero .hero-heading{
  font-family:var(--f-head); font-weight:300; font-size:clamp(34px,5vw,62px);
  margin:0; letter-spacing:.01em; text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.hero .sub{
  font-family:var(--f-head); font-weight:400; color:var(--lime-bright);
  font-size:clamp(24px,3.6vw,46px); margin:.18em 0 0; letter-spacing:.005em;
  text-shadow:0 2px 16px rgba(0,0,0,.4);
}

/* MEET US / CURRENT LISTINGS tabs */
.herotabs{ background:#fff; border-bottom:3px solid var(--testi-bg); display:none;}
.herotabs .wrap{ display:flex; justify-content:center; gap:0; }
.herotab{
  appearance:none; border:0; background:transparent; cursor:pointer;
  font-family:var(--f-head); font-weight:600; font-size:13px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-2); padding:18px 30px; position:relative;
  transition:color .2s var(--ease);
}
.herotab::after{ content:""; position:absolute; left:50%; right:50%; bottom:-3px; height:3px;
  background:var(--forest); transition:.3s var(--ease); }
.herotab:hover{ color:var(--ink); }
.herotab.active{ color:var(--ink); }
.herotab.active::after{ left:0; right:0; }

/* =========================================================
   PROPERTY STRIP  (Buyers / Sellers / Co-Brokerage)
   ========================================================= */
.propstrip{ background:var(--prop-bg); padding:46px 0; }
.propstrip .grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.propbox{
  position:relative; height:118px; overflow:hidden; cursor:pointer;
  display:flex; align-items:center; justify-content:center; isolation:isolate;
}
.propbox .pimg{ position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform .7s var(--ease); transform:scale(1); }
.propbox .pgrad{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to right, rgba(1,79,31,0.82), rgba(13,15,14,0.82));
  transition:opacity .35s var(--ease); opacity:1;
}
.propbox .label{
  position:relative; z-index:2; text-align:center; color:#fff; font-family:var(--f-head);
  transition:transform .35s var(--ease);
}
.propbox .label small{ display:block; font-weight:600; font-size:12px; letter-spacing:.18em; opacity:.9; }
.propbox .label strong{ display:block; font-weight:700; font-size:21px; letter-spacing:.06em; margin-top:2px; }
.propbox .label::after{ content:""; display:block; width:0; height:2px; background:var(--lime);
  margin:9px auto 0; transition:width .35s var(--ease); }
.propbox:hover .pimg{ transform:scale(1.09); }
.propbox:hover .pgrad{ opacity:.9; }
.propbox:hover .label{ transform:translateY(-4px); }
.propbox:hover .label::after{ width:46px; }

/* =========================================================
   EXPERIENCE THAT MATTERS
   ========================================================= */
.experience{ background:#fff; padding:74px 0 64px; }
.section-title{
  text-align:center; font-family:var(--f-head); font-weight:400;
  font-size:clamp(26px,3.4vw,38px); letter-spacing:.02em; margin:0 0 46px;
}
.section-title .g{ color:var(--forest); }
.section-title .k{ color:var(--ink); font-weight:600; }

.exp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.exp-card{
  position:relative; aspect-ratio:1/1; overflow:hidden; border-radius:2px;
  display:flex; align-items:flex-end; cursor:pointer; box-shadow:0 8px 22px rgba(20,30,35,.12);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.exp-card .eimg{ position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform .7s var(--ease); }
.exp-card::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,20,30,0) 30%, rgba(10,20,30,.35) 55%, rgba(8,16,24,.82) 100%); }
.exp-body{ position:relative; z-index:2; color:#fff; padding:26px 24px 26px; width:100%; }
.exp-body .price{ font-family:var(--f-head); font-weight:300; font-size:25px; letter-spacing:.005em; }
.exp-body .price b{ font-weight:700; }
.exp-body .addr{ font-family:var(--f-head); font-weight:300; font-size:18px; line-height:1.32; margin:6px 0 16px;
  text-shadow:0 1px 8px rgba(0,0,0,.4); }
.btn-line{
  display:inline-block; font-family:var(--f-head); font-weight:600; font-size:12px; letter-spacing:.15em;
  text-transform:uppercase; color:#fff; border:1.5px solid var(--lime); padding:11px 22px;
  transition:background .25s var(--ease), color .25s var(--ease);
}
.btn-line:hover{ background:var(--lime); color:#1d2a10; }
.exp-card:hover{ transform:translateY(-8px); box-shadow:0 22px 40px rgba(20,30,35,.26); }
.exp-card:hover .eimg{ transform:scale(1.08); }

/* outline buttons (centered) */
.center-cta{ text-align:center; margin-top:48px; }
.btn-outline{
  display:inline-block; font-family:var(--f-head); font-weight:600; font-size:14px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink); border:2px solid var(--forest);
  padding:15px 40px; transition:.28s var(--ease); position:relative; overflow:hidden;
}
.btn-outline::before{ content:""; position:absolute; inset:0; background:var(--forest);
  transform:translateY(101%); transition:transform .3s var(--ease); z-index:-1; }
.btn-outline{ z-index:0; }
.btn-outline:hover{ color:#fff; border-color:var(--forest); }
.btn-outline:hover::before{ transform:translateY(0); }
.btn-outline.on-dark{ color:#fff; border-color:rgba(255,255,255,.8); }
.btn-outline.on-dark::before{ background:#fff; }
.btn-outline.on-dark:hover{ color:var(--slate); }

/* =========================================================
   FEATURED LISTINGS (dark)
   ========================================================= */
.featured{ background:var(--slate); padding:64px 0 70px; }
.featured .section-title{ color:#C7CDD0; font-weight:300; letter-spacing:.08em; }
.feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.feat-card{
  background:#fff; border-radius:3px; overflow:hidden; cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.28); display:flex; flex-direction:column;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.feat-card .photo{ aspect-ratio:16/10; overflow:hidden; }
.feat-card .photo > div{ width:100%; height:100%; background-size:cover; background-position:center;
  transition:transform .7s var(--ease); }
.feat-body{ padding:22px 24px 8px; }
.feat-body h3{ font-family:var(--f-head); font-weight:700; font-size:23px; margin:0 0 8px; color:var(--ink); }
.feat-addr{ display:flex; gap:8px; align-items:flex-start; color:var(--ink-2); font-size:14.5px; line-height:1.4; }
.feat-addr svg{ width:16px; height:18px; color:var(--red-pin); flex:none; margin-top:2px; }
.feat-specs{ display:flex; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  margin:18px 0 0; }
.feat-specs .spec{ flex:1; display:flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 4px; font-size:14px; color:var(--ink-2); }
.feat-specs .spec + .spec{ border-left:1px solid var(--rule); }
.feat-specs svg{ width:18px; height:18px; color:var(--ink); opacity:.78; }
.feat-foot{ display:flex; align-items:center; justify-content:space-between; padding:18px 24px 24px; }
.feat-foot .price{ font-family:var(--f-head); font-weight:700; font-size:21px; color:var(--ink); }
.btn-pill{
  font-family:var(--f-head); font-weight:600; font-size:14px; color:var(--ink);
  border:1.5px solid #C9CFD2; background:#fff; border-radius:999px; padding:11px 22px; cursor:pointer;
  transition:.25s var(--ease);
}
.btn-pill:hover{ background:var(--slate); border-color:var(--slate); color:#fff; }
.feat-card:hover{ transform:translateY(-8px); box-shadow:0 26px 46px rgba(0,0,0,.4); }
.feat-card:hover .photo > div{ transform:scale(1.08); }

/* decorative color strip */
.deco-strip{ display:flex; height:9px; width:100%; }
.deco-strip i{ display:block; height:100%; }

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.testimonials{ background:var(--testi-bg); padding:72px 0 90px; position:relative; }
.testimonials .section-title{ margin-bottom:8px; }
.testi-stage{ max-width:880px; margin:0 auto; position:relative; min-height:260px; text-align:center; }
.testi-slide{
  position:absolute; inset:0; opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .6s var(--ease), transform .6s var(--ease); padding:8px 10px;
}
.testi-slide.active{ opacity:1; transform:none; pointer-events:auto; position:relative; }
.testi-slide h3{ font-family:var(--f-head); font-weight:600; font-size:26px; color:var(--ink); margin:18px 0 22px; }
.testi-slide p{ font-family:var(--f-body); color:#46504F; font-size:16.5px; line-height:1.7; margin:0 auto 14px; max-width:760px; }
.testi-slide .who{ font-family:var(--f-head); font-weight:700; color:var(--ink); margin-top:18px; font-size:15px; }
.testi-slide .who span{ display:block; font-weight:400; color:var(--ink-2); font-size:13.5px; letter-spacing:.02em; }

.testi-dots{ display:flex; gap:14px; justify-content:center; margin-top:34px; }
.testi-dots button{ width:14px; height:14px; border-radius:50%; border:0; background:#AEBBBD; cursor:pointer;
  padding:0; transition:background .25s var(--ease), transform .25s var(--ease); }
.testi-dots button:hover{ transform:scale(1.15); }
.testi-dots button.active{ background:var(--lime); }

.testi-arrow{ position:absolute; top:46%; transform:translateY(-50%); border:0; background:transparent;
  cursor:pointer; color:var(--forest); width:44px; height:44px; display:grid; place-items:center;
  border-radius:50%; transition:.25s var(--ease); opacity:.7; }
.testi-arrow:hover{ background:rgba(46,125,75,.12); opacity:1; }
.testi-arrow svg{ width:26px; height:26px; }
.testi-arrow.prev{ left:-35px; }
.testi-arrow.next{ right:-35px; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer-top{ background:var(--slate); line-height:0; overflow:hidden; }
.footer-top img{ display:block; width:100%; height:auto; object-position:right top; }

.site-footer{ background:var(--slate); color:#AEB7BB; padding:18px 0 36px; }
.footer-grid{ display:grid; grid-template-columns:1fr 1.95fr 1.35fr; gap:40px; padding:34px 0 30px; }
.footer-grid h4{ font-family:var(--f-head); font-weight:700; font-size:20px; color:#C7CFD2; margin:0 0 22px; line-height:1.25; }
.newsletter h4{ white-space:nowrap; font-size:25px; letter-spacing:-0.01em; }
.foffices p{ margin:0; line-height:2.05; font-size:15px; color:#AEB7BB; }
.foffices p:first-of-type{ color:#C7CFD2; }
.foffices a{ transition:color .2s var(--ease); }
.foffices a:hover{ color:#fff; }

.sitemap-cols{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.sitemap-cols ul{ list-style:none; margin:0; padding:0; }
.sitemap-cols li{ position:relative; padding:0 0 0 18px; line-height:2.1; font-size:15px; white-space:nowrap; }
.sitemap-cols li::before{ content:""; position:absolute; left:0; top:.95em; width:5px; height:5px;
  border-radius:50%; background:var(--lime); }
.sitemap-cols a{ transition:color .2s var(--ease); }
.sitemap-cols a:hover{ color:#fff; }

/* full-width featured sitemap link (Confidentiality Agreement) */
.sitemap-feature{
  display:block; width:100%; margin-top:22px; padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  font-family:var(--f-head); font-weight:700; color:var(--lime);
  white-space:nowrap; line-height:1.1; letter-spacing:.005em;
  font-size:clamp(20px, 2.05vw, 30px);
  transition:color .2s var(--ease);
}
.sitemap-feature:hover{ color:#fff; }

.newsletter p{ font-size:14.5px; line-height:1.6; color:#AEB7BB; margin:0 0 18px; }
.newsletter p b{ color:#D6DDDF; font-weight:700; }
.newsletter .field{ width:100%; background:transparent; border:1px solid #555E62; color:#E6EBEC;
  font-family:var(--f-body); font-size:14.5px; padding:13px 15px; margin-bottom:12px; border-radius:2px;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.newsletter .field::placeholder{ color:#7E888C; }
.newsletter .field:focus{ outline:0; border-color:var(--lime); box-shadow:0 0 0 3px rgba(150,198,26,.18); }
.newsletter .row2{ display:flex; gap:12px; }
.newsletter .row2 .field{ flex:1; }
.newsletter .frm_forms.frm_full_submit .frm_submit.frm_flex button{ width:100%; border:0; cursor:pointer; padding:14px; border-radius:2px;
  background:#A7B3B7; color:var(--slate); font-family:var(--f-head); font-weight:700; font-size:15px;
  transition:.25s var(--ease); box-shadow:none!important;}
.newsletter .frm_forms.frm_full_submit .frm_submit.frm_flex button:hover{ background:var(--lime); color:#1d2a10; }
.newsletter .frm_style_formidable-style.with_frm_style .form-field {
    margin-bottom: 0px;
}
.newsletter input[type="text"]:focus,
.newsletter input[type="email"]:focus{
	background-color:transparent!important;
    outline: 0!important;
    border-color: var(--lime)!important;
    box-shadow: 0 0 0 3px rgba(150, 198, 26, .18)!important;
}

.newsletter input[type="text"],
.newsletter input[type="email"] {
    width: 100%;
    background: transparent;
    border: 1px solid #555E62;
    color: #E6EBEC;
    font-family: var(--f-body);
    font-size: 14.5px;
    padding: 13px 15px;
    margin-bottom: 12px;
    border-radius: 2px;
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}

.footer-legal{ border-top:1px solid #4A5357; padding-top:24px; text-align:center;
  font-size:13.5px; color:#8C969A; }
.footer-legal a{ text-decoration:underline; text-underline-offset:2px; }
.footer-legal a:hover{ color:#fff; }

/* back to top */
.totop{ position:fixed; right:24px; bottom:24px; width:46px; height:46px; border-radius:50%;
  background:var(--forest); color:#fff; border:0; cursor:pointer; display:grid; place-items:center;
  box-shadow:0 8px 22px rgba(0,0,0,.28); opacity:0; transform:translateY(14px); pointer-events:none;
  transition:.35s var(--ease); z-index:60; }
.totop.show{ opacity:1; transform:none; pointer-events:auto; }
.totop:hover{ background:var(--forest-deep); }
.totop svg{ width:22px; height:22px; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .newsletter{ grid-column:1 / -1; }
}
@media (max-width:1100px){
  /* ── Topbar responsive ── */
  .topbar-nav { display:none; }
  .topbar-divider { display:none; }
  .topbar .phone { font-size:12px; }
  .topbar .wrap { height:30px; }

  /* ── Mobile nav — original working styles ── */
  /* Hide main desktop nav, show mobile nav instead */
  .navbar .wrap{ display:flex; align-items:center; justify-content:space-between; }
  .nav{ display:none !important; }
  .nav-list{ display:none !important; }
  .mobile-nav{
    display:flex;
    position:fixed; top:0; right:0; height:100vh; width:min(85vw,340px);
    background:#1a2426; flex-direction:column; align-items:flex-start; gap:0;
    padding:80px 0 40px; transform:translateX(100%); transition:transform .4s var(--ease); z-index:40;
    overflow-y:auto; list-style:none; box-shadow:-8px 0 40px rgba(0,0,0,.4);
  }
  .mobile-nav.open{ transform:none; }
  /* Menu list */
  .mobile-menu-list{ list-style:none; margin:0; padding:0; width:100%; }
  /* Items */
  .mobile-nav-item{ width:100%; border-bottom:1px solid rgba(255,255,255,.07); }
  .mobile-nav-item:last-child{ border-bottom:none; }
  /* Row: link + toggle */
  .mobile-nav-row{ display:flex; align-items:center; justify-content:space-between; width:100%; }
  /* Links */
  .mobile-nav-link{
    display:block; flex:1;
    font-family:var(--f-head); font-size:13px; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.65);
    padding:15px 28px; text-decoration:none; transition:color .2s;
  }
  .mobile-nav-link:hover, .mobile-nav-link.current{ color:#fff; }
  /* Sub-links */
  .mobile-nav-sub-link{
    font-size:14px; font-weight:500; letter-spacing:.02em; text-transform:none;
    color:rgba(255,255,255,.55); padding:12px 28px 12px 40px;
  }
  .mobile-nav-sub-link:hover, .mobile-nav-sub-link.current{ color:var(--lime); }
  /* Toggle +/- button */
  .mobile-nav-toggle{
    width:44px; height:44px; flex-shrink:0; margin-right:12px;
    background:none; border:none;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:color .2s; color:rgba(255,255,255,.4);
  }
  .mobile-nav-toggle:hover{ color:rgba(255,255,255,.9); }
  /* +/- icon */
  .mobile-toggle-icon{ position:relative; display:block; width:14px; height:14px; }
  .mobile-toggle-icon::before, .mobile-toggle-icon::after{
    content:''; position:absolute; border-radius:2px;
    background:currentColor; transition:transform .3s ease, opacity .3s ease;
  }
  .mobile-toggle-icon::before{ width:14px; height:1.5px; top:6px; left:0; }
  .mobile-toggle-icon::after{ width:1.5px; height:14px; top:0; left:6px; }
  /* When open: rotate to show − */
  .mobile-nav-toggle[aria-expanded="true"] .mobile-toggle-icon::after{ opacity:0; transform:rotate(90deg); }
  .mobile-nav-toggle[aria-expanded="true"]{ color:var(--lime); }
  /* Sub-menu accordion */
  .mobile-sub-menu{
    list-style:none; margin:0; padding:0;
    max-height:0; overflow:hidden;
    transition:max-height .4s cubic-bezier(.4,0,.2,1);
    background:rgba(0,0,0,.25);
  }
  .mobile-sub-menu.open{ max-height:600px; }
  .mobile-sub-menu li{ border-top:1px solid rgba(255,255,255,.05); }
  /* Active parent: lime left border */
  .mobile-nav-item.has-children.active > .mobile-nav-row{
    border-left:3px solid var(--lime);
  }
  .mobile-nav-item.has-children.active > .mobile-nav-row .mobile-nav-link{
    color:#fff; padding-left:25px;
  }
  .burger{ display:block; position:relative; z-index:55; }
  .site-header.solid .burger span{ background:#fff; }
  /* Cross icon when menu is open */
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; transform:scaleX(0); }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}
@media (max-width:860px){
  .exp-grid, .feat-grid{ grid-template-columns:1fr; max-width:460px; margin:0 auto; }
  .propstrip .grid{ grid-template-columns:1fr; gap:6px; }
  .hero{ height:auto; min-height:0; padding-top:0; }
  .hero .hero-copy{ padding:160px 16px 60px; }
}
@media (max-width:560px){
  .topbar .phone{ font-size:15px; }
  .topbar-left{ gap:6px; }
  .footer-grid{ grid-template-columns:1fr; }
  .sitemap-cols{ grid-template-columns:1fr;gap: 0; }
  .newsletter h4{ font-size:20px; line-height:1.25; white-space:normal; }
  .herotab{ padding:16px 16px; font-size:11.5px; letter-spacing:.1em; }
  .testi-arrow{ display:none; }
}

/* =========================================================
   DEFAULT PAGE TEMPLATE (page.php)
   ========================================================= */
.default-page {
  padding: 120px 0 80px;       /* top clears the fixed header */
}
.default-page__title {
  font-family: var(--f-head);
  color: var(--forest);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: .04em;
  margin: 0 0 28px;
  line-height: 1.15;
}
.default-page__title b { font-weight: 700; color: var(--forest); }
.default-page__title span { color: var(--ink); font-weight: 400; }

/* Generic fallback for the optional Custom Title block on templates that
   don't otherwise style .page-title themselves (Team/full-width, Full
   Width, Property Listings Grid). More specific per-page rules elsewhere
   (about.css, offices.css, testimonials.css, etc.) take precedence on
   their own pages as usual. */
.page-title {
  font-family: var(--f-head);
  color: var(--forest);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: .04em;
  margin: 0 0 20px;
  line-height: 1.15;
}
.page-title b { font-weight: 700; color: var(--forest); }
.page-title span { color: var(--ink); font-weight: 400; }
.default-page__content {
  font-family: var(--f-body);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.75;
}
.default-page__content h2 {
  font-family: var(--f-head);
  color: var(--forest);
  font-weight: 400;
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: .03em;
  margin: 40px 0 14px;
}
.default-page__content h3 {
  font-family: var(--f-head);
  color: var(--forest);
  font-weight: 400;
  font-size: clamp(18px, 2.5vw, 24px);
  margin: 30px 0 10px;
}
.default-page__content p  { margin: 0 0 18px; }
.default-page__content ul,
.default-page__content ol { margin: 0 0 18px; padding-left: 22px; }
.default-page__content li { margin-bottom: 6px; }
.default-page__content a  { color: var(--green); text-decoration: underline; }
.default-page__content a:hover { color: var(--forest); }
.default-page__content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 20px 0;
}
.default-page__content blockquote {
  border-left: 3px solid var(--green);
  margin: 24px 0;
  padding: 12px 20px;
  color: var(--ink-2);
  font-style: italic;
}
@media (max-width: 680px) {
  .default-page { padding: 100px 0 60px; }
}

/* =========================================================
   FULL WIDTH PAGE TEMPLATE (page-templates/page-full-width.php)
   ========================================================= */
.full-width-page {
  padding-top: 108px;   /* clears the fixed header only; layout owns everything else */
  width: 100%;
}
@media (max-width: 680px) {
  .full-width-page { padding-top: 88px; }
}
