.delivery-estimate { display: inline-block; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-weight: 400; line-height: 1.5; }
.delivery-estimate > span:first-child { font-size: .9em; font-weight: 600; }
.delivery-estimate strong { font-size: 1em; font-weight: 700; }
.delivery-estimate--green > span:first-child { color: #00854a; }
.delivery-estimate--yellow > span:first-child { color: #854d0e; }
.dealer-margin, .price-block__margin dd { color: #166534; }
.catalog-table table { font-size: .9rem; }
.catalog-table tbody td { padding: 10px; }
.catalog-table .b2b-desc { min-width: 160px; }
.catalog-table .b2b-num { text-align: right; white-space: nowrap; }

/* Compact drawing cards: one position heading, one price per offer. */
.pos-group--compact summary { padding: 10px 14px; }
.pos-group--compact .pos-group__meta { display: flex; }
.pos-group--compact .part-line { padding: 8px 0; }
.pos-group--compact .offer-row { margin-bottom: 0; }
.pos-group--compact .offer-row + .offer-row { margin-top: 8px; }
.pos-group--compact .offer-row__discount,
.pos-group--compact .offer-row__info .availability--ok { color: #00854a; }
.pos-group--compact .offer-row__info .availability--warn { color: #854d0e; }
.pos-group--compact .offer-row__info .availability--bad { color: var(--bad); }
.pos-group--compact .offer-row__info .mono { color: var(--ink); }
.pos-group--compact .part-line__quantity { display: block; margin-bottom: 6px; }
@media (max-width: 380px) {
  .pos-group--compact .pos-group__meta { max-width: 35%; overflow-wrap: anywhere; }
}

.catalog-categories { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.catalog-filter-tools { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; margin: 12px 0; }
.catalog-availability-toggle { margin-left: auto; }
.catalog-filters[open] { flex: 1 1 100%; }
.catalog-filters summary { cursor: pointer; width: fit-content; }
.catalog-cart-icon { width: 18px; height: 18px; display: block; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.dm-model-media { width: 112px; }
.dm-model-image { display: block; width: 100px; height: 70px; object-fit: contain; background: #fff; border-radius: 4px; }
.dm-model-image--brand { padding: 8px; }
.drawing-part-thumbnail { object-fit: contain; border-radius: 4px; }
.offer-row__media[hidden], .dm-model-image[hidden] { display: none; }
@media (max-width: 520px) {
  .pos-group--compact .offer-row--thumb { grid-template-columns: 52px minmax(0, 1fr); }
  .pos-group--compact .offer-row--thumb .offer-row__buy { grid-column: 1 / -1; }
}

/* Cart fields and the compact checkout use the standard form treatment. */
.frame-input { width: 12rem; max-width: 100%; min-height: 42px; padding: 8px 12px; border: 1px solid #dce3ed; border-radius: 6px; background: #fff; color: inherit; font: inherit; }
.frame-input:focus { outline: 2px solid #d8262f; outline-offset: 1px; }
.checkout-confirmation { padding: 14px 0; border-bottom: 1px solid #dce3ed; }
.checkout-confirmation .delivery-estimate { margin-left: 30px; }

.checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 24px; align-items: start; }
@media (max-width: 760px) { .checkout-grid { grid-template-columns: 1fr; } }

/* Keep the order action beside the entire checkout, including both addresses. */
.checkout-main { min-width: 0; }
.checkout-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.checkout-addresses .card { min-width: 0; overflow-wrap: anywhere; }
.checkout-addresses address { font-style: normal; line-height: 1.6; }
.checkout-order-summary { position: sticky; top: 16px; display: flex; flex-direction: column; max-height: calc(100dvh - 32px); margin-bottom: 0; }
.checkout-order-summary .totals { min-height: 0; overflow-y: auto; }
.checkout-order-summary .totals div { gap: 16px; }
.checkout-order-summary .totals dd { white-space: nowrap; }
/* The "order X more" hints are sentences, not amounts: they wrap under their line, and the summary never scrolls sideways. */
.checkout-order-summary .totals dd.totals__hint { white-space: normal; }
.checkout-order-summary .totals { overflow-x: hidden; }
.checkout-submit { flex-shrink: 0; }
.checkout-mobile-total { display: none; }
.checkout-item-list { list-style: none; padding: 0; margin: 0; }
.checkout-item-list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--line); }
.checkout-item-list li:last-child { border-bottom: 0; }
.checkout-item-list a { color: inherit; overflow-wrap: anywhere; }
.checkout-item-qty { color: var(--muted); }
.checkout-item-price { white-space: nowrap; }
@media (max-width: 1000px) { .checkout-addresses { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 760px), (max-height: 560px) {
  .checkout-page { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
  .checkout-order-summary { position: static; max-height: none; }
  .checkout-submit { position: fixed; bottom: 0; left: 0; right: 0; z-index: 80; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -3px 12px #00000012; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 16px; }
  .checkout-mobile-total { display: flex; flex-direction: column; white-space: nowrap; }
  .checkout-submit .btn { flex: 1; }
}

.drawing-part-thumbnail--brand { padding: 6px; background: #fff; object-fit: contain; }
