/*
Theme Name: Cocoon Child (Custom)
Template: cocoon
Version: 1.0
*/

/* =========================================
   基本：はみ出し防止・タイポグラフィ基準
========================================= */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
img, video, iframe, embed, object { max-width: 100%; height: auto; display: block; }
a { word-break: break-word; }

/* =========================================
   ページャ（完全隔離）
========================================= */
.cm-archive-pager{
  display:flex;
  gap:8px;
  justify-content:center;
  align-items:center;
  margin:22px 0;
  flex-wrap:wrap;
  counter-reset:none !important;
}
.cm-archive-pager .page-numbers{
  display:inline-block;
  min-width:44px;
  text-align:center;
  padding:10px 12px;
  border:1px solid #d6d6d6;
  border-radius:8px;
  background:#fff;
  text-decoration:none;
  color:#0b5bd3;
  line-height:1;
  position:relative;
}
.cm-archive-pager *::before,
.cm-archive-pager *::after{ content:none !important; }
.cm-archive-pager *, .cm-archive-pager *::before, .cm-archive-pager *::after{
  counter-reset:none !important; counter-increment:none !important;
}
.cm-archive-pager .page-numbers.dots{
  border:none; background:transparent; color:#555; min-width:auto; padding:0 6px;
}
.cm-archive-pager .page-numbers.current{ background:#1973ff; color:#fff; border-color:#1973ff; }
.cm-archive-pager .page-numbers.prev,
.cm-archive-pager .page-numbers.next{ min-width:70px; }
.cm-archive-pager .page-numbers.is-disabled{ opacity:.45; pointer-events:none; }

/* このテンプレ領域だけ、テーマ側の汎用ナビを隠す保険 */
.wrap-archive .nav-links,
.wrap-archive .pagination,
.wrap-archive .page-links{ display:none !important; }

/* =========================================
   検索ボタン・フォーム
========================================= */
.archive-toolbar .btn{
  color:#000; font-size:14px; background:#fff;
  border:1px solid #ccc; padding:8px 14px; border-radius:8px;
  cursor:pointer; transition:background-color .2s;
}
.archive-toolbar .btn:hover{ background:#f2f2f2; }

/* =========================================
   AV女優インデックス
========================================= */
.actress-list-index{
  margin:20px 0; padding:16px; background:#f8f9fa;
  border:1px solid #e2e2e2; border-radius:8px;
}
.actress-list-index h2{ margin-bottom:12px; font-size:1.2rem; color:#333; }
.actress-index{
  display:flex; flex-wrap:wrap; gap:10px 16px;
  list-style:none; padding:0; margin:0;
}
.actress-index li{ font-size:.95rem; }
.actress-index a{ text-decoration:none; color:#1973ff; }
.actress-index a:hover{ text-decoration:underline; }

/* =========================================
   横スクロール抑止：レイアウトの器
========================================= */
.wrap, .container, .content, .main, .entry, .entry-content, .wrap-archive,
.site, .site-content, .article, .content-in{
  max-width:100%; /* ← 100vw は使わない */
  overflow-x:hidden;
}

/* テーブル・コードが長いときの保険 */
table{ display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
pre, code, kbd, samp, .wp-block-code{
  white-space:pre-wrap; word-break:break-word; overflow-x:auto;
}

/* 広告・バナーの固定幅対策 */
.ad-area img, .ad-space img, .widget img{ max-width:100%; height:auto; }

/* =========================================
   Mobile (～768px) ここに集約
========================================= */
@media (max-width: 768px){

  /* 左右の余白を統一してはみ出しを抑える */
  .wrap, .entry-content, .container, .content, .main, .article, .wrap-archive,
  .site, .site-content, .content-in{
    padding-left:12px; padding-right:12px;
  }

  /* 見出しサイズ */
  h1{ font-size:1.6rem; line-height:1.3; }
  h2{ font-size:1.3rem; line-height:1.35; }
  h3{ fontサイズ:1.15rem; line-height:1.4; }

  /* 検索ツールバー（2カラム） */
  .archive-toolbar{
    display:grid; grid-template-columns:1fr 1fr;
    gap:10px; margin-bottom:14px;
  }
  .archive-toolbar > *{ min-width:0; } /* 子要素のはみ出し防止（重要） */
  .archive-toolbar .btn{ width:100%; padding:10px 12px; font-size:15px; }
  .archive-toolbar select,
  .archive-toolbar input[type="text"],
  .archive-toolbar input[type="search"]{
    width:100%; height:40px; padding:8px 10px; font-size:15px;
  }
  .archive-toolbar .keyword,
  .archive-toolbar .keyword-wrap{ grid-column:1 / -1; } /* キーワードは全幅 */

  /* 女優インデックス余白縮小 */
  .actress-list-index{ padding:12px; margin:14px 0; }
  .actress-list-index h2{ font-size:1.05rem; margin-bottom:8px; }
  .actress-index{ gap:6px 12px; }
  .actress-index li{ font-size:.95rem; }

  /* ページャ・タップ領域 */
  .cm-archive-pager{ gap:6px; margin:18px 0; }
  .cm-archive-pager .page-numbers{ min-width:40px; padding:10px 10px; font-size:15px; }
  .cm-archive-pager .page-numbers.prev,
  .cm-archive-pager .page-numbers.next{ min-width:60px; }

  /* サイドバーは下へ */
  .sidebar, .sidebar-widget-area{ order:2; }
  .main, .content, .entry{ order:1; }

  /* 余白圧縮 */
  .ad-area, .ad-space, .widget{ margin:14px 0; }
}

/* かなり小さい端末（～480px） */
@media (max-width: 480px){
  .archive-toolbar{ grid-template-columns:1fr; } /* 1列化で誤タップ防止 */
  h1{ font-size:1.4rem; }
  .cm-archive-pager .page-numbers{ min-width:38px; padding:9px 10px; font-size:14px; }
}
