.quote-price-detail[hidden] { display: none; }
.quote-price-detail { margin: 0 0 1.75rem; }
.quote-price-detail h3, .quote-directory h2 { font-family: inherit; margin: 0 0 .85rem; }
.quote-variant-list { list-style: none; padding: 0; margin: 0; }
.quote-variant { display: flex; align-items: flex-start; gap: .85rem; padding: .9rem 0; border-top: 1px solid #ded9d3; }
.quote-variant-photo { flex: 0 0 auto; width: 5rem; height: 5rem; object-fit: contain; background: #fff; border-radius: 3px; }
.quote-variant-body { flex: 1; min-width: 0; }
.quote-variant-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem 1.25rem; justify-content: space-between; }
.quote-variant-head strong { font-size: .94rem; overflow-wrap: anywhere; }
.quote-variant-price { color: #712c3c; font-weight: 650; font-variant-numeric: tabular-nums; }
.quote-variant-info { display: grid; grid-template-columns: max-content 1fr; gap: .14rem .65rem; font-size: .85rem; line-height: 1.55; margin: .45rem 0 0; }
.quote-variant-info dt { color: #655e59; }
.quote-variant-info dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.quote-directory { box-sizing: border-box; width: min(48rem, calc(100vw - 1.5rem)); max-height: min(85dvh, 52rem); border: 1px solid #cfc7be; background: #fffefa; color: #282320; border-radius: .45rem; margin: auto; padding: 1.5rem; }
.quote-directory::backdrop { background: rgb(28 24 22 / 44%); }
.quote-directory-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.quote-directory-head h2 { font-size: 1.5rem; }
.quote-directory-filters { display: grid; grid-template-columns: minmax(8rem, .6fr) minmax(9rem, 1fr) auto; align-items: end; gap: .75rem; }
.quote-directory-filters label { display: grid; gap: .25rem; font-size: .88rem; min-width: 0; }
.quote-directory-filters input, .quote-directory-filters select { width: 100%; min-width: 0; line-height: 1.5; padding: .55rem .6rem; font: inherit; border: 1px solid #cfc7be; border-radius: 2px; background: #fff; color: inherit; box-sizing: border-box; }
.quote-directory-count, .quote-state { color: #655e59; font-size: .88rem; margin: .8rem 0; }
.quote-family { border-top: 1px solid #ded9d3; }
.quote-family summary { cursor: pointer; padding: .8rem 0; }
.quote-family-name { font-weight: 650; overflow-wrap: anywhere; }
.quote-family-meta { color: #655e59; margin-left: .65rem; font-size: .85rem; overflow-wrap: anywhere; }
.quote-more { margin: .75rem 0; }
.quote-directory-entry { white-space: nowrap; }
@media (max-width: 640px) {
  .quote-directory { padding: 1rem; }
  .quote-directory-filters { grid-template-columns: 1fr auto; gap: .5rem; }
  .quote-directory-filters label:first-child { grid-column: 1 / -1; }
  .quote-variant { gap: .55rem; }
  .quote-variant-photo { width: 3.7rem; height: 3.7rem; }
  .quote-variant-info { gap: .12rem .4rem; }
  .quote-family-meta { display: block; margin: .16rem 0 0 1rem; }
}
.quote-image-link { display: inline-flex; flex: 0 0 auto; align-self: flex-start; max-width: 100%; }
.quote-price-options { font-size: .85rem; list-style: disc; margin: .5rem 0; padding-left: 1.1rem; }
.quote-diagram { display: block; max-width: 100%; max-height: 18rem; object-fit: contain; }
.quote-source-drawing { margin: .35rem 0; font-size: .85rem; }
.quote-source-drawing summary { cursor: pointer; padding: .25rem 0; }
.quote-source-ref { display: block; margin-top: .4rem; color: #6c625b; font-size: .72rem; }
