/*
 * 보드팩토리 사진형 게시판 스킨 — 목록(사진 격자)만 이 파일에서 꾸민다.
 * 글 보기/댓글/글쓰기와 검색 상자, 관리 버튼 등은 board/basic/style.css 를 함께 불러 쓴다.
 * 목록형 스킨과 겹치지 않는 클래스만 쓰므로 두 파일의 불러오는 순서와 관계없이 동작한다.
 */
.bfk-board--gallery .bfk-board__gtool { padding: 10px 2px; }

.bfk-board--gallery .bfk-board__grid {
    display: grid; grid-template-columns: repeat(var(--bfk-cols, 4), minmax(0, 1fr)); gap: 16px;
}
.bfk-board__card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--bfk-border); border-radius: var(--bfk-radius); background: var(--bfk-bg); transition: box-shadow .2s, border-color .2s; }
.bfk-board__card:hover { border-color: var(--bfk-primary-line); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }

.bfk-board__media { position: relative; }
.bfk-board__thumb {
    display: block; overflow: hidden; aspect-ratio: var(--bfk-ratio, 4 / 3);
    background: var(--bfk-soft);
}
.bfk-board__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.bfk-board__card:hover .bfk-board__thumb img { transform: scale(1.04); }
.bfk-board__noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--bfk-muted); }
.bfk-board__noimg .bfk-ico { width: 40px; height: 40px; opacity: .4; }
.bfk-board__card.is-notice { border-color: var(--bfk-primary-line); }
.bfk-board__card.is-current { border-color: var(--bfk-primary); }

.bfk-board__flags { position: absolute; left: 8px; top: 8px; display: flex; flex-wrap: wrap; gap: 4px; pointer-events: none; }
.bfk-board__pick {
    position: absolute; right: 8px; top: 8px; display: flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: var(--bfk-radius); background: var(--bfk-bg); box-shadow: 0 2px 8px rgba(15, 23, 42, .15);
}
.bfk-board__pick input { width: 18px; height: 18px; margin: 0; accent-color: var(--bfk-primary); cursor: pointer; }

.bfk-board__body { display: grid; gap: 6px; min-width: 0; padding: 12px 14px 14px; }
.bfk-board__gcate { justify-self: start; color: var(--bfk-primary); font-size: 12px; font-weight: 700; }
.bfk-board__title {
    display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    font-size: 14.5px; font-weight: 600; line-height: 1.45;
}
.bfk-board__card.is-notice .bfk-board__title { font-weight: 800; }
.bfk-board__card.is-current .bfk-board__title { color: var(--bfk-primary); }
.bfk-board__title .bfk-board__icon { vertical-align: -0.1em; }
.bfk-board__title .bfk-board__cmt { margin-left: 2px; }
.bfk-board__info { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 10px; color: var(--bfk-muted); font-size: 12px; }
.bfk-board__writer { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--bfk-text); }
.bfk-board__facts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; }
.bfk-board__facts > span { display: inline-flex; align-items: center; gap: 3px; }
.bfk-board__gempty { grid-column: 1 / -1; }
.bfk-board__sorted { color: var(--bfk-muted); font-size: .8rem; }

@media (max-width: 1024px) {
    .bfk-board--gallery .bfk-board__grid { grid-template-columns: repeat(var(--bfk-cols-t, 3), minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .bfk-board--gallery .bfk-board__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .bfk-board__body { padding: 10px 10px 12px; }
    .bfk-board__card { gap: 8px; }
    .bfk-board__title { font-size: .92rem; }
    .bfk-board__info { font-size: .78rem; }
    .bfk-board__facts > span:nth-child(n+3) { display: none; }
}

/* 사진 위 공지 표시: 사진 위에서도 읽히도록 채운 색 */
.bfc-tag--solid { background: var(--bfk-primary); color: #fff; }
