/* Faceted search UI (list selection, brand color #00a381). */
:root { --wefs-primary:#00a381; --wefs-border:#e5e7eb; }
.wefs-form{ display:grid; grid-template-columns:1fr; gap:14px; max-width:1100px; margin:0 auto; font-family: system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif; }
.wefs-label{ font-size:14px; color:#6b7280; margin-bottom:6px; display:block; }
.wefs-input{ width:100%; border:1px solid var(--wefs-border); border-radius:10px; padding:14px 16px; font-size:16px; outline:none; }
.wefs-input:focus{ border-color:var(--wefs-primary); box-shadow:0 0 0 3px rgba(0,163,129,.2); }

.wefs-multiselect{ display:flex; align-items:center; border:1px solid var(--wefs-border); border-radius:10px; padding:8px; min-height:46px; position:relative; background:#fff; }
.wefs-multiselect .dropdown-toggle{ margin-left:auto; width:36px; height:36px; border-radius:8px; border:1px solid var(--wefs-border); background:#f9fafb; cursor:pointer; }
.wefs-multiselect .dropdown-panel{ position:absolute; z-index:50; margin-top:8px; background:white; border:1px solid var(--wefs-border); border-radius:12px; padding:8px; width:min(760px,100%); box-shadow:0 10px 20px rgba(0,0,0,.10); }
.wefs-multiselect .term-filter{ width:100%; border:1px solid var(--wefs-border); border-radius:8px; padding:8px 10px; margin-bottom:6px; }
.wefs-multiselect .term-list{ max-height:280px; overflow:auto; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px; }
.wefs-multiselect .term-list li{ border:1px solid var(--wefs-border); border-radius:8px; padding:10px 12px; cursor:pointer; background:#fff; }
.wefs-multiselect .term-list li:hover{ border-color:var(--wefs-primary); }
.wefs-multiselect .term-list li[data-selected="1"]{ border-color:var(--wefs-primary); box-shadow:0 0 0 3px rgba(0,163,129,.12) inset; }

.wefs-actions{ display:flex; gap:10px; }
.wefs-btn{ appearance:none; border:0; padding:10px 16px; border-radius:10px; cursor:pointer; font-size:15px; }
.wefs-btn.wefs-search{ background:var(--wefs-primary); color:#fff; }
.wefs-btn.wefs-clear{ background:#f3f4f6; }

.wefs-results{ max-width:1100px; margin:12px auto 24px; display:grid; gap:12px; }
.wefs-card{ display:grid; grid-template-columns:160px 1fr; gap:12px; border:1px solid #e5e7eb; border-radius:12px; padding:10px; background:#fff; }
.wefs-card .thumb img{ width:100%; height:auto; border-radius:8px; display:block; }
.wefs-card .meta .date{ font-size:13px; color:#374151; }
.wefs-card .meta .title{ font-size:18px; margin:4px 0; }
.wefs-card .meta .title a{ text-decoration:none; color:#111827; }
.wefs-card .meta .sub{ font-size:13px; color:#4b5563; display:flex; gap:12px; }

.wefs-loadmore{ display:block; width:100%; text-align:center; padding:10px 12px; border:1px solid var(--wefs-border); border-radius:10px; cursor:pointer; background:#fff; }
.wefs-loadmore:hover{ border-color:var(--wefs-primary); }

@media (min-width:900px){
  .wefs-form{ grid-template-columns:1fr 1fr; }
  .wefs-actions{ grid-column:1 / -1; }
}

/* --- chips (selected tokens) --- */
.wefs-multiselect{ justify-content:flex-start; gap:8px; }
.wefs-multiselect .chosen{
  display:flex; flex-wrap:wrap; gap:8px;
  min-height:32px; padding:4px 4px;
  flex:1 1 auto;
}
.wefs-multiselect .chosen:empty::before{
  content: attr(data-placeholder);
  color:#9ca3af; font-size:13px;
}
.wefs-multiselect .chip{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(0,163,129,.08);
  border:1px solid var(--wefs-primary);
  color:#065f46; border-radius:9999px;
  padding:4px 10px; font-size:13px;
}
.wefs-multiselect .chip .remove{
  border:0; background:transparent; cursor:pointer;
  font-size:16px; line-height:1; padding:0 2px;
}

/* ===== WEFS overrides (placeholder上下センター & 選択空なら中央寄せ) ===== */

/* 入力欄のヒント（placeholder）を上下センターに */
.wefs-form .wefs-input{
  height:56px;          /* 統一高さ */
  padding:0 16px;       /* 垂直の余白は0に */
  line-height:56px;     /* テキストを高さに合わせて中央寄せ */
}

/* マルチセレクトの中身も縦センター */
.wefs-multiselect{
  align-items:center;
}

/* 「未選択」表示やピルが高さいっぱいの中央に寄るように */
.wefs-multiselect .chosen{
  min-height:40px;
  display:flex;
  align-items:center;   /* ← これで縦センター */
  flex-wrap:wrap;
  gap:8px;
}

/* ===== Facet dropdown: always open under the picker ===== */
.wefs-multiselect{
  position: relative;        /* 絶対配置の基準にする */
  align-items: center;       /* 既存の中央揃えは維持 */
}

.wefs-multiselect .dropdown-panel{
  position: absolute;
  left: 0;                   /* 枠の左に合わせる */
  top: calc(100% + 8px);     /* ピッカー直下に8pxあけて表示 */
  right: auto;
  width: 100%;               /* ピッカー幅に合わせる */
  max-height: 360px;         /* はみ出し防止 */
  overflow: auto;
  transform: none;           /* どこかで指定されていても無効化 */
  z-index: 50;
}

/* ===== Results: 1col -> 2col on desktop ===== */
.wefs-results{
  display: grid;
  grid-template-columns: 1fr;   /* モバイルは1カラム */
  gap: 16px;
}

/* 幅が十分あるときだけ2カラムに */
@media (min-width: 1024px){
  .wefs-results{
    grid-template-columns: 1fr 1fr;
  }
}

/* カード内のレイアウトは従来通り（サムネ + テキスト） */
.wefs-card{ height: 100%; }

/* ===== Card typography: bump up non-title text ===== */
.wefs-card .meta .date{ font-size: 15px; }     /* 13px → 15px */
.wefs-card .meta .sub { font-size: 15px; }     /* 13px → 15px */
.wefs-card .meta .title{ font-size: 18px; }    /* タイトルは据え置き */

@media (min-width:1024px){
  .wefs-card .meta .date,
  .wefs-card .meta .sub{ font-size: 16px; }    /* PCではさらに+1 */
  /* タイトル拡大の要望があればここで上げます */
}

/* 枠全体がクリック可能に見えるように */
.wefs-multiselect{ cursor: pointer; }
.wefs-multiselect .dropdown-toggle{ cursor: pointer; }

.wefs-loadmore[disabled]{
  opacity: .6;
  pointer-events: none;
  cursor: default;
}