/* 통합검색 페이지. 카드/그리드는 news.css 를 재사용하고 여기서는 검색 고유 요소만 정의한다.
   색상은 base.css 의 토큰을 쓰므로 light/dark 가 자동으로 따라온다. */

.section--search {
    padding: 32px 0 64px;
}

/* 검색 폼 --------------------------------------------------------------- */

.search-form {
    display: flex;
    gap: 8px;
    margin-bottom: 32px;
}

.search-form__input {
    flex: 1;
    min-width: 0;
    padding: 12px 16px;
    font-size: 16px;
    color: var(--color-text);
    background: var(--color-surface);
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

.search-form__input:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: -1px;
}

.search-form__submit {
    padding: 12px 24px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    background: var(--color-primary);
    border: none;
    border-radius: 8px;
    cursor: pointer;
}

/* 결과 요약 ------------------------------------------------------------- */

.search-total {
    margin-bottom: 24px;
    color: var(--color-text-dim);
}

.search-total strong {
    color: var(--color-primary);
}

.search-section {
    margin-bottom: 48px;
    padding-bottom: 48px;
    border-bottom: 1px solid var(--border-color);
}

/* 마지막 섹션은 구분선 숨김 */
.search-section:last-of-type {
    padding-bottom: 0;
    border-bottom: none;
}

/* 검색 결과 그리드: 5열 고정.
   news-grid 의 auto-fit 은 항목이 적으면 카드가 1fr 로 늘어나, 프로그램(소수)이
   다시보기(다수)와 열 수가 달라 보였다. 항목 수와 무관하게 5열로 통일한다. */
.search-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 1200px) { .search-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 992px)  { .search-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px)  { .search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .search-grid { grid-template-columns: 1fr; } }

/* 검색 카드 제목: 2줄까지만, 넘치면 줄임표. (뉴스홈 카드는 건드리지 않도록 검색 한정) */
.section--search .news-card__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 카드 하단 메타 좌/우 분리(날짜 · 프로그램명/기자명). */
.news-card__meta--split {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.news-card__meta-right {
    flex-shrink: 0;
    text-align: right;
    color: var(--color-text-dim);
}

/* 제목(좌) + 더보기(우) 를 한 줄에 배치한다. */
.search-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.search-count {
    margin-left: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-muted);
}

.search-more {
    flex-shrink: 0;
    font-size: 14px;
    color: var(--color-text-dim);
    text-decoration: none;
}

.search-more:hover {
    color: var(--color-primary);
}

.search-empty {
    padding: 20px 0;
    color: var(--color-muted);
}

.search-summary {
    margin-bottom: 24px;
}

.search-back {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--color-muted);
    text-decoration: none;
}

.search-back:hover {
    color: var(--color-primary);
}

/* 게시물 목록 ----------------------------------------------------------- */

.search-post-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.search-post {
    padding: 16px 0;
    border-bottom: 1px solid var(--border-color);
}

.search-post__title {
    display: block;
    margin-bottom: 6px;
    font-size: 16px;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
}

.search-post__title:hover {
    color: var(--color-primary);
}

.search-post__meta {
    display: flex;
    gap: 12px;
    font-size: 13px;
    color: var(--color-muted);
}

@media (max-width: 576px) {
    .search-form__submit {
        padding: 12px 16px;
    }
}
