/* ============================================================
   BRAND TOKENS — KINGRICH MOWING MASTER LLC
   Change colors / fonts here = the whole site re-skins.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root{
  /* brand */
  --c-primary:#1aa63a;       /* Kingrich green */
  --c-primary-dark:#127a2b;
  --c-deep:#0a5220;
  --c-deep-2:#063d18;
  --c-accent:#54d869;        /* Master LLC bright green */

  /* fonts */
  --font-head:'Plus Jakarta Sans',sans-serif;
  --font-body:'Inter',sans-serif;

  /* neutrals */
  --c-ink:#16241a; --c-ink-2:#566b5d; --c-paper:#ffffff; --c-tint:#f1f8f2;
  --c-line:#e2ede4; --c-light:#ffffff; --c-light-soft:rgba(255,255,255,.90);
  --c-error:#d83a2e;

  /* buttons */
  --btn-bg:var(--c-primary); --btn-text:#ffffff; --btn-bg-hover:var(--c-primary-dark);

  /* spacing / shape */
  --space-section:40px; --gap:30px;
  --r-sm:8px; --r-md:16px; --r-lg:26px; --r-pill:500px;
  --shadow-1:0 4px 18px rgba(18,90,40,.08);
  --shadow-2:0 26px 60px rgba(18,90,40,.16);
  --shadow-soft:0 2px 8px rgba(18,90,40,.06), 0 14px 30px rgba(18,90,40,.10);
  --shadow-card:0 1px 2px rgba(16,36,24,.05), 0 10px 26px rgba(16,36,24,.08), 0 28px 56px rgba(16,36,24,.07);
  --shadow-float:0 34px 74px rgba(8,40,18,.32);
  --c-hero-scrim:linear-gradient(100deg, rgba(4,28,12,.82) 0%, rgba(4,28,12,.50) 40%, rgba(4,28,12,.15) 68%, rgba(4,28,12,0) 100%);

  /* type scale */
  --fs-h1:clamp(36px,5.2vw,60px); --fs-h2:36px;
  --fs-h3:clamp(21px,2.5vw,28px); --fs-body:17px;

  /* effects */
  --hero-overlay:linear-gradient(180deg,rgba(8,26,14,.28) 0%,rgba(8,26,14,.66) 100%);
  --ease:cubic-bezier(.22,.61,.36,1);

  /* hero banner card (bnl-58) */
  --bnl-card-bg:rgba(10,82,32,.90);
  --bnl-btn-hover:#eafaee;
}
@media all and (max-width:640px){ :root{ --space-section:58px; --gap:18px; } }


/* ============================================================
   GLOBAL TYPOGRAPHY
   ============================================================ */
.is-wrapper h1,.is-wrapper h2,.is-wrapper h3,.is-wrapper h4,.is-wrapper h5,.is-wrapper h6{
  font-family:var(--font-head); color:var(--c-ink); text-wrap:balance; line-height:1.18; margin:0;
}
.is-wrapper p,.is-wrapper li{ font-family:var(--font-body); color:var(--c-ink-2); }

.banner-main-heading{ font-family:var(--font-head); font-weight:800; font-size:var(--fs-h1); line-height:1.06; }
.section-main-heading{ font-family:var(--font-head); font-weight:800; font-size:var(--fs-h2); }
.section-sub-heading{ font-family:var(--font-head); font-weight:700; font-size:var(--fs-h3); }
.content-heading{ font-family:var(--font-head); font-weight:700; font-size:clamp(19px,2vw,22px); }
.content-sub-heading{ font-family:var(--font-head); font-weight:600; font-size:18px; }
.small-heading{ font-family:var(--font-head); font-weight:600; font-size:15px; letter-spacing:.4px; }

.section-description{ font-family:var(--font-body); font-size:clamp(16px,1.4vw,18px); line-height:1.75; color:var(--c-ink-2); }
.content-text{ font-family:var(--font-body); font-size:var(--fs-body); line-height:1.75; color:var(--c-ink-2); }
.small-text{ font-family:var(--font-body); font-size:15px; line-height:1.6; color:var(--c-ink-2); }
.highlight-text{ color:var(--c-primary-dark); font-weight:700; }
.caption-text{ font-family:var(--font-head); font-size:14px; letter-spacing:.4px; color:var(--c-ink); font-weight:600; }


/* ============================================================
   GLOBAL BUTTON SYSTEM (one consistent interaction everywhere)
   ============================================================ */
.web-primary-btn, a.web-primary-btn,
.web-secondary-btn, a.web-secondary-btn,
.web-text-btn, a.web-text-btn,
.is-wrapper input[type="submit"],
.is-wrapper input[type="button"]{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-head); font-weight:600; font-size:16px; letter-spacing:.3px;
  line-height:1; text-decoration:none; cursor:pointer; white-space:nowrap;
  border:2px solid transparent; border-radius:var(--r-pill); padding:17px 24px;
  -webkit-transition:transform .3s var(--ease), box-shadow .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease;
  transition:transform .3s var(--ease), box-shadow .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease;
  will-change:transform;
}
.web-primary-btn i, .web-secondary-btn i, .web-text-btn i{ transition:transform .3s var(--ease); }

/* PRIMARY */
.web-primary-btn, a.web-primary-btn,
.is-wrapper input[type="submit"],
.is-wrapper input[type="button"]{
  background:var(--btn-bg); color:var(--btn-text); border-color:var(--btn-bg);
  box-shadow:0 10px 24px rgba(18,90,40,.22);
}
/* SECONDARY */
.web-secondary-btn, a.web-secondary-btn{
  background:transparent; color:var(--c-primary-dark); border-color:var(--c-primary);
}
/* TEXT */
.web-text-btn, a.web-text-btn{
  background:transparent; color:var(--c-primary-dark); border-color:transparent;
  padding:12px 6px; border-radius:var(--r-sm);
}

/* UNIFIED HOVER — identical lift / timing for every button type */
.web-primary-btn:hover, a.web-primary-btn:hover,
.is-wrapper input[type="submit"]:hover,
.is-wrapper input[type="button"]:hover{
  background:var(--btn-bg-hover); border-color:var(--btn-bg-hover); color:var(--btn-text);
  transform:translateY(-3px); box-shadow:var(--shadow-2);
}
.web-secondary-btn:hover, a.web-secondary-btn:hover{
  background:var(--c-primary); border-color:var(--c-primary); color:var(--btn-text);
  transform:translateY(-3px); box-shadow:var(--shadow-2);
}
.web-text-btn:hover, a.web-text-btn:hover{
  color:var(--c-primary); transform:translateY(-3px);
}
.web-primary-btn:hover i, .web-secondary-btn:hover i, .web-text-btn:hover i{ transform:translateX(4px); }

/* CTA LINK */
.web-cta-link, a.web-cta-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-head); font-weight:600; color:var(--c-primary-dark);
  text-decoration:none; transition:color .3s ease, transform .3s var(--ease);
}
.web-cta-link i{ transition:transform .3s var(--ease); }
.web-cta-link:hover{ color:var(--c-primary); transform:translateY(-2px); }
.web-cta-link:hover i{ transform:translateX(4px); }


/* ============================================================
   ENTRANCE / MICRO ANIMATIONS (CSS-only, no JS dependency)
   ============================================================ */
@keyframes kmUp{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:none; } }
.km-up{ opacity:0; animation:kmUp .85s var(--ease) forwards; }
.km-d1{ animation-delay:.14s; } .km-d2{ animation-delay:.28s; } .km-d3{ animation-delay:.42s; } .km-d4{ animation-delay:.56s; }


/* ============================================================
   1. HERO BANNER  (Banner Library — bnl-58 ; internal <style> merged here)
   ============================================================ */
.bnl-58{ position:relative; }
.bnl-58 .cell.full img{ display:block; width:100%; height:auto; }
.bnl-58 figure{ margin:0; line-height:0; }
.bnl-58 picture{ display:block; width:100%; }
/* cinematic scrim so the card pops & the image gains depth */
.bnl-58 .bn-overlay{
  display:block; position:absolute; left:0; top:0; width:100%; height:100%; z-index:2;
  pointer-events:none; background:var(--c-hero-scrim);
}
.bnl-58 .pos-ab-ban{ z-index:3; }
.bnl-58 .bn-content{
  position:relative; overflow:hidden; max-width:620px; text-align:left;
  margin-left:0; margin-right:auto; padding:46px 48px;
  border-radius:var(--r-lg); box-shadow:var(--shadow-float);
  background: linear-gradient(155deg, rgba(8, 66, 26, 0.40), rgba(5, 46, 18, 0.55));
  border:1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  color:var(--c-light);
}
/* top accent bar */
.bnl-58 .bn-content::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:4px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
/* glowing accent dot */
.bnl-58 .bn-content::after{
  content:""; position:absolute; top:20px; right:20px;
  width:14px; height:14px; border-radius:50%; background:var(--c-accent);
  box-shadow:0 0 0 6px rgba(84,216,105,.18);
}
.bnl-58 .bn-content h1{
  color:var(--c-light); font-size:clamp(25px,3.4vw,40px); font-weight:800;
  line-height:1.12; margin-bottom:16px; letter-spacing:-.5px;
}
.bnl-58 .bn-content h2,.bnl-58 .bn-content h3,.bnl-58 .bn-content h4{ color:var(--c-light); }
.bnl-58 .bn-content p{ color:var(--c-light-soft); font-size:15px; line-height:1.7; margin-bottom:22px; }
.bnl-58 .bn-content p:last-child{ margin-bottom:0; }
.bnl-58 .bn-content .button{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--c-light); color:var(--c-deep);
  padding:15px 34px; border-radius:var(--r-pill); font-weight:700; text-decoration:none;
  font-size:14.5px; letter-spacing:.3px; text-shadow:none;
  box-shadow:0 12px 28px rgba(0,0,0,.30);
  transition:transform .3s var(--ease), background-color .3s ease, box-shadow .3s ease, color .3s ease;
}
.bnl-58 .bn-content .button:hover{
  transform:translateY(-3px); background:var(--bnl-btn-hover); color:var(--c-deep);
  box-shadow:var(--shadow-float);
}
@media (max-width:1023.5px){
  .bnl-58 .bn-content{ background:linear-gradient(155deg, rgba(8,66,26,.96), rgba(5,46,18,.98)) !important; color:var(--c-light) !important; }
  .bnl-58 .bn-content h1,.bnl-58 .bn-content h2,.bnl-58 .bn-content h3,.bnl-58 .bn-content h4{ color:var(--c-light) !important; }
  .bnl-58 .bn-content p{ color:var(--c-light-soft) !important; }
  .bnl-58 .bn-content .button{ background:var(--c-light) !important; color:var(--c-deep) !important; }
  .bnl-58 .bn-content {
        max-width: 100%;
        width: 100%;
        border-radius: 0;
  }
}


/* ============================================================
   2. INTRO  (editorial statement card)
   ============================================================ */
.is-wrapper .km-intro-sec{
  background:radial-gradient(120% 90% at 100% 0%, rgba(26,166,58,.06), transparent 60%), var(--c-paper);
  padding:var(--space-section) 0; position:relative; overflow:hidden;
}
.is-wrapper .km-intro-sec::before{
  content:""; position:absolute; top:-150px; left:-150px; width:440px; height:440px;
  background:radial-gradient(circle, rgba(26,166,58,.12), transparent 70%); pointer-events:none;
}
.km-intro-cell{ padding-left:10px; padding-right:10px; position:relative; z-index:1; }
.km-intro-card{
  position:relative; overflow:hidden;
  background:linear-gradient(150deg,var(--c-tint) 0%,var(--c-paper) 55%);
  border:1px solid var(--c-line); border-radius:var(--r-lg);
  padding:clamp(42px,5.5vw,76px); box-shadow:var(--shadow-card);
}
/* gradient ring edge accent */
.km-intro-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; pointer-events:none;
  background:linear-gradient(150deg, rgba(84,216,105,.65), rgba(26,166,58,.10) 42%, transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
}
.km-intro-leaf{
  position:absolute; right:-30px; bottom:-46px; font-size:230px; line-height:1;
  color:var(--c-primary); opacity:.06; pointer-events:none; transform:rotate(-12deg); z-index:0;
}
.km-intro-orb{
  position:absolute; right:7%; top:-46px; width:180px; height:180px; border-radius:50%; z-index:0;
  background:radial-gradient(circle at 32% 32%, rgba(84,216,105,.30), transparent 70%); pointer-events:none;
}
.km-intro-eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  background:linear-gradient(135deg, rgba(26,166,58,.14), rgba(84,216,105,.10));
  color:var(--c-primary-dark);
  font-family:var(--font-head); font-weight:700; font-size:12.5px;
  letter-spacing:1.4px; text-transform:uppercase;
  padding:9px 18px; border-radius:var(--r-pill); margin-bottom:24px;
  border:1px solid rgba(26,166,58,.20);
}
.km-intro-eyebrow i{ color:var(--c-primary); font-size:14px; }
.km-intro-inner{ position:relative; z-index:1; max-width:1000px; }
.km-intro-inner .section-main-heading{
  font-size:clamp(31px,4vw,50px); line-height:1.06; margin-bottom:22px; letter-spacing:-.7px;
  overflow-wrap:normal; word-break:normal; hyphens:none;
}
.km-intro-inner .section-description{ margin-bottom:22px; max-width:880px; }
.km-intro-lead{
  position:relative; color:var(--c-ink); font-weight:600;
  margin-bottom:34px; font-size:clamp(17px,1.5vw,19px);
  padding:16px 22px 16px 26px; border-radius:var(--r-md);
  background:rgba(26,166,58,.06); border:1px solid rgba(26,166,58,.14);
}
.km-intro-lead::before{
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:4px; border-radius:3px;
  background:linear-gradient(180deg,var(--c-primary),var(--c-accent));
}
@media all and (max-width:960px){
  .km-intro-leaf{ font-size:160px; opacity:.05; }
  .km-intro-orb{ display:none; }
}


/* ============================================================
   3. FEATURE BLOCKS  (editorial + ghost-numeral steps)
   ============================================================ */
.is-wrapper .km-feat-sec{
  background:radial-gradient(120% 90% at 100% 0%, rgba(26,166,58,.05), transparent 60%), var(--c-paper); padding:var(--space-section) 0;
  position:relative; overflow:hidden;
}
.is-wrapper .km-feat-sec::before{
  content:""; position:absolute; bottom:-160px; right:-140px; width:480px; height:480px;
  background:radial-gradient(circle, rgba(26,166,58,.10), transparent 70%); pointer-events:none;
}
.is-wrapper .km-feat-sec::after{
  content:""; position:absolute; top:-160px; left:-140px; width:420px; height:420px;
  background:radial-gradient(circle, rgba(84,216,105,.08), transparent 70%); pointer-events:none;
}
.km-feat-row{ margin-top:70px; position:relative; z-index:1; }
.km-feat-row:first-child{ margin-top:0; }
.km-feat-img-cell, .km-feat-body-cell{ padding-left:10px; padding-right:10px; }

/* image frame + offset gradient panel peeking behind for depth */
.km-feat-img-cell{ position:relative; }
.km-feat-img-cell::before{
  content:""; position:absolute; z-index:0; width:72%; height:74%; left:0; bottom:-20px;
  border-radius:var(--r-lg);
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent)); opacity:.18; pointer-events:none;
}
.km-feat-row-rev .km-feat-img-cell::before{ left:auto; right:0; }
.km-feat-img{
  position:relative; z-index:1; isolation:isolate;
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-card);
}
.km-feat-img img{
  width:100%; height:100%; min-height:420px; object-fit:cover; display:block;
  transition:transform .9s var(--ease);
}
.km-feat-img:hover img{ transform:scale(1.06); }
.km-feat-img::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, transparent 55%, rgba(5,46,18,.40) 100%);
}
.km-feat-img::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:5px; z-index:2;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
.km-feat-badge{
  position:absolute; z-index:3; top:18px; left:18px;
  width:48px; height:48px; border-radius:var(--r-pill);
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.92); color:var(--c-primary-dark); font-size:19px;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}

/* body */
.km-feat-body{ position:relative; max-width:560px; }
.km-feat-ghost{
  position:absolute; top:-46px; left:-8px; z-index:0; pointer-events:none;
  font-family:var(--font-head); font-weight:800; line-height:1; letter-spacing:-4px;
  font-size:clamp(96px,12vw,168px);
  background:linear-gradient(180deg, rgba(26,166,58,.18), rgba(26,166,58,0));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.km-feat-body > *:not(.km-feat-ghost){ position:relative; z-index:1; }
.km-step{
  display:inline-flex; align-items:center;
  font-family:var(--font-head); font-weight:800; font-size:14px; letter-spacing:1.5px;
  color:var(--c-light);
  background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));
  padding:8px 18px; border-radius:var(--r-pill); margin-bottom:20px;
  box-shadow:0 8px 18px rgba(18,90,40,.22);
}
.km-feat-body .section-sub-heading{ margin-bottom:16px; letter-spacing:-.3px; }
.km-feat-body .content-text{ margin-bottom:0; }

@media all and (max-width:960px){
  .km-feat-img{ margin-bottom:34px; }
  .km-feat-img img{ min-height:300px; }
  .km-feat-img-cell::before{ bottom:-14px; }
  .km-feat-row-rev .km-feat-img{ margin-top:0; }
  .km-feat-ghost{ top:-34px; }
}


/* ============================================================
   4. SERVICE AREA  (radar coverage — split)
   ============================================================ */
.is-wrapper .km-area-sec{
  background:linear-gradient(135deg,var(--c-primary-dark) 0%,var(--c-deep) 50%,var(--c-deep-2) 100%);
  padding:var(--space-section) 0; position:relative; overflow:hidden;
}
.is-wrapper .km-area-sec::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.10) 1.4px, transparent 1.4px);
  background-size:26px 26px; opacity:.45;
}
.km-area-grid{ position:relative; z-index:1; }
.km-area-visual-cell, .km-area-text-cell{ padding-left:10px; padding-right:10px; }

/* radar coverage visual */
.km-area-radar{ position:relative; width:min(400px,86%); margin:0 auto; aspect-ratio:1/1; }
.km-area-radar::before, .km-area-radar::after{
  content:""; position:absolute; left:50%; top:50%; width:100%; height:100%; border-radius:50%;
  border:2px solid rgba(84,216,105,.55); transform:translate(-50%,-50%) scale(.3); opacity:0;
  animation:kmRadarPulse 3.6s ease-out infinite; pointer-events:none;
}
.km-area-radar::after{ animation-delay:1.8s; }
@keyframes kmRadarPulse{
  0%{ transform:translate(-50%,-50%) scale(.3); opacity:.75; }
  80%{ opacity:.05; }
  100%{ transform:translate(-50%,-50%) scale(1); opacity:0; }
}
.km-radar-ring{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  border-radius:50%; border:1.5px solid rgba(84,216,105,.30);
}
.km-radar-r1{ width:100%; height:100%; }
.km-radar-r2{ width:66%; height:66%; border-color:rgba(84,216,105,.42); }
.km-radar-r3{ width:34%; height:34%; border-color:rgba(84,216,105,.58); }
.km-radar-core{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3;
  width:86px; height:86px; border-radius:var(--r-pill);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  color:var(--c-light); font-size:34px;
  box-shadow:0 16px 34px rgba(0,0,0,.40), 0 0 0 10px rgba(84,216,105,.16);
}
.km-radar-pin{ position:absolute; z-index:2; color:var(--c-accent); font-size:22px; }
.km-radar-pin-1{ top:6%; left:50%; animation:kmFloatX 6s ease-in-out infinite; }
.km-radar-pin-2{ top:38%; right:5%; font-size:18px; animation:kmFloat 7s ease-in-out infinite .6s; }
.km-radar-pin-3{ bottom:12%; left:14%; font-size:19px; animation:kmFloat 5.5s ease-in-out infinite .3s; }
.km-radar-pin-4{ bottom:20%; right:14%; color:var(--c-light); opacity:.7; animation:kmFloat 6.5s ease-in-out infinite .9s; }
@keyframes kmFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
@keyframes kmFloatX{ 0%,100%{ transform:translateX(-50%) translateY(0); } 50%{ transform:translateX(-50%) translateY(-12px); } }

/* text card */
.km-area-inner{
  position:relative; z-index:2; max-width:560px;
  display:flex; flex-direction:column; align-items:flex-start; gap:22px;
  background:linear-gradient(180deg, rgba(10,60,28,.45), rgba(5,38,18,.66));
  border:1px solid rgba(255,255,255,.16); border-radius:var(--r-lg);
  padding:clamp(40px,4vw,52px);
  -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px);
  box-shadow:0 30px 70px rgba(0,0,0,.32);
}
.km-area-inner::before{
  content:""; width:60px; height:4px; border-radius:2px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
.is-wrapper .km-area-text{
  font-family:var(--font-head); font-weight:600; color:var(--c-light);
  font-size:clamp(18px,1.7vw,23px); line-height:1.65; margin:0;
  text-shadow:0 1px 2px rgba(0,0,0,.30);
}
.km-area-text .km-area-link{
  color:var(--c-accent); font-weight:700; text-decoration:none; white-space:nowrap;
  border-bottom:2px solid rgba(84,216,105,.40);
  transition:color .25s ease, border-color .25s ease;
}
.km-area-text .km-area-link:hover{ color:var(--c-light); border-color:var(--c-light); }
@media all and (max-width:960px){
  .km-area-radar{ width:min(320px,72%); margin-bottom:40px; }
  .km-area-inner{ align-items:center; text-align:center; max-width:640px; margin:0 auto; }
}
@media all and (max-width:640px){
  .km-radar-pin-2,.km-radar-pin-4{ display:none; }
}


/* ============================================================
   5. NEWSLETTER CTA  (split: editorial + action panel)
   ============================================================ */
.is-wrapper .km-news-sec{ background:var(--c-tint); padding:var(--space-section) 0; }
.km-news-cell{ padding-left:10px; padding-right:10px; }
.km-news-card{
  position:relative; overflow:hidden;
  display:flex; flex-wrap:wrap; align-items:stretch; text-align:left;
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-float);
}
.km-news-main{
  flex:1 1 56%; min-width:280px; position:relative; z-index:1;
  padding:clamp(40px,5vw,66px);
  display:flex; flex-direction:column; align-items:flex-start;
}
.km-news-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:74px; height:74px; border-radius:var(--r-pill);
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  color:var(--c-light); font-size:30px; margin-bottom:24px;
  box-shadow:0 14px 30px rgba(18,90,40,.26), 0 0 0 10px rgba(26,166,58,.08);
}
.km-news-card .section-main-heading{ margin-bottom:16px; letter-spacing:-.5px; }
.km-news-card .section-description{ margin:0; max-width:520px; }

.km-news-aside{
  flex:0 0 40%; min-width:260px; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(40px,4vw,52px);
  background:linear-gradient(155deg,var(--c-primary) 0%,var(--c-primary-dark) 60%,var(--c-deep) 100%);
}
.km-news-rings{
  position:absolute; right:-72px; top:-72px; width:240px; height:240px; border-radius:50%;
  border:2px solid rgba(255,255,255,.18); pointer-events:none;
  box-shadow:0 0 0 28px rgba(255,255,255,.06), 0 0 0 58px rgba(255,255,255,.04);
}
.km-news-aside::after{
  content:"\f0e0"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; left:-18px; bottom:-30px; font-size:150px; line-height:1;
  color:rgba(255,255,255,.08); pointer-events:none;
}
.km-news-btn{ position:relative; z-index:1; }
.km-news-card .web-primary-btn{
  background:var(--c-light); color:var(--c-primary-dark); border-color:var(--c-light);
}
.km-news-card .web-primary-btn:hover{
  background:var(--c-accent); color:var(--c-deep); border-color:var(--c-accent);
}
@media all and (max-width:1023.5px){
  .km-news-main{ flex:1 1 100%; }
  .km-news-aside{ flex:1 1 100%; min-height:170px; }
}


/* ===========================================================
   TESTIMONIALS  (featured middle card)
   =========================================================== */
.is-wrapper .km-tst-sec{
  background:radial-gradient(90% 60% at 50% 0%, rgba(26,166,58,.05), transparent 60%), var(--c-paper);
  padding:var(--space-section) 0;
}
.km-tst-cell{ display:flex; }
.km-tst-card{
  position:relative; z-index:1; width:100%; overflow:hidden;
  display:flex; flex-direction:column; gap:18px;
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-lg); padding:42px 32px 34px;
  box-shadow:var(--shadow-card);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.km-tst-card::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:4px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
.km-tst-card::after{
  content:"\f10d"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; right:18px; bottom:4px; font-size:92px; line-height:1;
  color:var(--c-tint); z-index:0; pointer-events:none;
}
.km-tst-card:hover{
  transform:translateY(-8px); box-shadow:var(--shadow-float);
  border-color:rgba(26,166,58,.30);
}
.km-tst-badge{
  position:relative; z-index:2; display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:var(--r-pill);
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  color:#fff; font-size:21px; box-shadow:0 10px 22px rgba(26,166,58,.30);
}
.is-wrapper .km-tst-text{
  position:relative; z-index:2; margin:0;
  font-family:var(--font-body); color:var(--c-ink);
  font-size:17px; line-height:1.7; font-style:italic;
}
.km-tst-name{
  position:relative; z-index:2; margin-top:auto;
  font-family:var(--font-head); font-weight:700; font-style:normal;
  color:var(--c-primary-dark); font-size:15px; letter-spacing:.3px;
}
.km-tst-name::before{ content:"\2014\00a0"; }

/* featured middle card */
.km-tst-feature{
  background:linear-gradient(155deg,var(--c-primary) 0%,var(--c-primary-dark) 60%,var(--c-deep) 100%);
  border-color:transparent; box-shadow:var(--shadow-float); transform:translateY(-16px);
}
.km-tst-feature::after{ color:rgba(255,255,255,.10); }
.km-tst-feature .km-tst-badge{
  background:rgba(255,255,255,.18); color:#fff; box-shadow:none; border:1px solid rgba(255,255,255,.26);
}
.is-wrapper .km-tst-feature .km-tst-text{ color:var(--c-light); }
.km-tst-feature .km-tst-name{ color:var(--c-accent); }
.km-tst-feature:hover{ transform:translateY(-22px); box-shadow:var(--shadow-float); border-color:transparent; }
@media all and (max-width:1023px){
  .km-tst-feature{ transform:none; }
  .km-tst-feature:hover{ transform:translateY(-8px); }
}
@media all and (max-width:640px){
  .km-tst-card{ padding:34px 26px 30px; }
}

/* ============================================================
   full-section body refinements (heading + multi-paragraph + CTA)
   ============================================================ */
.km-feat-body .section-main-heading{ margin-bottom:16px; letter-spacing:-.3px; }
.km-feat-body .content-text + .content-text{ margin-top:16px; }
.km-feat-body .web-primary-btn{ margin-top:28px; }

/* ============================================================
   5b. WHY CHOOSE  (centered statement band)
   ============================================================ */
.is-wrapper .km-why-sec{
  background:var(--c-tint); padding:var(--space-section) 0; position:relative; overflow:hidden;
}
.is-wrapper .km-why-sec::before{
  content:""; position:absolute; top:50%; left:50%; width:620px; height:620px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(26,166,58,.07), transparent 68%); pointer-events:none;
}
.km-why-cell{ padding-left:10px; padding-right:10px; position:relative; z-index:1; }
.km-why-inner{
  max-width:860px; margin:0 auto; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:22px;
}
.km-why-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:84px; height:84px; border-radius:var(--r-pill);
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  color:var(--c-light); font-size:34px;
  box-shadow:0 16px 34px rgba(18,90,40,.24), 0 0 0 12px rgba(26,166,58,.08);
}
.km-why-inner .section-main-heading{ margin:0; letter-spacing:-.5px; }
.km-why-inner .section-main-heading::after{
  content:""; display:block; width:64px; height:4px; border-radius:2px; margin:18px auto 0;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
.km-why-inner .section-description{ margin:0; font-size:clamp(17px,1.6vw,20px); }

/* ============================================================
   testimonial author + role line
   ============================================================ */
.km-tst-author{ position:relative; z-index:2; margin-top:auto; }
.km-tst-author .km-tst-name{ margin-top:0; display:block; }
.km-tst-role{
  display:block; margin-top:5px;
  font-family:var(--font-body); font-weight:500; font-size:13px; letter-spacing:.4px;
  color:var(--c-ink-2);
}
.km-tst-feature .km-tst-role{ color:var(--c-light-soft); }

/* ============================================================
   2b. MISSION  (bold statement band)
   ============================================================ */
.is-wrapper .km-mission-sec{
  background:linear-gradient(135deg,var(--c-primary-dark) 0%,var(--c-deep) 60%,var(--c-deep-2) 100%);
  padding:var(--space-section) 0; position:relative; overflow:hidden;
}
.is-wrapper .km-mission-sec::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.10) 1.4px, transparent 1.4px);
  background-size:26px 26px; opacity:.4;
}
.is-wrapper .km-mission-sec::after{
  content:""; position:absolute; left:50%; top:50%; width:600px; height:600px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(84,216,105,.22), transparent 68%); pointer-events:none;
}
.km-mission-cell{ padding-left:10px; padding-right:10px; position:relative; z-index:1; }
.km-mission-inner{ max-width:940px; margin:0 auto; text-align:center; position:relative; }
.km-mission-inner::before{
  content:"\f10d"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  display:block; font-size:46px; line-height:1; margin-bottom:24px;
  background:linear-gradient(135deg,var(--c-accent),var(--c-primary));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.is-wrapper .km-mission-statement{
  font-family:var(--font-head); font-weight:600; color:var(--c-light);
  font-size:clamp(24px,3.2vw,40px); line-height:1.42; letter-spacing:-.5px; margin:0;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.is-wrapper .km-mission-accent{ color:var(--c-accent); font-style:italic; }
.km-mission-statement::after{
  content:""; display:block; width:70px; height:4px; border-radius:2px; margin:30px auto 0;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}

/* ============================================================
   SITE HEADER  (new-header-5)  — appended ; header HTML untouched
   Scoped under #header.new-header-5 (id beats Foundation/theme defaults).
   Locked wrappers (.grid-x etc.) are NEVER targeted — only custom
   classes on the same nodes (.logo-section / .openMenu / #mainNav ...).
   ============================================================ */

/* --- shell : clean white bar + signature top accent --- */
#header.new-header-5{
  position:relative; background:var(--c-paper);
  box-shadow:var(--shadow-1); border-bottom:1px solid var(--c-line);
}
#header.new-header-5::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:3px; z-index:6;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}

/* --- top row height + logo (target .logo-section, NOT .grid-x) --- */
.new-header-5 .logo-section{ min-height:86px; }
.new-header-5 .logo-container img{ max-height:54px; width:auto; display:block; }

/* --- phone CTA --- */
#header.new-header-5 .cta.sitePhoneNumber{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-head); font-weight:700; font-size:15px; letter-spacing:.2px;
  color:var(--c-ink); text-decoration:none; transition:color .3s ease;
}
#header.new-header-5 .cta.sitePhoneNumber i{ color:var(--c-primary); font-size:14px; }
#header.new-header-5 .cta.sitePhoneNumber:hover{ color:var(--c-primary); }

/* utility menu (phone + Contact) sits above the main nav */
#header.new-header-5 .show-for-large > .menu.align-right{ align-items:center; margin-bottom:6px; }
#header.new-header-5 .show-for-large > .menu.align-right > li{ display:flex; align-items:center; }

/* --- Contact Us .button : matches global primary btn + UNIFIED hover --- */
#header.new-header-5 .button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-head); font-weight:600; font-size:15px; letter-spacing:.3px;
  line-height:1; text-decoration:none; cursor:pointer; white-space:nowrap;
  background:var(--btn-bg); color:var(--btn-text);
  border:2px solid var(--btn-bg); border-radius:var(--r-pill);
  padding:12px 28px; box-shadow:0 10px 24px rgba(18,90,40,.22);
  transition:transform .3s var(--ease), box-shadow .3s ease, background-color .3s ease, border-color .3s ease, color .3s ease;
  will-change:transform;
}
#header.new-header-5 .button:hover{
  background:var(--btn-bg-hover); border-color:var(--btn-bg-hover); color:var(--btn-text);
  transform:translateY(-3px); box-shadow:var(--shadow-2);
}

/* --- main navigation : level-1 links --- */
#header.new-header-5 #mainNav{ align-items:center; }
#header.new-header-5 #mainNav > li{ margin:0; }
#header.new-header-5 #mainNav > li > a{
  position:relative; display:block; background-color:transparent;
  font-family:var(--font-head); font-weight:600; font-size:15px; letter-spacing:.2px;
  color:var(--c-ink); text-decoration:none; padding:10px 16px;
  /* underline drawn as a gradient anchored to the box bottom -> never strikes text */
  background-image:linear-gradient(var(--c-primary),var(--c-primary));
  background-repeat:no-repeat;
  background-position:16px calc(100% - 5px);
  background-size:0% 2px;
  transition:color .3s ease, background-size .32s var(--ease);
}
#header.new-header-5 #mainNav > li > a span{ color:inherit; }
/* kill Foundation's default dropdown arrow triangle (we use our own chevron) */
#header.new-header-5 #mainNav > li.is-dropdown-submenu-parent > a::after{ display:none; }
#header.new-header-5 #mainNav > li > a:hover{ color:var(--c-primary); background-size:calc(100% - 32px) 2px; }
#header.new-header-5 #mainNav > li.active > a{ color:var(--c-primary-dark); background-size:calc(100% - 32px) 2px; }

/* dropdown chevron for "Services" (decorative, no text) */
#header.new-header-5 #mainNav > li.is-dropdown-submenu-parent > a{ padding-right:30px; }
#header.new-header-5 #mainNav > li.is-dropdown-submenu-parent > a::before{
  content:"\f078"; font-family:"Font Awesome 5 Pro"; font-weight:900; font-size:9px;
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  color:var(--c-ink-2); transition:transform .3s var(--ease), color .3s ease;
}
#header.new-header-5 #mainNav > li.is-dropdown-submenu-parent:hover > a::before{
  color:var(--c-primary); transform:translateY(-50%) rotate(180deg);
}

/* --- dropdown submenu : SOLID card (no transparency) --- */
#header.new-header-5 .is-dropdown-submenu{
  background:var(--c-paper);
  border:1px solid var(--c-line); border-top:3px solid var(--c-primary);
  border-radius:0 0 var(--r-md) var(--r-md);
  box-shadow:var(--shadow-card);
  min-width:264px; padding:8px 0;
}
#header.new-header-5 .is-dropdown-submenu > li{ margin:0; border:0; }
#header.new-header-5 .is-dropdown-submenu > li > a{
  position:relative; display:block;
  font-family:var(--font-body); font-weight:500; font-size:14.5px; letter-spacing:.1px;
  color:var(--c-ink); text-decoration:none; padding:11px 22px;
  transition:background-color .25s ease, color .25s ease, padding-left .25s ease;
}
#header.new-header-5 .is-dropdown-submenu > li > a::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:0; background:var(--c-primary); border-radius:2px;
  transition:height .25s var(--ease);
}
#header.new-header-5 .is-dropdown-submenu > li > a:hover{
  background:var(--c-tint); color:var(--c-primary-dark); padding-left:28px;
}
#header.new-header-5 .is-dropdown-submenu > li > a:hover::before{ height:60%; }
/* current page (active) — persistent highlight effect (matches hover styling) */
#header.new-header-5 .is-dropdown-submenu > li.active > a,
#header.new-header-5 .is-dropdown-submenu > li.is-page.active > a{
  background:var(--c-tint); color:var(--c-primary-dark); font-weight:600; padding-left:28px;
}
#header.new-header-5 .is-dropdown-submenu > li.active > a::before{ height:60%; }

/* --- hamburger (mobile only ; Foundation handles show/hide) --- */
#header.new-header-5 .openMenu{
  background:transparent; border:0; cursor:pointer; padding:6px 4px;
  line-height:1; display:inline-flex; align-items:center;
}
#header.new-header-5 .openMenu .fa-bars{ color:var(--c-primary); }
#header.new-header-5 .openMenu:hover .fa-bars{ color:var(--c-primary-dark); }

/* --- mobile contact strips (inside .hide-for-large) --- */
#header.new-header-5 .mobile-contact-number-section{ text-align:center; padding:12px 16px 4px; }
#header.new-header-5 .mobile-contact-button-section{ text-align:center; padding:4px 16px 16px; }
#header.new-header-5 .mobile-contact-button-section .button{ width:100%; max-width:max-content; margin:0 auto; }

/* --- responsive (aligned to Foundation 64em breakpoint) --- */
@media screen and (max-width:63.9375em){
  .new-header-5 .logo-section{ min-height:64px; }
  .new-header-5 .logo-container img{ max-height:44px; }
}

/* ============================================================
   MOBILE OFF-CANVAS SIDENAV (#sidenav) — premium dark-green drawer
   Theme intends light text (its rule sets li a -> #D3CDCD), so we make the
   drawer dark/branded and override to crisp light text via #sidenav (id).
   Foundation handles open/close + accordion toggle — we style ONLY
   (never override .off-canvas transform or submenu inline display:none/block).
   ============================================================ */
#sidenav.off-canvas.sidenav{
  padding:0;
  background:linear-gradient(165deg, var(--c-deep) 0%, var(--c-deep-2) 100%);
  box-shadow:-18px 0 50px rgba(0,0,0,.45);
}
/* signature top accent strip */
#sidenav.sidenav::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:4px; z-index:2;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
#sidenav .accordion-menu{
  margin:0; padding:16px 0 28px; list-style:none; background:transparent;
}

/* ---- level-1 items (light text on dark) ---- */
#sidenav .accordion-menu > li{ margin:0; border-bottom:1px solid rgba(255,255,255,.08); }
#sidenav .accordion-menu > li:last-child{ border-bottom:0; }
#sidenav .accordion-menu > li > a{
  position:relative; display:block; background-color:transparent;
  font-family:var(--font-head); font-weight:600; font-size:16px; letter-spacing:.2px;
  color:var(--c-light); text-decoration:none; padding:15px 24px;
  transition:background-color .25s ease, color .25s ease, padding-left .25s ease;
}
#sidenav .accordion-menu > li > a span{ color:inherit; }
/* left accent bar (grows on hover / active) */
#sidenav .accordion-menu > li > a::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:0; background:var(--c-accent); border-radius:2px;
  transition:height .25s var(--ease);
}
#sidenav .accordion-menu > li > a:hover{ background:rgba(255,255,255,.08); color:var(--c-accent); padding-left:30px; }
#sidenav .accordion-menu > li > a:hover::before{ height:58%; }
#sidenav .accordion-menu > li.active > a{ background:rgba(255,255,255,.10); color:var(--c-accent); }
#sidenav .accordion-menu > li.active > a::before{ height:58%; }

/* ---- accordion parent chevron (replaces Foundation's default arrow) ---- */
#sidenav .is-accordion-submenu-parent > a{ padding-right:48px; }
#sidenav .is-accordion-submenu-parent > a::after{
  content:"\f078"; font-family:"Font Awesome 5 Pro"; font-weight:900; font-size:11px;
  border:0; margin:0; width:auto; height:auto;
  position:absolute; right:22px; top:50%; transform:translateY(-50%) rotate(0deg);
  color:var(--c-light-soft); transition:transform .3s var(--ease), color .3s ease;
}
#sidenav .is-accordion-submenu-parent[aria-expanded="true"] > a::after,
#sidenav .is-accordion-submenu-parent.is-active > a::after{
  transform:translateY(-50%) rotate(180deg); color:var(--c-accent);
}

/* ---- nested submenu (darker inset panel) ---- */
#sidenav .is-accordion-submenu{
  background:rgba(0,0,0,.22); margin:0; padding:4px 0; list-style:none;
}
#sidenav .is-accordion-submenu > li{ margin:0; border:0; }
#sidenav .is-accordion-submenu > li > a{
  position:relative; display:block; background-color:transparent;
  font-family:var(--font-body); font-weight:500; font-size:14.5px;
  color:var(--c-light-soft); text-decoration:none; padding:11px 24px;
  transition:background-color .25s ease, color .25s ease, padding-left .25s ease;
}
#sidenav .is-accordion-submenu > li > a span{ color:inherit; display:inline-block; line-height:1.3; }
/* small dot marker for sub-items */
#sidenav .is-accordion-submenu > li > a::before{
  content:""; position:absolute; left:24px; top:50%; transform:translateY(-50%);
  width:5px; height:5px; border-radius:50%; background:var(--c-accent); opacity:.5;
  transition:opacity .25s ease;
}
#sidenav .is-accordion-submenu > li > a:hover{ background:rgba(255,255,255,.06); color:var(--c-light); }
#sidenav .is-accordion-submenu > li > a:hover::before{ opacity:1; }
#sidenav .is-accordion-submenu > li.active > a{ background:rgba(255,255,255,.06); color:var(--c-accent); }
#sidenav .is-accordion-submenu > li.active > a::before{ opacity:1; }

/* ============================================================
   FOOTER (#footer.new-footer-1) — premium dark-green
   id-scoped to beat theme + .is-wrapper p/li color rules.
   Locked wrappers (grid-x/cell/is-*) untouched. No overflow:hidden
   on #footer (would clip the Services dropdown). Submenu = solid card.
   ============================================================ */
#footer.new-footer-1{
  position:relative;
  background:
    radial-gradient(120% 80% at 82% 0%, rgba(255,255,255,.05), transparent 60%),
    linear-gradient(160deg, var(--c-deep) 0%, var(--c-deep-2) 100%);
}
/* signature top accent strip */
#footer.new-footer-1::before{
  content:""; position:absolute; top:0; left:0; width:100%; height:4px; z-index:2;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
/* light text defaults (id beats .is-wrapper p/li) */
#footer.new-footer-1,
#footer.new-footer-1 p,
#footer.new-footer-1 li,
#footer.new-footer-1 a,
#footer.new-footer-1 span{ color:var(--c-light-soft); }
#footer.new-footer-1 h4{
  font-family:var(--font-head); font-weight:700; color:var(--c-light); text-wrap:balance;
}

/* ---- top footer nav ---- */
#footer.new-footer-1 .footer-menu-container{ border-bottom:1px solid rgba(255,255,255,.10); }
#footer.new-footer-1 .footer-menu-container .menu.level-1{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:4px 26px; margin:0;
}
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li{ margin:0; }
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li > a{
  position:relative; display:inline-block; background:transparent;
  font-family:var(--font-head); font-weight:600; font-size:14.5px; letter-spacing:.3px;
  color:var(--c-light-soft); text-decoration:none; padding:8px 2px;
  transition:color .25s ease;
}
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li > a span{ color:inherit; }
/* animated underline (also overrides Foundation's default dropdown arrow ::after) */
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li > a::after{
  content:""; position:absolute; left:0; bottom:2px; width:0; height:2px; border:0;
  background:var(--c-accent); border-radius:2px; transition:width .28s var(--ease);
}
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li > a:hover{ color:var(--c-light); }
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li > a:hover::after{ width:100%; }
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li.active > a{ color:var(--c-accent); }
#footer.new-footer-1 .footer-menu-container .menu.level-1 > li.active > a::after{ width:100%; }
/* solid dropdown submenu card (no transparency) */
#footer.new-footer-1 .footer-menu-container .is-dropdown-submenu{
  background:var(--c-deep-2); border:1px solid rgba(255,255,255,.10);
  border-top:2px solid var(--c-accent); border-radius:var(--r-sm);
  box-shadow:0 18px 40px rgba(0,0,0,.45); min-width:240px; padding:6px 0;
}
#footer.new-footer-1 .footer-menu-container .is-dropdown-submenu > li{ margin:0; }
#footer.new-footer-1 .footer-menu-container .is-dropdown-submenu > li > a{
  display:block; background:transparent; font-family:var(--font-body); font-weight:500;
  font-size:14px; color:var(--c-light-soft); text-decoration:none; padding:9px 18px;
  transition:background-color .2s ease, color .2s ease, padding-left .2s ease;
}
#footer.new-footer-1 .footer-menu-container .is-dropdown-submenu > li > a span{ color:inherit; display:inline-block; line-height:1.3; }
#footer.new-footer-1 .footer-menu-container .is-dropdown-submenu > li > a:hover{
  background:rgba(255,255,255,.06); color:var(--c-accent); padding-left:24px;
}

/* ---- column headings with accent underline ---- */
#footer.new-footer-1 .footer-text h4,
#footer.new-footer-1 .contact-us-column h4{
  position:relative; font-size:18px; margin:0 0 18px; padding-bottom:12px;
}
#footer.new-footer-1 .footer-text h4::after,
#footer.new-footer-1 .contact-us-column h4::after{
  content:""; position:absolute; left:0; bottom:0; width:42px; height:3px; border-radius:2px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}

/* ---- about column ---- */
#footer.new-footer-1 .footer-text p{ font-size:14.5px; line-height:1.7; color:var(--c-light-soft); margin:0 0 18px; }
#footer.new-footer-1 .footer-social-media .menu{ margin:0; }
#footer.new-footer-1 .footer-social-media a{ color:var(--c-light-soft); transition:color .25s ease, transform .25s ease; }
#footer.new-footer-1 .footer-social-media a:hover{ color:var(--c-accent); transform:translateY(-2px); }

/* ---- center logo ---- */
#footer.new-footer-1 .footer-media-box{ display:flex; align-items:center; justify-content:center; }
#footer.new-footer-1 .footer-media-box img{
  max-width:300px; width:auto; height:auto; margin:0 auto; opacity:.96;
  filter:brightness(0) invert(1) drop-shadow(0 6px 14px rgba(0,0,0,.45));
}

/* ---- contact column (decorative icons) ---- */
#footer.new-footer-1 .contact-us-column .shop-address,
#footer.new-footer-1 .contact-us-column .contact-number,
#footer.new-footer-1 .contact-us-column .email-id{
  position:relative; display:block; padding-left:30px; margin:0 0 16px;
  font-size:14.5px; line-height:1.6; color:var(--c-light-soft); text-decoration:none;
}
#footer.new-footer-1 .contact-us-column .shop-address::before,
#footer.new-footer-1 .contact-us-column .contact-number::before,
#footer.new-footer-1 .contact-us-column .email-id::before{
  font-family:"Font Awesome 5 Pro"; font-weight:900; position:absolute; left:0;
  font-size:15px; line-height:1; color:var(--c-accent);
}
/* address is multi-line -> align icon to the first line */
#footer.new-footer-1 .contact-us-column .shop-address::before{ content:"\f3c5"; top:5px; }
/* single-line rows -> vertically center the icon on the line */
#footer.new-footer-1 .contact-us-column .contact-number::before{ content:"\f095"; top:42%; transform: rotate(96deg); }
#footer.new-footer-1 .contact-us-column .email-id::before{ content:"\f0e0"; top:50%; transform:translateY(-50%); }
#footer.new-footer-1 .contact-us-column .contact-number a{ color:inherit; text-decoration:none; }
#footer.new-footer-1 .contact-us-column a:hover,
#footer.new-footer-1 .contact-us-column .contact-number a:hover{ color:var(--c-accent); }

/* ---- mailing-list button -> brand primary + unified hover ---- */
#footer.new-footer-1 .contact-us-column .button{
  display:inline-block; margin-top:8px;
  font-family:var(--font-head); font-weight:600; font-size:15px; letter-spacing:.2px;
  color:#fff; background:var(--btn-bg); border:2px solid var(--btn-bg);
  border-radius:var(--r-pill); padding:13px 30px; text-decoration:none; cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,.28); transition:all .28s var(--ease);
}
#footer.new-footer-1 .contact-us-column .button:hover{
  background:var(--btn-bg-hover); border-color:var(--btn-bg-hover);
  color:#fff; transform:translateY(-3px); box-shadow:var(--shadow-2);
}

/* ---- copyright bar ---- */
#footer.new-footer-1 .copyright-container{ border-top:1px solid rgba(255,255,255,.10); }
#footer.new-footer-1 .copyright-container .custom-grid-container{ padding-top:18px; padding-bottom:18px; }
#footer.new-footer-1 .copyright{ font-family:var(--font-body); font-size:13px; color:var(--c-light-soft); margin:0; }
#footer.new-footer-1 .copyright a{ color:var(--c-light); text-decoration:none; transition:color .25s ease; }
#footer.new-footer-1 .copyright a:hover{ color:var(--c-accent); }

/* ---- responsive ---- */
@media all and (max-width:63.9375em){
  #footer.new-footer-1 .footer-text,
  #footer.new-footer-1 .contact-us-column{ text-align:center; }
  #footer.new-footer-1 .footer-text h4::after,
  #footer.new-footer-1 .contact-us-column h4::after{ left:50%; transform:translateX(-50%); }
  #footer.new-footer-1 .footer-social-media .menu{ justify-content:center; }
  #footer.new-footer-1 .footer-media-box{ margin:14px 0; }
  #footer.new-footer-1 .contact-us-column .shop-address,
  #footer.new-footer-1 .contact-us-column .contact-number,
  #footer.new-footer-1 .contact-us-column .email-id{ padding-left:0; }
  #footer.new-footer-1 .contact-us-column .shop-address::before,
  #footer.new-footer-1 .contact-us-column .contact-number::before,
  #footer.new-footer-1 .contact-us-column .email-id::before{ position:static; margin-right:8px; top:auto; transform:none; }
}

/* ============================================================
   SERVICES PAGE — editorial alternating rows + newsletter card
   ============================================================ */
.is-wrapper > .km-srv-sec, .is-wrapper .km-srv-sec{ background:var(--c-paper); }

.km-srv-head{ text-align:center; max-width:760px; margin:0 auto; padding-bottom:14px; }
.km-srv-eyebrow{
  display:inline-block; margin-bottom:12px;
  color:var(--c-primary-dark); text-transform:uppercase; letter-spacing:2px;
  background:var(--c-tint); padding:7px 16px; border-radius:var(--r-pill);
}

/* ---- service cards — clean editorial style (image > title > text > divider > circular CTA) ---- */
.km-srv-card{
  position:relative; height:100%; display:flex; flex-direction:column; overflow:hidden;
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-card);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.km-srv-card:hover{
  transform:translateY(-10px); border-color:transparent;
  box-shadow:0 30px 60px -22px rgba(10,82,32,.45), 0 14px 30px rgba(0,0,0,.08);
}
.km-srv-card-media{ position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--c-tint); }
.km-srv-card-media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s var(--ease);
}
.km-srv-card:hover .km-srv-card-media img{ transform:scale(1.06); }
.km-srv-card-body{
  display:flex; flex-direction:column; flex:1 1 auto;
  padding:32px 32px 30px;
}
.km-srv-card-body h3{ margin:0 0 14px; }
.km-srv-card-body .content-text{ margin:0 0 26px; }
/* CTA row: "learn more" text left + circular arrow button right, hairline divider above */
.km-srv-card-body .web-cta-link{
  margin-top:auto; width:100%; gap:18px;
  display:flex; align-items:center; justify-content:space-between;
  padding-top:24px; border-top:1px solid var(--c-line);
  color:var(--c-ink); font-weight:700; font-size:14px; line-height:1.5; text-align:left;
}
.km-srv-card-body .web-cta-link i{
  flex:0 0 auto; width:52px; height:52px; margin:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:15px;
  border:1px solid var(--c-line); color:var(--c-primary);
  transition:background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
}
.km-srv-card-body .web-cta-link:hover{ color:var(--c-ink); transform:none; }
.km-srv-card-body .web-cta-link:hover i{ transform:none; }
.km-srv-card:hover .web-cta-link i{
  background:var(--c-primary); border-color:var(--c-primary); color:#fff;
}
/* whole card clickable — stretched link (covers the card, no nested anchors) */
.km-srv-card{ cursor:pointer; }
.km-srv-card-body .web-cta-link::after{
  content:""; position:absolute; inset:0; z-index:2;
}


/* ---- newsletter (deep-green card on tint so it never merges with footer) ---- */
.is-wrapper > .km-snews-sec, .is-wrapper .km-snews-sec{ background:var(--c-tint); }
.km-snews-card{
  position:relative; overflow:hidden; text-align:center;
  max-width:840px; margin:0 auto; padding:58px 48px;
  border-radius:var(--r-lg);
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(255,255,255,.07), transparent 60%),
    linear-gradient(160deg, var(--c-deep), var(--c-deep-2));
  box-shadow:var(--shadow-2);
}
.km-snews-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.km-snews-icon{
  width:74px; height:74px; border-radius:50%; margin:0 auto 22px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.18);
}
.km-snews-icon i{ font-size:28px; color:var(--c-accent); }
.is-wrapper .km-snews-card h2{ color:var(--c-light); margin:0 0 16px; }
.is-wrapper .km-snews-card .section-description{
  color:var(--c-light-soft); max-width:620px; margin:0 auto 30px;
}
/* on-dark surface: white pill (same unified hover motion as global button) */
.is-wrapper .km-snews-card .web-primary-btn{
  background:#fff; border-color:#fff; color:var(--c-deep);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}
.is-wrapper .km-snews-card .web-primary-btn:hover{
  background:var(--bnl-btn-hover); border-color:var(--bnl-btn-hover); color:var(--c-deep);
  transform:translateY(-3px); box-shadow:var(--shadow-2);
}

@media all and (max-width:640px){
  .km-srv-card-body{ padding:26px 24px 28px; }
  .km-snews-card{ padding:44px 22px; }
}

/* ============================================================
   LAWN MOWING DETAIL PAGE — botanical editorial system (number-free)
   accent: leaf motif + gradient kicker bars (replaces numbering)
   bg alternation: intro(tint) > benefits(paper) > feature(tint) > faq(paper) > newsletter(tint)
   ============================================================ */

/* ---------- INTRO (airy, centered) ---------- */
.is-wrapper > .km-mow-intro-sec, .is-wrapper .km-mow-intro-sec{ background:var(--c-tint); position:relative; overflow:hidden; }
.km-mow-intro-sec::before{
  content:""; position:absolute; z-index:0; pointer-events:none;
  width:560px; height:560px; top:-200px; right:-150px; border-radius:50%;
  background:radial-gradient(circle, rgba(26,166,58,.10), transparent 70%);
}
.km-mow-intro{ position:relative; z-index:1; text-align:center; max-width:840px; margin:0 auto; }
.km-mow-intro::before{
  content:"\f06c"; font-family:'Font Awesome 5 Pro'; font-weight:900;
  display:block; margin:0 auto 16px; font-size:34px; color:var(--c-primary);
}
.km-mow-intro .section-main-heading{ position:relative; padding-bottom:22px; margin-bottom:18px; }
.km-mow-intro .section-main-heading::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:60px; height:3px; border-radius:var(--r-pill);
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.km-mow-intro .section-description{ margin:0 auto 18px; max-width:720px; color:var(--c-ink); font-weight:500; }
.km-mow-intro .km-mow-intro-text{ margin:0 auto 30px; max-width:760px; line-height:1.85; }

/* ---------- BENEFITS (2-per-row, soft floating cards, leaf watermark) ---------- */
.is-wrapper > .km-mow-ben-sec, .is-wrapper .km-mow-ben-sec{ background:var(--c-paper); }
.km-mow-ben-card{
  position:relative; overflow:hidden; height:100%;
  background:var(--c-paper); border-radius:var(--r-lg); padding:40px 36px;
  box-shadow:var(--shadow-soft);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.km-mow-ben-card:hover{ transform:translateY(-10px); box-shadow:var(--shadow-float); }
.km-mow-ben-card::after{
  content:"\f06c"; font-family:'Font Awesome 5 Pro'; font-weight:900;
  position:absolute; right:20px; bottom:10px; z-index:0; pointer-events:none;
  font-size:70px; line-height:1; color:var(--c-tint);
  transform:rotate(10deg); transition:color .45s var(--ease), transform .45s var(--ease);
}
.km-mow-ben-card:hover::after{ color:rgba(84,216,105,.20); transform:rotate(-4deg) scale(1.06); }
.km-mow-ben-icon{
  position:relative; z-index:1; width:64px; height:64px; border-radius:50%; margin:0 0 22px;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-tint); color:var(--c-primary-dark); font-size:25px;
  transition:background .45s var(--ease), color .45s var(--ease), transform .45s var(--ease);
}
.km-mow-ben-card:hover .km-mow-ben-icon{
  background:linear-gradient(135deg, var(--c-primary), var(--c-deep)); color:#fff; transform:translateY(-2px);
}
.km-mow-ben-text{ position:relative; z-index:1; }
.km-mow-ben-text h3{ margin:0 0 10px; }
.km-mow-ben-text .content-text{ margin:0; }

/* ---------- FEATURE ROWS (alternating, clean imagery, gradient kicker, leaf badge) ---------- */
.is-wrapper > .km-mow-feat-sec, .is-wrapper .km-mow-feat-sec{ background:var(--c-tint); position:relative; overflow:hidden; }
.km-mow-feat-sec::before{
  content:""; position:absolute; z-index:0; pointer-events:none;
  width:560px; height:560px; bottom:-200px; left:-170px; border-radius:50%;
  background:radial-gradient(circle, rgba(26,166,58,.10), transparent 70%);
}
.km-mow-feat-cell{ position:relative; z-index:1; }
.km-mow-row{ display:flex; align-items:center; gap:58px; padding:36px 0; }
.km-mow-rev .km-mow-row{ flex-direction:row-reverse; }
.km-mow-media{ flex:1 1 50%; position:relative; }
.km-mow-img{ position:relative; z-index:1; overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--shadow-card); }
.km-mow-img img{ width:100%; height:400px; object-fit:cover; display:block; transition:transform .7s var(--ease); }
.km-mow-feat-cell:hover .km-mow-img img{ transform:scale(1.06); }
.km-mow-img::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:var(--r-lg);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.40);
  background:linear-gradient(180deg, transparent 60%, rgba(6,61,24,.26));
}
.km-mow-media::after{
  content:"\f06c"; font-family:'Font Awesome 5 Pro'; font-weight:900;
  position:absolute; z-index:3; top:-18px; right:20px;
  width:58px; height:58px; line-height:58px; text-align:center; border-radius:50%;
  font-size:23px; color:#fff;
  background:linear-gradient(135deg, var(--c-primary), var(--c-deep));
  box-shadow:0 16px 32px rgba(18,90,40,.32);
}
.km-mow-rev .km-mow-media::after{ right:auto; left:20px; }
.km-mow-body{
  flex:1 1 50%;
  background:var(--c-paper); border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft); padding:46px 44px;
}
.km-mow-body::before{
  content:""; display:block; width:54px; height:4px; margin:0 0 22px; border-radius:var(--r-pill);
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.km-mow-body h3{ margin:0 0 16px; }
.km-mow-body .content-text{ margin:0 0 22px; }
.km-mow-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:4px; }
.km-mow-list li{
  position:relative; padding:9px 0 9px 38px;
  font-family:var(--font-body); color:var(--c-ink); line-height:1.5;
  transition:color .25s var(--ease);
}
.km-mow-list li i{
  position:absolute; left:0; top:9px; width:23px; height:23px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-tint); color:var(--c-primary-dark); font-size:11px;
  transition:background .25s var(--ease), color .25s var(--ease);
}
.km-mow-list li:hover{ color:var(--c-primary-dark); }
.km-mow-list li:hover i{ background:var(--c-primary); color:#fff; }

/* ---------- FAQ (clean tinted accordion, no JS) ---------- */
.is-wrapper > .km-mow-faq-sec, .is-wrapper .km-mow-faq-sec{ background:var(--c-paper); }
.km-mow-faq-head{ text-align:center; max-width:680px; margin:0 auto 10px; }
.km-mow-faq-head .section-main-heading{ position:relative; padding-bottom:22px; margin-bottom:8px; }
.km-mow-faq-head .section-main-heading::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:60px; height:3px; border-radius:var(--r-pill);
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.km-mow-faq{ max-width:840px; margin:0 auto; }
.km-mow-faq-item{
  background:var(--c-paper); border:1px solid var(--c-line); border-radius:var(--r-md);
  margin-bottom:14px; overflow:hidden;
  transition:box-shadow .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.km-mow-faq-item:hover{ box-shadow:var(--shadow-card); }
.km-mow-faq-item[open]{ background:var(--c-tint); border-color:transparent; box-shadow:var(--shadow-card); }
.km-mow-faq-q{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:22px 26px; font-family:var(--font-head); font-weight:600; font-size:17px; color:var(--c-ink);
}
.km-mow-faq-q::-webkit-details-marker{ display:none; }
.km-mow-faq-q::marker{ content:""; }
.km-mow-faq-q i{
  flex:0 0 auto; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-tint); color:var(--c-primary-dark); font-size:13px;
  transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.km-mow-faq-item[open] .km-mow-faq-q i{ background:var(--c-primary); color:#fff; transform:rotate(180deg); }
.km-mow-faq-a{ padding:0 26px 24px; }
.km-mow-faq-a .content-text{ margin:0; }

/* ---------- responsive ---------- */
@media all and (max-width:880px){
  .km-mow-row, .km-mow-rev .km-mow-row{ flex-direction:column; gap:26px; padding:22px 0; }
  .km-mow-media, .km-mow-body{ flex:1 1 100%; width:100%; }
  /* .km-mow-img img{ height:300px; } */
  .km-mow-media::after{ width:50px; height:50px; line-height:50px; font-size:20px; }
}
@media all and (max-width:640px){
  .km-mow-ben-card{ padding:32px 26px; }
  .km-mow-ben-card::after{ font-size:58px; }
  .km-mow-body{ padding:32px 26px; }
}

/* ============================================================
   SERVICE AREAS PAGE — km-sa- (directory cards / location chips / process panel)
   Tokens-only. Reuses km-mow- section backgrounds. Append-only.
   ============================================================ */

/* --- Communities coverage (deep-green radar split; reuses .km-area-radar + .km-radar-*) --- */
.is-wrapper .km-sacov-sec{
  background:linear-gradient(135deg,var(--c-primary-dark) 0%,var(--c-deep) 50%,var(--c-deep-2) 100%);
  padding:var(--space-section) 0;
  position:relative;
  overflow:hidden;
}
.is-wrapper .km-sacov-sec::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.10) 1.4px, transparent 1.4px);
  background-size:26px 26px;
  opacity:.45;
}
.km-sacov-grid{ position:relative; z-index:1; }
.km-sacov-visual-cell, .km-sacov-text-cell{ padding-left:10px; padding-right:10px; }
.km-sacov-card{
  position:relative;
  z-index:2;
  max-width:600px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  background:linear-gradient(180deg, rgba(10,60,28,.45), rgba(5,38,18,.66));
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-lg);
  padding:clamp(40px,4vw,54px);
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  box-shadow:0 30px 70px rgba(0,0,0,.32);
}
.km-sacov-card::before{
  content:"";
  display:block;
  width:60px;
  height:4px;
  border-radius:2px;
  margin-bottom:24px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
}
.is-wrapper .km-sacov-card .section-main-heading{ color:var(--c-light); margin:0 0 16px; }
.is-wrapper .km-sacov-card .km-sacov-text{
  color:rgba(255,255,255,.86);
  font-size:var(--fs-body);
  line-height:1.8;
  margin:0 0 28px;
}
.km-sacov-chips{
  list-style:none;
  margin:0;
  padding:0;
  width:100%;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.is-wrapper .km-sacov-chip{
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:var(--r-pill);
  padding:11px 22px;
  font-family:var(--font-head);
  font-weight:600;
  font-size:15px;
  color:var(--c-light);
  text-decoration:none;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  transition:transform .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease);
}
.km-sacov-chip i{ color:var(--c-accent); font-size:14px; }
.is-wrapper .km-sacov-chip:hover{
  transform:translateY(-4px);
  background:rgba(84,216,105,.22);
  border-color:var(--c-accent);
}
@media all and (max-width:960px){
  .km-sacov-card{ align-items:center; text-align:center; max-width:640px; margin:0 auto; }
  .km-sacov-card::before{ margin-left:auto; margin-right:auto; }
  .km-sacov-chips{ justify-content:center; }
}

/* --- Process: image + content split --- */
.km-saproc-grid{ row-gap:40px; }
/* media side */
.km-saproc-media{ position:relative; }
.km-saproc-frame{
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.km-saproc-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:4 / 3;
}
.km-saproc-badge{
  position:absolute;
  right:-18px;
  bottom:-18px;
  z-index:2;
  width:90px;
  height:90px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(160deg, var(--c-primary), var(--c-deep));
  border:5px solid var(--c-paper);
  box-shadow:var(--shadow-2);
}
.km-saproc-badge i{ color:#fff; font-size:32px; }
/* content side */
.km-saproc-text{ padding-left:20px; }
.km-saproc-text::before{
  content:"\f06c";
  font-family:'Font Awesome 5 Pro';
  font-weight:900;
  color:var(--c-primary);
  font-size:30px;
  display:block;
  margin-bottom:16px;
}
.km-saproc-text .section-main-heading{
  position:relative;
  margin:0 0 20px;
  padding-bottom:20px;
  text-align:left;
}
.km-saproc-text .section-main-heading::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:62px;
  height:3px;
  border-radius:var(--r-pill);
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.km-saproc-text .content-text{
  margin:0;
  font-size:18px;
  line-height:1.9;
}

@media all and (max-width:1024px){
  .km-saproc-text{ padding-left:0; padding-top:14px; }
}
@media all and (max-width:640px){
  .km-saproc-badge{ width:64px; height:64px; right:14px; bottom:-14px; border-width:4px; }
  .km-saproc-badge i{ font-size:24px; }
  .km-saproc-text .content-text{ font-size:16.5px; }
}

/* --- Service Areas page: section background re-sequence (Serving Communities moved to end, before footer) --- */
.is-wrapper > .km-areas-proc, .is-wrapper .km-areas-proc{ background:var(--c-tint); }
.is-wrapper > .km-areas-news, .is-wrapper .km-areas-news{ background:var(--c-paper); }

/* =================================================================
   CONTACT PAGE — info cards + service-area chips + closing band
   (km-contact- ; tokens only; bg wrapper-scoped; footer-safe ending)
   ================================================================= */
.is-wrapper > .km-contact-sec, .is-wrapper .km-contact-sec{
  background:var(--c-paper);
  padding:var(--space-section) 0;
}
.km-contact-grid{ row-gap:var(--gap); }
.km-contact-card-cell{ padding-left:10px; padding-right:10px; }
.km-contact-card{
  height:100%;
  background:var(--c-paper);
  border:1px solid var(--c-line);
  border-radius:var(--r-lg);
  padding:44px 34px;
  text-align:center;
  box-shadow:var(--shadow-card);
  position:relative;
  overflow:hidden;
  transition:transform .42s var(--ease), box-shadow .42s var(--ease), border-color .42s var(--ease);
}
.km-contact-card::before{
  content:"";
  position:absolute; left:0; top:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
  transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease);
}
.km-contact-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-float);
  border-color:transparent;
}
.km-contact-card:hover::before{ transform:scaleX(1); }
.km-contact-ico{
  width:80px; height:80px; margin:0 auto 22px;
  border-radius:var(--r-pill);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--c-primary),var(--c-deep));
  box-shadow:0 12px 28px rgba(26,166,58,.30);
  transition:transform .5s var(--ease);
}
.km-contact-card:hover .km-contact-ico{ transform:rotate(-6deg) scale(1.07); }
.km-contact-ico i{ font-size:31px; color:#fff; }
.km-contact-card .small-heading{
  text-transform:uppercase; letter-spacing:2px;
  font-size:13px; color:var(--c-ink-2); margin:0 0 10px;
}
.km-contact-card .content-heading{ margin:0; font-size:20px; line-height:1.5; word-break:break-word; }
.km-contact-card a.content-heading{ color:var(--c-ink); transition:color .3s var(--ease); }
.km-contact-card a.content-heading:hover{ color:var(--c-primary); }

/* map (framed Google Maps embed) */
.is-wrapper > .km-contact-map, .is-wrapper .km-contact-map{
  background:var(--c-paper);
  padding:var(--space-section) 0;
}
.km-contact-map-frame{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  border:1px solid var(--c-line);
  line-height:0;
}
.km-contact-map-frame iframe{
  width:100%; height:460px; border:0; display:block;
  filter:grayscale(.18);
  transition:filter .5s var(--ease);
}
.km-contact-map-frame:hover iframe{ filter:grayscale(0); }
@media all and (max-width:640px){
  .km-contact-map-frame iframe{ height:340px; }
}

@media all and (max-width:640px){
  .km-contact-card{ padding:34px 24px; }
  .km-contact-ico{ width:70px; height:70px; }
}


/* ============================================================
   BLOG LISTING (.new-blog-page-type) — premium km- skin
   Enhances the platform blog index: pill search, magazine
   article cards, category chips, sticky sidebar, pagination.
   Token-based; targets theme blog classes only (no locked wrappers).
   ============================================================ */

/* page backdrop so white cards pop */
.is-wrapper .new-blog-page-type{ background:var(--c-tint); }
.new-blog-page-type .main-blog-widget{ padding:54px 0 24px; }

/* ---- search bar (premium pill) ---- */
.new-blog-page-type .blog-search-container{ margin-top:50px; margin-bottom:0; }
.new-blog-page-type .blog-search-container .position-relative{ max-width:620px; margin:0 auto; }
.new-blog-page-type .blog-search-container #search-input-blog{
  height:58px; width:100%;
  margin:0; padding:0 24px 0 54px;
  border:1px solid var(--c-line); border-radius:var(--r-pill);
  background:var(--c-paper); box-shadow:var(--shadow-1);
  font-family:var(--font-body); font-size:16px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.new-blog-page-type .blog-search-container #search-input-blog:focus{
  outline:none; border-color:var(--c-primary);
  box-shadow:0 0 0 4px rgba(84,216,105,.20);
}
.new-blog-page-type .blog-search-container #search-input-blog::placeholder{ color:var(--c-ink-2); opacity:.8; }
.new-blog-page-type .blog-search-container .blog-search-button{
  position:absolute; left:20px; top:50%; transform:translateY(-50%);
  margin:0; padding:0; background:none; border:0; cursor:pointer; line-height:0;
}
.new-blog-page-type .blog-search-container .blog-search-button svg path{ fill:var(--c-ink-2); transition:fill .3s var(--ease); }
.new-blog-page-type .blog-search-container .blog-search-button:hover svg path{ fill:var(--c-primary); }

/* row gap below search */
.new-blog-page-type .blog-articles,
.new-blog-page-type .blog-sidebar{ margin-top:50px; }

/* ---- article cards ---- */
.new-blog-page-type .blog-ul{ list-style:none; margin:0; display:grid; gap:30px; }
.new-blog-page-type .blog-li{
  margin:0; background:var(--c-paper);
  border:1px solid var(--c-line); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--shadow-card);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.new-blog-page-type .blog-li:hover{
  transform:translateY(-8px); border-color:transparent; box-shadow:var(--shadow-float);
}
.new-blog-page-type .blog-li .row{ margin:0; max-width:none; }
.new-blog-page-type .blog-li .blog-article{ padding:32px; }

/* image bleeds to card edges, zooms on hover */
.new-blog-page-type .blog-li .ps-article-img{ margin:-32px -32px 26px; overflow:hidden; }
.new-blog-page-type .blog-li .ps-article-img img{
  display:block; width:100%; height:300px; object-fit:cover; margin:0;
  transition:transform .6s var(--ease);
}
.new-blog-page-type .blog-li:hover .ps-article-img img{ transform:scale(1.06); }

/* category chips (theme prints comma <span>s — hide them, keep the label) */
.new-blog-page-type .blog-li .article-category{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 16px;
}
.new-blog-page-type .blog-li .article-category .categories_text{
  font-family:var(--font-body); font-weight:700; font-size:11px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--c-ink-2); margin-right:2px;
}
.new-blog-page-type .blog-li .article-category span:not(:has(a)):not(.categories_text){ display:none; }
.new-blog-page-type .blog-li .article-category span a{
  display:inline-block; padding:5px 13px; border-radius:var(--r-pill);
  background:var(--c-tint); border:1px solid var(--c-line);
  font-family:var(--font-body); font-weight:600; font-size:12.5px; line-height:1.4;
  color:var(--c-primary-dark); text-transform:capitalize;
  transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.new-blog-page-type .blog-li .article-category span a:hover{
  background:var(--c-primary); border-color:var(--c-primary); color:var(--c-light);
}

/* title */
.new-blog-page-type .blog-li .article-title{ margin:0 0 12px; padding:0; border:0; }
.new-blog-page-type .blog-li .article-title a{
  font-family:var(--font-head); font-weight:800;
  font-size:clamp(21px,2.3vw,27px); line-height:1.3; letter-spacing:-.3px;
  color:var(--c-ink); text-wrap:balance;
  transition:color .3s var(--ease);
}
.new-blog-page-type .blog-li .article-title a:hover{ color:var(--c-primary); }

/* excerpt */
.new-blog-page-type .blog-li .article-body{ margin:0 0 20px; }
.new-blog-page-type .blog-li .article-body p{
  font-family:var(--font-body); font-size:16px; line-height:1.75; color:var(--c-ink-2); margin:0;
}

/* read more (arrow link) */
.new-blog-page-type .blog-li .blog-read-more{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-body); font-weight:700; font-size:14.5px; letter-spacing:.3px;
  color:var(--c-primary-dark); text-decoration:none;
  transition:gap .3s var(--ease), color .3s var(--ease);
}
.new-blog-page-type .blog-li .blog-read-more::after{
  content:"\f061"; font-family:"Font Awesome 5 Pro"; font-weight:900; font-size:13px;
  transition:transform .3s var(--ease);
}
.new-blog-page-type .blog-li:hover .blog-read-more,
.new-blog-page-type .blog-li .blog-read-more:hover{ color:var(--c-primary); }
.new-blog-page-type .blog-li:hover .blog-read-more::after,
.new-blog-page-type .blog-li .blog-read-more:hover::after{ transform:translateX(5px); }

/* ---- sidebar / category filter ---- */
.new-blog-page-type .articles-filter-container{
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-lg); padding:30px; box-shadow:var(--shadow-card);
}
.new-blog-page-type .blog-sidebar .articles-filter-container{ position:sticky; top:24px; }
.new-blog-page-type .articles-filter-container .filter-h2{
  margin:0 0 22px; padding:0 0 14px; border-bottom:1px solid var(--c-line);
  font-size:22px; position:relative;
}
.new-blog-page-type .articles-filter-container .filter-h2::after{
  content:""; position:absolute; left:0; bottom:-1px; width:46px; height:3px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent)); border-radius:3px;
}
.new-blog-page-type .ps-blog-category{
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px;
}
.new-blog-page-type .ps-blog-category li{ display:inline-block; margin:0; }
.new-blog-page-type .ps-blog-category li a{
  display:inline-block; padding:9px 16px !important; margin:0;
  border:1px solid var(--c-line); border-radius:var(--r-pill);
  background:var(--c-tint);
  font-family:var(--font-body); font-weight:600; font-size:13.5px !important; line-height:1.3;
  color:var(--c-ink); text-transform:capitalize; text-align:left;
  transition:transform .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.new-blog-page-type .ps-blog-category li a:hover{
  transform:translateY(-3px); background:var(--c-paper);
  border-color:var(--c-primary); color:var(--c-primary-dark);
}
.new-blog-page-type .ps-blog-category li.active a,
.new-blog-page-type .ps-blog-category li a.all-blogs.button{
  background:var(--c-primary); border-color:var(--c-primary); color:var(--c-light) !important;
}
.new-blog-page-type .ps-blog-category li.active a:hover,
.new-blog-page-type .ps-blog-category li a.all-blogs.button:hover{
  background:var(--c-primary-dark); border-color:var(--c-primary-dark);
}

/* sidebar (narrow column): tidy full-width vertical list instead of ragged chips */
.new-blog-page-type .blog-sidebar .ps-blog-category{ gap:9px; padding-top:16px; }
.new-blog-page-type .blog-sidebar .ps-blog-category li{ width:100%; }
.new-blog-page-type .blog-sidebar .ps-blog-category li a{
  display:flex; align-items:center; gap:11px; width:100%;
  padding:12px 18px !important; border-radius:var(--r-md);
  transition:padding .4s var(--ease), background-color .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.new-blog-page-type .blog-sidebar .ps-blog-category li a::before{
  content:"\f06c"; font-family:"Font Awesome 5 Pro"; font-weight:900; font-size:12px;
  color:var(--c-primary); flex:none; transition:transform .4s var(--ease), color .4s var(--ease);
}
.new-blog-page-type .blog-sidebar .ps-blog-category li a:hover{ transform:none; padding-left:26px !important; }
.new-blog-page-type .blog-sidebar .ps-blog-category li a:hover::before{ transform:translateX(3px); }
.new-blog-page-type .blog-sidebar .ps-blog-category li.active a::before,
.new-blog-page-type .blog-sidebar .ps-blog-category li a.all-blogs.button::before{ color:var(--c-light); }

/* mobile category block spacing */
.new-blog-page-type .articles-filter-container.hide-for-large{ margin-bottom:34px; }

/* ---- pagination ---- */
.new-blog-page-type .ps-pagination-bar{ margin-top:46px; }
.new-blog-page-type .ps-pagination-bar span{
  background:var(--c-paper); border:1px solid var(--c-line); border-radius:var(--r-sm);
  font-family:var(--font-body); font-weight:600; color:var(--c-ink);
  transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.new-blog-page-type .ps-pagination-bar span a{ color:var(--c-ink); }
.new-blog-page-type .ps-pagination-bar span:hover{ border-color:var(--c-primary); color:var(--c-primary-dark); }
.new-blog-page-type .ps-pagination-bar span:hover a{ color:var(--c-primary-dark); }
.new-blog-page-type .ps-pagination-bar span.current{
  background:var(--c-primary); border-color:var(--c-primary); color:var(--c-light);
}

/* ---- responsive ---- */
@media all and (max-width:1023px){
  .new-blog-page-type .blog-sidebar .articles-filter-container{ position:static; }
}
@media all and (max-width:640px){
  .new-blog-page-type .main-blog-widget{ padding:36px 0 18px; }
  .new-blog-page-type .blog-li .blog-article{ padding:24px; }
  .new-blog-page-type .blog-li .ps-article-img{ margin:-24px -24px 22px; }
  .new-blog-page-type .blog-li .ps-article-img img{ height:220px; }
  .new-blog-page-type .blog-search-container #search-input-blog{ height:54px; }
}

/* ============================================================
   LEAD-MAGNET FORM — premium km- skin (#lead-magnet-form)
   ============================================================ */
#lead-magnet-form{ font-family:var(--font-body); }
#lead-magnet-form .ww-form-container{ max-width:680px; margin:0 auto; }

/* premium gradient card (override theme width:50%) */
#lead-magnet-form form{
  width:100% !important; max-width:680px; margin:0 auto !important;
  position:relative; overflow:hidden;
  background:linear-gradient(165deg, var(--c-paper) 0%, var(--c-tint) 100%);
  border:1px solid var(--c-line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  padding:50px 48px 46px;
}
/* top accent bar */
#lead-magnet-form form::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:5px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
/* leaf watermark */
#lead-magnet-form form::after{
  content:"\f06c"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; right:-12px; bottom:-18px; font-size:140px;
  color:var(--c-primary); opacity:.06; pointer-events:none; line-height:1;
}

/* heading badge + centered intro */
#lead-magnet-form .section-main-heading{
  text-align:center; margin:0 0 14px; position:relative; z-index:1;
}
#lead-magnet-form .section-main-heading::before{
  content:"\f02d"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  display:block; width:64px; height:64px; line-height:64px; margin:0 auto 20px;
  border-radius:50%; font-size:25px; color:var(--c-light);
  background:linear-gradient(135deg, var(--c-primary), var(--c-deep));
  box-shadow:0 12px 26px rgba(10,82,32,.26);
}
#lead-magnet-form .section-description{
  text-align:center; margin:0 0 32px; font-size:15px; line-height:1.8;
  position:relative; z-index:1;
}

/* field wraps + labels */
#lead-magnet-form .first_name_wrap,
#lead-magnet-form .email_wrap{
  text-align:left; margin-bottom:18px; position:relative; z-index:1;
}
#lead-magnet-form label{
  display:block; font-family:var(--font-body); font-weight:700;
  font-size:13.5px; letter-spacing:.2px; color:var(--c-ink); margin:0 0 8px;
}
#lead-magnet-form label .required{ color:var(--c-primary); margin-left:3px; }

/* inputs (override theme height/box-shadow) */
#lead-magnet-form .ww-form-container input[type="text"],
#lead-magnet-form .ww-form-container input[type="email"]{
  width:100%; height:54px; margin:0; padding:0 18px;
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-md); box-shadow:none;
  font-family:var(--font-body); font-size:15.5px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
#lead-magnet-form .ww-form-container input[type="text"]:focus,
#lead-magnet-form .ww-form-container input[type="email"]:focus{
  outline:none; border-color:var(--c-primary);
  box-shadow:0 0 0 4px rgba(84,216,105,.18);
}
#lead-magnet-form .ww-form-container input::placeholder{ color:var(--c-ink-2); opacity:.65; }

/* error text */
#lead-magnet-form .error{
  display:block; margin:6px 0 0; text-align:left;
  font-size:12.5px; font-weight:600; color:var(--c-error);
}

/* invisible reCAPTCHA (v3) — collapse empty box, keep hidden token */
#lead-magnet-form .captcha_wrap{ margin:0; }
#lead-magnet-form .recaptcha-block.input{
  border:0; background:none; box-shadow:none;
  height:0; min-height:0; padding:0; margin:0; overflow:hidden;
}

/* submit — premium green pill (unified hover) */
#lead-magnet-form .submit_wrap{ text-align:center; margin-top:10px; position:relative; z-index:1; }
#lead-magnet-form input[type="submit"].button{
  display:inline-flex; align-items:center; justify-content:center;
  width:auto; min-width:240px; height:56px; padding:0 42px; margin:0;
  background:var(--btn-bg); color:var(--btn-text);
  border:0; border-radius:var(--r-pill);
  font-family:var(--font-body); font-weight:700; font-size:15px; letter-spacing:.3px;
  cursor:pointer; box-shadow:0 12px 28px rgba(10,82,32,.22);
  transition:transform .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
#lead-magnet-form input[type="submit"].button:hover{
  transform:translateY(-3px); background:var(--btn-bg-hover);
  box-shadow:var(--shadow-float);
}

@media all and (max-width:640px){
  #lead-magnet-form form{ padding:38px 24px 34px; }
  #lead-magnet-form .section-main-heading::before{ width:56px; height:56px; line-height:56px; font-size:22px; }
  #lead-magnet-form input[type="submit"].button{ width:100%; min-width:0; }
}

/* ============================================================
   MAGNIFIC POPUP CLOSE BUTTON — premium km- skin (.mfp-close)
   ============================================================ */
.mfp-close,
.mfp-close:visited{
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; line-height:1; padding:0; margin:0;
  top:10px; right:10px;
  font-family:var(--font-head); font-size:24px; font-weight:400;
  color:var(--c-light); text-decoration:none; opacity:1;
  background:rgba(10,82,32,.55);
  border:1px solid rgba(255,255,255,.35);
  border-radius:var(--r-pill);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  box-shadow:var(--shadow-2);
  transition:transform .35s var(--ease), background-color .35s var(--ease), border-color .35s var(--ease);
}
.mfp-close:hover,
.mfp-close:focus{
  color:var(--c-light); opacity:1; outline:none;
  background:var(--c-primary); border-color:var(--c-primary);
  transform:rotate(90deg) scale(1.06);
  box-shadow:var(--shadow-float);
}
.mfp-close:active{ top:11px; }

/* keep light glyph for in-content closes (theme sets dark) */
.mfp-close-btn-in .mfp-close{ color:var(--c-light); }

/* restore circle for image / iframe holders (theme forces width:100%) */
.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close{
  width:46px; right:8px; top:-58px; padding:0; text-align:center;
}

/* ============================================================
   BLOG ARTICLE — single post (.new-blog-page-type.article-page-type)
   (Recent-Posts .blog-li cards inherit the listing skin above)
   ============================================================ */

/* ---- article header: title + featured image + meta ---- */
.new-blog-page-type .blog-article-content{ max-width:100%; margin:0 auto; }
.new-blog-page-type .blog-article-content > .article-title{
  position:relative; overflow:hidden;
  display:block; width:fit-content; max-width:100%;
  margin:0 0 30px; padding:42px 46px; border:1px solid rgba(255,255,255,.14);
  color:var(--c-light);
  font-size:42px; line-height:1.14; letter-spacing:-.5px;
  background:linear-gradient(155deg, rgba(8,66,26,.96), rgba(5,46,18,.98));
  border-radius:var(--r-lg); box-shadow:var(--shadow-float);
  text-wrap:unset;
}
.new-blog-page-type .blog-article-content > .article-title::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:4px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.new-blog-page-type .blog-article-content > .article-title::after{
  content:""; position:absolute; top:20px; right:20px;
  width:14px; height:14px; border-radius:50%; background:var(--c-accent);
  box-shadow:0 0 0 6px rgba(84,216,105,.18);
}
.new-blog-page-type .blog-article-content > .grid-x{ margin-top:6px; }

/* featured image (the large-8 one, NOT recent-post thumbs) */
.new-blog-page-type .blog-article-content .ps-article-img{ margin:0; }
.new-blog-page-type .blog-article-content .ps-article-img img{
  display:block; width:100%; height:auto;
  border-radius:var(--r-lg); box-shadow:var(--shadow-card);
}

/* author / date / category meta block */
.new-blog-page-type .blog-author{ padding-left:6px; }
.new-blog-page-type .lab-ul{ list-style:none; margin:0; padding:0; }
.new-blog-page-type .lab-ul li{
  display:flex; align-items:center; margin:0 0 12px;
  font-family:var(--font-body); font-size:15px;
}
.new-blog-page-type .lab-ul li::before{
  font-family:"Font Awesome 5 Pro"; font-weight:900; font-size:13px;
  width:34px; height:34px; line-height:34px; text-align:center; margin-right:12px;
  border-radius:50%; color:var(--c-primary); background:var(--c-tint);
  flex:0 0 auto;
}
.new-blog-page-type .lab-ul li:nth-child(1)::before{ content:"\f007"; } /* user */
.new-blog-page-type .lab-ul li:nth-child(2)::before{ content:"\f073"; } /* calendar */
.new-blog-page-type .lab-ul .author_name{ font-weight:700; color:var(--c-ink); }
.new-blog-page-type .lab-ul .pubdate{ color:var(--c-ink-2); }
/* category chips inside meta */
.new-blog-page-type .lab-ul{ font-size:13px; color:var(--c-ink-2); }
.new-blog-page-type .lab-ul > span:not(:has(a)){ display:none; }
.new-blog-page-type .lab-ul > span a{
  display:inline-block; margin:8px 8px 0 0; padding:6px 13px;
  font-size:12.5px; font-weight:600; letter-spacing:.2px;
  color:var(--c-primary-dark); background:var(--c-tint);
  border:1px solid var(--c-line); border-radius:var(--r-pill);
  transition:background-color .3s var(--ease), color .3s var(--ease);
}
.new-blog-page-type .lab-ul > span a:hover{ background:var(--c-primary); color:var(--c-light); }

/* ---- article body: premium long-form typography ---- */
.new-blog-page-type .article-body{
  max-width:100%; margin:42px auto 0;
  font-family:var(--font-body); color:var(--c-ink-2);
}
.new-blog-page-type.article-page-type .article-body{ margin-top:30px; }
.new-blog-page-type .article-body p{
  font-size:17px; line-height:1.85; margin:0 0 22px; color:var(--c-ink-2);
}
.new-blog-page-type .article-body > p:first-of-type{
  font-size:19px; line-height:1.8; color:var(--c-ink);
}
.new-blog-page-type .article-body h2{
  position:relative; font-family:var(--font-head); font-weight:800;
  font-size:clamp(24px,3vw,30px); line-height:1.25; color:var(--c-ink);
  margin:50px 0 16px; padding-top:24px; text-wrap:balance;
}
.new-blog-page-type .article-body h2::before{
  content:""; position:absolute; left:0; top:0; width:46px; height:3px; border-radius:2px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.new-blog-page-type .article-body h3{
  font-family:var(--font-head); font-weight:700;
  font-size:clamp(19px,2.4vw,22px); line-height:1.35; color:var(--c-ink);
  margin:34px 0 14px;
}
.new-blog-page-type .article-body ul{
  list-style:none; margin:0 0 26px; padding:0;
}
.new-blog-page-type .article-body li{
  position:relative; padding-left:30px; margin:0 0 13px;
  font-size:16.5px; line-height:1.75; color:var(--c-ink-2);
}
.new-blog-page-type .article-body li::before{
  content:"\f06c"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; left:0; top:.18em; font-size:14px; color:var(--c-primary);
}
.new-blog-page-type .article-body strong{ color:var(--c-ink); font-weight:700; }
.new-blog-page-type .article-body a{
  color:var(--c-primary); font-weight:600; text-decoration:none;
  border-bottom:1px solid rgba(26,166,58,.32);
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.new-blog-page-type .article-body a:hover{
  color:var(--c-primary-dark); border-bottom-color:var(--c-primary-dark);
}

/* ---- Recent Posts sidebar ---- */
.new-blog-page-type .blog-sidebar-widget{ margin-top:10px; }
.new-blog-page-type .blog-sidebar-h2{
  position:relative; font-family:var(--font-head); font-weight:800;
  font-size:clamp(24px,3vw,30px); color:var(--c-ink);
  margin:0 0 30px; padding:0 0 14px; border:0;
}
.new-blog-page-type .blog-sidebar-h2::before{ display:none; }
.new-blog-page-type .blog-sidebar-h2::after{
  content:""; position:absolute; left:0; bottom:0; width:62px; height:3px; border-radius:2px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.new-blog-page-type .ps-blog-recent-posts{
  grid-template-columns:repeat(2,1fr); gap:30px; margin:0;
}

@media all and (max-width:1023px){
  .new-blog-page-type .blog-author{ padding-left:0; margin-top:24px; }
}
@media all and (max-width:640px){
  .new-blog-page-type .blog-article-content > .article-title{ padding:30px 24px; }
  .new-blog-page-type .article-body{ margin-top:32px; }
  .new-blog-page-type .article-body p{ font-size:16px; }
  .new-blog-page-type .article-body > p:first-of-type{ font-size:17.5px; }
  .new-blog-page-type .ps-blog-recent-posts{ grid-template-columns:1fr; }
}

/* ============================================================
   CONTACT FORM — premium km- skin (.ww-form-container-3)
   (overrides theme .form-template-3 grey-input styling)
   ============================================================ */
.ww-form-container-3{ font-family:var(--font-body); }

/* premium gradient card (override theme border/padding) */
.ww-form-container-3 form{
  position:relative; overflow:hidden;
  max-width:720px; margin:0 auto; padding:48px 46px;
  background:linear-gradient(165deg, var(--c-paper) 0%, var(--c-tint) 100%);
  border:1px solid var(--c-line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
}
.ww-form-container-3 form::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:5px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.ww-form-container-3 form::after{
  content:"\f06c"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; right:-12px; bottom:-18px; font-size:140px;
  color:var(--c-primary); opacity:.06; pointer-events:none; line-height:1;
}

/* fieldset → flex (first/last name share a row) */
.ww-form-container-3 fieldset{
  display:flex; flex-wrap:wrap; gap:0 20px;
  border:0; margin:0; padding:0; position:relative; z-index:1;
}
.ww-form-container-3 form fieldset > div{ width:100%; margin:0 0 18px; text-align:left; }
.ww-form-container-3 fieldset > div:empty{ display:none; margin:0; }
.ww-form-container-3 .first_name_wrap,
.ww-form-container-3 .last_name_wrap{ width:calc(50% - 10px); }

/* labels */
.ww-form-container-3 label{
  display:block; font-family:var(--font-body); font-weight:700;
  font-size:13.5px; letter-spacing:.2px; color:var(--c-ink); margin:0 0 8px;
}
.ww-form-container-3 label .required{ color:var(--c-primary); margin-left:3px; }

/* text + email inputs (override theme grey + radius + height) */
.ww-form-container-3 input.input[type="text"],
.ww-form-container-3 input.input[type="email"],
.ww-form-container-3 #mob_phone_phone_number_tel{
  width:100%; min-height:0; height:54px; margin:0;
  background:var(--c-paper); border:1px solid var(--c-line);
  border-radius:var(--r-md); box-shadow:none;
  font-family:var(--font-body); font-size:15.5px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ww-form-container-3 input.input[type="text"]{ padding:0 18px; }
.ww-form-container-3 input.input[type="email"]{ padding:0 18px; }

/* intl-tel wrapper full width (flag padding left intact) */
.ww-form-container-3 .iti{ width:100%; }

/* textarea */
.ww-form-container-3 textarea.input{
  width:100%; min-height:130px; height:auto; margin:0; padding:14px 18px; resize:vertical;
  background:var(--c-paper); border:1px solid var(--c-line); border-radius:var(--r-md);
  box-shadow:none; line-height:1.6;
  font-family:var(--font-body); font-size:15.5px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}

/* focus ring */
.ww-form-container-3 input.input[type="text"]:focus,
.ww-form-container-3 input.input[type="email"]:focus,
.ww-form-container-3 #mob_phone_phone_number_tel:focus,
.ww-form-container-3 textarea.input:focus{
  outline:none; border-color:var(--c-primary);
  box-shadow:0 0 0 4px rgba(84,216,105,.18);
}
.ww-form-container-3 input::placeholder,
.ww-form-container-3 textarea::placeholder{ color:var(--c-ink-2); opacity:.65; }

/* error text */
.ww-form-container-3 .error{
  display:block; margin:6px 0 0; text-align:left;
  font-size:12.5px; font-weight:600; color:var(--c-error);
}

/* form-container (captcha + submit area) */
.ww-form-container-3 div.form-container{ width:100%; max-width:100%; margin:0; padding:0; }

/* invisible reCAPTCHA (v3) — collapse empty box, keep token */
.ww-form-container-3 .captcha_wrap{ margin:0; }
.ww-form-container-3 .recaptcha-block.input{
  border:0; background:none; box-shadow:none;
  height:0; min-height:0; padding:0; margin:0; overflow:hidden;
}

/* submit — premium green pill (unified hover) */
.ww-form-container-3 .submit_wrap{ text-align:center; margin-top:10px; }
.ww-form-container-3 input[type="submit"].button{
  display:inline-flex; align-items:center; justify-content:center;
  width:auto; min-width:220px; height:56px; padding:0 42px; margin:0;
  background:var(--btn-bg); color:var(--btn-text);
  border:0; border-radius:var(--r-pill);
  font-family:var(--font-body); font-weight:700; font-size:15px; letter-spacing:.3px;
  cursor:pointer; box-shadow:0 12px 28px rgba(10,82,32,.22);
  transition:transform .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ww-form-container-3 input[type="submit"].button:hover{
  transform:translateY(-3px); background:var(--btn-bg-hover);
  box-shadow:var(--shadow-float);
}

@media all and (max-width:640px){
  .ww-form-container-3 form{ padding:36px 22px; }
  .ww-form-container-3 .first_name_wrap,
  .ww-form-container-3 .last_name_wrap{ width:100%; }
  .ww-form-container-3 input[type="submit"].button{ width:100%; min-width:0; }
}

/* ============================================================
   LOGIN PAGE — premium km- skin (.new-website-login-form)
   ============================================================ */
.is-wrapper .ps-login-page{ background:var(--c-tint); }

/* premium card */
.ps-login-page .new-website-login-form .ps-login-form-wrap{
  position:relative; overflow:hidden; text-align:left;
  max-width:520px; margin:0 auto; padding:46px 44px;
  background:linear-gradient(165deg, var(--c-paper) 0%, var(--c-tint) 100%);
  border:1px solid var(--c-line); border-radius:var(--r-lg); box-shadow:var(--shadow-card);
}
.ps-login-page .new-website-login-form .ps-login-form-wrap::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:5px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.ps-login-page .new-website-login-form .ps-login-form-wrap::after{
  content:"\f023"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; right:-10px; bottom:-22px; font-size:130px;
  color:var(--c-primary); opacity:.05; pointer-events:none; line-height:1;
}

/* heading */
.ps-login-page .new-website-login-form h4{
  position:relative; z-index:1;
  font-family:var(--font-head); font-weight:800; font-size:26px; line-height:1.2;
  color:var(--c-ink); margin:0 0 22px;
}
.ps-login-page .new-website-login-form h4::before{
  content:"\f084"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  margin-right:10px; font-size:18px; color:var(--c-primary);
}

/* form sits above watermark */
.ps-login-page .new-website-login-form form.settings,
.ps-login-page .new-website-login-form .signup-container,
.ps-login-page .new-website-login-form .ps-login-form-wrap > p{ position:relative; z-index:1; }

/* labels + required asterisk */
.ps-login-page .new-website-login-form form.settings label{
  display:block; font-family:var(--font-body); font-weight:700; font-size:13.5px;
  letter-spacing:.2px; color:var(--c-ink); margin:0 0 8px; line-height:1.3;
}
.ps-login-page .new-website-login-form form.settings label .error{
  color:var(--c-primary); font-size:1em; margin-left:2px;
}

/* inputs */
.ps-login-page .new-website-login-form form.settings input[type="email"],
.ps-login-page .new-website-login-form form.settings input[type="password"]{
  height:54px; width:100%; padding:0 18px; margin:0;
  background:var(--c-paper); border:1px solid var(--c-line); border-radius:var(--r-md);
  box-shadow:none; font-family:var(--font-body); font-size:15.5px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ps-login-page .new-website-login-form form.settings input[type="email"]:focus,
.ps-login-page .new-website-login-form form.settings input[type="password"]:focus{
  outline:none; border-color:var(--c-primary); box-shadow:0 0 0 4px rgba(84,216,105,.18);
}

/* show-password eye */
.ps-login-page .new-website-login-form .toggle-password{ color:var(--c-ink-2); }
.ps-login-page .new-website-login-form .toggle-password:hover{ color:var(--c-primary); }

/* helper + forgot text + links */
.ps-login-page .new-website-login-form .ps-login-form-wrap p{
  font-family:var(--font-body); font-size:13px; color:var(--c-ink-2); margin:9px 0 0;
}
.ps-login-page .new-website-login-form .ps-login-form-wrap a{
  color:var(--c-primary); font-weight:700; text-decoration:none;
  border-bottom:1px solid transparent; transition:border-color .25s var(--ease);
}
.ps-login-page .new-website-login-form .ps-login-form-wrap a:hover{ border-bottom-color:var(--c-primary); }

/* spacing for password block + forgot row */
.ps-login-page .new-website-login-form form.settings > div{ margin-bottom:18px; }

/* PRIMARY — Login button */
.ps-login-page .new-website-login-form form.settings .button,
.ps-login-page .new-website-login-form .ps-login-button{
  display:inline-flex; align-items:center; justify-content:center;
  height:56px; background:var(--btn-bg); color:var(--btn-text); border:0;
  border-radius:var(--r-pill)!important;
  font-family:var(--font-body); font-weight:700; font-size:15.5px; letter-spacing:.3px;
  cursor:pointer; box-shadow:0 12px 28px rgba(10,82,32,.22);
  transition:transform .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ps-login-page .new-website-login-form form.settings .button:hover,
.ps-login-page .new-website-login-form .ps-login-button:hover{
  transform:translateY(-3px); background:var(--btn-bg-hover); box-shadow:var(--shadow-float);
}

/* separator */
.ps-login-page .new-website-login-form .ps-separator{
  border-top:1px solid var(--c-line); margin:28px 0 20px;
}

/* SECONDARY — Register button (outline → fill) */
.ps-login-page .new-website-login-form .signup-container .button,
.ps-login-page .new-website-login-form .ps-register-button{
  background:transparent; color:var(--c-primary);
  border:2px solid var(--c-primary); border-radius:var(--r-pill)!important;
  height:54px; width:auto!important; min-width:200px; padding:0 36px;
  font-weight:700; font-size:14.5px; letter-spacing:.4px; box-shadow:none;
}
.ps-login-page .new-website-login-form .signup-container .button:hover,
.ps-login-page .new-website-login-form .ps-register-button:hover{
  background:var(--c-primary); color:var(--btn-text);
  transform:translateY(-3px); box-shadow:var(--shadow-float);
}

@media all and (max-width:640px){
  .ps-login-page .new-website-login-form .ps-login-form-wrap{ padding:34px 22px; }
  .ps-login-page .new-website-login-form .signup-container .button,
  .ps-login-page .new-website-login-form .ps-register-button{ width:100%!important; min-width:0; }
}

/* ============================================================
   NEWSLETTER FORM — premium km- skin (.ww-newsletter-registration)
   ============================================================ */
.is-wrapper .newsletter-form-page-type{ background:var(--c-tint); padding:var(--space-section) 0; }

/* premium card */
.ww-newsletter-registration form{
  position:relative; overflow:hidden;
  max-width:620px; margin:0 auto; padding:48px 46px;
  background:linear-gradient(165deg, var(--c-paper) 0%, var(--c-tint) 100%);
  border:1px solid var(--c-line); border-radius:var(--r-lg); box-shadow:var(--shadow-card);
}
.ww-newsletter-registration form::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:5px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-accent));
}
.ww-newsletter-registration form::after{
  content:"\f0e0"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; right:-14px; bottom:-20px; font-size:130px;
  color:var(--c-primary); opacity:.05; pointer-events:none; line-height:1;
}

/* intro text (Webware <document> wrapper) */
.ww-newsletter-registration form document{ display:block; position:relative; z-index:1; }
.ww-newsletter-registration form document p{
  font-family:var(--font-body); font-size:15px; line-height:1.6;
  color:var(--c-ink-2); margin:0 0 22px;
}

/* legend */
.ww-newsletter-registration legend{
  flex:0 0 100%; width:100%; padding:0; margin:0 0 16px; position:relative; z-index:1;
  font-family:var(--font-head); font-weight:800; font-size:20px; color:var(--c-ink);
}
.ww-newsletter-registration legend::before{
  content:"\f007"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  margin-right:9px; font-size:15px; color:var(--c-primary);
}

/* fieldset → flex (first/last share a row) */
.ww-newsletter-registration form fieldset,
.ww-newsletter-registration form fieldset.fieldset{
  display:flex; flex-wrap:wrap; gap:0 20px;
  border:0 !important; margin:0 0 4px !important; padding:0 !important;
  position:relative; z-index:1;
}
.ww-newsletter-registration fieldset > div{ width:100% !important; text-align:left; }
/* hide Webware whitespace-only filler divs (no label/input inside) */
.ww-newsletter-registration fieldset > div:not(:has(label)):not(:has(input)){ display:none; margin:0; }
.ww-newsletter-registration fieldset > div:empty{ display:none; margin:0; }
.ww-newsletter-registration .first_name_wrap,
.ww-newsletter-registration .last_name_wrap{ width:100%; }

/* labels + required */
.ww-newsletter-registration label{
  display:block; font-family:var(--font-body); font-weight:700; font-size:13.5px;
  letter-spacing:.2px; color:var(--c-ink); margin:0 0 8px; line-height:1.3;
}
.ww-newsletter-registration .required{ color:var(--c-primary); margin-left:3px; }

/* text + email inputs (override Foundation defaults) */
.ww-newsletter-registration input.input[type="text"],
.ww-newsletter-registration input.input[type="email"]{
  height:54px; width:100%; padding:0 18px; margin:0;
  background:var(--c-paper); border:1px solid var(--c-line); border-radius:var(--r-md);
  box-shadow:none; font-family:var(--font-body); font-size:15.5px; color:var(--c-ink);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ww-newsletter-registration input.input[type="text"]:focus,
.ww-newsletter-registration input.input[type="email"]:focus{
  outline:none; border-color:var(--c-primary); box-shadow:0 0 0 4px rgba(84,216,105,.18);
}
.ww-newsletter-registration input::placeholder{ color:var(--c-ink-2); opacity:.65; }

/* form-container */
.ww-newsletter-registration .form-container{ width:100%; margin:0; padding:0; }

/* custom green checkbox — opt-in */
.ww-newsletter-registration .checkbox_wrap{ width:100%; margin:4px 0 10px; }
.ww-newsletter-registration .checkbox_wrap > p:empty{ display:none; margin:0; }
.ww-newsletter-registration .checkbox_wrap .float-left{ float:none; }
.ww-newsletter-registration .checkbox_wrap label{
  display:flex; align-items:center; gap:11px; cursor:pointer; margin:0 0 20px !important;
  font-family:var(--font-body); font-weight:600; font-size:14px; color:var(--c-ink-2);
}
.ww-newsletter-registration .checkbox_wrap input[type="checkbox"]{
  -webkit-appearance:none; appearance:none;
  width:22px; height:22px; flex:0 0 22px; margin:0; position:relative; cursor:pointer;
  background:var(--c-paper); border:2px solid var(--c-line); border-radius:6px;
  transition:border-color .25s var(--ease), background-color .25s var(--ease);
}
.ww-newsletter-registration .checkbox_wrap input[type="checkbox"]:hover{ border-color:var(--c-primary); }
.ww-newsletter-registration .checkbox_wrap input[type="checkbox"]:checked{
  background:var(--c-primary); border-color:var(--c-primary);
}
.ww-newsletter-registration .checkbox_wrap input[type="checkbox"]:checked::after{
  content:"\f00c"; font-family:"Font Awesome 5 Pro"; font-weight:900;
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:12px; color:#fff;
}
.ww-newsletter-registration .checkbox_wrap input[type="checkbox"]:focus-visible{
  outline:none; box-shadow:0 0 0 4px rgba(84,216,105,.18);
}

/* error text */
.ww-newsletter-registration .error{
  display:block; margin:6px 0 0; text-align:left;
  font-size:12.5px; font-weight:600; color:var(--c-error);
}

/* invisible reCAPTCHA collapse */
.ww-newsletter-registration .captcha_wrap{ width:100%; margin:0; }
.ww-newsletter-registration .recaptcha-block.input{
  border:0; background:none; box-shadow:none;
  height:0; min-height:0; padding:0; margin:0; overflow:hidden;
}

/* submit — green pill */
.ww-newsletter-registration .submit_wrap{ width:100%; text-align:center; margin-top:31px; }
.ww-newsletter-registration .submit_wrap > label{ display:none; }
.ww-newsletter-registration input[type="submit"].button{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; min-width:0; max-width:200px; height:56px; padding:0 42px; margin:0;
  background:var(--btn-bg); color:var(--btn-text); border:0; border-radius:var(--r-pill);
  font-family:var(--font-body); font-weight:700; font-size:15px; letter-spacing:.3px;
  cursor:pointer; box-shadow:0 12px 28px rgba(10,82,32,.22);
  transition:transform .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ww-newsletter-registration input[type="submit"].button:hover{
  transform:translateY(-3px); background:var(--btn-bg-hover); box-shadow:var(--shadow-float);
}

@media all and (max-width:640px){
  .ww-newsletter-registration form{ padding:36px 22px; }
  .ww-newsletter-registration .first_name_wrap,
  .ww-newsletter-registration .last_name_wrap{ width:100%; }
  .ww-newsletter-registration input[type="submit"].button{ width:100%; min-width:0; }
}

/* ============================================================
   HEADER — mobile logo sizing (.new-header-5) — below 1023.5px
   ============================================================ */
@media all and (max-width:1023.5px){
  .new-header-5 .logo-container img{ max-height:44px; margin:0 auto; }
}





.dropdown.menu > li.is-dropdown-submenu-parent > a::after{
      margin-top: -11px !important;  
}

@media (min-width:375px) and (max-width:800px){
.bnl-58 .bn-content{
    border-radius:0px;
}

}

@media (min-width:375px) and (max-width:500px){

#lead-magnet-form .section-main-heading{  
   font-size: 26px !important; 
}
}