.catalog-page { max-width: 90rem; margin: 0 auto; padding: var(--ft-space-10); }
.catalog-header { display: flex; align-items: end; justify-content: space-between; gap: var(--ft-space-8); margin-bottom: var(--ft-space-8); animation: portal-fade-up .5s ease both; }
.catalog-search { width: min(100%, 23rem); }
.catalog-search label { display: block; margin-bottom: var(--ft-space-2); color: var(--ft-text-secondary); font-size: var(--ft-font-xs); font-weight: 600; }
.catalog-search > div { position: relative; }
.catalog-search input { width: 100%; min-height: 2.85rem; padding: 0.65rem 2.5rem 0.65rem 0.85rem; border: 1px solid var(--ft-border); border-radius: var(--ft-radius-sm); color: var(--ft-text); background: rgba(255,255,255,.86); font-size: var(--ft-font-sm); transition: transform var(--ft-transition), box-shadow var(--ft-transition), border-color var(--ft-transition); }
.catalog-search input:hover { border-color: #c8d6e6; }
.catalog-search input:focus { border-color: var(--ft-gold-500); box-shadow: 0 0 0 3px rgba(212,163,115,.18); outline: 0; }
.catalog-search > div span { position: absolute; top: 50%; right: 0.85rem; color: var(--ft-text-muted); transform: translateY(-50%); pointer-events: none; }
.catalog-search small { display: block; margin-top: var(--ft-space-2); color: var(--ft-text-muted); font-size: var(--ft-font-xs); }
.catalog-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ft-space-5); }
.catalog-entity-card { display: flex; min-height: 0; flex-direction: column; gap: 0; padding: 0; border: 1px solid var(--ft-border); border-radius: var(--ft-radius-lg); background: var(--ft-surface); box-shadow: var(--ft-shadow-soft); overflow: hidden; transition: transform var(--ft-transition), box-shadow var(--ft-transition), border-color var(--ft-transition); animation: portal-fade-up .5s ease both; }
.catalog-entity-card:nth-child(2) { animation-delay: .06s; }
.catalog-entity-card:nth-child(3) { animation-delay: .12s; }
.catalog-entity-card:nth-child(4) { animation-delay: .18s; }
.catalog-entity-card:nth-child(5) { animation-delay: .24s; }
.catalog-entity-card:hover { border-color: rgba(52,120,189,.26); box-shadow: var(--ft-shadow-raised); transform: translateY(-4px); }
.catalog-entity-card:nth-child(even) .catalog-entity-copy, .catalog-entity-card:nth-child(even) .catalog-cover { order: initial; }
.catalog-entity-copy { display: grid; align-content: start; padding: var(--ft-space-6); }
.catalog-entity-copy h2 { margin: 0 0 var(--ft-space-4); color: var(--ft-brown-900); font-size: clamp(1.45rem, 2.2vw, 1.9rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; }
.catalog-entity-copy > div:first-child > p { max-width: 39rem; margin-bottom: 0; color: var(--ft-text-secondary); font-size: var(--ft-font-base); line-height: 1.7; }
.catalog-entity-meta { display: grid; margin-top: var(--ft-space-5); }
.catalog-entity-meta span, .catalog-entity-meta small { color: var(--ft-text-muted); font-size: var(--ft-font-xs); }
.catalog-entity-meta strong { color: var(--ft-text); font-size: var(--ft-font-sm); font-weight: 600; }
.catalog-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ft-space-3); margin-top: var(--ft-space-6); }
.catalog-metrics > div { padding: var(--ft-space-4); border: 1px solid var(--ft-border); border-radius: var(--ft-radius-md); background: var(--ft-surface-soft); text-align: center; transition: transform var(--ft-transition), background-color var(--ft-transition); }
.catalog-metrics > div:hover { background: var(--ft-sky-100); transform: translateY(-2px); }
.catalog-metrics strong, .catalog-metrics span { display: block; }
.catalog-metrics strong { color: var(--ft-blue-600); font-size: var(--ft-font-xl); font-weight: 600; line-height: 1.05; }
.catalog-metrics span { margin-top: var(--ft-space-2); color: var(--ft-text-secondary); font-size: var(--ft-font-xs); font-weight: 500; }
.catalog-start { width: max-content; margin-top: var(--ft-space-6); }
.catalog-cover { position: relative; min-height: 13rem; aspect-ratio: 16 / 9; order: -1; border-radius: 0; background: var(--ft-brown-800); overflow: hidden; isolation: isolate; }
.catalog-cover > img { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s cubic-bezier(.2,.8,.2,1), filter .55s ease; }
.catalog-entity-card:hover .catalog-cover > img { filter: saturate(1.08); transform: scale(1.045); }
.catalog-cover::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 45%, rgba(32, 22, 17, 0.34)); content: ""; pointer-events: none; }
.catalog-cover-fallback { display: grid; place-items: center; background: radial-gradient(circle at 75% 22%, rgba(197, 154, 74, 0.34), transparent 28%), linear-gradient(145deg, var(--ft-brown-700), var(--ft-brown-900)); }
.catalog-entity-card:nth-child(3n+2) .catalog-cover-fallback { background: radial-gradient(circle at 78% 20%, rgba(254,249,243,.42), transparent 28%), linear-gradient(145deg, #d4a373, #8e5e32); }
.catalog-entity-card:nth-child(3n) .catalog-cover-fallback { background: radial-gradient(circle at 22% 18%, rgba(255,240,213,.38), transparent 28%), linear-gradient(145deg, #96a61a, #667312); }
.catalog-cover-brand { position: relative; z-index: 2; display: grid; place-items: center; color: rgba(255, 255, 255, 0.88); }
.catalog-cover-brand > span { display: grid; width: 5rem; height: 5rem; place-items: center; margin-bottom: var(--ft-space-3); border: 1px solid rgba(255, 255, 255, 0.32); border-radius: 50%; color: var(--ft-gold-500); font-size: var(--ft-font-xl); font-weight: 600; }
.catalog-cover-brand strong { font-size: var(--ft-font-sm); font-weight: 500; }
.catalog-cover-note { position: absolute; z-index: 2; right: var(--ft-space-5); bottom: var(--ft-space-5); left: var(--ft-space-5); display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--ft-space-3); padding: var(--ft-space-4); border-radius: var(--ft-radius-md); background: rgba(255, 255, 255, 0.94); box-shadow: var(--ft-shadow-raised); backdrop-filter: blur(8px); transition: transform .25s ease, background-color .25s ease; }
.catalog-entity-card:hover .catalog-cover-note { background: rgba(255,255,255,.98); transform: translateY(-3px); }
.catalog-cover-note > span { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: var(--ft-radius-sm); color: var(--ft-blue-600); background: var(--ft-blue-100); font-weight: 700; }
.catalog-cover-note div { display: grid; }
.catalog-cover-note strong { font-size: var(--ft-font-sm); font-weight: 600; }
.catalog-cover-note small { color: var(--ft-text-muted); font-size: var(--ft-font-xs); }
.catalog-no-results { margin-top: var(--ft-space-8); }
@media (prefers-reduced-motion: reduce) { .catalog-header, .catalog-entity-card, .catalog-cover > img, .catalog-cover-note, .catalog-metrics > div { animation: none; transition: none; } }

@media (max-width: 1100px) {
  .catalog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  .catalog-page { padding: var(--ft-space-8) var(--ft-space-6); }
  .catalog-header { align-items: start; flex-direction: column; }
  .catalog-search { width: 100%; }
  .catalog-list { grid-template-columns: 1fr; }
  .catalog-entity-card { grid-template-columns: 1fr; }
  .catalog-cover { min-height: 17rem; }
}

@media (max-width: 767.98px) {
  .catalog-page { padding: var(--ft-space-5) var(--ft-space-4) var(--ft-space-8); }
  .catalog-header { gap: var(--ft-space-6); margin-bottom: var(--ft-space-6); }
  .catalog-list { gap: var(--ft-space-5); }
  .catalog-entity-card { min-height: 0; gap: 0; padding: 0; }
  .catalog-entity-copy { padding: var(--ft-space-5); }
  .catalog-cover { min-height: 15rem; }
  .catalog-cover-note { right: var(--ft-space-3); bottom: var(--ft-space-3); left: var(--ft-space-3); }
  .catalog-cover-note small { display: none; }
  .catalog-metrics > div { padding: var(--ft-space-3) var(--ft-space-2); }
  .catalog-metrics strong { font-size: var(--ft-font-lg); }
  .catalog-start { width: 100%; }
}
