  /* ===== ตัวกรองข่าว: หมวดหมู่ + ค้นหา (UX-02) ===== */
  .news-filter-sec { padding: clamp(18px,2.5vw,28px) 0 clamp(28px,3.5vw,40px); }
  /* ตัวกรองมี padding-bottom ให้ระยะห่างอยู่แล้ว — section ถัดไปไม่ต้องเพิ่ม padding-top เต็ม
     clamp(64px,8vw,120px) ของ .section ซ้ำอีกชั้น (รวมกันเคยห่างเกินไปจนดูเป็นพื้นที่ว่างเปล่า) */
  .news-filter-sec + .section { padding-top: clamp(8px,1.5vw,16px); }
  #news-featured-sec { padding-bottom: clamp(32px,4vw,56px); }
  /* ★ [ผู้ใช้พบ 2569-09-07] เดิมใช้ "#news-featured-sec + .section" (sibling selector ยึด DOM
     position) คุม padding-top ของ "ข่าวทั้งหมด" — พอ filter active, #news-featured-sec ถูกซ่อนด้วย
     display:none แต่ยังอยู่ใน DOM เดิม เลยยังจับ selector นี้ (padding กว้าง 32-56px) ทั้งที่ตอนนั้น
     "ข่าวทั้งหมด" คือ section แรกที่เห็นจริงหลัง filter-sec (ควรได้ padding แคบ 8-16px เหมือน "ข่าวเด่น"
     ตอนไม่ filter) ทำให้ตำแหน่งหัวข้อสองแบบเลื่อนไม่เท่ากัน — แก้เป็น default แคบ + class ที่ news-list.js
     toggle ตาม state จริง (featured section แสดงอยู่จริงหรือไม่) แทน */
  #news-all-sec { padding-top: clamp(8px,1.5vw,16px); }
  #news-all-sec.news-all-sec--after-featured { padding-top: clamp(32px,4vw,56px); }
  .news-empty { grid-column: 1 / -1; text-align: center; padding: 32px 0; color: var(--ink-2); font-size: 15px; }
  .news-filter { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
  .news-filter__pills { display: flex; gap: 8px; flex-wrap: wrap; }
  .news-pill {
    display: inline-flex; align-items: center; font-family: inherit;
    font-size: 14.5px; font-weight: 700; color: var(--ink); cursor: pointer;
    background: #fff; border: 1.5px solid var(--line-2); border-radius: 100px;
    padding: 9px 18px; transition: .22s var(--ease);
    min-height: 44px; /* M-06: มาตรฐาน touch target */
  }
  .news-pill:hover { border-color: var(--yellow); background: var(--yellow-tint); }
  .news-pill.is-active { background: var(--yellow); border-color: var(--yellow); color: var(--on-gold); }
  .news-filter__search {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; border: 1.5px solid var(--line-2); border-radius: 100px;
    padding: 9px 16px; min-width: 240px; flex: 0 1 280px;
  }
  .news-filter__search-ic { width: 17px; height: 17px; color: var(--ink-3); flex: none; }
  .news-filter__input {
    border: 0; outline: 0; background: transparent; font-family: inherit;
    font-size: 16px; color: var(--ink); width: 100%;
  }
  .news-filter__input::placeholder { color: var(--ink-3); }
  /* same wrapper-focus pattern as .gallery-search (subpage.css): ring on the pill, none on the inner input */
  .news-filter__search:focus-within { outline: 3px solid var(--blue); outline-offset: 2px; }
  .news-filter__input:focus-visible { outline: 0; }
  /* ครอบ search + meta ไว้ด้วยกัน แล้วชิดขวาให้ตรงกับกล่องค้นหาบน desktop (เดิม meta เป็น sibling
     แยกจาก .news-filter ทั้งก้อน เลยเต็มความกว้างชิดซ้าย ไม่ตรงกับกล่องค้นหาที่อยู่ขวา) */
  .news-filter__search-col { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
  /* ★ bug: .news-filter__search มี flex:0 1 280px ที่ตั้งใจไว้สำหรับตอนเป็นลูกตรงของ .news-filter
     (flex row — 280px คือ "ความกว้าง") ตอนนี้ครอบด้วย .news-filter__search-col (flex column) แทน
     ทำให้ flex-basis 280px ไปกำหนด "ความสูง" ตาม main-axis ใหม่แทน กลายเป็นแคปซูลยักษ์เกือบวงกลม —
     ตัด flex ออก ควบคุมความกว้างด้วย width/max-width ตรงๆ แทน */
  .news-filter__search-col .news-filter__search { flex: none; width: 100%; max-width: 280px; }
  .news-filter__meta { margin-top: 0; font-size: 14.5px; font-weight: 600; color: var(--ink-2); text-align: right; }
  .news-filter__meta[hidden] { display: none; }
  .news-loadmore { display: flex; margin: 28px auto 0; }
  .news-loadmore[hidden] { display: none; }
  @media (max-width: 640px) {
    .news-filter { flex-direction: column; align-items: stretch; }
    .news-filter__search { min-width: 0; flex: 1 1 auto; }
    .news-filter__search-col { align-items: stretch; }
    .news-filter__search-col .news-filter__search { max-width: none; }
    .news-filter__meta { text-align: left; }
  }
