/* 2026-02-01 FIX: new-audio-grid のページネーションが被らない/埋もれないようにする */
.new-audio-grid .wp-block-query-pagination{
  position: relative;
  z-index: 3;
}

.wp-block-query.audio-grid.audio-shelf{
  position:relative;
}

.audio-shelf-viewport{
  position:relative;
}

.wp-block-query.audio-grid.audio-shelf ul.wp-block-post-template{
  scroll-behavior:smooth;
}

.audio-shelf-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(14,24,36,.82);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  box-shadow:0 10px 24px rgba(0,0,0,.28);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:5;
  transition:opacity .18s ease, transform .18s ease;
}

.audio-shelf-arrow--prev{ left:10px; }
.audio-shelf-arrow--next{ right:10px; }

.audio-shelf-arrow__icon{
  color:rgba(255,255,255,.82);
  display:flex;
}

.audio-shelf-arrow.is-hidden{
  opacity:0;
}

.audio-shelf-arrow.is-disabled{
  opacity:.35;
}

@media (hover:hover){
  .audio-shelf-arrow:hover{
    transform:translateY(-50%) scale(1.04);
  }
}

@media (max-width: 768px){
  .audio-shelf-arrow{
    width:38px;
    height:38px;
  }
  .audio-shelf-arrow--prev{ left:8px; }
  .audio-shelf-arrow--next{ right:8px; }
}

.wp-block-query.audio-grid{
  position:relative;
}

.wp-block-query.audio-grid ul.wp-block-post-template{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  gap:16px;
  padding:0 0 12px;
  margin:0;
}

.wp-block-query.audio-grid ul.wp-block-post-template > li{
  flex:0 0 auto;
  width:200px;
  max-width:200px;
  scroll-snap-align:start;
}

@media (max-width: 768px){
  .wp-block-query.audio-grid ul.wp-block-post-template > li{
    width:min(70vw, 260px);
    max-width:260px;
  }
}

/* 2026-02-01 SLIM: new-audio-grid は audio-grid 共通を継承し、差分だけ上書き */
@media (max-width: 768px){
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template{
    gap:12px;
    padding:0 12px 10px 12px;
  }
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template > li{
    width:62vw;
    max-width:320px;
  }
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template::-webkit-scrollbar{ height:6px; }
}

@media (min-width: 769px){
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template{
    gap:18px;
    padding:0 0 16px;
  }
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template > li{
    width:min(16vw, 200px);
    max-width:200px;
  }
}

.wp-block-query.audio-grid.new-audio-grid .wp-block-post-featured-image img{
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  object-fit:cover;
  border-radius:22px;
  display:block;
}

.wp-block-query.audio-grid:not(.new-audio-grid) .wp-block-post-featured-image img{
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:22px;
  display:block;
}

.wp-block-query.audio-grid ul.wp-block-post-template::-webkit-scrollbar{ height:10px; }
.wp-block-query.audio-grid ul.wp-block-post-template::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.18);
  border-radius:99px;
}

/* ===============================
   Audio Grid : Square Thumbnail
   =============================== */
.audio-card__thumb,
.audio-thumb-wrap {
  aspect-ratio: 1 / 1;
}

.audio-thumb-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}

.audio-thumb-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===============================
   NEW Badge
   =============================== */
.audio-badge-new {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
  color: #fff;
  background: #e11d48;
}

/* ===============================
   Query Pagination : spacing normalize
   =============================== */

.wp-block-query-pagination{
  margin: 12px 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.wp-block-query-pagination-previous,
.wp-block-query-pagination-next,
.wp-block-query-pagination-numbers{
  margin: 0;
  padding: 0;
  line-height: 1.2;
}

.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-numbers span{
  display: inline-block;
  margin: 0 6px;
  padding: 0;
}

.wp-block-query-pagination + h2,
.wp-block-query-pagination + h3{
  margin-top: 24px;
}

/* KMA_SHELF_PAGER_OVERRIDE_V1 2026-02-15
   - 自作棚バー内のページャーだけ、WP標準の余白/整形の影響を最小化
*/
.kma-shelf-pager .wp-block-query-pagination{
  margin: 0;
  padding: 0;
}
.kma-shelf-pager .wp-block-query-pagination-previous,
.kma-shelf-pager .wp-block-query-pagination-next,
.kma-shelf-pager .wp-block-query-pagination-numbers{
  margin: 0;
  padding: 0;
}
@media (max-width: 900px){
  .kma-shelf-pager .wp-block-query-pagination{
    margin-top: 0;
    margin-bottom: 0;
  }
}
/* KMA_MOBILE_DENSITY_V1 2026-02-14
   - スマホの左右/上下余白を詰めてAudible寄せ
*/
@media (max-width: 900px){

  body .ct-container,
  body .ct-container-fluid,
  body .entry-content,
  body .content-area{
    padding-left: 12px;
    padding-right: 12px;
  }

  .wp-block-query.audio-grid{
    margin-top: 12px;
    margin-bottom: 18px;
  }

  .wp-block-query.audio-grid h2,
  h2.wp-block-heading{
    margin-top: 0;
    margin-bottom: 6px;
  }

  .kma-shelf-sort{
    margin: 4px 0 8px;
    gap: 10px;
  }

  .audio-grid .wp-block-post-template{
    gap: 14px;
  }

  .audio-grid .wp-block-post-title{
    margin: 8px 0 4px;
  }
  .audio-grid .wp-block-post-excerpt{
    margin-top: 0;
  }
}

/* KMA_MOBILE_PAGINATION_TIGHT_V1 2026-02-14
   - 棚と棚の間を広げているページネーションの上下余白を詰める
*/
@media (max-width: 900px){
  .wp-block-query-pagination,
  nav.wp-block-query-pagination{
    margin-top: 6px;
    margin-bottom: 10px;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.1;
  }
  .wp-block-query-pagination .page-numbers,
  .wp-block-query-pagination a{
    padding: 4px 6px;
    line-height: 1.1;
  }
}
/* ==============================
   KMA shelfbar（ソート / ページャー）
   - PC: ページャーは“行の物理中央”
   - SP: 新旧トグル + ランダム（アイコン）
============================== */

.kma-shelfbar{
  position: relative;
  display: flex;
  align-items: center;
  min-height: 32px;
  margin: 10px 0 14px;
}

.kma-shelf-sort{
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: nowrap;
  z-index: 2;
}

.kma-shelfbar .kma-shelf-pager-wrap{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.kma-shelf-pager{
  display: flex;
  align-items: center;
  gap: 12px;
}

.kma-shelf-page{
  text-decoration: none;
}

@media (max-width: 640px){

  .kma-shelfbar{
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

.kma-shelfbar .kma-shelf-pager-wrap{
    position: static;
    transform: none;
    width: 100%;
    justify-content: center;
  }

  .kma-shelf-sort .kma-sort-btn{
    font-size: 0;
    line-height: 0;
    padding: 8px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .kma-shelf-sort .kma-sort-btn::before{
    font-size: 18px;
    line-height: 1;
    display: inline-block;
  }

  .kma-shelf-sort .kma-sort-btn:nth-of-type(1)::before{ content: "↓"; }
  .kma-shelf-sort .kma-sort-btn:nth-of-type(2)::before{ content: "↑"; }
  .kma-shelf-sort .kma-sort-btn:nth-of-type(3)::before{ content: "⤮"; }

  .kma-shelf-sort .kma-sort-btn:nth-of-type(2){ display: none; }
  .kma-shelf-sort .kma-sort-btn:nth-of-type(1).is-active{ display: none; }
  .kma-shelf-sort .kma-sort-btn:nth-of-type(1).is-active + .kma-sort-btn:nth-of-type(2){
    display: inline-flex;
  }

  .kma-shelf-sort{ gap: 10px; }
}


/* PC card width override (6列化テスト) */
@media (min-width: 1200px){
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template{
    gap: 18px;
  }
  .wp-block-query.audio-grid.new-audio-grid ul.wp-block-post-template > li{
    width: min(16vw, 200px);
    max-width: 200px;
  }
}
