/* Shared cover and accessibility refinements. Theme colours and layout remain site-specific. */
.brand-card { min-width: 0; }
.logo-box { position: relative; overflow: hidden; }
.logo-box .cover-image,
.logo-box img { display: block; width: 100%; height: 100%; image-rendering: auto; }
.brand-card.is-photo .logo-box { padding: 0; background: color-mix(in srgb, var(--surface) 72%, white); }
.brand-card.is-photo .logo-box img { object-fit: cover; transition: transform .32s ease; }
.brand-card.is-photo:hover .logo-box img { transform: scale(1.025); }
.brand-card.is-product .logo-box { padding: 14px; background: #fff; }
.brand-card.is-product .logo-box img { object-fit: contain; }
.brand-card.is-brand .logo-box { padding: 30px; background: #fff; }
.brand-card.is-brand .logo-box img { object-fit: contain; }
.brand-card.is-brand .logo-box img.small-brand { max-width: 190px; margin-inline: auto; }
.illustrative-label { position: absolute; left: 8px; bottom: 8px; z-index: 2; padding: 4px 7px; background: rgba(255,255,255,.94); color: #3e4845; box-shadow: 0 1px 5px rgba(0,0,0,.12); font-size: 9px; font-weight: 700; letter-spacing: .025em; line-height: 1.2; }
.filter-count { float: right; color: #747d7a; font-size: 10px; font-weight: 400; }
.card-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.detail-logo { padding: 0; overflow: hidden; }
.detail-logo figure { width: 100%; margin: 0; }
.detail-logo img { width: 100%; height: auto; max-height: 540px; object-fit: contain; }
.detail-logo.is-photo img { object-fit: cover; }
.detail-logo.is-brand { padding: 44px; background: #fff; }
.detail-logo.is-product { padding: 24px; background: #fff; }
.detail-logo figcaption { padding: 11px 14px; border-top: 1px solid #e0e4e2; color: #65706c; background: #fff; font-size: 10px; line-height: 1.55; }
.detail-logo figcaption a { text-decoration: underline; text-underline-offset: 2px; }
.detail-copy ul { padding-left: 20px; }
.detail-copy li { margin: 7px 0; }
.listing-alert { margin: 0 0 18px; padding: 13px 15px; border-left: 3px solid var(--accent2); background: color-mix(in srgb, var(--accent2) 9%, white); color: var(--ink); font-size: 12px; line-height: 1.55; }
.legal-page li { margin: 9px 0; overflow-wrap: anywhere; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--accent2); outline-offset: 3px; }

@media (min-width: 761px) {
  .layout-utility .brand-card.is-photo .logo-box { padding: 0; }
  .layout-utility .brand-card.is-brand .logo-box { padding: 20px; }
  .layout-utility .brand-card .logo-box { min-height: 170px; }
}

@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .brand-grid { min-width: 0; }
  .brand-card.is-product .logo-box { padding: 9px; }
  .brand-card.is-brand .logo-box { padding: 18px; }
  .illustrative-label { left: 6px; bottom: 6px; max-width: calc(100% - 12px); font-size: 8px; }
  .card-kicker { min-width: 0; }
  .card-kicker span:first-child { min-width: 0; overflow-wrap: anywhere; }
  .card-kicker span:last-child { flex: 0 0 auto; }
  .brand-card h3, .card-description { overflow-wrap: anywhere; }
  .detail-logo { min-height: 0; padding: 0; }
  .detail-logo.is-brand { padding: 30px; }
  .detail-logo.is-product { padding: 18px; }
  .detail-logo img { max-height: 360px; }
  .detail-logo figcaption { font-size: 9px; }
}

@media (max-width: 380px) {
  .brand-grid:not(.layout-utility .brand-grid) { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .brand-card.is-photo:hover .logo-box img { transform: none; }
}
