/* Softer venue cards, less shouty */
main .lake-grid,
main .venue-grid,
main .listing-grid,
main .results-grid,
main .cards-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)) !important;
  gap: 22px !important;
}

main .lake-card,
main .venue-card,
main .listing-card,
main .result-card,
main article:has(a[href^="/lake/"]),
main .card:has(a[href^="/lake/"]) {
  position: relative !important;
  min-height: 170px !important;
  padding: 26px !important;
  background: #ffffff !important;
  border: 1px solid #dce8de !important;
  border-radius: 22px !important;
  box-shadow: 0 10px 26px rgba(12, 44, 27, .06) !important;
  overflow: hidden !important;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}

main .lake-card::before,
main .venue-card::before,
main .listing-card::before,
main .result-card::before,
main article:has(a[href^="/lake/"])::before,
main .card:has(a[href^="/lake/"])::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: #006b45 !important;
  opacity: .75 !important;
}

main .lake-card::after,
main .venue-card::after,
main .listing-card::after,
main .result-card::after,
main article:has(a[href^="/lake/"])::after,
main .card:has(a[href^="/lake/"])::after {
  display: none !important;
  content: none !important;
}

main .lake-card:hover,
main .venue-card:hover,
main .listing-card:hover,
main .result-card:hover,
main article:has(a[href^="/lake/"]):hover,
main .card:has(a[href^="/lake/"]):hover {
  transform: translateY(-2px) !important;
  border-color: #c8dccd !important;
  box-shadow: 0 14px 30px rgba(12, 44, 27, .09) !important;
}

main .lake-card h2,
main .lake-card h3,
main .venue-card h2,
main .venue-card h3,
main .listing-card h2,
main .listing-card h3,
main .result-card h2,
main .result-card h3,
main article:has(a[href^="/lake/"]) h2,
main article:has(a[href^="/lake/"]) h3,
main .card:has(a[href^="/lake/"]) h2,
main .card:has(a[href^="/lake/"]) h3 {
  display: block !important;
  max-width: none !important;
  width: auto !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  color: #06351f !important;
  font-size: 1.45rem !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  letter-spacing: -.015em !important;
  box-shadow: none !important;
}

main .lake-card p,
main .venue-card p,
main .listing-card p,
main .result-card p,
main article:has(a[href^="/lake/"]) p,
main .card:has(a[href^="/lake/"]) p {
  margin: 0 0 22px !important;
  color: #40584a !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

main .lake-card p:first-of-type,
main .venue-card p:first-of-type,
main .listing-card p:first-of-type,
main .result-card p:first-of-type,
main article:has(a[href^="/lake/"]) p:first-of-type,
main .card:has(a[href^="/lake/"]) p:first-of-type {
  display: block !important;
  padding: 0 !important;
  background: transparent !important;
  color: #40584a !important;
  font-weight: 500 !important;
}

main .lake-card p:first-of-type::before,
main .venue-card p:first-of-type::before,
main .listing-card p:first-of-type::before,
main .result-card p:first-of-type::before,
main article:has(a[href^="/lake/"]) p:first-of-type::before,
main .card:has(a[href^="/lake/"]) p:first-of-type::before {
  display: none !important;
  content: none !important;
}

main .lake-card a[href^="/lake/"],
main .venue-card a[href^="/lake/"],
main .listing-card a[href^="/lake/"],
main .result-card a[href^="/lake/"],
main article:has(a[href^="/lake/"]) a[href^="/lake/"],
main .card:has(a[href^="/lake/"]) a[href^="/lake/"] {
  display: inline-flex !important;
  align-items: center !important;
  align-self: flex-start !important;
  margin-top: auto !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #006b45 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

main .lake-card a[href^="/lake/"]:hover,
main .venue-card a[href^="/lake/"]:hover,
main .listing-card a[href^="/lake/"]:hover,
main .result-card a[href^="/lake/"]:hover,
main article:has(a[href^="/lake/"]) a[href^="/lake/"]:hover,
main .card:has(a[href^="/lake/"]) a[href^="/lake/"]:hover {
  color: #004f34 !important;
  text-decoration: underline !important;
  background: transparent !important;
}

@media (max-width: 760px) {
  main .lake-grid,
  main .venue-grid,
  main .listing-grid,
  main .results-grid,
  main .cards-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  main .lake-card,
  main .venue-card,
  main .listing-card,
  main .result-card,
  main article:has(a[href^="/lake/"]),
  main .card:has(a[href^="/lake/"]) {
    min-height: 150px !important;
    padding: 22px !important;
  }

  main .lake-card h2,
  main .lake-card h3,
  main .venue-card h2,
  main .venue-card h3,
  main .listing-card h2,
  main .listing-card h3,
  main .result-card h2,
  main .result-card h3,
  main article:has(a[href^="/lake/"]) h2,
  main article:has(a[href^="/lake/"]) h3,
  main .card:has(a[href^="/lake/"]) h2,
  main .card:has(a[href^="/lake/"]) h3 {
    font-size: 1.3rem !important;
  }
}

/* Venue card town/location line */
main .venue-location {
  color: #40584a !important;
  font-weight: 600 !important;
}
