/* ================= SC-1702: search page base & responsive ================ */
/* トークン */
:root{
  --pink:#E97EA1; --aqua:#D3EFFF; --ink:#333; --gap:16px;
  --card-pad:12px; --radius:10px; --shadow:0 4px 12px rgba(0,0,0,.08);
}

/* ベース */
body{ font-family:"Yu Gothic",sans-serif; padding:20px; background:#f0f8ff; color:var(--ink); }
h2{ margin:0 0 14px; }

/* フォーム */
.search-container{ display:flex; gap:10px; align-items:center; margin-bottom:20px; flex-wrap:wrap; }
#search-input{
  padding:8px 10px; width:min(100%, 420px); border:1px solid #ccc; border-radius:8px;
}
button[type="submit"]{
  padding:9px 14px; background:var(--pink); color:#fff; border:0; border-radius:8px; cursor:pointer;
}
button[type="submit"]:hover{ filter:brightness(0.96); }

/* 結果 */
#search-results{ display:grid; gap:var(--gap); }
.search-result{
  background:#fff; padding:var(--card-pad); border:1px solid #e5e7eb;
  border-radius:var(--radius); box-shadow:var(--shadow);
}

/* 幅に応じて結果を2→3列化（カードは読みやすい幅で固定されないよう minmax） */
@media (min-width: 560px){
  #search-results{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 920px){
  #search-results{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 入力まわりの狭小対策（764–980でも崩れないように） */
@media (min-width: 764px) and (max-width: 980px){
  .search-container{ justify-content:center; }
  #search-input{ width:min(100%, 520px); }
}






/* ================= SC-1702A: results micro UI ================ */
/* ハイライト */
mark{
  background: color-mix(in oklab, var(--aqua) 75%, white 25%);
  color: inherit;
  padding: 0 .15em;
  border-radius: 3px;
}

/* 結果カードの中身を整える */
.search-result{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px 12px;
}
.sr-head{ font-size: 16px; line-height: 1.5; }
.sr-sub{ font-size: 13px; color: #475569; }

/* 再検索アクション */
.sr-actions{
  display: flex;
  gap: 8px;
}
.sr-actions a{
  display: inline-block;
  padding: 6px 10px;
  background: var(--aqua);
  color: #1f2937;
  border: 1px solid rgba(51,65,85,.15);
  border-radius: 8px;
  text-decoration: none;
}
.sr-actions a:hover{ filter: brightness(0.96); }

/* モバイル最適化 */
@media (max-width: 480px){
  .search-result{ grid-template-columns: 1fr; }
  .sr-actions{ flex-wrap: wrap; }
}






/* もっと見るボタン */
.sr-more-wrap{ display:flex; justify-content:center; margin-top:8px; }
.load-more{ padding:10px 14px; border-radius:10px; border:1px solid rgba(51,65,85,.15); background:#fff; cursor:pointer; }
.load-more:hover{ filter:brightness(0.96); }



/* ================= SC-1702B: search toolbar ================ */
.search-toolbar{ margin: 8px 0 16px; }
.search-toolbar .st-row{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px;
  padding:8px 10px; background:#fff; border:1px solid #e5e7eb; border-radius:10px;
}
.search-toolbar .st-count{ font-weight:700; color:#e11d48; }
.search-toolbar select{ padding:6px 8px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; }








/* ================= SR-1702: Search results grid ================ */
/* 基本トークン */
:root{
  --sr-gap: 16px;
}

/* Grid本体 */
#search-results.sr-grid{
  display: grid;
  grid-template-columns: 1fr;           /* SP: 1列 */
  gap: var(--sr-gap);
}

/* 640px〜: 2列 */
@media (min-width: 640px){
  #search-results.sr-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 980px〜: 3列（PC） */
@media (min-width: 980px){
  #search-results.sr-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* セルは幅100%でカードを受ける */
#search-results .sr-cell > *{ width: 100%; }

/* フォールバック箱（カード失敗時） */
.search-fallback{
  padding: 12px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}



/* SR-1702 を無効化：このページでは .type-container を使う */
.is-search #search-results.sr-grid { display: initial; grid-template-columns: initial; gap: initial; }







/* （この辺に既存のCSSがある想定） */


/* ===============================
   SR-1702: もっと見るボタン（中央＋青デザイン）
   対象: #sr-load-more / .sr-more-wrap / .load-more
================================ */
.sr-more-wrap{
  display: flex;
  justify-content: center;
  margin: 18px 0 10px;
}

#sr-load-more.load-more{
  appearance: none;
  border: 1px solid #D3EFFF;
  background: #D3EFFF;
  color: #2a4a5a;
  border-radius: 999px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  transition: transform .05s ease, filter .15s ease;
}

#sr-load-more.load-more:hover{
  filter: brightness(0.98);
}

#sr-load-more.load-more:active{
  transform: translateY(1px);
}




/* ===============================
   SR-1702: インクブルー統一（#4B4B69）
================================ */
:root{
  --cmx-ink-blue: #4B4B69;
}

/* 見出し：🔎 作品検索ページ */
.search-title,
.search-title *,
#search-title,
#search-title *{
  color: var(--cmx-ink-blue) !important;
}


/* ★追加：searchページの素の h2 を確実に拾う */
.center-column .main-content > h2{
  color: var(--cmx-ink-blue) !important;
}

/* ツールバー：🔎 ◯◯ の結果 / 並び替え： */
#search-toolbar,
#search-toolbar *{
  color: #4B4B69;

}

/* もっと見る（+20件）：文字色 */
#sr-load-more.load-more{
  color: var(--cmx-ink-blue) !important;
}





/* ===============================
   SR-1702: 「検索する」ボタンをフィルタボタンと同デザインに統一
   対象: search.html の submit ボタン
================================ */

/* まずは submit ボタンを拾う（IDが不明でも効く） */
#search-form button[type="submit"],
#search-form input[type="submit"]{
  appearance: none;
  background: #fff;
  color: #4B4B69;
  border: 1px solid #4B4B69;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  transition: transform .05s ease, filter .15s ease;
}

#search-form button[type="submit"]:hover,
#search-form input[type="submit"]:hover{
  filter: brightness(0.98);
}

#search-form button[type="submit"]:active,
#search-form input[type="submit"]:active{
  transform: translateY(1px);
}

/* 余白の見た目がズレる場合の保険 */
#search-form button[type="submit"]{
  min-height: 34px;
}

/* ===============================
   SR-1702: 並び替え select を丸み＆統一デザインに
   対象: #search-toolbar 内の #st-sort
================================ */
#search-toolbar #st-sort{
  border-radius: 999px;
  border: 1px solid #4B4B69;
  padding: 6px 12px;
  min-height: 32px;
  background: #fff;
  color: #4B4B69;
  outline: none;
}

/* フォーカス時の見え方（任意） */
#search-toolbar #st-sort:focus{
  box-shadow: 0 0 0 3px rgba(75, 75, 105, 0.18);
}




/* ===============================
   SR-1702: view-filter-bar を中央揃え
================================ */
.view-filter-bar{
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 0;
}







/* ===============================
   SR-1702 FIX: 検索フォームを1行固定（スマホ）
================================ */
@media (max-width: 629px){

  /* フォーム本体を強制 flex */
  form#search-form.search-container{
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    gap: 10px;
  }

  /* 入力欄：必ず縮むようにする（最重要） */
  #search-input{
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
  }

  /* 検索ボタン：固定サイズで折り返させない */
  #search-form button[type="submit"]{
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 8px 14px;
  }
}








/* ===============================
   検索ツールバー：常に1行
================================ */

.sr-toolbar .st-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap; /* ← 絶対に折り返さない */
}

.sr-toolbar .st-left {
  white-space: nowrap;
  font-size: 14px;
}

.sr-toolbar .st-right {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

/* select を潰しすぎない */
.sr-toolbar select {
  max-width: 160px;
}

/* 768px 以下でも1行維持 */
@media (max-width: 768px) {
  .sr-toolbar .st-row {
    gap: 8px;
  }

  .sr-toolbar .st-left {
    font-size: 13px;
  }

  .sr-toolbar select {
    max-width: 140px;
    font-size: 13px;
  }
}







/* ===============================
   検索フォーム：1行固定
================================ */

.search-container {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap; /* ← 折り返し禁止 */
}

.search-container input[type="search"] {
  flex: 1;
  min-width: 0; /* ← これが無いと折り返す */
}

.search-container button {
  white-space: nowrap;
  flex-shrink: 0;
}

/* 629px 以下（スマホ） */
@media (max-width: 629px) {
  .search-container {
    gap: 6px;
  }

  .search-container input[type="search"] {
    font-size: 14px;
  }

  .search-container button {
    font-size: 13px;
    padding: 6px 12px;
  }
}




/* =========================
   🔧 searchカードグリッド
   ========================= */

/* =========================
   🔧 search grid 強制確定
   ========================= */

#search-results {
  display: grid !important;
  flex: initial !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 24px !important;
  margin-top: 20px;
}


