.gc-catalogs,
.gc-catalogs * { box-sizing: border-box; }
.gc-catalogs { width: 100%; max-width: var(--gc-max-width); margin-inline: auto; color: var(--gc-text-color); font-family: inherit; line-height: 1.5; }
.gc-catalogs .gc-controls { display: none; }
.gc-catalogs.gc-enhanced.gc-has-filters { display: grid; grid-template-columns: minmax(0, var(--gc-filter-width)) minmax(0, 1fr); gap: var(--gc-layout-gap); align-items: start; }
.gc-catalogs.gc-enhanced .gc-sidebar { display: block; }
.gc-catalogs [hidden] { display: none !important; }
.gc-catalogs .gc-main { min-width: 0; }
.gc-catalogs .gc-sidebar { background: var(--gc-filter-background); color: var(--gc-filter-color); border: var(--gc-filter-border-width) solid var(--gc-filter-border-color); border-radius: var(--gc-filter-radius); padding: var(--gc-filter-padding); font-size: var(--gc-filter-font-size); min-width: 0; }
.gc-catalogs .gc-filter-heading { display: flex; gap: 12px; align-items: baseline; justify-content: space-between; padding: 0 0 16px; border-bottom: 1px solid var(--gc-filter-separator-color); }
.gc-catalogs .gc-reset { padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; box-shadow: none; }
.gc-catalogs .gc-filter-group { margin: 0; padding: 0; border: 0; background: transparent; color: inherit; }
.gc-catalogs .gc-filter-group > summary { display: flex; align-items: center; justify-content: space-between; list-style: none; padding: 18px 0; border-bottom: 1px solid var(--gc-filter-separator-color); cursor: pointer; font-weight: 500; }
.gc-catalogs .gc-filter-group > summary::-webkit-details-marker { display: none; }
.gc-catalogs .gc-filter-group > summary::after { content: ''; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin: 0 5px 4px 12px; flex-shrink: 0; }
.gc-catalogs .gc-filter-group[open] > summary::after { transform: rotate(225deg); margin-bottom: -3px; }
.gc-catalogs .gc-options { padding: 6px 0 14px; }
.gc-catalogs .gc-option { display: flex; align-items: center; gap: 11px; padding: 9px 4px; margin: 0; cursor: pointer; font-weight: 400; overflow-wrap: anywhere; }
.gc-catalogs .gc-option input { appearance: auto; -webkit-appearance: checkbox; width: var(--gc-checkbox-size); height: var(--gc-checkbox-size); min-width: var(--gc-checkbox-size); padding: 0; margin: 0; accent-color: var(--gc-accent-color); cursor: pointer; }
.gc-catalogs .gc-option input:disabled { cursor: default; }
.gc-catalogs .gc-option:has(input:disabled) { opacity: .5; cursor: default; }
.gc-catalogs .gc-term-count { margin-left: auto; padding-left: 8px; font-size: .9em; font-variant-numeric: tabular-nums; }
.gc-catalogs.gc-enhanced .gc-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.gc-catalogs .gc-result-count { margin: 0; color: var(--gc-muted-color); font-size: 13px; }
.gc-catalogs .gc-search-label { margin: 0; max-width: 100%; }
.gc-catalogs .gc-filter-toggle { display: none; }
.gc-catalogs .gc-filter-dialog:not([open]) { display: none; }
.gc-catalogs .gc-filter-dialog { box-sizing: border-box; position: fixed; inset: 0; width: min(420px, 92vw); max-width: 100%; height: 100%; height: 100dvh; max-height: 100%; margin: 0 0 0 auto; padding: 0; border: var(--gc-filter-border-width) solid var(--gc-filter-border-color); border-radius: 0; background: var(--gc-filter-background); color: var(--gc-filter-color); font-family: inherit; font-size: var(--gc-filter-font-size); line-height: 1.5; overflow: hidden; box-shadow: -8px 0 40px #0002; }
.gc-catalogs .gc-filter-dialog[open] { display: flex; flex-direction: column; }
.gc-catalogs .gc-filter-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.gc-catalogs .gc-dialog-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: max(16px, env(safe-area-inset-top)) 20px 16px; border-bottom: 1px solid var(--gc-filter-separator-color); flex-shrink: 0; }
.gc-catalogs .gc-dialog-header h2 { margin: 0; padding: 0; font-family: inherit; font-size: 20px; line-height: 1.4; font-weight: 500; color: inherit; }
.gc-catalogs .gc-dialog-close { display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 0; background: transparent; color: inherit; cursor: pointer; box-shadow: none; }
.gc-catalogs .gc-dialog-close svg { width: 24px; height: 24px; }
.gc-catalogs .gc-dialog-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px; }
.gc-catalogs .gc-filter-dialog .gc-sidebar { border: 0; border-radius: 0; }
.gc-catalogs .gc-filter-dialog .gc-filter-heading { justify-content: flex-end; }
.gc-catalogs .gc-filter-dialog .gc-filter-heading > span { display: none; }
.gc-catalogs .gc-filter-dialog .gc-option { min-height: 44px; }
.gc-catalogs .gc-dialog-footer { padding: 16px 20px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--gc-filter-separator-color); flex-shrink: 0; }
.gc-catalogs .gc-view-results { display: block; width: 100%; min-height: 44px; padding: var(--gc-button-padding) 14px; border: var(--gc-button-border-width) solid var(--gc-button-border-color); border-radius: var(--gc-button-radius); background: var(--gc-button-background); color: var(--gc-button-color); font: inherit; cursor: pointer; box-shadow: none; }
.gc-catalogs .gc-view-results:hover { background: var(--gc-button-hover-background); color: var(--gc-button-hover-color); }
.gc-catalogs input.gc-search { width: 240px; max-width: 100%; min-height: 40px; padding: 8px 12px; border: 1px solid var(--gc-filter-separator-color); border-radius: 0; background: var(--gc-filter-background); color: var(--gc-filter-color); font: inherit; font-size: var(--gc-filter-font-size); box-shadow: none; }
.gc-catalogs .gc-grid { display: grid; grid-template-columns: repeat(var(--gc-columns), minmax(0, 1fr)); gap: var(--gc-grid-gap); }
.gc-catalogs .gc-card { display: flex; flex-direction: column; min-width: 0; min-height: var(--gc-card-min-height); margin: 0; padding: var(--gc-card-padding); background: var(--gc-card-background); border: var(--gc-card-border-width) solid var(--gc-card-border-color); border-radius: var(--gc-card-radius); overflow: hidden; text-align: center; }
.gc-catalogs .gc-cover { display: flex; align-items: center; justify-content: center; height: var(--gc-image-height); margin: 18px 0 16px; overflow: hidden; flex-shrink: 0; }
.gc-catalogs .gc-cover img.gc-cover-image { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: var(--gc-image-fit); border: 0; border-radius: 0; box-shadow: none; }
.gc-catalogs .gc-cover-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--gc-muted-color); opacity: .45; }
.gc-catalogs .gc-cover-placeholder svg { width: 64px; height: 64px; }
.gc-catalogs h3.gc-card-title { margin: 0 0 10px; padding: 0; color: var(--gc-text-color); font-family: inherit; font-size: var(--gc-title-size); font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.gc-catalogs .gc-card-year { margin: 0 0 10px; color: var(--gc-muted-color); font-size: 12px; }
.gc-catalogs a.gc-button { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: auto; padding: var(--gc-button-padding) 14px; border: var(--gc-button-border-width) solid var(--gc-button-border-color); border-radius: var(--gc-button-radius); background: var(--gc-button-background); color: var(--gc-button-color); font-family: inherit; font-size: var(--gc-button-size); font-weight: 500; line-height: 1.4; text-align: left; text-decoration: none; box-shadow: none; transition: background-color .15s, color .15s; overflow-wrap: anywhere; }
.gc-catalogs a.gc-button:hover,
.gc-catalogs a.gc-button:focus-visible { background: var(--gc-button-hover-background); color: var(--gc-button-hover-color); }
.gc-catalogs .gc-button svg { width: 16px; height: 16px; flex-shrink: 0; }
.gc-catalogs .gc-unavailable { display: block; margin-top: auto; padding: var(--gc-button-padding) 8px; color: var(--gc-muted-color); font-size: var(--gc-button-size); }
.gc-catalogs .gc-empty { margin: 20px 0; padding: 24px; border: 1px solid var(--gc-filter-separator-color); color: var(--gc-muted-color); text-align: center; }
.gc-catalogs :is(button, a, input, summary):focus-visible { outline: 2px solid var(--gc-accent-color); outline-offset: 3px; }
.gc-catalogs .gc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1024px) {
  .gc-catalogs .gc-grid { grid-template-columns: repeat(var(--gc-columns-tablet), minmax(0, 1fr)); }
  .gc-catalogs.gc-enhanced.gc-has-filters { grid-template-columns: minmax(0, min(var(--gc-filter-width), 210px)) minmax(0, 1fr); }
  .gc-catalogs.gc-enhanced.gc-compact-filters { display: block; }
  .gc-catalogs.gc-compact-filters .gc-filter-toggle { display: inline-flex; justify-content: center; align-items: center; gap: 9px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--gc-filter-color); border-radius: var(--gc-filter-radius); background: var(--gc-filter-background); color: var(--gc-filter-color); font: inherit; font-size: var(--gc-filter-font-size); cursor: pointer; box-shadow: none; }
  .gc-catalogs .gc-filter-toggle svg { width: 20px; height: 20px; flex-shrink: 0; }
  .gc-catalogs.gc-compact-filters .gc-result-count { flex: 1; }
  .gc-catalogs.gc-compact-filters .gc-toolbar { padding-bottom: 16px; border-bottom: 1px solid var(--gc-filter-separator-color); }
  .gc-catalogs.gc-compact-filters .gc-search-label { order: 1; width: 100%; }
  .gc-catalogs.gc-compact-filters input.gc-search { width: 100%; }
}
@media (max-width: 767px) {
  .gc-catalogs.gc-enhanced.gc-has-filters { grid-template-columns: minmax(0, 1fr); }
  .gc-catalogs .gc-grid { grid-template-columns: repeat(var(--gc-columns-mobile), minmax(0, 1fr)); }
  .gc-catalogs .gc-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
  .gc-catalogs .gc-filter-dialog .gc-options { display: block; }
  .gc-catalogs .gc-search-label,
  .gc-catalogs input.gc-search { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .gc-catalogs a.gc-button { transition: none; }
}
