/* Fonts: Barlow and Barlow Semi Condensed (SIL Open Font License), hosted on this site so pages don't wait for Google */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/barlow-latin-400-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/barlow-latin-500-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/barlow-latin-600-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/barlow-latin-700-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/barlow-semi-condensed-latin-600-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/barlow-semi-condensed-latin-700-normal.woff2) format('woff2');
}@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/assets/fonts/barlow-semi-condensed-latin-800-normal.woff2) format('woff2');
}/* JM Landscapes — shared styles. Most layout lives inline in each page (as designed);
   this file holds the base, the header states, the menu, the form and the phone/tablet rules. */

html{scroll-behavior:smooth}
body{margin:0;background:#FFFFFF}
img{max-width:100%}
a{color:#2F5A2D}a:hover{color:#1F3F1E}
:focus-visible{outline:3px solid #89BD51;outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:#1C2E1B;color:#fff;padding:10px 14px;z-index:100}
.skip:focus{left:8px;top:8px}
[id]{scroll-margin-top:96px}

/* header: transparent over the banner, dark green once scrolled */
.site-head{background:transparent;box-shadow:none}
.site-head.scrolled{background:#1C2E1B;box-shadow:0 4px 14px rgba(0,0,0,.18)}

/* menu (tablet + phone) */
.mobile-menu{display:flex;flex-direction:column;background:#1C2E1B;padding:8px 24px 20px;border-top:1px solid rgba(255,255,255,.12)}
.mobile-menu[hidden]{display:none}
.mobile-menu a{color:#FFFFFF;text-decoration:none;font-weight:600;font-size:18px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.mobile-menu a.mm-call{color:#A9CF82}
.mobile-menu a.mm-quote{margin-top:14px;border:0;background:#89BD51;color:#172515;text-align:center;border-radius:8px;font-weight:700}
.site-head.menu-open{background:#1C2E1B}

/* quote form */
.svc-btn{min-height:52px;border-radius:10px;border:1px solid #B6C3AE;background:#FFFFFF;font:inherit;font-size:15px;font-weight:600;color:#1D2A1C;padding:6px;cursor:pointer}
.svc-btn[aria-pressed="true"]{border:2px solid #477B44;background:#EEF5E6;font-weight:700;color:#2F5A2D}
.svc-btn[aria-pressed="true"]::before{content:"\2713\00a0"}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{margin:0;padding:12px 14px;border-radius:10px;background:#EEF5E6;color:#2F5A2D;font-weight:600}
.form-msg.err{background:#FBEDEA;color:#8A2A1B}
.qform input:invalid:focus{border-color:#C0392B}

/* seasonal (leaf clearance) items are hidden out of season by site.js */
[data-season][data-off]{display:none!important}

/* ---------- homepage ---------- */
@media (max-width: 1000px){
 #work-track{margin-left:-24px!important;margin-right:-24px!important;padding-left:24px!important;padding-right:24px!important;scroll-padding-left:24px}
}
@media (min-width: 761px) and (max-width: 1000px){
 .reviews{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important}
 .reviews blockquote{font-size:17px!important}
}
@media (max-width: 760px){
 .hero-in{height:620px!important}
 .hz1{height:156px!important}
 .hz2{height:auto!important;padding-top:48px!important}
 .hero-p{font-size:18px!important}
 .h2big{font-size:36px!important}
 .qform{padding:20px!important}
 .tile-main{grid-row:auto!important;min-height:340px}
}

/* ---------- service pages ---------- */
@media (min-width: 1001px){
 .mt-hero-img{object-position:50% calc(95px - 21.84vw)!important}
}
/* tablet + phone: same crop as laptop (the same point in the photo sits 95px from the top, so only a little sky) */
@media (max-width: 1000px){
 .mt-hero-img{inset:auto!important;top:95px!important;left:50%!important;width:auto!important;max-width:none;aspect-ratio:1830/1240;height:max(calc((100% - 95px) * 1.4756), 67.76vw)!important;transform:translate(-50%,-32.23%)}
}
@media (min-width: 761px){
 .lw-wide{grid-column: span 2}
}
@media (min-width: 761px) and (max-width: 1000px){
 .svc-tiles{grid-template-columns:1fr 1fr!important}
}
@media (max-width: 760px){
 .svc-hero-in{min-height:460px!important;padding-top:120px!important;padding-bottom:44px!important}
 .svc-hero-in p{font-size:18px!important}
 .svc-tiles{grid-template-columns:1fr 1fr!important;gap:10px!important}
 .svc-tiles a{height:120px!important;font-size:19px!important;padding:12px!important}
 .ba-grid{grid-template-columns:1fr!important}
}

/* ---------- shared tablet + phone ---------- */
@media (min-width: 761px) and (max-width: 1000px){
 .nav-sec{display:none!important}
 .mmenu{display:flex!important;order:3;margin-left:-16px}
 .site-head nav[aria-label="Main"]{order:2;margin-left:auto}
 .site-head nav[aria-label="Main"] > a{white-space:nowrap}
}
@media (min-width: 1001px){ .mobile-menu{display:none!important} }
@media (max-width: 760px){
 .nav-sec{display:none!important}
 .trust{display:grid!important;grid-template-columns:1fr 1fr;justify-items:start;font-size:14px!important;padding:18px 20px!important}
 .sec,#quote{padding-top:48px!important;padding-bottom:56px!important}
 .wbtn{display:none!important}
 .hero-quote{display:none!important}
 .site-head{position:fixed!important;left:0;right:0;top:0;box-shadow:none!important;transition:transform .25s ease,background-color .25s ease!important}
 .site-head:not(.menu-open):not(.scrolled){background:transparent!important}
 .site-head.hide:not(.menu-open){transform:translateY(-100%)}
 .mmenu{display:flex!important;flex:none;margin-right:-10px}
 .site-head nav[aria-label="Main"]{display:none!important}
 /* logo and menu button always on one line, logo shrinks a little on narrow phones */
 .site-head > div{flex-wrap:nowrap!important;gap:12px!important;min-height:72px!important}
 .site-head > div > a:first-child{min-width:0}
 .site-head > div > a:first-child img{height:auto!important;width:min(230px, calc(100vw - 112px))!important}
 /* nothing can make the page slide sideways */
 html,body{overflow-x:clip}
 .mbar{display:grid!important;grid-template-columns:1fr 1fr 1.3fr;position:fixed;left:0;right:0;bottom:0;height:68px;background:#FFFFFF;border-top:1px solid #DDE5D6;box-shadow:0 -4px 14px rgba(0,0,0,.08);z-index:30}
 footer{padding-bottom:96px!important}
}

/* simple text pages (privacy, 404) */
.prose h2{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:26px;color:#1D2A1C;margin:28px 0 8px}
.prose p,.prose ul{margin:0 0 12px}
/* Phone: quote form service buttons two to a row, so they don't fill the screen */
@media (max-width: 760px){
 .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .svc-grid .svc-btn{font-size:14px;line-height:1.2;padding:6px 8px}
}
/* Quote form photo box: the whole box opens the photo picker; the file input stays reachable by keyboard */
.photo-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.photo-box{position:relative}
.photo-box:hover,.photo-box.drag{border-color:#477B44!important;background:#F4F8F0}
.photo-box:focus-within{outline:3px solid #89BD51;outline-offset:2px}
