/* ══════════════════════════════════════════════════════════════
   Single listing page. Loads on top of space-for-lease.css, which
   carries the shared card and pin styles.

   Layout mirrors the listing page this replaces. Every block hides
   when its field is empty, so a thin listing reads as a short page
   rather than a set of gaps.
   ══════════════════════════════════════════════════════════════ */

/* No top padding. The featured band runs under the fixed nav the way every
   other hero on the site does, so the transparent nav sits on a dark image
   instead of on white, where its ivory text disappeared. */
.jmi-listing-single{background:#fff}

/* ══ 00 FEATURED IMAGE ══ */
/* Darkened at the top as well as the bottom, so nav text stays legible over
   a bright photograph. */

/* ══ 01 HEADER ══ */
/* The featured image hero was removed, since the gallery below the title
   already leads with the same image. This block now carries the clearance
   for the fixed navigation. */
.lzs-top{padding:calc(var(--nav-h) + 44px) 0 0;background:#fff;
  border-bottom:1px solid rgba(31,91,71,.16)}
.lzs-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap}
.lzs-titlebar h1{font-size:clamp(28px,3.2vw,42px);color:var(--green);margin:0;line-height:1.1}
.lzs-addr{font-size:16px;color:var(--muted);margin-top:9px}
.lzs-rate{text-align:right}
.lzs-rate .v{display:block;font-family:var(--font-display);font-size:clamp(22px,2.4vw,30px);
  color:var(--green);line-height:1.1}
.lzs-rate .k{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--quiet);margin-top:7px}

/* ══ 02 BODY ══ */
.lzs-body{padding:44px 0 88px;background:#fff}
/* minmax(0,1fr) rather than 1fr on the left track. A grid track sized 1fr still
   takes its minimum from its content, and the thumbnail row is a flex row of
   fixed width items, so its minimum grew with every image added and pushed the
   right column off the page. minmax(0,...) lets the track be narrower than its
   content, and the row below wraps instead. */
.lzs-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.lzs-grid > *{min-width:0}

/* Gallery */
.lzs-stage{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--stone)}
.lzs-stage img{width:100%;height:100%;object-fit:cover}
.lzs-stage .ph{position:absolute;inset:0}
.lzs-arw{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;cursor:pointer;
  background:rgba(23,63,50,.62);border:0;color:var(--ivory);display:flex;align-items:center;
  justify-content:center;transition:background .3s var(--ease)}
.lzs-arw:hover{background:var(--brand-accent);color:var(--green-deep)}
.lzs-arw svg{width:19px;height:19px;display:block}
.lzs-arw svg,.lzs-arw svg *{stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.lzs-arw.prev{left:0}
.lzs-arw.next{right:0}
/* Wraps to a second row instead of scrolling sideways, so a gallery of any
   length leaves the column the same width. */
.lzs-thumbs{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 0;padding:0}
.lzs-thumbs li{flex:none}
/* position:relative is load bearing. The placeholder inside is absolutely
   positioned, so without it the placeholder anchors to the viewport and
   paints its stripes across the whole page. */
.lzs-thumb{position:relative;width:118px;height:80px;padding:0;border:0;background:none;
  cursor:pointer;display:block;overflow:hidden;opacity:.6;outline:2px solid transparent;
  transition:opacity .3s var(--ease),outline-color .3s var(--ease)}
.lzs-thumb img{width:100%;height:100%;object-fit:cover}
.lzs-thumb .ph{position:absolute;inset:0;padding:4px}
.lzs-thumb .ph span{font-size:8px;padding:4px 5px;letter-spacing:.08em}
.lzs-thumbs-ph .lzs-thumb{opacity:.55;cursor:default}
.lzs-thumb:hover{opacity:1}
.lzs-thumb.on{opacity:1;outline-color:var(--brand-accent)}

/* Blocks */
.lzs-block{margin-top:52px;scroll-margin-top:calc(var(--nav-h,88px) + 20px)}
.lzs-block h2{font-size:clamp(21px,2.2vw,28px);color:var(--green);margin:0 0 20px}
.lzs-prose p{font-size:16px;color:var(--muted);line-height:1.7;max-width:66ch}
.lzs-prose p + p{margin-top:16px}

.lzs-dl{margin:0;border-top:1px solid rgba(31,91,71,.16)}
.lzs-dl > div{display:grid;grid-template-columns:210px 1fr;gap:20px;padding:15px 2px;
  border-bottom:1px solid rgba(31,91,71,.12)}
.lzs-dl dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  color:var(--quiet);margin:0}
.lzs-dl dd{font-size:16px;color:var(--ink);margin:0}

.lzs-hi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:11px 28px}
.lzs-hi li{position:relative;padding-left:20px;font-size:16px;color:var(--muted)}
.lzs-hi li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;
  background:var(--brand-accent)}

.lzs-table{border:1px solid rgba(31,91,71,.2);overflow-x:auto}
.lzs-table table{width:100%;border-collapse:collapse;background:#fff}
.lzs-table th{font-family:var(--font-body);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--quiet);text-align:left;padding:15px 18px;
  border-bottom:1px solid rgba(31,91,71,.2)}
.lzs-table td{font-size:15px;color:var(--ink);padding:15px 18px;
  border-bottom:1px solid rgba(31,91,71,.12)}
.lzs-table tr:last-child td{border-bottom:0}

.lzs-map{height:360px;background:var(--stone);border:1px solid rgba(31,91,71,.2);
  position:relative;z-index:0;isolation:isolate}

/* ══ RAIL ══ */
.lzs-rail{position:sticky;top:calc(var(--nav-h,88px) + 20px)}
.lzs-rail-h{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;
  color:var(--quiet);margin:0 0 14px}

.lzs-doc{display:flex;align-items:center;gap:11px;background:var(--green-deep);color:var(--ivory);
  padding:15px 18px;font-size:13px;letter-spacing:.04em;font-weight:700;
  transition:background .3s var(--ease)}
.lzs-doc:hover{background:var(--brand-accent);color:var(--green-deep)}
.lzs-doc svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;flex:none}

.lzs-agents{margin-top:26px;display:grid;gap:22px}
.lzs-agent{display:grid;grid-template-columns:74px 1fr;gap:16px;align-items:start}
.lzs-face{width:74px;height:74px;border-radius:50%;object-fit:cover;background:var(--stone)}
.lzs-face-none{display:flex;align-items:center;justify-content:center;background:var(--green-deep);
  color:var(--brand-accent);font-family:var(--font-display);font-size:26px}
.lzs-agent-name{font-family:var(--font-display);font-size:18px;color:var(--ink);margin:0}
.lzs-agent-role{font-size:12px;color:var(--quiet);margin:3px 0 0}
.lzs-agent-lines{list-style:none;margin:9px 0 0;padding:0}
.lzs-agent-lines li{font-size:13px;color:var(--muted);line-height:1.7}
.lzs-agent-lines a{color:var(--green);font-weight:600;transition:color .3s var(--ease)}
.lzs-agent-lines a:hover{color:#7A6224}
.lzs-agent-lines .lbl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet)}

.lzs-share{margin-top:34px;padding-top:26px;border-top:1px solid rgba(31,91,71,.16)}
.lzs-share-row{display:flex;gap:9px;flex-wrap:wrap}
/* All five share controls are anchors. The copy control was a button and was
   the only icon that failed to draw, so the element type was the variable.
   Keep them the same element unless there is a reason not to. */
.lzs-sh{width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:var(--green-deep);border:0;color:var(--ivory);flex:none;
  transition:background .3s var(--ease)}
.lzs-sh:hover{background:var(--brand-accent);color:var(--green-deep)}
.lzs-sh svg{width:18px;height:18px;display:block}
.lzs-sh svg,.lzs-sh svg *{stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.lzs-copied{display:inline-block;margin-top:11px;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:700;color:#7A6224}
/* The attribute has to win, or the note sits on screen permanently. */
.lzs-copied[hidden]{display:none}

.lzs-ask{margin-top:34px;padding-top:26px;border-top:1px solid rgba(31,91,71,.16)}
.lzs-form{width:100%;min-height:520px;border:0;display:block}

/* ══ 03 MORE ══ */
.lzs-more{padding:88px 0}
.lzs-more-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.lzs-more-head h2{font-size:clamp(24px,2.6vw,34px)}

@media(max-width:1024px){
  .lzs-grid{grid-template-columns:1fr;gap:48px}
  .lzs-rail{position:static}
  .lzs-body{padding:36px 0 64px}
  .lzs-dl > div{grid-template-columns:170px 1fr;gap:16px}
}
@media(max-width:600px){
  .lzs-top{padding:calc(var(--nav-h) + 32px) 0 0}
  .lzs-titlebar{gap:18px}
  .lzs-rate{text-align:left}
  .lzs-hi{grid-template-columns:1fr}
  .lzs-dl > div{grid-template-columns:1fr;gap:5px;padding:13px 2px}
  .lzs-block{margin-top:40px}
  .lzs-thumb{width:96px;height:66px}
  .lzs-more{padding:64px 0}
}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none}
}

/* GoHighLevel embed. */
.ghl-form{margin-top:18px;background:#fff;border:1px solid rgba(31,91,71,.2);padding:6px}
.ghl-form iframe{display:block;width:100%;border:0}
