/* Optional public listing components. Load after Bootstrap 5; customize in host CSS. */
.lp-listing { --lp-listing-gap: 1.5rem; }
.lp-listing .lp-entry { min-width: 0; overflow-wrap: anywhere; }
.lp-listing .lp-entry-title { line-height: 1.4; }
.lp-listing .lp-entry-title a:hover { text-decoration: underline !important; }
.lp-listing .lp-entry-title a:focus-visible::after { outline: 2px solid var(--bs-link-color, #0d6efd); outline-offset: 3px; border-radius: inherit; }
.lp-listing .lp-entry-summary { line-height: 1.6; }
.lp-listing .lp-entry-image { width: 100%; object-fit: cover; display: block; }
.lp-listing .lp-entry-more { color: var(--bs-link-color, #0d6efd); }
.lp-listing mark { color: inherit; padding: 0 .05em; background: var(--bs-warning-bg-subtle, #fff3cd); }
.lp-listing--cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lp-listing-gap); }
.lp-listing--cards .lp-entry { border-color: var(--bs-border-color, #dee2e6); border-radius: .5rem; }
.lp-listing--cards .lp-entry-image { aspect-ratio: 16 / 9; border-radius: .5rem .5rem 0 0; }
.lp-listing--cards .lp-entry-body { display: flex; flex-direction: column; padding: 1.25rem; }
.lp-listing--compact-cards { --lp-listing-gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-listing--compact-cards .lp-entry-body { padding: 1rem; }
.lp-links, .lp-category-links { padding-left: 1.25rem; }
.lp-links li, .lp-category-links li { margin-bottom: .5rem; overflow-wrap: anywhere; }
.lp-links mark { color: inherit; background: var(--bs-warning-bg-subtle, #fff3cd); }
.lp-listing--list .lp-entry { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--bs-border-color, #dee2e6); }
.lp-listing--list .lp-entry--with-image { grid-template-columns: minmax(0, 1fr) 168px; }
.lp-listing--list .lp-entry-image { grid-column: 2; grid-row: 1; aspect-ratio: 3 / 2; border-radius: .375rem; }
.lp-listing--list .lp-entry-body { grid-column: 1; grid-row: 1; }
/* Featured entries are a separate fragment, independent of the list/card choice. */
.lp-featured { position: relative; overflow: hidden; border-radius: .5rem; color: #fff; background: #1f283f; }
.lp-featured .lp-featured-article { position: relative; background: #1f283f; }
.lp-featured .lp-featured-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lp-featured .lp-featured-article::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgb(8 17 28 / 76%), rgb(8 17 28 / 54%) 45%, rgb(8 17 28 / 12%)); }
.lp-featured .lp-featured-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 320px; padding: 2rem; overflow-wrap: anywhere; text-shadow: 0 1px 3px rgb(0 0 0 / 50%); }
.lp-featured .lp-featured-title, .lp-featured .lp-featured-summary { max-width: 42rem; }
.lp-featured .lp-featured-title { line-height: 1.25; }
.lp-featured .lp-featured-title a:hover { text-decoration: underline !important; }
.lp-featured .lp-featured-title a:focus-visible::after { outline: 2px solid #fff; outline-offset: -6px; }
.lp-featured .lp-featured-summary { line-height: 1.6; }
@media (max-width: 575.98px) {
  .lp-featured .lp-featured-article::before { background: linear-gradient(0deg, rgb(8 17 28 / 76%), rgb(8 17 28 / 45%)); }
  .lp-featured .lp-featured-content { padding: 1.5rem; }
  .lp-featured .lp-featured-title { font-size: 1.5rem; }
  .lp-listing--cards { grid-template-columns: minmax(0, 1fr); }
  .lp-listing--list .lp-entry--with-image { grid-template-columns: minmax(0, 1fr) 84px; gap: .5rem 1rem; }
  .lp-listing--list .lp-entry-body { display: contents; }
  .lp-listing--list .lp-entry-meta { grid-column: 1; grid-row: 1; margin-bottom: 0 !important; }
  .lp-listing--list .lp-entry-title { grid-column: 1; grid-row: 2; }
  .lp-listing--list .lp-entry-image { grid-row: 1 / span 2; }
  .lp-listing--list .lp-entry-summary { grid-column: 1 / -1; }
}
