/* ---------------------------------------------------------------------------
   Linda LaFleur: site stylesheet.

   Linked after the shared stylesheets on every page. The first block (logo)
   applies everywhere; everything after it is scoped to .lf-home, her
   homepage (site/home.php), so inner pages keep the shared design until they
   get their own.

   Dark and cinematic: near black and plum charcoal, warm off-white type, her
   mauve as the one accent, lifted so it reads on black.
   --------------------------------------------------------------------------- */

/* --- Header: seal left, menu overlay, every page --------------------------- */
/* site/partials/header.php. Light bar on light pages, transparent over a
   hero, and a full screen dark panel behind Menu on every page. */

.lfh { background: var(--c-paper); color: var(--c-ink); box-shadow: 0 1px 0 var(--c-line); }
.lfh__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  width: min(1320px, 100% - 2 * var(--s-gutter));
  margin-inline: auto;
  min-height: 96px;
  position: relative;
  z-index: 2;
}
.lfh__brand { display: flex; align-items: center; gap: 1.1rem; color: inherit; text-decoration: none; }
.lfh__seal { width: 72px; height: 72px; display: block; transition: transform .5s ease; }
.lfh__brand:hover .lfh__seal { transform: rotate(-8deg); }
.lfh__seal--dark { display: none; }
.lfh__name { font-family: var(--f-body); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.34em; text-transform: uppercase; }
.lfh__right { display: flex; align-items: center; gap: clamp(1.25rem, 3vw, 2.75rem); }
.lfh__phone, .lfh__saved { color: inherit; text-decoration: none; font-family: var(--f-editorial); font-size: 1.1rem; }
.lfh__saved { font-family: var(--f-body); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; }
.lfh__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.6rem 0;
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}
.lfh__toggle-word--close { display: none; }
.lfh__toggle-lines { display: grid; gap: 6px; width: 26px; }
.lfh__toggle-lines i { display: block; height: 1px; background: currentColor; transition: transform .35s ease, width .35s ease; }
.lfh__toggle-lines i:last-child { width: 70%; justify-self: end; }
.lfh__toggle:hover .lfh__toggle-lines i:last-child { width: 100%; }

/* Over a hero: transparent, light type and the dark-background seal. */
.lfh.hnav--over { background: transparent; color: #f4efe9; box-shadow: none; }
.lfh.hnav--over .lfh__seal--light { display: none; }
.lfh.hnav--over .lfh__seal--dark { display: block; }
.lfh.hnav--over.is-solid {
  background: color-mix(in srgb, #0e0d0e 92%, transparent);
  backdrop-filter: blur(10px);
  color: #f4efe9;
  box-shadow: 0 1px 0 color-mix(in srgb, #f4efe9 11%, transparent);
}
.lfh.hnav--over.is-solid .lfh__bar { min-height: 80px; }
.lfh.hnav--over.is-solid .lfh__seal { width: 58px; height: 58px; }

/* Open. backdrop-filter on the bar makes it the containing block for its
   fixed children, which squeezed the full screen panel into the 80 pixel bar
   once the page had scrolled (the solid state carries the blur). No blur
   while the panel is open; the panel is opaque anyway. */
.lfh.is-open,
.lfh.hnav--over.is-solid.is-open { backdrop-filter: none; -webkit-backdrop-filter: none; background: transparent; box-shadow: none; }

/* Open: the bar sits over the dark panel on every page. */
.lfh.is-open { background: transparent; color: #f4efe9; box-shadow: none; }
.lfh.is-open .lfh__seal--light { display: none; }
.lfh.is-open .lfh__seal--dark { display: block; }
.lfh.is-open .lfh__toggle-word--open { display: none; }
.lfh.is-open .lfh__toggle-word--close { display: inline; }
.lfh.is-open .lfh__toggle-lines i:first-child { transform: translateY(3.5px) rotate(45deg); }
.lfh.is-open .lfh__toggle-lines i:last-child { width: 100%; transform: translateY(-3.5px) rotate(-45deg); }
body:has(.lfh.is-open) { overflow: hidden; }

.lfh__panel {
  position: fixed;
  inset: 0;
  z-index: 1;
  overflow-y: auto;
  background:
    radial-gradient(ellipse at 100% 0%, color-mix(in srgb, #7d5a68 32%, transparent), transparent 55%),
    #0e0d0e;
  color: #f4efe9;
  animation: lfh-in .35s ease;
}
.lfh__panel[hidden] { display: none; }
@keyframes lfh-in { from { opacity: 0; } to { opacity: 1; } }
.lfh__panel-inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(2rem, 7vw, 7rem);
  width: min(1320px, 100% - 2 * var(--s-gutter));
  margin-inline: auto;
  padding: 9rem 0 4rem;
  min-height: 100%;
  align-items: end;
}
.lfh__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; border-top: 1px solid color-mix(in srgb, #f4efe9 11%, transparent); }
.lfh__links a {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid color-mix(in srgb, #f4efe9 11%, transparent);
  color: #f4efe9;
  text-decoration: none;
  font-family: var(--f-editorial);
  font-size: clamp(1.6rem, 2.8vw, 2.5rem);
  line-height: 1.1;
  transition: color .25s ease, padding .35s ease;
}
.lfh__links a:hover, .lfh__links a[aria-current="page"] { color: #c9a3b3; padding-left: 0.5rem; }
.lfh__n { font-family: var(--f-data); font-size: 0.72rem; color: #c9a3b3; min-width: 1.6rem; }
.lfh__contact { border-left: 1px solid color-mix(in srgb, #f4efe9 11%, transparent); padding-left: clamp(1.5rem, 3vw, 2.5rem); }
.lfh__label { margin: 0 0 0.9rem; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: #c9a3b3; }
.lfh__reach { display: grid; gap: 0.35rem; margin: 0 0 2.75rem; font-family: var(--f-editorial); font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
.lfh__reach a { color: #f4efe9; text-decoration: none; width: fit-content; }
.lfh__reach a:hover { color: #c9a3b3; }
.lfh__office { margin: 0; color: color-mix(in srgb, #f4efe9 62%, transparent); line-height: 1.7; font-size: 0.9rem; }
.lfh__logout { margin-top: 2rem; }
.lfh__logout button { background: none; border: 0; padding: 0; color: #f4efe9; cursor: pointer; font: inherit; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; border-bottom: 1px solid #c9a3b3; }

.site-footer__brand img { width: 180px; height: auto; }

@media (max-width: 760px) {
  .lfh__bar { min-height: 76px; }
  .lfh__seal { width: 54px; height: 54px; }
  .lfh__name, .lfh__phone { display: none; }
  .lfh__panel-inner { grid-template-columns: 1fr; padding-top: 7rem; align-items: start; }
  .lfh__links { grid-template-columns: 1fr; }
  .lfh__contact { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .lfh__panel { animation: none; }
  .lfh__seal, .lfh__links a, .lfh__toggle-lines i { transition: none; }
}

/* --- Tokens ------------------------------------------------------------- */

.lf-home {
  --lf-black: #0e0d0e;
  --lf-plum: #17131a;
  --lf-line: color-mix(in srgb, #f4efe9 11%, transparent);
  --lf-text: #f4efe9;
  --lf-dim: color-mix(in srgb, #f4efe9 62%, transparent);
  --lf-faint: color-mix(in srgb, #f4efe9 40%, transparent);
  --lf-accent: #c9a3b3;
  --lf-pad: clamp(5rem, 11vw, 9rem);
  background: var(--lf-black);
  color: var(--lf-text);
}
.lf-home section { color: var(--lf-text); }
.lf-home h1, .lf-home h2, .lf-home h3 { color: var(--lf-text); font-weight: 400; }
.lf-home a { color: inherit; }
.lf-home em { font-style: italic; color: var(--lf-accent); }

.lf-wrap { width: min(1240px, 100% - 2 * var(--s-gutter)); margin-inline: auto; }

/* --- Type --------------------------------------------------------------- */

.lf-eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin: 0 0 1.4rem;
  font-family: var(--f-body);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--lf-accent);
}
.lf-rule { width: 2.5rem; height: 1px; background: currentColor; }

.lf-h2 {
  font-family: var(--f-editorial);
  font-size: clamp(2.3rem, 4.4vw, 3.6rem);
  line-height: 1.04;
  margin: 0;
}
.lf-h3 {
  font-family: var(--f-body);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--lf-dim);
  margin: 0 0 1.75rem;
}
.lf-lede { font-family: var(--f-editorial); font-size: clamp(1.45rem, 2.1vw, 1.85rem); line-height: 1.35; margin: 0 0 1.5rem; }
.lf-body { font-size: 1.02rem; line-height: 1.8; color: var(--lf-dim); margin: 0 0 1.5rem; max-width: 36rem; }

.lf-link {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--lf-accent);
  transition: gap .3s ease;
}
.lf-link::after { content: "\2192"; letter-spacing: 0; }
.lf-link:hover { gap: 1.4rem; }

.lf-btn {
  display: inline-block;
  padding: 1.05rem 2.2rem;
  background: var(--lf-accent);
  color: var(--lf-black) !important;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .25s ease;
}
.lf-btn:hover, .lf-btn:focus-visible { background: var(--lf-text); }

/* --- Hero --------------------------------------------------------------- */

.lf-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  isolation: isolate;
}
.lf-hero__img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.65) brightness(0.78);
  transform: scale(1.02);
}
.lf-home.is-loaded .lf-hero__img { animation: lf-push 20s ease-out forwards; }
@keyframes lf-push { to { transform: scale(1.1); } }
.lf-hero__veil {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--lf-black) 60%, transparent) 0%, transparent 28%),
    linear-gradient(0deg, var(--lf-black) 2%, color-mix(in srgb, var(--lf-black) 62%, transparent) 42%, transparent 80%);
}
.lf-hero__body { padding: 11rem 0 3.5rem; }
.lf-hero__title {
  font-family: var(--f-editorial);
  font-size: clamp(3rem, 7.6vw, 6.8rem);
  line-height: 0.98;
  letter-spacing: -0.01em;
  max-width: 12.5ch;
  margin: 0 0 2.5rem;
}
.lf-home .lf-search {
  max-width: 620px;
  margin: 0;
  border-radius: 0;
  background: color-mix(in srgb, var(--lf-text) 7%, transparent);
  border: 1px solid color-mix(in srgb, var(--lf-text) 28%, transparent);
  backdrop-filter: blur(6px);
}
.lf-home .lf-search input { color: var(--lf-text); background: transparent; }
.lf-home .lf-search input::placeholder { color: var(--lf-dim); }
.lf-home .lf-search button { color: var(--lf-text); border-radius: 0; background: transparent; }
.lf-hero__links { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 1.75rem 0 0; }
.lf-hero__links a {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--lf-text) 35%, transparent);
  transition: border-color .25s ease;
}
.lf-hero__links a:hover { border-bottom-color: var(--lf-accent); }
.lf-hero__fair {
  margin-top: 0;
  margin-bottom: 0;
  padding: 1.25rem 0 1.5rem;
  border-top: 1px solid var(--lf-line);
  font-size: 0.74rem;
  color: var(--lf-faint);
}
.lf-hero__fair a { text-decoration: underline; text-underline-offset: 3px; }

/* --- Meet --------------------------------------------------------------- */

.lf-meet { padding: var(--lf-pad) 0; }
.lf-meet__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.lf-meet__photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.lf-meet__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.04); transition: filter .9s ease; }
.lf-meet:hover .lf-meet__photo img { filter: grayscale(0.15); }
.lf-meet__reach { display: grid; gap: 0.3rem; margin: 2.25rem 0 2.5rem; font-family: var(--f-editorial); font-size: clamp(1.25rem, 1.9vw, 1.55rem); }
.lf-meet__reach a { text-decoration: none; width: fit-content; }
.lf-meet__reach a:hover { color: var(--lf-accent); }

/* --- What she works ----------------------------------------------------- */

.lf-works { padding: var(--lf-pad) 0; border-top: 1px solid var(--lf-line); }
.lf-works__inner { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.lf-works__head { position: sticky; top: 8rem; }
.lf-works__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lf-line); counter-reset: work; }
.lf-works__list li { border-bottom: 1px solid var(--lf-line); counter-increment: work; }
.lf-work {
  position: relative;
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) 2rem;
  grid-template-areas: "n title go" ". line go";
  gap: 0.6rem 1rem;
  padding: 2.4rem 0;
  text-decoration: none;
}
.lf-work::before {
  content: counter(work, decimal-leading-zero);
  grid-area: n;
  padding-top: 0.7rem;
  font-family: var(--f-data);
  font-size: 0.78rem;
  color: var(--lf-accent);
}
.lf-work__title { grid-area: title; font-family: var(--f-editorial); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.1; transition: color .3s ease, transform .4s ease; }
.lf-work__line { grid-area: line; color: var(--lf-dim); line-height: 1.75; max-width: 34rem; }
.lf-work__go { grid-area: go; align-self: center; justify-self: end; width: 1.6rem; height: 1px; background: var(--lf-accent); position: relative; transition: width .35s ease; }
.lf-work__go::after { content: ""; position: absolute; right: 0; top: -4px; width: 9px; height: 9px; border-top: 1px solid var(--lf-accent); border-right: 1px solid var(--lf-accent); transform: rotate(45deg); }
.lf-work:hover .lf-work__title, .lf-work:focus-visible .lf-work__title { color: var(--lf-accent); transform: translateX(0.4rem); }
.lf-work:hover .lf-work__go { width: 2.4rem; }

/* --- Sales history and the map ------------------------------------------ */

.lf-record { padding: var(--lf-pad) 0; background: var(--lf-plum); }
.lf-record__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 2.5rem; margin-bottom: 3.5rem; }
.lf-record__big { font-family: var(--f-editorial); font-size: clamp(3rem, 7vw, 6rem); line-height: 1; margin: 0; }
.lf-record__figs { display: flex; gap: clamp(1.5rem, 4vw, 3.5rem); margin: 0; }
.lf-record__figs div { border-left: 1px solid var(--lf-line); padding-left: 1.25rem; }
.lf-record__figs dt { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lf-dim); margin-bottom: 0.6rem; }
.lf-record__figs dd { margin: 0; font-family: var(--f-editorial); font-size: clamp(2.2rem, 3.6vw, 3rem); line-height: 1; }

.lf-map { margin: 0 0 4.5rem; }
.lf-map__canvas {
  height: clamp(360px, 48vw, 560px);
  background: #1a1a1c;
  border: 1px solid var(--lf-line);
}
.lf-map__towns { display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem; margin-top: 1.4rem; font-size: 0.84rem; color: var(--lf-dim); }
.lf-map__towns b { font-family: var(--f-data); font-weight: 400; color: var(--lf-accent); }

.lf-home .leaflet-container { font-family: var(--f-body); background: #1a1a1c; }
.lf-home .leaflet-control-attribution { background: color-mix(in srgb, var(--lf-black) 80%, transparent); color: var(--lf-faint); font-size: 10px; }
.lf-home .leaflet-control-attribution a { color: var(--lf-dim); }
.lf-home .leaflet-bar a { background: var(--lf-black); color: var(--lf-text); border-color: var(--lf-line); }
.lf-home .leaflet-bar a:hover { background: var(--lf-plum); }
.lf-home .leaflet-tooltip.lf-tip {
  background: var(--lf-black);
  color: var(--lf-text);
  border: 1px solid color-mix(in srgb, var(--lf-accent) 50%, transparent);
  border-radius: 0;
  box-shadow: none;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.lf-home .leaflet-tooltip.lf-tip::before { display: none; }

.lf-sold { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.lf-card { display: flex; flex-direction: column; text-decoration: none; }
.lf-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--lf-black); margin-bottom: 1.1rem; }
.lf-card__media img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.85) saturate(0.85); transition: transform .9s ease, filter .9s ease; }
.lf-card:hover .lf-card__media img { transform: scale(1.04); filter: none; }
.lf-card__meta { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lf-accent); margin-bottom: 0.5rem; }
.lf-card__addr { font-family: var(--f-editorial); font-size: 1.3rem; line-height: 1.25; }
.lf-card__price { font-family: var(--f-data); color: var(--lf-dim); margin: 0.35rem 0 0.6rem; }
.lf-card__attr { font-size: 0.72rem; color: var(--lf-faint); }

.lf-home .lf-source .source-note { color: var(--lf-faint); font-size: 0.72rem; margin: 3.5rem 0 0; max-width: 60rem; }

/* --- For sale nearby ---------------------------------------------------- */

.lf-near { padding: var(--lf-pad) 0; }
.lf-near__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; margin-bottom: 3rem; }
.lf-home .lf-near .idx-card { background: var(--lf-plum); border: 1px solid var(--lf-line); border-radius: 0; color: var(--lf-text); overflow: hidden; }
.lf-home .lf-near .idx-card * { color: inherit; border-color: var(--lf-line); }
.lf-home .lf-near .idx-card img { border-radius: 0; }
.lf-home .lf-near .idx-card [class*="attr"] { color: var(--lf-faint); }
.lf-home .lf-near .idx-card__status { background: var(--lf-black); color: var(--lf-text); border-radius: 0; letter-spacing: 0.2em; }
.lf-home .lf-near .idx-card button[class*="fav"] { background: color-mix(in srgb, var(--lf-black) 70%, transparent); color: var(--lf-text); }

/* --- Valuation and contact ---------------------------------------------- */

.lf-close {
  padding: var(--lf-pad) 0;
  border-top: 1px solid var(--lf-line);
  background: radial-gradient(ellipse at 0% 0%, color-mix(in srgb, var(--c-accent) 30%, transparent), transparent 55%), var(--lf-black);
}
.lf-close__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.lf-close__value .lf-h2 { margin-bottom: 1.5rem; }
.lf-close__value .lf-body { margin-bottom: 2.25rem; }
.lf-close__talk { border-left: 1px solid var(--lf-line); padding-left: clamp(1.5rem, 4vw, 3rem); }
.lf-close__reach { display: grid; gap: 0.35rem; margin: 0 0 2rem; font-family: var(--f-editorial); font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.lf-close__reach a { text-decoration: none; width: fit-content; }
.lf-close__reach a:hover { color: var(--lf-accent); }

/* --- Footer on the dark page -------------------------------------------- */

.lf-home .site-footer { background: var(--lf-plum); color: var(--lf-dim); border-top: 1px solid var(--lf-line); }
.lf-home .site-footer a, .lf-home .site-footer p, .lf-home .site-footer li, .lf-home .site-footer strong { color: var(--lf-dim); }
.lf-home .site-footer h2, .lf-home .site-footer h3, .lf-home .site-footer__tagline { color: var(--lf-text); }
.lf-home .site-footer__logo { display: none; }
.lf-home .site-footer__logo.site-footer__logo--dark { display: block; }
.lf-home .compliance__broker-logo { background: #fff; }

/* --- Phones ------------------------------------------------------------- */

@media (max-width: 900px) {
  .lf-meet__inner, .lf-works__inner, .lf-close__inner { grid-template-columns: 1fr; }
  .lf-works__head { position: static; }
  .lf-sold { grid-template-columns: 1fr; }
  .lf-record__figs { width: 100%; justify-content: space-between; }
  .lf-close__talk { border-left: 0; padding-left: 0; border-top: 1px solid var(--lf-line); padding-top: 2.5rem; }
  .lf-hero__body { padding-top: 8rem; }
  .lf-eyebrow .lf-rule { display: none; }
  .lf-eyebrow { gap: 0.3rem 1rem; }
  .lf-work { grid-template-columns: 2.25rem minmax(0, 1fr) 1.5rem; padding: 1.9rem 0; }
}

@media (prefers-reduced-motion: reduce) {
  .lf-home.is-loaded .lf-hero__img { animation: none; }
  .lf-meet__photo img, .lf-card__media img, .lf-work__title, .lf-work__go, .lf-link { transition: none; }
}

/* The compliance band in the same dark as the rest of the page. */
.lf-home .compliance { background: var(--lf-black); border-top: 1px solid var(--lf-line); }

/* Leaflet stacks its panes at z-index 400 and up. Contain them so the map
   scrolls under the fixed header rather than over it. */
.lf-map__canvas { position: relative; z-index: 0; isolation: isolate; }

/* Buyer-side sales: a quiet ruled list, text only. */
.lf-h3--gap { margin-top: 4.5rem; }
.lf-buys { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lf-line); }
.lf-buy {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1.4fr) 7.5rem minmax(0, 2fr);
  gap: 0.35rem 1.5rem;
  align-items: baseline;
  padding: 1.05rem 0;
  border-bottom: 1px solid var(--lf-line);
}
.lf-buy__when { font-family: var(--f-data); font-size: 0.78rem; color: var(--lf-accent); }
.lf-buy__addr { font-family: var(--f-editorial); font-size: 1.12rem; }
.lf-buy__price { font-family: var(--f-data); font-size: 0.88rem; color: var(--lf-dim); }
.lf-buy__credit { font-size: 0.76rem; line-height: 1.55; color: var(--lf-faint); }
@media (max-width: 900px) {
  .lf-buy { grid-template-columns: 5.5rem minmax(0, 1fr); }
  .lf-buy__price { grid-column: 2; }
  .lf-buy__credit { grid-column: 2; }
}

/* Town names and map dots lead to each town's page. */
.lf-map__towns a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.lf-map__towns a:hover { color: var(--lf-text); border-bottom-color: var(--lf-accent); }
.lf-home .lf-dot--link { cursor: pointer; }
