.custom-production-help { margin: 28px 0; padding: 20px; border: 1px solid #c9d4c8; border-radius: 14px; background: #e8eee6; color: #283d31; font-size: 15px; line-height: 1.8; }
.custom-production-help summary { min-height: 44px; cursor: pointer; font-weight: 600; }
.custom-production-help ol { padding-left: 22px; }
.custom-production-actions { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.custom-production-actions a, .catalog-empty a { display: inline-flex; align-items: center; min-height: 44px; color: #284d39; text-underline-offset: 4px; }
.ph-catalog-section .ph-products-grid:not([data-live-catalog]),
.ph-catalog-section .ph-catalog-meta-row .ph-catalog-count { display: none !important; }
.live-catalog-count { margin: 0 0 24px; color: #52645a; font-size: 14px; line-height: 1.7; }
.ph-live-catalog .ph-card h3 { margin: 0; font-size: inherit; }
.ph-live-catalog .ph-card-title { display: block; color: inherit; text-decoration: none; line-height: 1.65; }
.ph-live-catalog .ph-card { display: flex; flex-direction: column; min-width: 0; }
/* Include padding in the card width; legacy storefront assets use content-box. */
body[data-cube-shell] .ph-live-catalog [data-live-catalog] > .ph-card .ph-card-thumb-wrap { box-sizing: border-box; width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); place-items: center; position: relative; aspect-ratio: 1 / 1 !important; padding: clamp(12px, 2vw, 24px) !important; border: 1px solid #d6e0d7 !important; border-radius: 16px !important; background: #e8eee6 !important; overflow: hidden; }
/* One square image canvas per surface, independent of source aspect ratio. */
.ph-live-catalog .ph-card-thumb { box-sizing: border-box; position: static !important; display: block; width: min(100%, 320px) !important; height: auto !important; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; aspect-ratio: 1 / 1; }
.model-reference-image { object-fit: contain !important; object-position: center !important; background: transparent !important; transform: none !important; filter: none !important; }
.ph-live-catalog .catalog-image-caption { margin: 9px 2px 0; color: #627268; font-size: 12px; line-height: 1.6; }
body[data-cube-shell] .ph-live-catalog [data-live-catalog] .ph-card .ph-card-title { min-height: 3.3em !important; margin: 0 !important; font-size: 15px !important; line-height: 1.65 !important; font-weight: 500; word-break: keep-all; overflow-wrap: anywhere; }
.ph-live-catalog .model-credit { min-height: 3.3em; }
.detail-photo:has(.model-reference-image) { box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); place-items: center; align-self: start; width: min(100%, 480px); height: auto; aspect-ratio: 1 / 1; margin: 40px auto; padding: 40px; border: 1px solid #d6e0d7; border-radius: 16px; background: #e8eee6; }
.detail-photo .model-reference-image { display: block; box-sizing: border-box; width: min(100%, 400px); height: auto; min-width: 0; min-height: 0; aspect-ratio: 1 / 1; }
.related-card .model-reference-image { display: block; box-sizing: border-box; width: min(100%, 240px); height: auto; margin-inline: auto; aspect-ratio: 1 / 1; padding: 16px; border: 1px solid #d6e0d7; border-radius: 12px; background: #e8eee6 !important; }
.catalog-load-error { padding: 24px; border: 1px solid #c9d4c8; border-radius: 12px; color: #284d39; background: #e8eee6; line-height: 1.8; }
.model-credit { font-size: 13px; line-height: 1.65; color: #52645a; overflow-wrap: anywhere; }
.model-credit a { color: inherit; text-underline-offset: 3px; }
.ph-live-catalog .ph-card-body { display: flex; flex: 1; flex-direction: column; align-items: stretch; gap: 8px; padding: 16px 2px 0; }
.ph-live-catalog .ph-card-body p { margin: 0; }
.ph-live-catalog .ph-card-price { font-size: 17px; font-weight: 600; color: #283d31; }
.model-rank, .catalog-stock { font-size: 13px; line-height: 1.65; color: #52645a; }
.catalog-detail-link { display: inline-flex; align-items: center; min-height: 44px; color: #284d39; margin-top: auto; text-underline-offset: 5px; font-size: 14px; }
.model-attribution { margin-top: 32px; padding: 24px; background: #e7eee5; border: 1px solid #c9d4c8; color: #283d31; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.model-attribution h2 { font-size: 19px; margin-top: 0; }
.model-attribution h3 { font-size: 16px; }
.model-attribution a { color: inherit; text-underline-offset: 4px; }
.model-attribution button { min-height: 44px; border: 1px solid #a9bda9; padding: 8px 16px; background: transparent; color: inherit; border-radius: 6px; font: inherit; }
.model-print-notice { font-weight: 700; }
.model-source-info { white-space: pre-line; overflow-wrap: anywhere; line-height: 1.8; }
@media (max-width: 520px) {
  .detail-photo:has(.model-reference-image) { width: calc(100% - 32px); margin: 24px auto 0; padding: 20px; }
  .ph-live-catalog .ph-card-body { padding: 12px 2px 0; }
  body[data-cube-shell] .ph-live-catalog [data-live-catalog] .ph-card .ph-card-title { min-height: 4.95em !important; font-size: 14px !important; }
  .ph-live-catalog .model-rank { min-height: 3.3em; }
  .model-attribution { padding: 18px; }
}
@media print {
  body:has(.model-attribution:not([hidden])) * { visibility: hidden; }
  body:has(.model-attribution:not([hidden])) .model-attribution,
  body:has(.model-attribution:not([hidden])) .model-attribution * { visibility: visible; }
  body:has(.model-attribution:not([hidden])) .model-attribution { position: absolute; inset: 0; margin: 0; background: white; color: black; }
  .model-attribution button { display: none; }
}
