/* === Filterable Cards Block === */ .bkbg-fc-app { display: none; } /* ---- Section ---- */ .bkbg-fc-section { width: 100%; box-sizing: border-box; } /* ---- Filter Bar ---- */ .bkbg-fc-filter { display: flex; justify-content: center; margin-bottom: 32px; } /* Buttons / Tabs */ .bkbg-fc-btns { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; } .bkbg-fc-btn { display: inline-block; padding: 7px 18px; border-radius: 999px; font-family: var(--bkbg-fcards-tf-font-family, inherit); font-size: var(--bkbg-fcards-tf-font-size-d, 13px); font-weight: var(--bkbg-fcards-tf-font-weight, 600); line-height: var(--bkbg-fcards-tf-line-height-d, 1.4); text-transform: var(--bkbg-fcards-tf-text-transform, none); font-style: var(--bkbg-fcards-tf-font-style, normal); text-decoration: var(--bkbg-fcards-tf-text-decoration, none); letter-spacing: var(--bkbg-fcards-tf-letter-spacing-d, normal); word-spacing: var(--bkbg-fcards-tf-word-spacing-d, normal); cursor: pointer; transition: background 0.2s, color 0.2s; user-select: none; } .bkbg-fc-filter--tabs .bkbg-fc-btn { border-radius: 6px 6px 0 0; border-bottom: none; } /* Dropdown */ .bkbg-fc-dropdown { appearance: none; padding: 9px 36px 9px 14px; border-radius: 8px; font-family: var(--bkbg-fcards-tf-font-family, inherit); font-size: var(--bkbg-fcards-tf-font-size-d, 14px); font-weight: var(--bkbg-fcards-tf-font-weight, 500); cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z' fill='%23666'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; } /* ---- Grid ---- */ .bkbg-fc-grid { display: grid; transition: none; } /* ---- Card ---- */ .bkbg-fc-card-wrap { position: relative; overflow: hidden; transition: opacity 0.35s ease, transform 0.35s ease; display: flex; flex-direction: column; } .bkbg-fc-card-wrap.bkbg-fc-hidden { display: none; } /* animate-filter: fade out before hiding */ .bkbg-fc-card-wrap.bkbg-fc-fading { opacity: 0; transform: scale(0.96); } .bkbg-fc-card-img { position: relative; overflow: hidden; background: #f3f4f6; flex-shrink: 0; } .bkbg-fc-card-img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; } .bkbg-fc-card-wrap:hover .bkbg-fc-card-img img { transform: scale(1.04); } .bkbg-fc-card-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #9ca3af; font-size: 13px; } /* Featured accent bar */ .bkbg-fc-featured-bar { height: 3px; width: 100%; position: absolute; top: 0; left: 0; } /* Card body */ .bkbg-fc-card-body { padding: 20px; flex: 1; display: flex; flex-direction: column; } .bkbg-fc-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; gap: 8px; } .bkbg-fc-cat { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; } .bkbg-fc-label { font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 999px; white-space: nowrap; } .bkbg-fcards-wrap .bkbg-fc-card-title { font-family: var(--bkbg-fcards-tt-font-family, inherit); font-size: var(--bkbg-fcards-tt-font-size-d, 17px); font-weight: var(--bkbg-fcards-tt-font-weight, 700); line-height: var(--bkbg-fcards-tt-line-height-d, 1.3); text-transform: var(--bkbg-fcards-tt-text-transform, none); font-style: var(--bkbg-fcards-tt-font-style, normal); text-decoration: var(--bkbg-fcards-tt-text-decoration, none); letter-spacing: var(--bkbg-fcards-tt-letter-spacing-d, normal); word-spacing: var(--bkbg-fcards-tt-word-spacing-d, normal); margin: 0 0 8px; } .bkbg-fc-card-desc { font-family: var(--bkbg-fcards-td-font-family, inherit); font-size: var(--bkbg-fcards-td-font-size-d, 14px); font-weight: var(--bkbg-fcards-td-font-weight, 400); line-height: var(--bkbg-fcards-td-line-height-d, 1.6); text-transform: var(--bkbg-fcards-td-text-transform, none); font-style: var(--bkbg-fcards-td-font-style, normal); text-decoration: var(--bkbg-fcards-td-text-decoration, none); letter-spacing: var(--bkbg-fcards-td-letter-spacing-d, normal); word-spacing: var(--bkbg-fcards-td-word-spacing-d, normal); margin: 0 0 16px; flex: 1; } .bkbg-fc-card-link { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 600; text-decoration: none; transition: gap 0.2s; } .bkbg-fc-card-link:hover { gap: 8px; } /* List layout: card is horizontal */ .bkbg-fc-grid.bkbg-fc-list .bkbg-fc-card-wrap { flex-direction: row; } .bkbg-fc-grid.bkbg-fc-list .bkbg-fc-card-img { width: 200px; } .bkbg-fc-grid.bkbg-fc-list .bkbg-fc-card-body { padding: 20px 24px; } /* Typography responsive */ @media (max-width: 1024px) { .bkbg-fcards-wrap .bkbg-fc-card-title { font-size: var(--bkbg-fcards-tt-font-size-t, var(--bkbg-fcards-tt-font-size-d, 17px)); line-height: var(--bkbg-fcards-tt-line-height-t, var(--bkbg-fcards-tt-line-height-d, 1.3)); letter-spacing: var(--bkbg-fcards-tt-letter-spacing-t, var(--bkbg-fcards-tt-letter-spacing-d, normal)); word-spacing: var(--bkbg-fcards-tt-word-spacing-t, var(--bkbg-fcards-tt-word-spacing-d, normal)); } .bkbg-fc-card-desc { font-size: var(--bkbg-fcards-td-font-size-t, var(--bkbg-fcards-td-font-size-d, 14px)); line-height: var(--bkbg-fcards-td-line-height-t, var(--bkbg-fcards-td-line-height-d, 1.6)); letter-spacing: var(--bkbg-fcards-td-letter-spacing-t, var(--bkbg-fcards-td-letter-spacing-d, normal)); word-spacing: var(--bkbg-fcards-td-word-spacing-t, var(--bkbg-fcards-td-word-spacing-d, normal)); } .bkbg-fc-btn { font-size: var(--bkbg-fcards-tf-font-size-t, var(--bkbg-fcards-tf-font-size-d, 13px)); line-height: var(--bkbg-fcards-tf-line-height-t, var(--bkbg-fcards-tf-line-height-d, 1.4)); letter-spacing: var(--bkbg-fcards-tf-letter-spacing-t, var(--bkbg-fcards-tf-letter-spacing-d, normal)); word-spacing: var(--bkbg-fcards-tf-word-spacing-t, var(--bkbg-fcards-tf-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-fcards-wrap .bkbg-fc-card-title { font-size: var(--bkbg-fcards-tt-font-size-m, var(--bkbg-fcards-tt-font-size-t, var(--bkbg-fcards-tt-font-size-d, 17px))); line-height: var(--bkbg-fcards-tt-line-height-m, var(--bkbg-fcards-tt-line-height-t, var(--bkbg-fcards-tt-line-height-d, 1.3))); letter-spacing: var(--bkbg-fcards-tt-letter-spacing-m, var(--bkbg-fcards-tt-letter-spacing-t, var(--bkbg-fcards-tt-letter-spacing-d, normal))); word-spacing: var(--bkbg-fcards-tt-word-spacing-m, var(--bkbg-fcards-tt-word-spacing-t, var(--bkbg-fcards-tt-word-spacing-d, normal))); } .bkbg-fc-card-desc { font-size: var(--bkbg-fcards-td-font-size-m, var(--bkbg-fcards-td-font-size-t, var(--bkbg-fcards-td-font-size-d, 14px))); line-height: var(--bkbg-fcards-td-line-height-m, var(--bkbg-fcards-td-line-height-t, var(--bkbg-fcards-td-line-height-d, 1.6))); letter-spacing: var(--bkbg-fcards-td-letter-spacing-m, var(--bkbg-fcards-td-letter-spacing-t, var(--bkbg-fcards-td-letter-spacing-d, normal))); word-spacing: var(--bkbg-fcards-td-word-spacing-m, var(--bkbg-fcards-td-word-spacing-t, var(--bkbg-fcards-td-word-spacing-d, normal))); } .bkbg-fc-btn { font-size: var(--bkbg-fcards-tf-font-size-m, var(--bkbg-fcards-tf-font-size-t, var(--bkbg-fcards-tf-font-size-d, 13px))); line-height: var(--bkbg-fcards-tf-line-height-m, var(--bkbg-fcards-tf-line-height-t, var(--bkbg-fcards-tf-line-height-d, 1.4))); letter-spacing: var(--bkbg-fcards-tf-letter-spacing-m, var(--bkbg-fcards-tf-letter-spacing-t, var(--bkbg-fcards-tf-letter-spacing-d, normal))); word-spacing: var(--bkbg-fcards-tf-word-spacing-m, var(--bkbg-fcards-tf-word-spacing-t, var(--bkbg-fcards-tf-word-spacing-d, normal))); } } /* Responsive */ @media (max-width: 768px) { .bkbg-fc-grid { grid-template-columns: 1fr 1fr !important; } .bkbg-fc-grid.bkbg-fc-list .bkbg-fc-card-wrap { flex-direction: column; } .bkbg-fc-grid.bkbg-fc-list .bkbg-fc-card-img { width: 100% !important; } } @media (max-width: 480px) { .bkbg-fc-grid { grid-template-columns: 1fr !important; } }