/* site-base.css */
/* Jopestkil integrated base — typography and safe cross-section defaults. */
:root {
  --site-font: "Akt", "Aptos", "Segoe UI", Arial, Helvetica, sans-serif;
  --site-shell: 1330px;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  background: #fff;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background: #fff;
  color: #17221e;
  font-family: var(--site-font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; }
a { text-underline-offset: 3px; }

/* Keep the supplied font family consistent through all integrated sections. */
.site-header,
.jp-pest-strip,
.jop-about,
.jr-section,
.coverage-faq,
.jpf-cta,
.jpf-footer { font-family: var(--site-font); }

/* Google lettering remains a logo treatment, not body typography. */
.jr-google-wordmark { font-family: Arial, Helvetica, sans-serif; }

/* Integration safety: prevent long content from creating horizontal overflow. */
.site-header *,
.jp-pest-strip *,
.jop-about *,
.jr-section *,
.coverage-faq *,
.jpf-cta *,
.jpf-footer * { min-width: 0; }

@media (max-width: 560px) {
  body { min-width: 0; }
}

/* Canonical brand palette for new/integration layers. Existing source sections remain intact. */
:root {
  --brand-green-deep: #003f28;
  --brand-green: #005234;
  --brand-green-mid: #0b6a3c;
  --brand-lime: #69c71f;
  --brand-lime-soft: #9adf43;
  --brand-text: #17221e;
  --brand-muted: #66736c;
  --brand-line: #e7eee9;
}

.site-header, .jp-pest-strip, .jop-about, .jps-services-wrap, .jr-section, .coverage-faq, .jpf-cta, .jpf-footer { font-family: var(--site-font); }


/* header.css */
:root {
  --green-950: #003f28;
  --green-900: #005234;
  --green-850: #075c39;
  --green-700: #15923a;
  --lime-500: #69c71f;
  --lime-600: #48b311;
  --text: #18211d;
  --muted: #66736c;
  --line: #e7eee9;
  --white: #ffffff;
  --shell: 1340px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: #fff;
  font-family: var(--site-font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }

.header-shell {
  width: min(calc(100% - 48px), var(--shell));
  margin-inline: auto;
}

.site-header {
  width: 100%;
  position: relative;
  z-index: 1000;
  background: #fff;
}

/* Top green strip: 42px in the reference */
.top-strip {
  min-height: 42px;
  background: linear-gradient(90deg, #004a2f 0%, #005d38 52%, #005131 100%);
  color: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.top-strip__inner {
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.top-strip__message,
.top-strip__contacts {
  margin: 0;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.top-strip__message {
  gap: 11px;
  font-size: 12.8px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.01em;
}

.top-strip__contacts {
  gap: 12px;
  font-size: 12.6px;
  line-height: 1;
  font-weight: 500;
}

.top-strip__divider {
  width: 1px;
  height: 14px;
  background: rgba(255,255,255,.45);
  flex: 0 0 1px;
}

.top-strip__divider--contact { height: 17px; opacity: .55; }

.top-contact {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.92);
  transition: opacity .18s ease;
}
.top-contact:hover { opacity: .78; }
.top-contact svg {
  width: 16px;
  height: 16px;
  fill: #8ed339;
  flex: 0 0 16px;
}

/* Main white navigation: 82px in the reference */
.main-nav-wrap {
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid #edf1ee;
  box-shadow: 0 3px 12px rgba(8, 45, 28, .04);
}

.main-nav {
  height: 100px;
  display: grid;
  grid-template-columns: 190px 1fr 224px;
  align-items: center;
  column-gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  line-height: 0;
}
.brand img {
  display: block;
  width: 160px;
  height: auto;
  max-height: 88px;
}

.desktop-nav {
  height: 100%;
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: clamp(23px, 2.35vw, 38px);
}

.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 100%;
  color: #18231f;
  font-size: 13.2px;
  font-weight: 500;
  letter-spacing: -.02em;
  transition: color .18s ease;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 0;
  height: 3px;
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  background: #78ce34;
  transition: width .18s ease;
}

.nav-link:hover,
.nav-link.is-active { color: #15963b; }
.nav-link:hover::after,
.nav-link.is-active::after { width: 46px; }

.main-nav__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.quote-btn {
  width: 224px;
  height: 54px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
  background: linear-gradient(135deg, #7ad21f 0%, #4ebc13 48%, #2daa0d 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 6px 15px rgba(62, 170, 15, .19);
  border: 1px solid rgba(78, 170, 18, .35);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.quote-btn:hover {
  transform: translateY(-1px);
  filter: saturate(1.04);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), 0 8px 20px rgba(62, 170, 15, .24);
}
.quote-btn svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
}

.menu-toggle {
  display: none;
  width: 45px;
  height: 45px;
  padding: 0;
  border: 1px solid #dde7df;
  border-radius: 12px;
  background: #fff;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}
.menu-toggle span {
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: #0c5c38;
  transition: transform .2s ease, opacity .2s ease;
}
.menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
  display: none;
  border-top: 1px solid #edf2ee;
  background: rgba(255,255,255,.99);
}
.mobile-menu__inner { padding: 10px 0 20px; }
.mobile-link {
  display: block;
  padding: 12px 4px;
  border-bottom: 1px solid #eff3f0;
  color: #203129;
  font-size: 14px;
  font-weight: 500;
}
.mobile-link.is-active { color: #15963b; }
.mobile-quote {
  margin-top: 16px;
  min-height: 48px;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  background: linear-gradient(135deg, #78cf1f, #32aa0d);
}

.demo-content { min-height: 70vh; background: #fff; }

@media (max-width: 1200px) {
  .header-shell { width: min(calc(100% - 36px), var(--shell)); }
  .main-nav { grid-template-columns: 175px 1fr 190px; column-gap: 16px; }
  .brand img { width: 145px; }
  .desktop-nav { gap: 20px; }
  .nav-link { font-size: 12.5px; }
  .quote-btn { width: 190px; font-size: 13px; }
  .top-strip__message { display: none; }
  .top-strip__inner { justify-content: flex-end; }
}

@media (max-width: 980px) {
  .top-strip__contacts { width: 100%; justify-content: space-between; gap: 9px; }
  .desktop-nav { display: none; }
  .main-nav { grid-template-columns: 1fr auto; height: 82px; }
  .main-nav__actions { grid-column: 2; }
  .brand img { width: 132px; }
  .quote-btn { width: 176px; height: 49px; border-radius: 14px; }
  .menu-toggle { display: inline-flex; }
  .mobile-menu.is-open { display: block; }
}

@media (max-width: 720px) {
  .header-shell { width: min(calc(100% - 28px), var(--shell)); }
  .top-strip { min-height: 38px; }
  .top-strip__inner { height: 38px; }
  .top-strip__contacts { justify-content: center; }
  .top-contact--hours,
  .top-strip__divider--contact:last-of-type { display: none; }
  .top-contact { font-size: 11.3px; }
  .top-contact svg { width: 14px; height: 14px; flex-basis: 14px; }
  .main-nav { height: 76px; }
  .brand img { width: 118px; }
  .quote-btn { display: none; }
}

@media (max-width: 480px) {
  .header-shell { width: calc(100% - 24px); }
  .top-strip__contacts { justify-content: space-between; }
  .top-contact { gap: 5px; font-size: 10.4px; }
  .top-strip__divider--contact { height: 14px; }
  .main-nav { height: 72px; }
  .brand img { width: 108px; }
  .menu-toggle { width: 43px; height: 43px; border-radius: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; }
}


/* 2026 update — clearer typography sizing */
.top-strip__message{font-size:14.2px;font-weight:500}
.top-strip__contacts{font-size:13.4px;font-weight:600}
.nav-link{font-size:14.4px;font-weight:600}
.quote-btn{font-size:15px;font-weight:700}
@media (max-width:1200px){.top-strip__contacts{font-size:13px}.nav-link{font-size:13.5px}.quote-btn{font-size:14px}}
@media (max-width:980px){.mobile-link{font-size:15px;font-weight:600}.mobile-quote{font-size:15px;font-weight:700}}
@media (max-width:560px){.top-strip{min-height:48px}.top-strip__inner{height:auto;min-height:48px;padding:8px 0}.top-strip__contacts{font-size:12.5px;gap:8px;flex-wrap:wrap;justify-content:center}.top-contact{min-height:24px}}

/* V10 mobile top strip: phone contacts only, one clean row. */
@media (max-width:720px){
  .top-strip{min-height:42px;}
  .top-strip__inner{height:42px;min-height:42px;padding:0;}
  .top-strip__contacts{justify-content:center;flex-wrap:nowrap;gap:0;width:100%;}
  .top-strip__contacts > a[href^="mailto:"],
  .top-contact--hours,
  .top-strip__divider--contact{display:none!important;}
  .top-strip__contacts .top-contact[href^="tel:"]{
    display:inline-flex!important;
    min-height:42px;
    gap:8px;
    font-size:13.2px;
    font-weight:800;
    white-space:nowrap;
  }
  .top-strip__contacts .top-contact[href^="tel:"] svg{width:16px;height:16px;flex-basis:16px;}
}
@media (max-width:390px){
  .top-strip__contacts .top-contact[href^="tel:"]{font-size:12.1px;gap:6px;}
}


/* footer-cta.css */
/* Jopestkil CTA + Footer — isolated drop-in styles */
:root{--jpf-bg:#00241d;--jpf-bg2:#003226;--jpf-line:#13503f;--jpf-green:#9ce232;--jpf-text:#f8faf9;--jpf-muted:#c0cfca}
.jpf-cta,.jpf-footer,.jpf-cta *,.jpf-footer *{box-sizing:border-box}
.jpf-cta a,.jpf-footer a{text-decoration:none}

/* CTA: NO raster/background images. Only CSS gradients + inline SVG icons. */
.jpf-cta{width:100%;overflow:hidden;color:#fff;border-top:4px solid rgba(184,225,146,.45);border-bottom:2px solid rgba(103,204,84,.55);font-family:var(--site-font);background:radial-gradient(560px 170px at 84% 48%,rgba(42,147,67,.38),transparent 70%),radial-gradient(460px 155px at 58% 50%,rgba(11,110,61,.35),transparent 72%),linear-gradient(90deg,#003427 0%,#003f2b 42%,#075d34 100%)}
.jpf-cta__inner{width:calc(100% - 72px);max-width:1330px;height:156px;margin:0 auto;padding-left:160px;display:grid;grid-template-columns:minmax(0,1fr) 220px 232px 156px;align-items:center;gap:20px}
.jpf-cta__copy{min-width:0}
.jpf-cta__copy h2{margin:0 0 8px;font:800 34px/1.05 Georgia,"Times New Roman",serif;letter-spacing:-.65px;text-shadow:0 2px 2px rgba(0,0,0,.18);white-space:nowrap}
.jpf-cta__copy p{margin:0;color:#c8d5d1;font-size:14px;line-height:1.35;letter-spacing:-.15px;white-space:nowrap}
.jpf-btn{height:72px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:0 3px 9px rgba(0,0,0,.16)}
.jpf-btn--quote{gap:14px;color:#163116;background:linear-gradient(180deg,#abe94b,#88da2d);border:1px solid rgba(218,255,162,.55);font-size:16px}
.jpf-btn--quote svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.jpf-btn--call{justify-content:flex-start;gap:15px;padding:0 22px;color:#1e2926;background:#fff;border:1px solid rgba(224,232,228,.9)}
.jpf-btn__phone{width:34px;height:34px;flex:0 0 34px;fill:#118d43}
.jpf-call-text{display:flex;min-width:0;flex-direction:column;line-height:1.05}.jpf-call-text strong{font-size:16px}.jpf-call-text small{margin-top:6px;color:#61726d;font-size:12.5px;font-weight:700;white-space:nowrap}
.jpf-cta__tagline{position:relative;transform:rotate(-4deg);color:#eef6ef;font-family:var(--site-font);font-size:16px;line-height:1.43;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.16)}
.jpf-cta__tagline span{display:block;white-space:nowrap}.jpf-cta__tagleaf{position:absolute;right:8px;bottom:-26px;width:46px;height:28px;fill:none;stroke:#b2dd34;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}

.jpf-footer{width:100%;overflow:hidden;color:var(--jpf-text);font-family:var(--site-font);background:radial-gradient(600px 240px at 47% 108%,rgba(7,100,67,.58),transparent 68%),radial-gradient(500px 220px at 88% 72%,rgba(0,70,46,.35),transparent 70%),linear-gradient(100deg,#001f19 0%,#00271e 48%,#001f1a 100%)}
.jpf-footer__main{height:334px;padding:28px 0 22px}
.jpf-footer__grid{width:calc(100% - 72px);max-width:1330px;height:100%;margin:0 auto;display:grid;grid-template-columns:320px 160px 228px 170px minmax(0,1fr);column-gap:38px;align-items:start}
.jpf-footer__brand{min-width:0}.jpf-footer__logo{display:block;width:224px;height:65px;object-fit:cover;object-position:center;margin:-2px 0 8px -5px}.jpf-footer__brand p{margin:0;color:#b9c7c3;font-size:14px;line-height:1.55;letter-spacing:-.1px}.jpf-social{display:flex;gap:18px;margin-top:14px}.jpf-social__item{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px rgba(0,0,0,.21),0 2px 4px rgba(0,0,0,.16)}.jpf-social__item svg{width:21px;height:21px;fill:#fff}.jpf-social__item--facebook{background:#1976d2}.jpf-social__item--instagram{background:radial-gradient(circle at 70% 72%,#ffd04b 0 15%,#f44336 28%,#c22b85 56%,#6a44c7 100%)}.jpf-social__item--instagram svg{fill:none;stroke:#fff;stroke-width:2}.jpf-social__item--linkedin{background:#0a78b6}.jpf-social__item--youtube{background:#f10f14}
.jpf-footer__col{min-width:0;min-height:270px;padding-right:26px;border-right:2px solid rgba(21,92,67,.40)}.jpf-footer h3{margin:3px 0 15px;color:#fff;font-size:16px;line-height:1.2;font-weight:800;letter-spacing:-.12px}.jpf-footer__col a{display:block;width:max-content;max-width:100%;margin:0 0 10px;color:#c4cfcc;font-size:14px;line-height:1.35;white-space:normal}.jpf-footer__col a:hover,.jpf-contact-row:hover{color:#a9e33c}
.jpf-footer__contact{min-width:0}.jpf-footer__contact h3{margin-bottom:16px}.jpf-contact-row{display:flex;align-items:center;gap:16px;min-width:0;min-height:34px;margin-bottom:7px;color:#c7d0ce;font-size:14px;line-height:1.25}.jpf-contact-row>span:last-child{min-width:0;overflow-wrap:anywhere}.jpf-contact-icon{width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:grid;place-items:center;color:#16411f;background:#9cda34}.jpf-contact-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.jpf-contact-row:first-of-type .jpf-contact-icon svg{fill:currentColor;stroke:none}.jpf-kenya-row{display:flex;align-items:center;gap:11px;min-width:0;margin-top:16px;color:#d4dad8;font-size:14px;font-weight:700}.jpf-kenya-row img{display:block;width:54px;height:44px;object-fit:cover}.jpf-kenya-row span{min-width:0;white-space:nowrap}
.jpf-footer__bottom{height:101px;border-top:2px solid rgba(38,113,82,.43)}.jpf-footer__bottom-inner{width:calc(100% - 72px);max-width:1330px;height:99px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.jpf-footer__bottom p{margin:0;color:#c1ceca;font-size:13.5px;line-height:1.4}.jpf-footer__motto{display:flex;align-items:center;gap:20px;font-size:15px!important;white-space:nowrap}.jpf-footer__motto svg{width:36px;height:36px;fill:#a8df36;stroke:#a8df36;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Desktop safety: progressively compress before anything can overlap or create horizontal scroll. */
@media (max-width:1450px){.jpf-cta__inner{width:calc(100% - 52px);padding-left:110px;grid-template-columns:minmax(0,1fr) 205px 220px 140px;gap:14px}.jpf-cta__copy h2{font-size:32px}.jpf-cta__copy p{font-size:12.8px}.jpf-btn{height:66px}.jpf-btn--quote{font-size:15px}.jpf-btn--call{padding:0 16px;gap:11px}.jpf-btn__phone{width:31px;height:31px;flex-basis:31px}.jpf-call-text strong{font-size:15px}.jpf-call-text small{font-size:11.5px}.jpf-cta__tagline{font-size:14px}.jpf-footer__grid{width:calc(100% - 52px);grid-template-columns:270px 140px 205px 145px minmax(0,1fr);column-gap:24px}.jpf-footer__brand p,.jpf-footer__col a,.jpf-contact-row{font-size:13px}.jpf-footer__logo{width:210px}.jpf-footer__bottom-inner{width:calc(100% - 52px)}}
@media (max-width:1120px){.jpf-cta{padding:26px 0}.jpf-cta__inner{width:calc(100% - 40px);height:auto;min-height:0;padding-left:0;grid-template-columns:1fr 1fr;gap:14px}.jpf-cta__copy{grid-column:1/-1;text-align:center}.jpf-cta__copy h2,.jpf-cta__copy p{white-space:normal}.jpf-cta__copy h2{font-size:32px}.jpf-btn--quote{justify-self:end;width:min(250px,100%)}.jpf-btn--call{justify-self:start;width:min(260px,100%)}.jpf-cta__tagline{display:none}.jpf-footer__main{height:auto;padding:34px 0 30px}.jpf-footer__grid{width:calc(100% - 40px);height:auto;grid-template-columns:1.25fr 1fr 1fr;gap:34px 28px}.jpf-footer__brand{grid-column:1/-1}.jpf-footer__col{min-height:0;padding-right:0;border-right:0}.jpf-footer__contact{grid-column:1/-1;max-width:420px}.jpf-footer__bottom{height:auto;min-height:102px}.jpf-footer__bottom-inner{width:calc(100% - 40px);height:auto;min-height:100px}}
@media (max-width:650px){.jpf-cta{padding:31px 0 34px}.jpf-cta__inner{width:calc(100% - 30px);grid-template-columns:1fr;gap:12px}.jpf-cta__copy h2{font-size:clamp(28px,8vw,35px)}.jpf-cta__copy p{font-size:13px}.jpf-btn--quote,.jpf-btn--call{width:100%;max-width:420px;justify-self:center}.jpf-btn--call{justify-content:center}.jpf-footer__grid{width:calc(100% - 32px);grid-template-columns:1fr 1fr;gap:30px 22px}.jpf-footer__brand,.jpf-footer__contact{grid-column:1/-1}.jpf-desktop-br{display:none}.jpf-footer__bottom-inner{width:calc(100% - 32px);padding:22px 0;flex-direction:column;align-items:flex-start;justify-content:center}.jpf-footer__motto{white-space:normal}}
@media (max-width:430px){.jpf-footer__grid{grid-template-columns:1fr}.jpf-footer__brand,.jpf-footer__contact{grid-column:1}.jpf-footer__col a{width:auto}.jpf-kenya-row span{white-space:normal}}

/* Integration safety: preserves the supplied design while preventing fixed-height clipping. */
.jpf-cta__inner{min-height:156px;height:auto}
.jpf-footer__main{min-height:334px;height:auto}
@media (max-width:1120px){.jpf-cta__inner{min-height:0}.jpf-footer__main{min-height:0}}


/* 2026 update */
.jpf-cta__copy h2{font-family:var(--site-font);font-size:38px;font-weight:800}
.jpf-cta__copy p{font-size:16px}
.jpf-footer__brand p{font-size:15px;line-height:1.7}
.jpf-footer h3{font-size:18px;font-weight:800}
.jpf-footer__col a,.jpf-contact-row{font-size:15px;line-height:1.5}
.jpf-footer__bottom p{font-size:14px}
.jpf-footer__motto a{color:#9ce232;font-weight:800;text-decoration:none}
.jpf-footer__motto a:hover{color:#c4f56f}
@media (max-width:650px){.jpf-footer h3{font-size:17px}.jpf-footer__col a,.jpf-contact-row,.jpf-footer__brand p{font-size:14px}.jpf-cta__copy h2{font-size:clamp(28px,8vw,34px)}.jpf-cta__copy p{font-size:14px}}


/* ==========================================================
   2026 FOOTER ALIGNMENT REFINEMENT
   Keeps the existing CTA/content intact; only normalizes the
   footer shell, column rhythm, dividers and responsive stacking.
   ========================================================== */
.jpf-footer{
  --jpf-footer-shell:1280px;
  overflow:hidden;
}

.jpf-footer__main{
  min-height:0;
  height:auto;
  padding:40px 0 34px;
}

.jpf-footer__grid{
  width:min(calc(100% - 80px),var(--jpf-footer-shell));
  max-width:none;
  height:auto;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(260px,1.38fr) minmax(145px,.78fr) minmax(205px,1.10fr) minmax(145px,.78fr) minmax(275px,1.40fr);
  column-gap:0;
  align-items:start;
}

.jpf-footer__brand{
  min-width:0;
  padding:0 34px 0 0;
}

.jpf-footer__logo{
  display:block;
  width:216px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  object-position:left center;
  margin:0 0 18px;
}

.jpf-footer__brand p{
  max-width:285px;
  margin:0;
  color:#bccbc6;
  font-size:15px;
  line-height:1.65;
  letter-spacing:0;
}

.jpf-social{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:18px;
}

.jpf-social__item{
  width:38px;
  height:38px;
  flex:0 0 38px;
}

.jpf-footer__col,
.jpf-footer__contact{
  min-width:0;
  min-height:0;
  padding:0 24px 0 26px;
  border-right:0;
  border-left:1px solid rgba(64,132,105,.28);
}

.jpf-footer h3{
  margin:1px 0 18px;
  color:#fff;
  font-size:17px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-.1px;
}

.jpf-footer__col a{
  display:block;
  width:100%;
  max-width:100%;
  margin:0 0 10px;
  color:#c4cfcc;
  font-size:15px;
  line-height:1.45;
  white-space:normal;
  transition:color .18s ease, transform .18s ease;
}

.jpf-footer__col a:hover{
  color:#a9e33c;
  transform:translateX(2px);
}

.jpf-footer__contact h3{
  margin-bottom:18px;
}

.jpf-contact-row{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-width:0;
  min-height:38px;
  margin:0 0 10px;
  color:#c7d0ce;
  font-size:15px;
  line-height:1.35;
}

.jpf-contact-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
}

.jpf-contact-icon svg{
  width:19px;
  height:19px;
}

.jpf-contact-row>span:last-child{
  min-width:0;
  overflow-wrap:anywhere;
}

.jpf-footer__bottom{
  height:auto;
  min-height:82px;
  border-top:1px solid rgba(55,124,96,.38);
}

.jpf-footer__bottom-inner{
  width:min(calc(100% - 80px),var(--jpf-footer-shell));
  max-width:none;
  min-height:82px;
  height:auto;
  margin:0 auto;
  padding:0 168px 0 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.jpf-footer__bottom p{
  margin:0;
  color:#c1ceca;
  font-size:14px;
  line-height:1.4;
}

.jpf-footer__motto{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  white-space:nowrap;
  text-align:right;
}

.jpf-footer__motto a{
  color:#9ce232;
  font-weight:800;
  text-decoration:none;
}

.jpf-footer__motto a:hover{
  color:#c4f56f;
}

/* Compact desktop: retain a five-column footer without squeezed headings. */
@media (max-width:1240px){
  .jpf-footer__grid,
  .jpf-footer__bottom-inner{
    width:min(calc(100% - 48px),var(--jpf-footer-shell));
  }
  .jpf-footer__grid{
    grid-template-columns:minmax(230px,1.25fr) minmax(130px,.72fr) minmax(185px,1fr) minmax(130px,.72fr) minmax(250px,1.28fr);
  }
  .jpf-footer__brand{padding-right:26px}
  .jpf-footer__col,.jpf-footer__contact{padding-left:22px;padding-right:18px}
  .jpf-footer__brand p,.jpf-footer__col a,.jpf-contact-row{font-size:14px}
  .jpf-footer__bottom-inner{padding-right:156px}
}

/* Tablet: brand gets a full row, then clean two-column navigation blocks. */
@media (max-width:1040px){
  .jpf-footer__main{padding:38px 0 32px}
  .jpf-footer__grid{
    width:min(calc(100% - 48px),760px);
    grid-template-columns:1fr 1fr;
    gap:34px 42px;
  }
  .jpf-footer__brand{
    grid-column:1/-1;
    padding:0 0 4px;
  }
  .jpf-footer__brand p{max-width:540px}
  .jpf-footer__col,.jpf-footer__contact{
    padding:0;
    border-left:0;
  }
  .jpf-footer__contact{grid-column:1/-1;max-width:520px}
  .jpf-footer__bottom-inner{
    width:min(calc(100% - 48px),760px);
    padding-right:150px;
  }
}

@media (max-width:720px){
  .jpf-footer__main{padding:34px 0 30px}
  .jpf-footer__grid{
    width:calc(100% - 36px);
    grid-template-columns:1fr 1fr;
    gap:30px 28px;
  }
  .jpf-footer__brand,
  .jpf-footer__contact{grid-column:1/-1}
  .jpf-footer__logo{width:205px;margin-bottom:16px}
  .jpf-footer__brand p{max-width:100%;font-size:14px;line-height:1.6}
  .jpf-footer h3{font-size:17px;margin-bottom:15px}
  .jpf-footer__col a,.jpf-contact-row{font-size:14px}
  .jpf-footer__bottom-inner{
    width:calc(100% - 36px);
    min-height:112px;
    padding:20px 78px 20px 0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:8px;
  }
  .jpf-footer__motto{white-space:normal;text-align:left;justify-content:flex-start}
}

@media (max-width:480px){
  .jpf-footer__grid{
    width:calc(100% - 32px);
    grid-template-columns:1fr;
    gap:28px;
  }
  .jpf-footer__brand,
  .jpf-footer__contact{grid-column:1}
  .jpf-footer__brand{padding-bottom:2px}
  .jpf-footer__logo{width:196px}
  .jpf-footer__col,
  .jpf-footer__contact{
    padding-bottom:22px;
    border-bottom:1px solid rgba(64,132,105,.24);
  }
  .jpf-footer__contact{padding-bottom:0;border-bottom:0}
  .jpf-footer__bottom-inner{
    width:calc(100% - 32px);
    padding-right:72px;
  }
}

/* V10 social link: X / Twitter */
.jpf-social__item--x{background:#111;}
.jpf-social__item--x svg{fill:#fff;}


/* floating-contact.css */

.jop-float-contact{position:fixed;right:18px;bottom:18px;z-index:1100;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.jop-float-btn{position:relative;display:inline-flex;align-items:center;gap:12px;min-width:62px;min-height:62px;padding:0 18px 0 14px;border-radius:999px;color:#fff;text-decoration:none;font-family:var(--site-font);font-weight:800;font-size:14px;letter-spacing:-.01em;box-shadow:0 16px 32px rgba(0,0,0,.16);transform:translateZ(0);transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;overflow:hidden}
.jop-float-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 20px 36px rgba(0,0,0,.2);filter:saturate(1.04)}
.jop-float-btn::before{content:"";position:absolute;inset:-25% auto auto -45%;width:60%;height:160%;background:linear-gradient(90deg, rgba(255,255,255,.22), rgba(255,255,255,0));transform:rotate(18deg);animation:jop-float-shine 4s linear infinite}
.jop-float-btn--call{background:linear-gradient(135deg,#0a5e40 0%, #087c52 54%, #1e9a57 100%)}
.jop-float-btn--wa{background:linear-gradient(135deg,#0d7b44 0%, #1fa855 52%, #25d366 100%)}
.jop-float-btn__icon{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);backdrop-filter:blur(2px)}
.jop-float-btn__icon svg{width:20px;height:20px;fill:currentColor}
.jop-float-btn__text{display:flex;flex-direction:column;line-height:1.05}
.jop-float-btn__text small{font-size:11px;font-weight:700;opacity:.9;letter-spacing:.02em}
.jop-float-badge{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;background:#9ce232;box-shadow:0 0 0 0 rgba(156,226,50,.7);animation:jop-float-pulse 2s infinite}
@keyframes jop-float-pulse{0%{box-shadow:0 0 0 0 rgba(156,226,50,.65)}70%{box-shadow:0 0 0 14px rgba(156,226,50,0)}100%{box-shadow:0 0 0 0 rgba(156,226,50,0)}}
@keyframes jop-float-shine{0%{transform:translateX(-20%) rotate(18deg)}100%{transform:translateX(250%) rotate(18deg)}}
@media (max-width:720px){.jop-float-contact{right:12px;bottom:12px;gap:10px}.jop-float-btn{min-height:58px;min-width:58px;padding:0 14px 0 12px}.jop-float-btn__text span{font-size:13px}.jop-float-btn__text small{font-size:10px}.jop-float-btn__icon{width:32px;height:32px;flex-basis:32px}} 
@media (max-width:480px){.jop-float-btn{padding:0 12px 0 10px}.jop-float-btn__text{display:none}.jop-float-btn{min-width:58px;justify-content:center;border-radius:22px}.jop-float-btn__icon{background:none}}
@media (prefers-reduced-motion:reduce){.jop-float-btn,.jop-float-btn:hover{transition:none;transform:none}.jop-float-btn::before,.jop-float-badge{animation:none}}

/* V10 floating contacts: compact icons that expand only on hover/focus. */
.jop-float-contact{right:18px;bottom:20px;gap:10px;pointer-events:none;}
.jop-float-btn{
  pointer-events:auto;
  min-width:56px;
  width:56px;
  min-height:56px;
  height:56px;
  padding:0 11px;
  gap:9px;
  border-radius:50%;
  justify-content:flex-start;
  overflow:hidden;
  animation:jop-float-bob 3.8s ease-in-out infinite;
  transition:width .24s ease,border-radius .24s ease,transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.jop-float-btn--wa{animation-delay:.35s;}
.jop-float-btn__icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  background:transparent;
}
.jop-float-btn__icon svg{width:22px;height:22px;}
.jop-float-btn__text{
  flex:0 0 auto;
  opacity:0;
  transform:translateX(6px);
  transition:opacity .18s ease,transform .18s ease;
  white-space:nowrap;
}
.jop-float-btn:hover,.jop-float-btn:focus-visible{
  width:148px;
  border-radius:28px;
  transform:translateY(-2px);
}
.jop-float-btn:hover .jop-float-btn__text,.jop-float-btn:focus-visible .jop-float-btn__text{
  opacity:1;
  transform:none;
}
.jop-float-badge{left:2px;top:1px;width:10px;height:10px;}
@keyframes jop-float-bob{0%,100%{translate:0 0}50%{translate:0 -3px}}
@media(max-width:720px){
  .jop-float-contact{right:10px;bottom:max(12px,env(safe-area-inset-bottom));gap:9px;}
  .jop-float-btn,.jop-float-btn:hover,.jop-float-btn:focus-visible{
    width:52px;min-width:52px;height:52px;min-height:52px;padding:0 9px;border-radius:50%;transform:none;
  }
  .jop-float-btn__text{display:none;}
  .jop-float-btn__icon{width:34px;height:34px;flex-basis:34px;}
}
@media(prefers-reduced-motion:reduce){
  .jop-float-btn{animation:none;}
}
/* Cross-browser stability: the pulse + shine provide motion without transform conflicts. */
.jop-float-btn{animation:none;}


/* pest-cta.css */
/* CTA supplied by client — integrated without changing its visual structure. */
.pest-cta,.pest-cta *{box-sizing:border-box}
.pest-cta{
  --green:#0bb84b;--green-2:#08ad43;--dark:#003f35;--text:#f8f8f5;
  position:relative;width:100%;min-height:167px;overflow:hidden;isolation:isolate;
  background:radial-gradient(circle at 0% 50%,rgba(28,103,62,.30) 0 10%,transparent 11%),radial-gradient(circle at 100% 15%,rgba(64,122,68,.26) 0 12%,transparent 13%),linear-gradient(90deg,#00453a 0%,#003f35 48%,#003a31 100%);
  color:var(--text);font-family:var(--site-font);
}
.pest-cta::before,.pest-cta::after{content:"";position:absolute;z-index:-1;width:180px;height:220px;top:-32px;opacity:.26;background:radial-gradient(ellipse at 32% 18%,rgba(89,145,76,.8) 0 14%,transparent 15%),radial-gradient(ellipse at 12% 48%,rgba(94,155,74,.72) 0 16%,transparent 17%),radial-gradient(ellipse at 35% 70%,rgba(72,132,64,.68) 0 15%,transparent 16%),radial-gradient(ellipse at 78% 33%,rgba(59,111,66,.65) 0 16%,transparent 17%),radial-gradient(ellipse at 82% 72%,rgba(57,104,58,.55) 0 18%,transparent 19%)}
.pest-cta::before{left:-85px;transform:rotate(-8deg)}.pest-cta::after{right:-90px;transform:scaleX(-1) rotate(-5deg)}
.pest-cta__inner{width:min(100%,940px);min-height:167px;margin:0 auto;padding:15px 54px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pest-cta h2{margin:0;font-size:clamp(28px,3vw,34px);line-height:1.12;letter-spacing:-.02em;font-weight:900;color:#fbfbf6;text-shadow:0 2px 2px rgba(0,0,0,.22);text-align:center}
.pest-cta p{margin:6px 0 11px;font-size:clamp(14px,1.25vw,16px);line-height:1.4;font-weight:650;color:rgba(255,255,255,.88);text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.30)}
.pest-cta__actions{width:100%;display:flex;align-items:center;justify-content:center;gap:25px}
.pest-cta .cta-btn{height:65px;border-radius:8px;padding:0 29px;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;border:1px solid transparent;white-space:nowrap;font-size:18px;line-height:1;font-weight:900;letter-spacing:.1px;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;box-shadow:0 2px 3px rgba(0,0,0,.18)}
.pest-cta .cta-btn--green{min-width:198px;color:white;background:linear-gradient(180deg,var(--green) 0%,var(--green-2) 100%);border-color:rgba(255,255,255,.08)}
.pest-cta .cta-btn--whatsapp{min-width:238px;color:#1f2a2b;background:#fff;border-color:#bfc6c3;box-shadow:0 1px 3px rgba(0,0,0,.28)}
.pest-cta .cta-btn--quote{min-width:224px}.pest-cta .cta-btn:hover{transform:translateY(-2px);filter:brightness(1.035)}
.pest-cta .cta-icon{width:23px;height:23px;flex:0 0 auto;display:block}.pest-cta .cta-icon--wa{width:25px;height:25px}.pest-cta .cta-icon--arrow{width:22px;height:22px;margin-left:3px}
@media(max-width:760px){.pest-cta__inner{padding:24px 18px}.pest-cta h2{font-size:clamp(27px,8vw,32px)}.pest-cta p{font-size:15px;margin-bottom:18px;max-width:520px}.pest-cta__actions{flex-direction:column;gap:12px}.pest-cta .cta-btn{width:min(100%,360px);height:58px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.pest-cta .cta-btn{transition:none}}


/* internal-pages.css */
/* Modern inner pages — same Akt typography as the homepage. */
.page-shell{width:min(1240px,calc(100% - 40px));margin-inline:auto}.page-main{font-family:var(--site-font);color:#18231f;background:#fff}.page-main *{box-sizing:border-box}.page-main h1,.page-main h2,.page-main h3,.page-main p{margin-top:0}
.page-hero{position:relative;min-height:390px;display:flex;align-items:flex-end;overflow:hidden;background:#072f27;color:#fff}.page-hero__media{position:absolute;inset:0}.page-hero__media img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.01)}.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,25,20,.93) 0%,rgba(3,25,20,.72) 44%,rgba(3,25,20,.24) 75%,rgba(3,25,20,.15) 100%)}
.page-hero__inner{position:relative;z-index:1;padding:68px 0 58px}.page-kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 13px;color:#9be944;font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.page-kicker::before{content:"";width:30px;height:2px;background:currentColor}.page-hero h1{max-width:880px;margin:0;font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.045em;font-weight:900}.page-hero p{max-width:720px;margin:18px 0 0;color:rgba(255,255,255,.84);font-size:clamp(16px,1.45vw,19px);line-height:1.62;font-weight:520}.page-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;font-size:13px;color:rgba(255,255,255,.7)}.page-breadcrumb a{color:#c8f48c;text-decoration:none}
.page-section{padding:72px 0}.page-section--soft{background:#f5f7f5}.page-section--tight{padding:58px 0}.section-head{max-width:840px;margin:0 auto 34px;text-align:center}.section-head__eyebrow{margin:0 0 10px;color:#13854b;font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.section-head h2{margin:0;color:#092e25;font-size:clamp(30px,3.4vw,48px);line-height:1.04;letter-spacing:-.035em;font-weight:900}.section-head p{margin:13px auto 0;max-width:720px;color:#64726b;font-size:16px;line-height:1.68}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}.split__image{min-height:430px;overflow:hidden;background:#e9efe9}.split__image img{width:100%;height:100%;object-fit:cover;display:block}.split__copy h2{font-size:clamp(30px,3.4vw,46px);line-height:1.05;letter-spacing:-.035em;color:#0b3429}.split__copy p{color:#5f6d66;font-size:16px;line-height:1.75}.checklist{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:12px}.checklist li{display:flex;gap:11px;align-items:flex-start;font-weight:720;color:#26332d}.checklist li::before{content:"✓";display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;background:#95e43e;color:#073d2a;font-weight:900}
.stat-grid,.feature-grid,.service-grid,.blog-grid{display:grid;gap:14px}.stat-grid{grid-template-columns:repeat(4,1fr)}.stat{padding:24px;background:#083f33;color:#fff}.stat strong{display:block;font-size:30px;line-height:1}.stat span{display:block;margin-top:8px;color:rgba(255,255,255,.72);font-size:13px;line-height:1.4}.feature-grid{grid-template-columns:repeat(3,1fr)}.feature-card{padding:25px 23px;border:1px solid #e0e9e3;background:#fff;min-height:180px;transition:transform .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(8,61,43,.08)}.feature-card__num{color:#86d83a;font-weight:900;font-size:12px;letter-spacing:.12em}.feature-card h3{margin:8px 0 8px;font-size:20px;line-height:1.2;color:#153027}.feature-card p{margin:0;color:#66736c;font-size:14.5px;line-height:1.65}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-tile{position:relative;min-height:315px;overflow:hidden;background:#07120f;color:#fff}.service-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.service-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,12,9,.1),rgba(3,12,9,.87))}.service-tile__body{position:absolute;z-index:1;left:22px;right:22px;bottom:22px}.service-tile h3{margin:0 0 8px;font-size:25px;line-height:1.05;letter-spacing:-.03em}.service-tile p{margin:0 0 15px;color:rgba(255,255,255,.78);font-size:14px;line-height:1.48}.service-tile a{display:inline-flex;align-items:center;gap:8px;color:#9bea42;text-decoration:none;font-weight:850;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.blog-card{border:1px solid #e1e8e3;background:#fff;overflow:hidden}.blog-card__image{aspect-ratio:16/10;display:block;overflow:hidden;background:#eef2ef}.blog-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.blog-card:hover img{transform:scale(1.035)}.blog-card__body{padding:20px}.blog-card__meta{color:#12804a;font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.blog-card h2,.blog-card h3{margin:8px 0 10px;font-size:22px;line-height:1.2}.blog-card p{margin:0 0 16px;color:#66736c;font-size:14.5px;line-height:1.62}.blog-card a{color:#0b5b39;text-decoration:none;font-weight:850}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}.contact-panel,.contact-form{border:1px solid #dfe8e2;background:#fff;padding:28px}.contact-panel{background:#073d31;color:#fff}.contact-panel h2{font-size:34px;line-height:1.04}.contact-panel p{color:rgba(255,255,255,.76);line-height:1.65}.contact-list{display:grid;gap:16px;margin-top:24px}.contact-item strong{display:block;color:#9bea42;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.contact-item a,.contact-item span{color:#fff;text-decoration:none;font-size:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field--full{grid-column:1/-1}.field label{font-size:13px;font-weight:800;color:#2f3d36}.field input,.field select,.field textarea{width:100%;border:1px solid #d9e2dc;background:#fbfcfb;padding:13px 14px;outline:none;min-height:48px}.field textarea{min-height:132px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2f9856;box-shadow:0 0 0 3px rgba(47,152,86,.09)}.form-submit{border:0;background:#0a8b4d;color:#fff;min-height:50px;padding:0 20px;font-weight:900;cursor:pointer}
.service-detail{display:grid;grid-template-columns:1.15fr .85fr;gap:42px;align-items:start}.service-copy h2{font-size:clamp(29px,3vw,43px);line-height:1.06;color:#0b3429;letter-spacing:-.035em}.service-copy h3{font-size:23px;margin-top:28px;color:#163b30}.service-copy p,.service-copy li{color:#5e6c65;font-size:16px;line-height:1.76}.service-copy ul{padding-left:20px}.service-aside{position:sticky;top:120px;background:#f3f6f3;padding:24px;border-top:4px solid #8fdf3c}.service-aside h3{font-size:22px;margin-bottom:13px}.service-aside ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.service-aside li{padding-bottom:10px;border-bottom:1px solid #dce4de;color:#526159}.service-aside a{display:inline-flex;margin-top:18px;padding:12px 16px;background:#0b6a3c;color:#fff;text-decoration:none;font-weight:850}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:980px){.page-shell{width:min(760px,calc(100% - 30px))}.split,.contact-layout,.service-detail{grid-template-columns:1fr}.feature-grid,.service-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.service-aside{position:static}.page-hero{min-height:350px}}
@media(max-width:620px){.page-shell{width:calc(100% - 24px)}.page-section{padding:56px 0}.page-hero{min-height:330px}.page-hero__inner{padding:52px 0 42px}.page-hero h1{font-size:clamp(36px,11vw,50px)}.feature-grid,.service-grid,.blog-grid,.stat-grid,.form-grid{grid-template-columns:1fr}.field--full{grid-column:auto}.split{gap:28px}.split__image{min-height:300px}.contact-panel,.contact-form{padding:21px 17px}.service-tile{min-height:300px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.feature-card,.blog-card__image img{transition:none}}

/* =========================================================
   ABOUT + CONTACT MODERN PAGE LAYER
   Merged here to keep the production asset structure lean.
   ========================================================= */
/* About + Contact redesign — scoped, sharp-cornered, responsive, SEO-safe. */
.ac-page{--ac-green:#087847;--ac-green-2:#0a9154;--ac-dark:#082d25;--ac-ink:#10231c;--ac-muted:#65716b;--ac-line:#dce4df;--ac-soft:#f1f4f2;--ac-lime:#96df46;font-family:var(--site-font);color:var(--ac-ink);background:#fff}
.ac-page *{box-sizing:border-box}.ac-page h1,.ac-page h2,.ac-page h3,.ac-page p{margin-top:0}.ac-shell{width:min(1240px,calc(100% - 40px));margin:0 auto}
.ac-hero{position:relative;min-height:520px;display:grid;align-items:stretch;background:var(--ac-dark);color:#fff;overflow:hidden}
.ac-hero__media{position:absolute;inset:0 0 0 46%;overflow:hidden}.ac-hero__media img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.94) contrast(1.03)}
.ac-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#082d25 0%,rgba(8,45,37,.76) 12%,rgba(8,45,37,.18) 52%,rgba(8,45,37,.08) 100%)}
.ac-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,45,37,1) 0%,rgba(8,45,37,.99) 43%,rgba(8,45,37,.34) 63%,rgba(8,45,37,.08) 100%);pointer-events:none}
.ac-hero__inner{position:relative;z-index:2;display:flex;align-items:center;min-height:520px;padding:70px 0 62px}.ac-hero__copy{max-width:700px}
.ac-kicker{display:flex;align-items:center;gap:11px;margin:0 0 15px;color:var(--ac-lime);font-weight:900;letter-spacing:.16em;text-transform:uppercase;font-size:12px}.ac-kicker:before{content:"";width:36px;height:2px;background:currentColor}
.ac-hero h1{margin:0;max-width:760px;font-size:clamp(48px,6.1vw,82px);line-height:.94;letter-spacing:-.055em;font-weight:920}.ac-hero__lead{max-width:700px;margin:22px 0 0!important;color:rgba(255,255,255,.82);font-size:clamp(16px,1.45vw,19px);line-height:1.65;font-weight:520}
.ac-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px;font-size:13px;color:rgba(255,255,255,.62)}.ac-breadcrumb a{color:#c7f48f;text-decoration:none}
.ac-section{padding:82px 0}.ac-section--soft{background:var(--ac-soft)}.ac-section--dark{background:var(--ac-dark);color:#fff}.ac-section--tight{padding:62px 0}
.ac-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--ac-green);font-size:11px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.ac-eyebrow:before{content:"";width:30px;height:2px;background:currentColor}.ac-section--dark .ac-eyebrow{color:var(--ac-lime)}
.ac-heading{margin:0;font-size:clamp(32px,4vw,54px);line-height:1.02;letter-spacing:-.045em;font-weight:900;color:var(--ac-dark)}.ac-section--dark .ac-heading{color:#fff}
.ac-copy{color:var(--ac-muted);font-size:16px;line-height:1.82}.ac-copy p{margin:0 0 18px}.ac-copy p:last-child{margin-bottom:0}.ac-section--dark .ac-copy{color:rgba(255,255,255,.76)}
.ac-about-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:58px;align-items:center}.ac-photo-stack{position:relative;min-height:600px}.ac-photo-main{position:absolute;inset:0 70px 64px 0;overflow:hidden;background:#dde7e0}.ac-photo-main img{width:100%;height:100%;object-fit:cover;display:block}.ac-photo-panel{position:absolute;right:0;bottom:0;width:min(310px,72%);background:var(--ac-green);color:#fff;padding:28px}.ac-photo-panel strong{display:block;font-size:46px;line-height:.95;letter-spacing:-.05em}.ac-photo-panel span{display:block;margin-top:9px;color:rgba(255,255,255,.82);font-size:14px;line-height:1.45}
.ac-story{display:grid;grid-template-columns:.72fr 1.28fr;gap:72px;align-items:start}.ac-story__title{position:sticky;top:116px}.ac-story__title .ac-heading{font-size:clamp(34px,3.6vw,52px)}.ac-story__body{border-left:1px solid var(--ac-line);padding-left:42px}
.ac-commitment{display:grid;grid-template-columns:.88fr 1.12fr;gap:60px;align-items:start}.ac-commitment__lead{padding-right:25px}.ac-commitment__body{display:grid;gap:18px}.ac-commitment__body p{margin:0;padding:0 0 18px;border-bottom:1px solid var(--ac-line);color:var(--ac-muted);font-size:16px;line-height:1.78}.ac-commitment__body p:last-child{padding-bottom:0;border-bottom:0}
.ac-mv{display:grid;grid-template-columns:1fr 1fr}.ac-mv__panel{padding:48px 46px;min-height:420px}.ac-mv__panel:first-child{background:#0a4b3b;color:#fff}.ac-mv__panel:last-child{background:#fff;color:var(--ac-dark);border:1px solid var(--ac-line);border-left:0}.ac-mv__panel .ac-eyebrow{color:var(--ac-lime)}.ac-mv__panel:last-child .ac-eyebrow{color:var(--ac-green)}.ac-mv__panel h2{margin:0 0 23px;font-size:clamp(34px,3.8vw,52px);letter-spacing:-.04em;line-height:1}.ac-mv__panel p{margin:0 0 16px;font-size:15.8px;line-height:1.78;color:rgba(255,255,255,.78)}.ac-mv__panel:last-child p{color:var(--ac-muted)}
.ac-values{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ac-line);border-left:1px solid var(--ac-line)}.ac-value{padding:30px 28px;min-height:250px;border-right:1px solid var(--ac-line);border-bottom:1px solid var(--ac-line);background:#fff}.ac-value__num{display:block;color:var(--ac-green);font-size:12px;font-weight:900;letter-spacing:.12em}.ac-value h3{margin:42px 0 12px;font-size:26px;line-height:1.08;letter-spacing:-.03em;color:var(--ac-dark)}.ac-value p{margin:0;color:var(--ac-muted);font-size:15px;line-height:1.72}
.ac-contact-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:64px;align-items:start}.ac-contact-intro__title{position:sticky;top:116px}.ac-contact-intro__body{border-left:1px solid var(--ac-line);padding-left:42px}.ac-contact-intro__body p{margin:0 0 20px;color:var(--ac-muted);font-size:16px;line-height:1.82}.ac-contact-intro__body p:last-child{margin-bottom:0}.ac-contact-highlight{margin-top:30px;padding:19px 20px;border-left:4px solid var(--ac-green);background:#f5f8f6;color:var(--ac-dark);font-weight:800;line-height:1.5}
.ac-contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:stretch}.ac-contact-panel{background:var(--ac-dark);color:#fff;padding:34px}.ac-contact-panel h2{margin:0;font-size:clamp(32px,3.5vw,46px);line-height:1.02;letter-spacing:-.04em}.ac-contact-panel>p{margin:15px 0 0;color:rgba(255,255,255,.74);line-height:1.68}.ac-contact-list{display:grid;gap:0;margin-top:28px;border-top:1px solid rgba(255,255,255,.14)}.ac-contact-item{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14)}.ac-contact-item strong{color:var(--ac-lime);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.ac-contact-item a,.ac-contact-item span{color:#fff;text-decoration:none;line-height:1.55}.ac-contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.ac-contact-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 17px;background:var(--ac-green-2);color:#fff!important;text-decoration:none;font-size:13px;font-weight:900}.ac-contact-action--light{background:#fff;color:var(--ac-dark)!important}
.ac-form{border:1px solid var(--ac-line);background:#fff;padding:34px}.ac-form h2{margin:0 0 22px;font-size:clamp(30px,3vw,42px);line-height:1.04;letter-spacing:-.035em;color:var(--ac-dark)}.ac-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.ac-field{display:grid;gap:7px}.ac-field--full{grid-column:1/-1}.ac-field label{font-size:12.5px;font-weight:850;color:#2c3a34}.ac-field input,.ac-field select,.ac-field textarea{width:100%;min-height:50px;border:1px solid #d8e1dc;background:#fafcfa;padding:13px 14px;font:inherit;color:#1d2b25;outline:none;border-radius:0}.ac-field textarea{min-height:140px;resize:vertical}.ac-field input:focus,.ac-field select:focus,.ac-field textarea:focus{border-color:var(--ac-green);box-shadow:0 0 0 3px rgba(8,120,71,.08)}.ac-submit{border:0;background:var(--ac-green);color:#fff;min-height:52px;padding:0 22px;font-weight:900;cursor:pointer;border-radius:0}.ac-submit:hover{background:#06683e}
.ac-map-wrap{border:1px solid var(--ac-line);background:#e9efeb}.ac-map-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:end;padding:30px;background:#fff;border-bottom:1px solid var(--ac-line)}.ac-map-head h2{margin:0;font-size:clamp(30px,3.2vw,44px);letter-spacing:-.04em;line-height:1.03;color:var(--ac-dark)}.ac-map-head p{margin:0;color:var(--ac-muted);line-height:1.65}.ac-map-wrap iframe{display:block;width:100%;height:430px;border:0}
@media(max-width:980px){.ac-shell{width:min(760px,calc(100% - 30px))}.ac-hero{min-height:470px}.ac-hero__inner{min-height:470px}.ac-hero__media{inset:0 0 0 35%}.ac-hero:after{background:linear-gradient(90deg,rgba(8,45,37,1) 0%,rgba(8,45,37,.94) 55%,rgba(8,45,37,.35) 82%,rgba(8,45,37,.15) 100%)}.ac-about-grid,.ac-story,.ac-commitment,.ac-contact-intro,.ac-contact-grid{grid-template-columns:1fr;gap:36px}.ac-photo-stack{min-height:520px}.ac-story__title,.ac-contact-intro__title{position:static}.ac-story__body,.ac-contact-intro__body{border-left:0;border-top:1px solid var(--ac-line);padding:28px 0 0}.ac-mv{grid-template-columns:1fr}.ac-mv__panel:last-child{border-left:1px solid var(--ac-line);border-top:0}.ac-values{grid-template-columns:1fr 1fr}.ac-map-head{grid-template-columns:1fr;gap:12px}}
@media(max-width:620px){.ac-shell{width:calc(100% - 24px)}.ac-section{padding:58px 0}.ac-section--tight{padding:48px 0}.ac-hero{min-height:440px}.ac-hero__inner{min-height:440px;padding:56px 0 46px;align-items:flex-end}.ac-hero__media{inset:0}.ac-hero__media:after{background:linear-gradient(180deg,rgba(8,45,37,.25),rgba(8,45,37,.92))}.ac-hero:after{background:linear-gradient(180deg,rgba(8,45,37,.18) 0%,rgba(8,45,37,.76) 45%,rgba(8,45,37,1) 100%)}.ac-hero h1{font-size:clamp(43px,13vw,58px)}.ac-photo-stack{min-height:450px}.ac-photo-main{inset:0 32px 54px 0}.ac-photo-panel{padding:22px;width:72%}.ac-photo-panel strong{font-size:38px}.ac-mv__panel{padding:34px 24px;min-height:auto}.ac-values{grid-template-columns:1fr}.ac-value{min-height:auto}.ac-value h3{margin-top:28px}.ac-contact-panel,.ac-form{padding:26px 19px}.ac-contact-item{grid-template-columns:1fr;gap:5px}.ac-form-grid{grid-template-columns:1fr}.ac-field--full{grid-column:auto}.ac-map-head{padding:22px}.ac-map-wrap iframe{height:350px}}
@media(prefers-reduced-motion:reduce){.ac-page .reveal{opacity:1;transform:none;transition:none}}

/* =========================================================
   V10 — About + Contact refinement
   Compact breadcrumb, top-first section headings, clean forms.
   ========================================================= */
.ac-breadcrumb-bar{
  background:#f3f5f4;
  border-top:1px solid #edf1ef;
  border-bottom:1px solid #dfe5e1;
}
.ac-breadcrumb-bar .ac-shell{padding:18px 0;}
.ac-breadcrumb-bar .ac-breadcrumb{
  margin:0;
  color:#66736c;
  font-size:13px;
  font-weight:700;
  gap:9px;
}
.ac-breadcrumb-bar .ac-breadcrumb a{color:var(--ac-green);font-weight:850;}
.ac-section--first{padding-top:64px;}
.ac-section-head{
  max-width:980px;
  margin:0 0 34px;
  text-align:left;
}
.ac-section-head .ac-eyebrow{margin-bottom:10px;}
.ac-page-title{
  margin:0 0 12px;
  color:var(--ac-dark);
  font-size:clamp(40px,5vw,64px);
  line-height:.98;
  letter-spacing:-.05em;
  font-weight:900;
}
.ac-section-head .ac-heading{max-width:900px;}
.ac-section-intro{
  margin:14px 0 0!important;
  color:var(--ac-muted);
  font-size:17px;
  line-height:1.6;
  font-weight:650;
}
.ac-about-grid{grid-template-columns:.88fr 1.12fr;gap:52px;align-items:start;}
.ac-about-grid .ac-copy{padding-top:2px;}

/* Title first, content directly below — no sticky side-title treatment. */
.ac-story,.ac-commitment,.ac-contact-intro{display:block;}
.ac-story__title,.ac-commitment__lead,.ac-contact-intro__title{
  position:static;
  max-width:980px;
  margin:0 0 28px;
  padding:0;
}
.ac-story__body,.ac-contact-intro__body{
  max-width:1100px;
  border:0;
  padding:0;
}
.ac-commitment__body{
  max-width:1100px;
  gap:16px;
}
.ac-commitment__body p{
  padding:0 0 16px;
}
.ac-contact-highlight{max-width:760px;}

/* Contact form: exact requested field set. */
.ac-form-grid{grid-template-columns:1fr 1fr;gap:16px;}
.ac-field input,.ac-field textarea{
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
  font-size:16px;
}
.ac-field textarea{min-height:150px;}
.ac-submit{
  min-height:54px;
  font-size:14px;
  letter-spacing:.01em;
}

@media(max-width:980px){
  .ac-section--first{padding-top:54px;}
  .ac-about-grid{grid-template-columns:1fr;gap:32px;}
  .ac-photo-stack{min-height:500px;}
  .ac-section-head{margin-bottom:28px;}
}
@media(max-width:620px){
  .ac-breadcrumb-bar .ac-shell{padding:14px 0;}
  .ac-breadcrumb-bar .ac-breadcrumb{font-size:12.5px;}
  .ac-section--first{padding-top:44px;}
  .ac-page-title{font-size:clamp(36px,11vw,48px);}
  .ac-section-head{margin-bottom:24px;}
  .ac-section-intro{font-size:15px;}
  .ac-photo-stack{min-height:410px;}
  .ac-form-grid{grid-template-columns:1fr;}
  .ac-field--full{grid-column:auto;}
  .ac-contact-grid{gap:18px;}
}


/* ===== JOP INNER PAGE PRESERVATION LAYOUT v11 ===== */
.jp-inner{--jp-bg:#eef1ef;--jp-card:#fff;--jp-ink:#18221e;--jp-muted:#5f6b65;--jp-line:#dfe5e1;--jp-green:#087b46;--jp-blue:#0868c9;background:var(--jp-bg);color:var(--jp-ink);font-family:var(--site-font);padding:0 0 72px;min-height:60vh;overflow-x:hidden}
.jp-inner *{box-sizing:border-box}.jp-inner img{max-width:100%;height:auto}.jp-inner a{color:var(--jp-blue);text-underline-offset:2px}.jp-inner a:hover{color:#064f97}
.jp-breadcrumb-wrap{width:min(1200px,calc(100% - 40px));margin:0 auto;padding:19px 0 13px}.jp-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:730;color:#68746e}.jp-breadcrumb a{color:var(--jp-green);text-decoration:none}.jp-breadcrumb span[aria-hidden="true"]{color:#9aa39e}
.jp-content{width:min(1200px,calc(100% - 40px));margin:0 auto;background:var(--jp-card);border:1px solid #e0e5e2;box-shadow:0 18px 46px rgba(24,42,33,.055);padding:50px 58px 58px}
.jp-content h1{margin:0 0 28px;font-size:clamp(34px,4.1vw,54px);line-height:1.04;letter-spacing:-.035em;font-weight:860;color:#112c23}.jp-content h2{margin:42px 0 15px;font-size:clamp(26px,2.8vw,38px);line-height:1.1;letter-spacing:-.025em;color:#12372c}.jp-content h3{margin:31px 0 11px;font-size:clamp(20px,2vw,27px);line-height:1.22;color:#16382e}.jp-content p,.jp-content li{font-size:16px;line-height:1.76;color:#36433d}.jp-content p{margin:0 0 20px}.jp-content ul,.jp-content ol{margin:0 0 24px;padding-left:22px}.jp-content li+li{margin-top:8px}.jp-content strong{color:#203129}.jp-content hr{border:0;border-top:1px solid var(--jp-line);margin:38px 0}
.jp-lead{font-size:18px!important;line-height:1.68!important;color:#49564f!important;max-width:940px}.jp-section{padding-top:6px}.jp-section+.jp-section{border-top:1px solid var(--jp-line);margin-top:38px;padding-top:3px}
.jp-image{display:block;width:100%;margin:24px 0 32px;border:1px solid #e1e5e2;background:#f3f5f4;object-fit:cover}.jp-image--banner{max-height:360px}.jp-image--feature{max-height:560px}.jp-image-caption{margin-top:-22px!important;color:#7b8580!important;font-size:13px!important}
.jp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}.jp-info-box{background:#f5f7f5;border-left:4px solid var(--jp-green);padding:24px 26px;margin:28px 0}.jp-info-box h2,.jp-info-box h3{margin-top:0}
.jp-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:36px;align-items:start;margin-top:34px}.jp-contact-card{background:#f5f7f5;border:1px solid var(--jp-line);padding:26px}.jp-contact-card h2{font-size:27px;margin:0 0 15px}.jp-contact-list{display:grid;gap:15px}.jp-contact-row{border-bottom:1px solid #dce3df;padding-bottom:13px}.jp-contact-row:last-child{border-bottom:0;padding-bottom:0}.jp-contact-row strong{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--jp-green);margin-bottom:4px}.jp-contact-row a,.jp-contact-row span{font-size:15px;color:#27342e;text-decoration:none}
.jp-form{border:1px solid var(--jp-line);background:#fff;padding:29px;margin-top:28px}.jp-form h2{margin:0 0 20px}.jp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.jp-field{display:grid;gap:7px}.jp-field--full{grid-column:1/-1}.jp-field label{font-size:13px;font-weight:800;color:#26352e}.jp-field input,.jp-field textarea{width:100%;min-height:50px;border:1px solid #cfd8d2;background:#fbfcfb;padding:13px 14px;font:inherit;color:#17221e;border-radius:0;-webkit-appearance:none;appearance:none}.jp-field textarea{min-height:150px;resize:vertical}.jp-field input:focus,.jp-field textarea:focus{outline:2px solid rgba(8,123,70,.15);outline-offset:0;border-color:#13894f}.jp-submit{min-height:52px;border:0;background:var(--jp-green);color:#fff;font:inherit;font-weight:850;padding:0 22px;cursor:pointer;border-radius:0}.jp-submit:hover{background:#066d3e}
.jp-post-list{display:grid;gap:18px}.jp-post{border:1px solid var(--jp-line);background:#fff;padding:26px 28px}.jp-post h2{margin:0 0 8px;font-size:29px}.jp-post h2 a{color:#14352a;text-decoration:none}.jp-post__meta{font-size:13px;color:#718078;margin-bottom:13px}.jp-post__meta a{color:var(--jp-green);text-decoration:none}.jp-post p{margin-bottom:12px}.jp-related{font-size:13px!important;color:#77817c!important;border-top:1px solid #e6eae7;padding-top:12px;margin-top:15px!important}
.jp-legal h2{font-size:27px;margin-top:32px}.jp-legal p{font-size:15.5px;line-height:1.78}.jp-legal .jp-section{border-top:0;margin-top:0;padding-top:0}
@media(max-width:900px){.jp-content{padding:38px 34px 44px}.jp-contact-layout{grid-template-columns:1fr}.jp-grid-2{grid-template-columns:1fr}.jp-contact-card{order:2}}
@media(max-width:620px){.jp-inner{padding-bottom:44px}.jp-breadcrumb-wrap,.jp-content{width:calc(100% - 22px)}.jp-breadcrumb-wrap{padding:14px 0 10px}.jp-content{padding:28px 20px 34px}.jp-content h1{font-size:clamp(31px,9vw,42px);margin-bottom:22px}.jp-content h2{font-size:27px;margin-top:32px}.jp-content h3{font-size:21px}.jp-content p,.jp-content li{font-size:15px;line-height:1.7}.jp-lead{font-size:16px!important}.jp-image{margin:18px 0 25px}.jp-form{padding:22px 17px}.jp-form-grid{grid-template-columns:1fr}.jp-field--full{grid-column:auto}.jp-post{padding:21px 19px}.jp-post h2{font-size:24px}}
@media(max-width:430px){.jp-content{padding-left:17px;padding-right:17px}.jp-breadcrumb{font-size:12px}.jp-contact-card{padding:21px 18px}}

.jp-policy-links{font-size:12px;color:rgba(255,255,255,.72)}.jp-policy-links a{color:inherit;text-decoration:none}.jp-policy-links a:hover{text-decoration:underline}

/* v14 shared-template migration refinements */
.jp-migrated-page .jp-section{padding-top:0}
.jp-migrated-page .jp-section>h2:first-child{margin-top:0}
.jp-migrated-page ul,.jp-migrated-page ol{padding-left:1.35rem}
.jp-migrated-page li{margin:.5rem 0;line-height:1.65}
.jp-migrated-page a{color:#087846;text-decoration:underline;text-underline-offset:3px}
.jp-migrated-page .jp-image--banner{display:block;width:100%;height:auto;margin:1.3rem 0 2rem;border-radius:0}
@media(max-width:680px){.jp-migrated-page .jp-image--banner{margin:1rem 0 1.4rem}.jp-migrated-page h1{font-size:clamp(2rem,10vw,3rem)}}

/* v15 complete sitemap editorial pages */
.jp-location-page .jp-section>p:first-child,.jp-migrated-page .jp-section>p:first-child{font-size:1.08rem;line-height:1.8;color:#273b34}
.jp-location-page h2,.jp-migrated-page h2{margin-top:2.35rem}
.jp-location-page ol,.jp-location-page ul{padding-left:1.35rem}
.jp-location-page li{margin:.55rem 0;line-height:1.7}
.jp-location-page a{color:#087846;text-decoration:underline;text-underline-offset:3px}


/* v18 scraped-page integration */
.jp-scraped-page{max-width:1040px;margin:0 auto}
.jp-scraped-page>.entry-content{display:block}
.jp-scraped-page h1{max-width:980px}
.jp-scraped-page h2{margin:2.6rem 0 .9rem;line-height:1.2}
.jp-scraped-page h3{margin:1.45rem 0 .65rem;line-height:1.38;font-size:clamp(1.08rem,1.6vw,1.28rem)}
.jp-scraped-page h4,.jp-scraped-page h5,.jp-scraped-page h6{margin:1.25rem 0 .55rem;line-height:1.4}
.jp-scraped-page p{margin:.78rem 0;line-height:1.78}
.jp-scraped-page ul,.jp-scraped-page ol{margin:.9rem 0 1.25rem;padding-left:1.4rem}
.jp-scraped-page li{margin:.45rem 0;line-height:1.68}
.jp-scraped-page .jp-scraped-image{display:block;max-width:100%;height:auto;margin:1.4rem auto;border-radius:0}
.jp-scraped-page .jp-scraped-frame{display:block;max-width:100%;width:100%;min-height:360px;border:0;margin:1.4rem 0}
.jp-scraped-page table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.98rem}
.jp-scraped-page th,.jp-scraped-page td{padding:.78rem .85rem;border:1px solid #dfe7e2;text-align:left;vertical-align:top}
.jp-scraped-page th{background:#f3f7f5;font-weight:800;color:#15392c}
.jp-scraped-page blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:4px solid #0b7b4b;background:#f4f8f6}
.jp-scraped-page hr{border:0;border-top:1px solid #dfe7e2;margin:2rem 0}
.jp-related-links{margin-top:3rem;padding-top:1.7rem;border-top:1px solid #dfe7e2}
.jp-related-links h2{font-size:1.3rem;margin:0 0 1rem}
.jp-related-links ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;list-style:none;padding:0;margin:0}
.jp-related-links li{margin:0}
.jp-related-links a{display:block;padding:.78rem .9rem;background:#f5f8f6;color:#086b43;text-decoration:none;font-weight:700;line-height:1.45}
.jp-related-links a:hover{background:#edf5f1;text-decoration:underline}
@media(max-width:760px){
 .jp-scraped-page h2{margin-top:2rem}
 .jp-scraped-page .jp-scraped-frame{min-height:230px}
 .jp-scraped-page table{display:block;overflow-x:auto;white-space:nowrap}
 .jp-related-links ul{grid-template-columns:1fr}
}



/* Contact form submission states */
.jp-form-intro{margin:-8px 0 22px;color:#536159;font-size:14px;line-height:1.65}.jp-form-note{margin:10px 0 0;color:#6b7771;font-size:12px;line-height:1.55}.jp-form-status{min-height:20px;margin-top:8px;font-size:13px;font-weight:700;color:#335b49}.jp-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.jp-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px}.jp-submit:disabled{cursor:not-allowed;opacity:.72}.jp-submit__loader{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:jpSpin .7s linear infinite}.jp-submit.is-loading .jp-submit__loader{display:inline-block}@keyframes jpSpin{to{transform:rotate(360deg)}}
body.jp-modal-open{overflow:hidden}.jp-form-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.jp-form-modal.is-open{opacity:1;visibility:visible}.jp-form-modal__backdrop{position:absolute;inset:0;background:rgba(6,24,17,.68);backdrop-filter:blur(3px)}.jp-form-modal__dialog{position:relative;width:min(460px,100%);background:#fff;border:1px solid #dce6e0;padding:32px 30px;text-align:center;box-shadow:0 26px 70px rgba(6,24,17,.24)}.jp-form-modal__icon{width:62px;height:62px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#e8f7ef;position:relative}.jp-form-modal__icon:before{content:"";width:24px;height:12px;border-left:4px solid #0a8b4d;border-bottom:4px solid #0a8b4d;transform:rotate(-45deg) translate(1px,-2px)}.jp-form-modal.is-error .jp-form-modal__icon{background:#fff0ef}.jp-form-modal.is-error .jp-form-modal__icon:before,.jp-form-modal.is-warning .jp-form-modal__icon:before{content:"!";width:auto;height:auto;border:0;transform:none;font-size:30px;font-weight:900;color:#c3352b}.jp-form-modal.is-warning .jp-form-modal__icon{background:#fff7df}.jp-form-modal.is-warning .jp-form-modal__icon:before{color:#9b6a00}.jp-form-modal__dialog h2{margin:0 0 10px!important;font-size:27px!important;color:#17221e}.jp-form-modal__dialog p{margin:0;color:#55625c;font-size:15px;line-height:1.65}.jp-form-modal__close{margin-top:22px;min-width:120px;min-height:46px;border:0;background:#0a8b4d;color:#fff;font:inherit;font-weight:850;padding:0 20px;cursor:pointer}.jp-form-modal.is-error .jp-form-modal__close{background:#a92d25}.jp-form-modal__close:focus-visible{outline:3px solid rgba(10,139,77,.25);outline-offset:3px}@media(max-width:620px){.jp-form-modal__dialog{padding:27px 20px}.jp-form-modal__dialog h2{font-size:24px!important}}

/* ===== v24 restrained typography + readability QA =====
   Keeps all migrated/scraped content and URLs intact while preventing
   long legacy heading markup from rendering as oversized/bold body copy. */
.jp-content{
  padding:44px 50px 52px;
}
.jp-content h1{
  margin:0 0 24px;
  font-size:clamp(32px,3vw,42px);
  line-height:1.12;
  letter-spacing:-.025em;
  font-weight:800;
}
.jp-content h2{
  margin:36px 0 13px;
  font-size:clamp(24px,2.15vw,31px);
  line-height:1.2;
  letter-spacing:-.018em;
  font-weight:800;
}
.jp-content h3{
  margin:25px 0 10px;
  font-size:clamp(17px,1.35vw,20px);
  line-height:1.42;
  font-weight:750;
  letter-spacing:-.006em;
}
.jp-content p,
.jp-content li{
  font-size:16px;
  line-height:1.76;
  font-weight:400;
}

/* The scraped WordPress source frequently used H3 tags as paragraph copy.
   Render those inherited blocks at a calm reading size instead of headline scale. */
.jp-scraped-page h3{
  margin:1.05rem 0 .55rem;
  font-size:16.5px;
  line-height:1.72;
  font-weight:600;
  letter-spacing:0;
  color:#31413a;
}
.jp-scraped-page h2{
  margin:2.15rem 0 .8rem;
  font-size:clamp(23px,2vw,29px);
  line-height:1.24;
  letter-spacing:-.014em;
}
.jp-scraped-page p,
.jp-scraped-page li{
  font-size:16px;
  line-height:1.76;
}
.jp-related-links h2{
  font-size:20px;
  margin:0 0 1rem;
}

/* Keep shared CTA strong, but not oversized compared with page content. */
.jpf-cta__copy h2{
  font-size:32px;
  line-height:1.12;
}
.jpf-cta__copy p{
  font-size:15px;
  line-height:1.5;
}

@media (max-width:900px){
  .jp-content{padding:36px 30px 42px;}
  .jp-content h1{font-size:clamp(31px,5vw,38px);}
  .jp-content h2{font-size:clamp(23px,3.6vw,28px);}
}

@media (max-width:620px){
  .jp-content{padding:26px 18px 32px;}
  .jp-content h1{
    font-size:clamp(29px,8vw,34px);
    line-height:1.14;
    margin-bottom:20px;
  }
  .jp-content h2{
    font-size:clamp(22px,6vw,26px);
    line-height:1.24;
    margin-top:29px;
  }
  .jp-content h3,
  .jp-scraped-page h3{
    font-size:16px;
    line-height:1.68;
  }
  .jp-content p,
  .jp-content li,
  .jp-scraped-page p,
  .jp-scraped-page li{
    font-size:15.5px;
    line-height:1.72;
  }
  .jpf-cta__copy h2{font-size:clamp(26px,7vw,30px);}
  .jpf-cta__copy p{font-size:14px;}
}

/* directory-pages.css — Services / Pests / Locations */
.jp-directory {
  background: #fff;
  color: #17221e;
}
.jp-dir-shell {
  width: min(calc(100% - 48px), 1240px);
  margin-inline: auto;
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.jp-dir-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 20%, rgba(105,199,31,.16), transparent 28%),
    linear-gradient(135deg, #f6faf7 0%, #eef7f1 55%, #f9fbf8 100%);
  border-bottom: 1px solid #e6eee9;
}
.jp-dir-hero::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -90px;
  bottom: -135px;
  border: 1px solid rgba(0,82,52,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(105,199,31,.035), 0 0 0 72px rgba(0,82,52,.025);
  pointer-events: none;
}
.jp-dir-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 24px;
  color: #6b776f;
  font-size: 13px;
}
.jp-dir-breadcrumb a { color: #0b6a3c; font-weight: 600; }
.jp-dir-hero__content {
  position: relative;
  z-index: 1;
  max-width: 790px;
  padding: 46px 0 58px;
}
.jp-dir-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #0b6a3c;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.jp-dir-kicker::before {
  content: "";
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: #69c71f;
}
.jp-dir-hero h1 {
  max-width: 760px;
  margin: 13px 0 14px;
  color: #123127;
  font-size: clamp(31px, 4vw, 44px);
  line-height: 1.08;
  font-weight: 740;
  letter-spacing: -.035em;
}
.jp-dir-hero p {
  max-width: 720px;
  margin: 0;
  color: #526158;
  font-size: 16.5px;
  line-height: 1.75;
}
.jp-dir-hero__actions,
.jp-dir-bottom-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin-top: 25px;
}
.jp-dir-btn {
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1;
  font-weight: 700;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}
.jp-dir-btn:hover { transform: translateY(-1px); }
.jp-dir-btn--primary {
  color: #fff;
  background: #005234;
  box-shadow: 0 8px 22px rgba(0,82,52,.16);
}
.jp-dir-btn--primary:hover { background: #064a31; }
.jp-dir-btn--ghost {
  color: #0b6a3c;
  background: #fff;
  border-color: #d7e3db;
}
.jp-dir-main { padding: 20px 0 66px; }
.jp-dir-section { padding: 52px 0 12px; }
.jp-dir-section--soft {
  margin-top: 46px;
  padding: 42px;
  background: #f7faf8;
  border: 1px solid #e7eee9;
  border-radius: 20px;
}
.jp-dir-section__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  align-items: end;
  gap: 32px;
  margin-bottom: 25px;
}
.jp-dir-section__head h2 {
  margin: 8px 0 0;
  color: #123127;
  font-size: clamp(25px, 3vw, 33px);
  line-height: 1.16;
  font-weight: 720;
  letter-spacing: -.025em;
}
.jp-dir-section__head > p {
  margin: 0;
  color: #637068;
  font-size: 15px;
  line-height: 1.7;
}
.jp-dir-grid {
  display: grid;
  gap: 18px;
}
.jp-dir-grid--services { grid-template-columns: repeat(4, minmax(0,1fr)); }
.jp-dir-grid--pests { grid-template-columns: repeat(5, minmax(0,1fr)); }
.jp-dir-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e4ece7;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(17,49,39,.05);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.jp-dir-card:hover {
  transform: translateY(-3px);
  border-color: #cbded0;
  box-shadow: 0 14px 32px rgba(17,49,39,.09);
}
.jp-dir-card__image {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #eef4ef;
}
.jp-dir-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .3s ease;
}
.jp-dir-card:hover .jp-dir-card__image img { transform: scale(1.035); }
.jp-dir-card__image--pest {
  aspect-ratio: 1.25/1;
  padding: 16px;
  background: linear-gradient(145deg,#f4f7f4,#edf3ef);
}
.jp-dir-card__image--pest img { object-fit: contain; filter: drop-shadow(0 8px 8px rgba(24,49,39,.12)); }
.jp-dir-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 18px 18px 19px;
}
.jp-dir-card__eyebrow {
  margin-bottom: 7px;
  color: #71917d;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.jp-dir-card strong {
  color: #16372b;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 720;
}
.jp-dir-card__desc {
  margin-top: 8px;
  color: #67746c;
  font-size: 13.5px;
  line-height: 1.62;
}
.jp-dir-card__link {
  margin-top: auto;
  padding-top: 15px;
  color: #0b6a3c;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 700;
}
.jp-dir-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.jp-dir-links--four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.jp-dir-link {
  min-height: 52px;
  padding: 12px 14px 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1px solid #e2ebe5;
  border-radius: 11px;
  color: #1a392e;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 650;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.jp-dir-link:hover {
  transform: translateY(-1px);
  border-color: #bad4c2;
  box-shadow: 0 7px 18px rgba(18,59,43,.06);
}
.jp-dir-link svg { width: 17px; height: 17px; flex: 0 0 17px; color: #63bc23; }
.jp-dir-section__head--search { align-items: end; }
.jp-dir-search {
  min-height: 48px;
  padding: 0 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #dce8e0;
  border-radius: 11px;
  box-shadow: 0 4px 12px rgba(17,49,39,.03);
}
.jp-dir-search:focus-within { border-color: #75bd42; box-shadow: 0 0 0 3px rgba(105,199,31,.1); }
.jp-dir-search svg { width: 19px; height: 19px; flex: 0 0 19px; color: #6e7c73; }
.jp-dir-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #1c2c25;
  font-size: 14px;
}
.jp-dir-search input::placeholder { color: #8b9891; }
.jp-dir-result {
  min-height: 20px;
  margin: -10px 0 13px;
  color: #738078;
  font-size: 12.5px;
}
.jp-dir-empty {
  margin: 16px 0 0;
  padding: 14px 16px;
  background: #fff;
  border: 1px dashed #cad8ce;
  border-radius: 10px;
  color: #66736b;
  font-size: 14px;
}
.jp-dir-empty a { color: #0b6a3c; font-weight: 700; }
.jp-dir-bottom-cta {
  background: linear-gradient(105deg,#004b30,#075f39 58%,#0a6c3e);
  color: #fff;
}
.jp-dir-bottom-cta__inner {
  min-height: 220px;
  padding-top: 46px;
  padding-bottom: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
}
.jp-dir-bottom-cta .jp-dir-kicker { color: #b7e892; }
.jp-dir-bottom-cta .jp-dir-kicker::before { background: #8fda4e; }
.jp-dir-bottom-cta h2 {
  margin: 9px 0 8px;
  color: #fff;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.15;
  font-weight: 720;
  letter-spacing: -.025em;
}
.jp-dir-bottom-cta p {
  max-width: 660px;
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 15px;
  line-height: 1.68;
}
.jp-dir-bottom-cta__actions { flex: 0 0 auto; margin-top: 0; }
.jp-dir-btn--light { color: #064d32; background: #fff; }
.jp-dir-btn--outline-light { color: #fff; border-color: rgba(255,255,255,.42); background: transparent; }
.jp-dir-btn--outline-light:hover { border-color: #fff; background: rgba(255,255,255,.08); }

@media (max-width: 1100px) {
  .jp-dir-grid--services { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .jp-dir-grid--pests { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .jp-dir-links--four { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .jp-dir-shell { width: min(calc(100% - 32px), 1240px); }
  .jp-dir-hero__content { padding: 38px 0 45px; }
  .jp-dir-hero h1 { font-size: clamp(29px, 7vw, 37px); }
  .jp-dir-section__head { grid-template-columns: 1fr; gap: 12px; }
  .jp-dir-section--soft { padding: 30px 24px; border-radius: 16px; }
  .jp-dir-grid--pests { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .jp-dir-links, .jp-dir-links--four { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .jp-dir-bottom-cta__inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 560px) {
  .jp-dir-shell { width: min(calc(100% - 24px), 1240px); }
  .jp-dir-breadcrumb { padding-top: 18px; font-size: 12px; }
  .jp-dir-hero__content { padding: 29px 0 36px; }
  .jp-dir-hero h1 { margin-top: 10px; font-size: 30px; line-height: 1.12; }
  .jp-dir-hero p { font-size: 15px; line-height: 1.65; }
  .jp-dir-hero__actions { gap: 8px; }
  .jp-dir-btn { min-height: 44px; padding: 0 16px; font-size: 13px; border-radius: 10px; }
  .jp-dir-main { padding-bottom: 46px; }
  .jp-dir-section { padding-top: 38px; }
  .jp-dir-section__head { margin-bottom: 18px; }
  .jp-dir-section__head h2 { font-size: 25px; }
  .jp-dir-section--soft { margin-top: 34px; padding: 24px 15px; }
  .jp-dir-grid--services, .jp-dir-grid--pests { grid-template-columns: 1fr; }
  .jp-dir-grid { gap: 13px; }
  .jp-dir-card { border-radius: 13px; }
  .jp-dir-card--pest { display: grid; grid-template-columns: 112px 1fr; }
  .jp-dir-card__image--pest { aspect-ratio: auto; min-height: 145px; padding: 10px; }
  .jp-dir-card__body { padding: 15px; }
  .jp-dir-card strong { font-size: 17px; }
  .jp-dir-links, .jp-dir-links--four { grid-template-columns: 1fr; gap: 8px; }
  .jp-dir-link { min-height: 49px; font-size: 13.5px; }
  .jp-dir-bottom-cta__inner { min-height: 0; padding-top: 36px; padding-bottom: 38px; gap: 22px; }
  .jp-dir-bottom-cta h2 { font-size: 27px; }
}


/* v26 directory refinements: simple, readable, offline-safe navigation */
.jp-dir-hero--compact .jp-dir-hero__content{padding:32px 0 38px;max-width:760px;}
.jp-dir-hero--compact h1{font-size:clamp(30px,3.2vw,38px);line-height:1.14;margin:10px 0 11px;}
.jp-dir-hero--compact p{font-size:15.5px;line-height:1.7;}
.jp-dir-crumbbar{background:#fff;border-bottom:1px solid #e7eee9;}
.jp-dir-crumbbar .jp-dir-breadcrumb{padding:18px 0;}
.jp-dir-section--first{padding-top:34px;}
.jp-dir-section--plain{margin-top:34px;padding:38px 0 12px;background:#fff;border:0;border-radius:0;}
.jp-dir-section__head--single{grid-template-columns:minmax(0,720px);align-items:start;gap:8px;}
.jp-dir-section__head--single>p{max-width:690px;}
.jp-dir-page-title{margin:0;color:#123127;font-size:clamp(28px,3vw,34px);line-height:1.16;font-weight:720;letter-spacing:-.025em;}
.jp-directory--services .jp-dir-grid--services{grid-template-columns:repeat(3,minmax(0,1fr));}
.jp-directory--services .jp-dir-card--text{border-radius:10px;box-shadow:none;min-height:205px;}
.jp-directory--services .jp-dir-card--text:hover{box-shadow:0 10px 24px rgba(17,49,39,.07);}
.jp-directory--services .jp-dir-card__body{padding:21px;}
.jp-directory--services .jp-dir-card strong{font-size:18px;}
.jp-directory--pests .jp-dir-card{border-radius:0;box-shadow:none;}
.jp-directory--pests .jp-dir-card:hover{box-shadow:0 9px 22px rgba(17,49,39,.07);}
.jp-dir-grid--pests-simple{grid-template-columns:repeat(4,minmax(0,1fr));}
.jp-dir-card--pest-text{min-height:185px;background:#fff;}
.jp-dir-card--pest-text .jp-dir-card__body{padding:18px;}
.jp-dir-card--pest-text strong{font-size:17px;}
.jp-directory--locations .jp-dir-link{border-radius:4px;}
@media(max-width:1100px){.jp-directory--services .jp-dir-grid--services{grid-template-columns:repeat(2,minmax(0,1fr));}.jp-dir-grid--pests-simple{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:820px){.jp-dir-grid--pests-simple{grid-template-columns:repeat(2,minmax(0,1fr));}.jp-dir-hero--compact .jp-dir-hero__content{padding:28px 0 34px;}}
@media(max-width:560px){.jp-directory--services .jp-dir-grid--services,.jp-dir-grid--pests-simple{grid-template-columns:1fr;}.jp-dir-page-title{font-size:27px;}.jp-dir-section--plain{margin-top:24px;padding-top:30px;}.jp-directory--pests .jp-dir-card--pest{grid-template-columns:104px 1fr;}.jp-dir-hero--compact h1{font-size:29px;}}
