/*
 * LWW Mega Menu. Ported from the approved preview (mega-menu-preview/template.html). Every class
 * carries the lmm- prefix and the --lmm-* tokens below are the override surface; nothing here reads
 * Divi's globals. The element resets under .lmm exist because Divi styles bare h3, p, ul and a.
 */

.lmm {
	--lmm-green: #2c7035;
	--lmm-green-dk: #1f5427;
	--lmm-green-xdk: #163d1d;
	--lmm-green-lt: #5d9f66;
	--lmm-tint: #edf5ee;
	--lmm-glass: #e2efe5;
	--lmm-red: #cc1e1e;
	--lmm-red-dk: #a71616;
	--lmm-ink: #14211b;
	--lmm-muted: #56645b;
	--lmm-line: #dde5de;
	--lmm-white: #fff;
	--lmm-soft: #f5f8f4;
	--lmm-skel: #e9eeea;
	--lmm-shadow: 0 22px 44px -20px rgba(16, 40, 24, .38);
	--lmm-display: "Vollkorn", Georgia, "Times New Roman", serif;
	--lmm-body: "Assistant", "Segoe UI", Helvetica, Arial, sans-serif;
	--lmm-top: var(--wp-admin--admin-bar--height, 0px);
	/* Same as the page's Divi rows (90% wide, 1300px max), so the header lines up with the content. */
	--lmm-wrap: min(90%, 1300px);
	font-family: var(--lmm-body);
	font-size: 16px;
	line-height: 1.45;
	color: var(--lmm-ink);
	text-align: left;
}
.lmm, .lmm *, .lmm *::before, .lmm *::after { box-sizing: border-box; }
.lmm a { color: inherit; text-decoration: none; }
.lmm ul, .lmm li { margin: 0; padding: 0; list-style: none; }
.lmm h3, .lmm p { margin: 0; padding: 0; font-family: var(--lmm-body); color: inherit; line-height: inherit; }
.lmm button { font: inherit; color: inherit; letter-spacing: normal; text-transform: none; margin: 0; }
.lmm img { height: auto; }
.lmm :focus-visible { outline: 3px solid var(--lmm-green); outline-offset: 2px; }
.lmm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html.lmm-locked, html.lmm-locked body { overflow: hidden; }
/*
 * The site's Divi custom CSS sets #et-boc { overflow-x: hidden }, which makes the wrapper a scroll
 * container and stops the header sticking. clip trims sideways overflow the same way without
 * creating a scroll container.
 */
body.lmm-on #et-boc { overflow-x: clip; }

/* promo + top bar */
.lmm-promo { background: linear-gradient(90deg, var(--lmm-red), var(--lmm-red-dk)); color: #fff; }
.lmm-promo-in { width: var(--lmm-wrap); margin-inline: auto; padding: 7px 0; display: flex; align-items: center; gap: 16px; min-height: 36px; }
.lmm-promo-link { font-weight: 700; font-size: 14.5px; display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: #fff; }
.lmm-promo-link svg { flex: none; width: 16px; height: 16px; fill: none; stroke: #fff; stroke-width: 2; }
/* The arrow sits a touch faded and steps right, at full white, when the offer link is hovered. */
.lmm-promo-link .lmm-promo-arrow { width: 14px; height: 14px; margin-left: -2px; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .8; transition: opacity .2s ease, transform .2s ease; }
.lmm-promo-link:is(:hover, :focus-visible) .lmm-promo-arrow { opacity: 1; transform: translateX(1px); }
.lmm-util { margin: 0 0 0 auto !important; display: flex; gap: 18px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.lmm-util a { color: #fff; opacity: .92; }
.lmm-util a:hover { opacity: 1; text-decoration: underline; }
.lmm-util-phone { display: none !important; }
.lmm-util-phone a { display: inline-flex; align-items: center; gap: 6px; }
.lmm-util-phone svg { flex: none; width: 14px; height: 14px; fill: #fff; }

/* header */
.lmm-head { position: sticky; top: var(--lmm-top); z-index: 9990; background: var(--lmm-white); border-bottom: 3px solid var(--lmm-green); --lmm-shrink: 32px; transition: margin-bottom .25s ease, box-shadow .2s ease; }
.lmm-head.lmm-scrolled { box-shadow: 0 6px 18px -10px rgba(0, 0, 0, .3); }
.lmm-row { width: var(--lmm-wrap); margin-inline: auto; padding: 0; height: 112px; display: flex; align-items: center; gap: 20px; }
.lmm-logo { flex: none; display: block; }
.lmm-logo img { display: block; height: 100px; width: auto; max-width: none; }
.lmm-row, .lmm-logo img { transition: height .25s ease; }

/*
 * Once the page scrolls on, the header slims (row 112 to 80px, logo to 64px). The same amount goes on
 * as bottom margin, so the page below keeps its place: nothing reflows and scroll anchoring has nothing
 * to correct. The margin sits behind the pinned header; lmm-snap skips the animation when it would not.
 */
.lmm-head.lmm-compact { margin-bottom: var(--lmm-shrink); }
.lmm-head.lmm-compact .lmm-row { height: calc(112px - var(--lmm-shrink)); }
.lmm-head.lmm-compact .lmm-logo img { height: 64px; }
.lmm-head.lmm-snap, .lmm-snap .lmm-row, .lmm-snap .lmm-logo img { transition: none; }
.lmm-nav { flex: 1; min-width: 0; display: flex; justify-content: center; align-self: stretch; }
.lmm-navlist { display: flex; align-items: stretch; }
.lmm-tl { display: flex; }
.lmm .lmm-top { font-size: 17px; font-weight: 700; color: var(--lmm-ink); background: none; border: 0; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 0 14px; position: relative; white-space: nowrap; }
.lmm-top::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -3px; height: 3px; background: var(--lmm-green); transform: scaleX(0); transition: transform .18s ease; }
.lmm .lmm-top:hover, .lmm-tl.lmm-open .lmm-top, .lmm .lmm-top[aria-current] { color: var(--lmm-green); }
.lmm-tl.lmm-open .lmm-top::after, .lmm-top:hover::after { transform: scaleX(1); }
.lmm-chev { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s ease; }
.lmm-tl.lmm-open .lmm-chev { transform: rotate(180deg); }
.lmm-actions { flex: none; display: flex; align-items: center; gap: 12px; }
.lmm-icon-btn { width: 42px; height: 42px; padding: 0; border-radius: 50%; border: 1px solid var(--lmm-line); background: var(--lmm-white); color: var(--lmm-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lmm-icon-btn:hover, .lmm-icon-btn[aria-expanded="true"] { border-color: var(--lmm-green); color: var(--lmm-green); }
.lmm-icon-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.lmm-phone { display: inline-flex; align-items: center; gap: 7px; font-weight: 800; font-size: 17px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lmm-phone svg { width: 17px; height: 17px; fill: var(--lmm-green); }
.lmm .lmm-cta { background: var(--lmm-green-dk); color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; padding: 12px 18px; border-radius: 6px; white-space: nowrap; }
.lmm .lmm-cta:hover { background: var(--lmm-green-xdk); }
.lmm-m-call, .lmm-m-menu { display: none; }

/* mega panels */
.lmm-panel { position: absolute; left: 0; right: 0; top: 100%; margin-top: 3px; background: var(--lmm-white); box-shadow: var(--lmm-shadow); border-top: 1px solid var(--lmm-line);
	max-height: min(560px, calc(100vh - var(--lmm-top) - 160px)); overflow-y: auto; overscroll-behavior: contain; opacity: 0; transform: translateY(-6px); transition: opacity .16s ease, transform .16s ease; cursor: default; font-size: 16px; }
.lmm-panel.lmm-in { opacity: 1; transform: none; }
.lmm-panel.lmm-swap { transition: none; }
.lmm-panel[hidden] { display: none; }
.lmm-panel-in { width: var(--lmm-wrap); margin-inline: auto; padding: 26px 0 24px; display: grid; gap: 32px; }
.lmm-pt-columns { grid-template-columns: var(--lmm-grid, repeat(3, minmax(0, 1fr))); }
.lmm-pt-offers { grid-template-columns: minmax(0, 1fr); padding-block: 20px 18px; }
.lmm-pt-reviews { grid-template-columns: minmax(0, 1fr); }
.lmm-col { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.lmm .lmm-grp-h { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--lmm-line); font-size: 12.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--lmm-muted); }
.lmm-links a { display: block; padding: 6px 0; font-weight: 700; font-size: 16.5px; color: var(--lmm-green); }
.lmm-links a:hover { color: var(--lmm-green-dk); text-decoration: underline; text-underline-offset: 3px; }
.lmm-tiles { display: grid; grid-template-columns: repeat(var(--lmm-cols, 4), minmax(0, 1fr)); gap: 10px; }
.lmm-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 92px; padding: 12px 8px; border: 1px solid var(--lmm-line); border-radius: 10px; background: var(--lmm-white); text-align: center; font-weight: 700; font-size: 14.5px; line-height: 1.2; transition: border-color .15s, background .15s, transform .15s; }
.lmm .lmm-tile { color: var(--lmm-green); }
.lmm-tile:hover { border-color: var(--lmm-green); background: var(--lmm-tint); transform: translateY(-1px); }
.lmm-ico { width: 40px; height: 40px; flex: none; fill: none; stroke: var(--lmm-green-dk); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.lmm-ico .g { fill: var(--lmm-glass); }
.lmm-ico .op { stroke-dasharray: 3 2.6; stroke-width: 1.3; }
.lmm-ico .ar { stroke: var(--lmm-green-lt); stroke-width: 1.9; }
.lmm-ico .gh { stroke: var(--lmm-muted); stroke-dasharray: 3 2.6; stroke-width: 1.3; }
.lmm-ico .mu { stroke-width: 1.1; }
.lmm-ico .dt { fill: var(--lmm-green-dk); stroke: none; }

.lmm-feature { display: flex; flex-direction: column; background: var(--lmm-soft); border-radius: 12px; overflow: hidden; height: 100%; min-height: 0; }
.lmm .lmm-feature-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; max-width: 100%; }
.lmm .lmm-feature-img.lmm-banner { aspect-ratio: 16 / 9; }
.lmm-feature-tx { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
.lmm-feature-eb { font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--lmm-muted); }
.lmm-feature-t { font-family: var(--lmm-display); font-size: 21px; font-weight: 700; line-height: 1.15; }
.lmm-feature-p { font-size: 14.5px; color: var(--lmm-muted); }
.lmm-feature-cta { margin-top: 6px; font-weight: 800; color: var(--lmm-green); font-size: 15px; }
.lmm-feature:hover .lmm-feature-cta { text-decoration: underline; text-underline-offset: 3px; }
.lmm .lmm-feature-solid { background: var(--lmm-green); color: #fff; }
.lmm-feature-solid .lmm-feature-eb { color: #cfe8d3; }
.lmm-feature-solid .lmm-feature-p { color: #e4f1e6; }
.lmm-feature-solid .lmm-feature-cta { color: #fff; }
.lmm-feature-solid .lmm-feature-tx { padding: 20px 20px 22px; justify-content: center; height: 100%; }

/* offers */
.lmm-offers { display: grid; grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 1fr)); gap: 12px; }
.lmm-offers > li { display: flex; min-width: 0; }
.lmm-offers > li:first-child { grid-row: span 3; }
.lmm-offers > li.lmm-o-wide { grid-column: span 2; }
.lmm-offer { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border: 1px solid var(--lmm-line); border-radius: 12px; transition: border-color .15s, background .15s; }
.lmm-offer:hover { border-color: var(--lmm-green); background: var(--lmm-tint); }
.lmm .lmm-o-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; background: var(--lmm-skel); }
.lmm-offer.lmm-has-img { flex-direction: row; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; }
.lmm .lmm-offer.lmm-has-img .lmm-o-img { flex: none; width: clamp(130px, 26%, 180px); }
.lmm-o-body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.lmm .lmm-offer-lead { padding: 0; gap: 0; overflow: hidden; border: 0; background: var(--lmm-green-dk); color: #fff; }
.lmm .lmm-offer-lead:hover { background: var(--lmm-green-dk); }
.lmm .lmm-offer-lead .lmm-o-img { border-radius: 0; }
.lmm-ol-tx { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 14px 18px 16px; }
.lmm-ol-eb { font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #cfe8d3; }
.lmm-ol-title { font-family: var(--lmm-display); font-size: 23px; font-weight: 700; line-height: 1.15; color: #fff; text-wrap: balance; }
.lmm-ol-row { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 12px; }
.lmm-cd { display: flex; gap: 6px; }
.lmm-cd-u { display: flex; flex-direction: column; align-items: center; min-width: 50px; padding: 6px 4px 5px; border-radius: 8px; background: rgba(255, 255, 255, .12); }
.lmm-cd-u b { font-size: 19px; font-weight: 800; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.lmm-cd-u i { font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #cfe8d3; margin-top: 3px; }
.lmm-cd-end { font-size: 14px; font-weight: 700; color: #fff; }
.lmm-offer-lead .lmm-o-text { font-size: 14.5px; color: #e8f3ea; }
.lmm .lmm-offer-lead .lmm-o-dates { margin-top: 0; color: #cfe8d3; }
.lmm-ol-cta { background: var(--lmm-red); color: #fff; font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; padding: 10px 14px; border-radius: 6px; white-space: nowrap; }
.lmm-offer-lead:hover .lmm-ol-cta { background: var(--lmm-red-dk); }
.lmm-o-eb { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--lmm-green); }
.lmm-o-title { font-size: 15.5px; font-weight: 800; line-height: 1.3; color: var(--lmm-ink); }
.lmm-o-dates { margin-top: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; font-size: 12.5px; font-weight: 600; color: var(--lmm-muted); font-variant-numeric: tabular-nums; }
.lmm-o-dates svg { width: 13px; height: 13px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.lmm-o-text { font-size: 13.5px; line-height: 1.4; color: var(--lmm-muted); }
.lmm-empty { font-weight: 800; color: var(--lmm-green); }

/* reviews */
.lmm-rv { display: flex; flex-direction: column; gap: 20px; }
/* Reviews carousel: a native scroll-snap track, so it swipes on touch, works inside a hidden panel
   and survives being copied into the drawer. Five cards show at a time on desktop. */
.lmm-rv-head { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 10px; border-bottom: 1px solid var(--lmm-line); }
.lmm .lmm-rv-head .lmm-grp-h { flex: 1; margin: 0; border-bottom: 0; }
.lmm-rv-nav { display: flex; gap: 6px; padding-bottom: 6px; }
.lmm .lmm-rv-btn { width: 34px; height: 34px; padding: 0; border-radius: 50%; border: 1px solid var(--lmm-line); background: var(--lmm-white); color: var(--lmm-green); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lmm .lmm-rv-btn:hover:not(:disabled) { border-color: var(--lmm-green); background: var(--lmm-tint); }
.lmm .lmm-rv-btn:disabled { color: var(--lmm-line); cursor: default; }
.lmm-rv-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.lmm-rv-cards { --lmm-rv-per: 5; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--lmm-rv-per) - 1) * 12px) / var(--lmm-rv-per)); gap: 12px;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 2px 0; }
.lmm-rv-cards::-webkit-scrollbar { display: none; }
.lmm-rv-cards > li { display: flex; scroll-snap-align: start; min-width: 0; }
.lmm-rv-cards:focus-visible { outline-offset: 4px; }
.lmm-rv-card { flex: 1; display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 16px 16px 14px; border: 1px solid var(--lmm-line); border-radius: 12px; transition: border-color .15s, background .15s; }
.lmm-rv-card:hover { border-color: var(--lmm-green); background: var(--lmm-tint); }
.lmm-rv-stars { display: flex; gap: 2px; color: #f4b400; }
.lmm-rv-stars svg { width: 15px; height: 15px; fill: currentColor; }
.lmm-rv-q { display: block; font-size: 15px; line-height: 1.5; }
.lmm-rv-by { margin-top: auto; font-size: 13.5px; color: var(--lmm-muted); }
.lmm-rv-by b { color: var(--lmm-ink); }
.lmm-aw-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 28px; padding-top: 16px; border-top: 1px solid var(--lmm-line); }
.lmm .lmm-aw-h { font-size: 12.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--lmm-muted); }
.lmm-aw { display: flex; align-items: center; min-width: 0; }
/* The badges come from the homepage shortcode, which lays them out as a 12-across grid with
   300px images. Inside the panel they become a wrapping row of fixed-height logos. */
.lmm .lmm-aw .acf-gallery { display: flex !important; flex-wrap: wrap; align-items: center; gap: 12px 26px; width: auto; margin: 0; padding: 0; }
.lmm .lmm-aw .acf-gallery > * { display: flex; align-items: center; width: auto; margin: 0; padding: 0; }
.lmm .lmm-aw img { display: block; height: 58px !important; width: auto !important; max-width: 120px !important; object-fit: contain; margin: 0; }

/* panel footer */
.lmm-pfoot { background: var(--lmm-soft); border-top: 1px solid var(--lmm-line); }
.lmm-pf-in { width: var(--lmm-wrap); margin-inline: auto; padding: 12px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; }
.lmm-pf-all { font-weight: 800; color: var(--lmm-green); }
.lmm .lmm-pf-all { color: var(--lmm-green); }
.lmm-pf-all:hover { text-decoration: underline; text-underline-offset: 3px; }
.lmm-pf-help { margin-left: auto; font-size: 15px; color: var(--lmm-muted); }
.lmm-pf-help a { font-weight: 800; color: var(--lmm-ink); font-variant-numeric: tabular-nums; }
.lmm .lmm-pf-cta { border: 2px solid var(--lmm-green); color: var(--lmm-green); font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; padding: 7px 12px; border-radius: 6px; }
.lmm .lmm-pf-cta:hover { background: var(--lmm-green); color: #fff; }

/* menu search */
.lmm-find { position: absolute; top: 100%; right: calc((100% - var(--lmm-wrap)) / 2); margin-top: 3px; width: min(440px, calc(100% - 48px)); background: var(--lmm-white); box-shadow: var(--lmm-shadow); border: 1px solid var(--lmm-line); border-radius: 0 0 12px 12px; padding: 14px; }
.lmm-find[hidden] { display: none; }
.lmm-find-field { display: flex; align-items: center; gap: 8px; border: 1.5px solid var(--lmm-line); border-radius: 10px; padding: 0 12px; height: 46px; background: var(--lmm-white); }
.lmm-find-field:focus-within { border-color: var(--lmm-green); }
.lmm-find-field svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--lmm-muted); stroke-width: 2; stroke-linecap: round; }
.lmm .lmm-find-field input { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; outline: 0; box-shadow: none; font: inherit; font-size: 16px; color: var(--lmm-ink); background: transparent; }
.lmm-res-wrap { margin-top: 10px; }
.lmm-res { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 8px; }
.lmm-res:hover, .lmm-res:focus-visible { background: var(--lmm-tint); }
.lmm-res-l { font-weight: 700; }
.lmm-res-l mark { background: #fff1b8; color: inherit; border-radius: 2px; padding: 0; }
.lmm-res-s { font-size: 13px; color: var(--lmm-muted); }
.lmm .lmm-res-empty { margin: 4px 2px; font-size: 14.5px; color: var(--lmm-muted); }
.lmm .lmm-res-empty a { font-weight: 800; color: var(--lmm-ink); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.lmm .lmm-res-site { display: block; margin-top: 6px; padding: 11px 10px; border-top: 1px solid var(--lmm-line); border-radius: 0 0 8px 8px; font-weight: 800; color: var(--lmm-green); overflow-wrap: anywhere; }
.lmm-sugg { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13.5px; color: var(--lmm-muted); }
.lmm .lmm-sugg button { font-size: 13.5px; font-weight: 700; border: 1px solid var(--lmm-line); background: var(--lmm-white); color: var(--lmm-ink); border-radius: 999px; padding: 4px 10px; cursor: pointer; }
.lmm .lmm-sugg button:hover { border-color: var(--lmm-green); color: var(--lmm-green); }

/* drawer (phone + tablet) */
.lmm-scrim { position: fixed; inset: var(--lmm-top) 0 0 0; z-index: 99990; background: rgba(10, 22, 15, .45); opacity: 0; transition: opacity .22s; }
.lmm-scrim.lmm-in { opacity: 1; }
.lmm-scrim[hidden] { display: none; }
.lmm-drawer { position: fixed; top: var(--lmm-top); right: 0; bottom: 0; z-index: 99991; width: min(420px, 100%); background: var(--lmm-white); display: flex; flex-direction: column;
	opacity: 0; transform: translateX(16px); visibility: hidden; transition: opacity .18s ease, transform .2s ease, visibility 0s linear .2s; box-shadow: -12px 0 30px -18px rgba(0, 0, 0, .4); }
.lmm-drawer.lmm-open { opacity: 1; transform: none; visibility: visible; transition: opacity .18s ease, transform .2s ease; }
.lmm-dr-top { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px 6px 18px; }
.lmm-dr-title { font-family: var(--lmm-display); font-size: 24px; font-weight: 700; }
.lmm-dr-close { width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 0; background: var(--lmm-soft); color: var(--lmm-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lmm-dr-close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.lmm-dr-find { padding: 4px 16px 12px; }
.lmm-dr-body { position: relative; flex: 1; min-height: 0; overflow: hidden; border-top: 1px solid var(--lmm-line); }
.lmm-dr-track { display: flex; width: 200%; height: 100%; transition: transform .24s ease; }
.lmm-dr-track.lmm-no-anim { transition: none; }
.lmm-dr-track.lmm-at-sub { transform: translateX(-50%); }
.lmm-dr-pane { width: 50%; height: 100%; overflow-y: auto; overscroll-behavior: contain; }
.lmm-dr-results { position: absolute; inset: 0; overflow-y: auto; background: var(--lmm-white); padding: 8px 8px 16px; }
.lmm-dr-results[hidden] { display: none; }
.lmm .lmm-dr-row { width: 100%; color: var(--lmm-ink); background: none; border: 0; border-bottom: 1px solid var(--lmm-line); border-radius: 0; display: flex; align-items: center; gap: 12px; padding: 12px 18px; min-height: 58px; text-align: left; cursor: pointer; }
.lmm .lmm-dr-row:hover { background: var(--lmm-soft); }
.lmm-dr-l { flex: 1; min-width: 0; font-size: 19px; font-weight: 800; }
.lmm-chev-r { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--lmm-green); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.lmm-dr-subhead { padding: 8px 16px 12px; border-bottom: 1px solid var(--lmm-line); position: sticky; top: 0; background: var(--lmm-white); z-index: 1; }
.lmm .lmm-dr-back { font-weight: 700; font-size: 15px; color: var(--lmm-green); background: none; border: 0; display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 0 8px 0 0; cursor: pointer; }
.lmm-dr-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.lmm-dr-titlerow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.lmm .lmm-dr-h { margin: 0; padding: 0; font-family: var(--lmm-display); font-size: 28px; font-weight: 700; line-height: 1.1; color: var(--lmm-ink); }
.lmm .lmm-dr-all { font-weight: 800; color: var(--lmm-green); font-size: 15px; }
.lmm-dr-groups { padding: 16px 16px 24px; display: flex; flex-direction: column; gap: 22px; }
.lmm-dr-groups .lmm-col { display: contents; }
.lmm-dr-groups .lmm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lmm-dr-groups .lmm-tile { flex-direction: row; justify-content: flex-start; text-align: left; min-height: 58px; padding: 8px 10px; gap: 10px; font-size: 15px; }
.lmm-dr-groups .lmm-ico { width: 32px; height: 32px; }
.lmm-dr-groups .lmm-links a { padding: 11px 0; font-size: 17px; border-bottom: 1px solid var(--lmm-line); }
.lmm-dr-groups .lmm-links li:last-child a { border-bottom: 0; }
.lmm-dr-groups .lmm-offers { grid-template-columns: minmax(0, 1fr); }
.lmm-dr-groups .lmm-offers > li:first-child, .lmm-dr-groups .lmm-offers > li.lmm-o-wide { grid-row: auto; grid-column: auto; }
.lmm-dr-groups .lmm-offer.lmm-has-img { flex-direction: column; align-items: stretch; gap: 10px; padding: 0 0 14px; overflow: hidden; }
.lmm .lmm-dr-groups .lmm-offer.lmm-has-img .lmm-o-img { width: 100%; border-radius: 0; }
.lmm-dr-groups .lmm-offer.lmm-has-img .lmm-o-body { padding: 0 16px; }
.lmm-dr-groups .lmm-ol-title { font-size: 20px; }
/* In the drawer one card shows with the next one peeking in, which says "swipe" without words. */
.lmm-dr-groups .lmm-rv-cards { grid-auto-columns: 84%; }
.lmm-dr-groups .lmm-rv-nav { display: none; }
.lmm-dr-groups .lmm-aw-row { flex-direction: column; align-items: flex-start; }
.lmm .lmm-dr-groups .lmm-aw .acf-gallery { gap: 12px 18px; }
.lmm .lmm-dr-groups .lmm-aw img { height: 46px !important; max-width: 96px !important; }
.lmm-dr-groups .lmm-feature:not(.lmm-has-banner) { flex-direction: row; align-items: stretch; }
.lmm .lmm-dr-groups .lmm-feature-img:not(.lmm-banner) { width: 110px; aspect-ratio: auto; height: auto; object-fit: cover; flex: none; }
.lmm-dr-groups .lmm-feature-t { font-size: 18px; }
.lmm-dr-foot { border-top: 1px solid var(--lmm-line); padding: 12px 16px 14px; display: flex; flex-direction: column; gap: 10px; background: var(--lmm-white); }
.lmm-dr-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lmm-btn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: 8px; font-weight: 800; font-size: 15px; text-align: center; padding: 0 10px; }
.lmm-btn svg { width: 17px; height: 17px; flex: none; }
.lmm .lmm-btn-call { border: 2px solid var(--lmm-green); color: var(--lmm-green); }
.lmm-btn-call svg { fill: var(--lmm-green); }
.lmm .lmm-btn-cta { background: var(--lmm-green-dk); color: #fff; text-transform: uppercase; letter-spacing: .05em; font-size: 14px; }
.lmm .lmm-btn-cta:hover { background: var(--lmm-green-xdk); }
.lmm-dr-util { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; font-size: 14px; font-weight: 600; color: var(--lmm-muted); }
.lmm-dr-util a { padding: 4px 0; }
/* The site's "Chat with us!" launcher is fixed 22px up from the bottom right and 56px tall, above
   everything. Where it loads, the footer keeps its buttons and links clear of it. */
body:has(.we-wc-launcher) .lmm-dr-foot { padding-bottom: 92px; }

/*
 * The full bar (logo, six items, search, phone, button) needs about 1215px of content, which the
 * 90% container only provides from about 1350px. Below 1340 the phone number moves up to the top bar,
 * and below 1100 spacing tightens and the logo steps down to 90px so the bar still fits at 980, where
 * the drawer takes over.
 */
@media (max-width: 1339px) {
	.lmm-row { gap: 14px; }
	.lmm .lmm-top { padding: 0 10px; font-size: 16px; }
	.lmm-top::after { left: 10px; right: 10px; }
	.lmm-phone { display: none; }
	.lmm-util-phone { display: list-item !important; }
}
@media (max-width: 1099px) {
	.lmm-logo img { height: 90px; }
	.lmm .lmm-top { padding: 0 8px; font-size: 15.5px; gap: 4px; }
	.lmm-top::after { left: 8px; right: 8px; }
	.lmm-actions { gap: 8px; }
	.lmm .lmm-cta { padding: 11px 13px; font-size: 13px; letter-spacing: .04em; }
}
@media (max-width: 1179px) {
	.lmm-pt-columns { grid-template-columns: var(--lmm-grid-md, repeat(3, minmax(0, 1fr))); }
	.lmm-many > .lmm-col:last-child { grid-column: 1 / -1; }
	.lmm-many > .lmm-col:last-child .lmm-feature-solid .lmm-feature-tx { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 14px 18px; }
	.lmm-rv-cards { --lmm-rv-per: 4; }
	.lmm-rv-card { padding: 14px 12px 12px; }
	.lmm-rv-q { font-size: 14px; }
	.lmm .lmm-aw img { height: 50px !important; }
	.lmm .lmm-panel .lmm-feature-img:not(.lmm-banner) { aspect-ratio: 16 / 8; }
}
@media (max-width: 979px) {
	.lmm-nav, .lmm-actions .lmm-phone, .lmm-actions .lmm-cta, .lmm-find-btn, .lmm-util, .lmm-find { display: none !important; }
	.lmm-m-call { display: inline-flex; width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--lmm-green); align-items: center; justify-content: center; }
	.lmm-m-call svg { width: 19px; height: 19px; fill: var(--lmm-green); }
	.lmm .lmm-m-menu { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px; border: 0; border-radius: 8px; background: var(--lmm-green); color: #fff; font-weight: 800; font-size: 16px; cursor: pointer; }
	.lmm-m-menu svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
	.lmm-row { height: 76px; justify-content: space-between; }
	.lmm-logo img { height: 60px; }
	.lmm-head { --lmm-shrink: 12px; }
	.lmm-head.lmm-compact .lmm-row { height: 64px; }
	.lmm-head.lmm-compact .lmm-logo img { height: 52px; }
	.lmm-promo-in { justify-content: center; text-align: center; }
	/* With no promo the bar would only hold the top bar links, which live in the drawer here. */
	.lmm-promo-bare { display: none; }
	.lmm-promo-link { font-size: 13.5px; }
}
/* The admin bar stops being fixed below 600px, so the header sticks to the very top there. */
@media (max-width: 600px) {
	.lmm { --lmm-top: 0px; }
}
@media (max-width: 340px) {
	.lmm-m-menu span { display: none; }
	.lmm .lmm-m-menu { padding: 0 13px; }
}
@media (prefers-reduced-motion: reduce) {
	.lmm, .lmm *, .lmm *::before, .lmm *::after { transition-duration: 0s !important; animation-duration: 0s !important; scroll-behavior: auto !important; }
}
