/* ========================================================
   Search Page Layout (search.html)
   ======================================================== */
.breadcrumbs { max-width: 1200px; margin: 20px auto; padding: 0 20px; font-size: 12px; color: var(--text-light); font-weight: 700; }
.breadcrumbs a { color: var(--ims-primary); }

.container.search-layout { display: grid; grid-template-columns: 250px 1fr; gap: 40px; padding-bottom: 80px; }

.filter-sidebar { background: #fff; border: 2px solid var(--border-color); border-radius: 12px; padding: 20px; box-shadow: 4px 4px 0 var(--border-color); height: fit-content; }
.filter-group { margin-bottom: 25px; border-bottom: 2px dashed var(--border-color); padding-bottom: 20px; }
.filter-group:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.filter-title { font-size: 15px; font-weight: 900; margin-bottom: 15px; display: flex; align-items: center; gap: 8px; color: var(--charcoal); }
.checkbox-label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 14px; font-weight: 700; cursor: pointer; }
.checkbox-label input { appearance: none; width: 18px; height: 18px; border: 2px solid var(--border-color); border-radius: 4px; outline: none; transition: 0.2s; position: relative; }
.checkbox-label input:checked { background-color: var(--ims-primary); border-color: var(--ims-primary); }
.checkbox-label input:checked::after { content: '\f00c'; font-family: 'FontAwesome'; color: #fff; position: absolute; font-size: 12px; top: -1px; left: 2px; }

.search-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 20px; }
.search-title { font-size: 28px; color: var(--charcoal); margin: 0; }
.search-count { font-size: 16px; font-weight: 700; color: var(--text-light); }
.search-count span { font-size: 24px; color: var(--ims-primary); font-weight: 900; }

.results-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }

/* 検索画面用に共通カードのレイアウトを縦並びに上書き */
.results-grid .class-card { flex-direction: column; }
.results-grid .card-img { width: 100%; height: 160px; border-right: none; border-bottom: 2px solid var(--border-color); }
.results-grid .card-content { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.results-grid .card-title { font-size: 18px; margin-bottom: 10px; line-height: 1.4; }
.card-school { font-size: 12px; color: var(--text-light); font-weight: 700; margin-top: auto; display: flex; align-items: center; gap: 5px; }