.pdl { box-sizing: border-box; }
.pdl *, .pdl *::before, .pdl *::after { box-sizing: inherit; }
.pdl [hidden] { display: none !important; }
.pdl-search { display: grid; gap: 1rem; margin-bottom: 2rem; }
.pdl-search__taxonomy { border: 0; padding: 0; }
.pdl-search__taxonomy legend { font-weight: 700; margin-bottom: .5rem; }
.pdl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem; }
.pdl-card { position: relative; }
.pdl-card__image { aspect-ratio: 4 / 3; background: #f0f2f4; }
.pdl-card__image img { width: 100%; height: 100%; display: block; object-fit: contain; }
.pdl-card__title { margin: .75rem 0 .35rem; }
.pdl-card__select { display: inline-flex; gap: .35rem; align-items: center; margin-bottom: .5rem; }
.pdl-card.is-selected { outline: 2px solid currentColor; outline-offset: 2px; }
.pdl-card__terms { display: flex; flex-wrap: wrap; gap: .35rem; padding: 0; list-style: none; }
.pdl-selection-list__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.pdl-selection__footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; align-items: center; gap: .75rem; padding: 1rem; margin-top: 1rem; background: rgba(255,255,255,.95); border-top: 1px solid #ddd; }
.pdl-message { padding: .8rem 1rem; }
.pdl-message--error { border: 1px solid #b32d2e; background: #fcf0f1; }
.pdl-download-list { display: grid; gap: .75rem; padding-left: 1.25rem; }
.pdl-download-button { display: inline-block; padding: .75rem 1rem; border: 1px solid currentColor; }
