/* ================= SL-1801: Search page single-column layout override ================
   目的：search.html を軽量1カラム表示に固定しつつ、共通の style.css/card CSS を活かす
   スコープ：<body class="is-search"> が付いているページだけに効く
===================================================================================== */

/* 基本トークン */
:root{
  --sl-gap: 16px;      /* ページ内の基本ギャップ */
  --sl-pad: 12px;      /* ページ左右のパディング */
  --sl-max: 1200px;    /* 中央カラムの最大幅（980〜1200が使いやすい） */
}

/* 左右や補助サイドを丸ごと非表示（このページ限定） */
.is-search .left-column,
.is-search .right-column,
.is-search #right-column-placeholder,
.is-search .filter-wrapper,
.is-search .index-sidebar{
  display: none !important;
}

/* columns 自体は残しつつ、1カラムに */
.is-search .columns{
  display: block !important;
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  box-sizing: border-box;
}

/* 中央カラムを全幅化。背景や余白はこのページでは抑える */
.is-search .center-column{
  width: auto !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
}

/* メインコンテンツの幅を整える（カードが詰まり過ぎないように） */
.is-search .main-content{
  max-width: var(--sl-max);
  margin: 0 auto;
  padding-bottom: 24px;
}

/* ツールバー（件数＆並び替え） */
.is-search #search-toolbar .st-row{
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  margin: 8px 0 14px;
  flex-wrap: wrap;
}
.is-search #search-toolbar .st-left{ font-weight: 600; }
.is-search #search-toolbar .st-count{ font-weight: 700; }

/* 検索フォームの余白 */
.is-search .search-container{
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 6px 0 18px;
}

/* ========== 検索結果グリッド（カード受け皿） ========== */
/* HTML 側で <div id="search-results" class="search-results sr-grid"> にして使う */
.is-search #search-results.sr-grid{
  display: grid;
  grid-template-columns: 1fr;                 /* SP: 1列 */
  gap: var(--sl-gap);
}

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

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

/* 1400px〜: 4列（広い画面で） */
@media (min-width: 1400px){
  .is-search #search-results.sr-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* セル用：念のため */
.is-search #search-results .sr-cell > *{
  width: 100%;
  max-width: 100%;
}

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




/* SL-1801: 1カラム時（〜639.98px）のカード中央寄せ */
@media (max-width: 639.98px){
  .is-search #search-results.sr-grid{
    grid-template-columns: 1fr;   /* 既存の1列指定の再確認（保険） */
    justify-items: center;        /* ★これで中央寄せ */
  }
}






/* ========== SL-1801-02: search.html だけ type-container の固定幅を殺してグリッド固定 ========== */
body.is-search #search-results.type-container{
  display: grid !important;                 /* flex 指定を上書きしてグリッドに固定 */
  grid-template-columns: 1fr;               /* SP: 1列 */
  gap: var(--sl-gap, 16px);
  align-items: start;
}

/* 子要素に入っている flex 基準幅・最大幅の固定を根こそぎ解除 */
body.is-search #search-results.type-container > *{
  flex: initial !important;
  flex-basis: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* 640px〜: 2列（細すぎ防止で最小幅を持たせると安定） */
@media (min-width: 640px){
  body.is-search #search-results.type-container{
    grid-template-columns: repeat(2, minmax(300px, 1fr));
  }
}

/* 980px〜: 3列（PC標準） */
@media (min-width: 980px){
  body.is-search #search-results.type-container{
    grid-template-columns: repeat(3, minmax(320px, 1fr));
  }
}

/* 1400px〜: 4列（広い画面） */
@media (min-width: 1400px){
  body.is-search #search-results.type-container{
    grid-template-columns: repeat(4, minmax(320px, 1fr));
  }
}

/* 1列時は中央寄せ＋ソフト上限（“妙に細長いカード”を防止） */
@media (max-width: 639.98px){
  body.is-search #search-results.type-container{ justify-items: center; }
  body.is-search #search-results.type-container > *{ width: min(100%, 360px) !important; }
}





/* SL-1801 A-2: 検索ページでは右上の予備検索を隠す */
.is-search #hs-float { display: none !important; }
