/*
	Theme Name: diver_child
	Template: diver
	Description:  Diverの子テーマです。
	Theme URI: http://tan-taka.com/diver/
	Author: Takato Takagi
 */

/* カスタマイズする場合にはこれより下に追記してください  */

/*************************************************************
ブレークポイント
■スマホ
@media screen and (max-width: 767px) {

■スマホ以外
@media screen and (min-width: 768px) {

■タブレット縦
@media screen and (min-width: 768px) and (max-width: 1053px) {

■スマホ+タブレット縦
@media screen and (max-width: 1053px) {

■PC+タブレット横
@media screen and (min-width: 1054px) {

*************************************************************/

/*************************************************************
共通スタイル
*************************************************************/

/**** ページ全体 ****/

body .page-product-detail .product-info {
  font-family: Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro W3,HiraginoSans-W3,メイリオ,Meiryo,ＭＳ Ｐゴシック,sans-serif;
}

#main-wrap {
  margin: 30px auto 20px;
}

@media screen and (max-width: 1053px) {
  #main-wrap {
    padding: 0 10px;
    margin: 20px auto;
  }
}

h1,
h1.page_title {
    padding: 0;
    margin-bottom: 30px;
    font-weight: bold;
}

@media screen and (max-width: 1053px) {
  .page_title {
    padding: 0;
    margin-bottom: 20px;
  }
}

h2 {
    padding: 0;
    margin: 0 0 20px;
}

.h2-title-wrap {
  display: flex;
  align-items: baseline; /* 縦位置を中央揃え */
  gap: 20px;           /* h2 と .go-page の間隔 */
  margin-bottom: 20px;
}
.h2-title-wrap h2,
.h2-title-wrap .go-page {
  margin: 0;
}

.home .h2-title-wrap,
.home .actress-new h2,
.home .actress-coming h2 {
  border-bottom: 2px solid #333;
}

h3 {
    padding: 0;
    margin-bottom: 10px;
}

section {
    margin-bottom: 48px;
}
section.actress-detail-header {
    margin-bottom: 30px;
}

.fanza-link button {
    border: none;          /* 枠線なし */
    background: none;      /* 背景なし */
    cursor: pointer;       /* ホバーで手の形*/
}

.inline-flex {
  display: inline-flex;
}
.column-flex {
    display: flex;
    flex-direction: column; /* 子要素を縦に並べる */
}

@media screen and (min-width: 1280px) {
  .sp-br {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .none-sp {
    display: none;
  }
  .home .sale-content .product-item:nth-child(n+5) {
    display: none;
  }
}

/**** グローバルナビ ****/
#onlynav ul li a {
    font-size: 1rem;
    font-weight: 700;
    padding: 0.7em 1em;
}

#onlynav ul li.current-menu-item,
#onlynav ul li.current_page_item,
#scrollnav ul li.current-menu-item a,
#scrollnav ul li.current_page_item a {
    background: #ff3e75;
    color: #fff;
}

/**** フィルターパネル ****/

.filter-panel {
    margin-bottom: 30px;
}

.page-fav-products .filter-panel {
    margin-bottom: 25px;
}

/**** 女優・作品検索ボタン ****/

@media screen and (min-width: 1054px) {
  .search-btn {
    display: none;
  }
}
@media screen and (max-width: 1053px) {
  #sidebar {
    display: none;
  }
  #page-main {
    margin: 0!important;
    padding: 0!important;
  }
}

/**** 商品一覧表示 ****/

.pr {
   margin-left: 8px;
   font-weight: 300;
   font-size: 16px;
}

/**** お気に入り星・ハート ****/

/* 商品の星 */
.product-image {
    position: relative;
}

.product-image img.fav-product-icon {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 30px;
    height: auto;
    cursor: pointer;
    z-index: 10;
}

/* 女優のハート */
.actress-tile {
    position: relative; /* ハートを絶対配置するため */
    overflow: hidden;
}

.fav-actress-icon {
    position: absolute;
    top: inherit;
    right: 0;
    width: 24px;
    height: 24px;
    cursor: pointer;
    z-index: 10;
    margin: 0;
    padding: 0;
}

/* 女優のハート 女優詳細ページ */
.actress-detail-titlearea {
    display: flex;             /* 横並びにする */
    align-items: center;       /* 縦方向中央揃え */
    gap: 8px; 
    margin-bottom: 10px;                 /* h1とアイコンの間隔 */
}

.actress-detail-titlearea .d-page_title {
    margin: 0;                 /* 不要な余白を消す */
    font-size: 28px;
}

.fav-actress-icon-detail {
    width: 30px;
    height: 30px;
    cursor: pointer;
}


/* ===========================
   全体レイアウト
=========================== */
.products-grid {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1.5%;
    row-gap: 40px;
    width: 100%;
    box-sizing: border-box;
    align-items: stretch;
}

.result-count + .products-grid {
    margin-top: 0;
}

.product-item {
    flex: 0 0 calc(25% - 1.5%);
    box-sizing: border-box;

    /* ← タイル内部を縦方向のFlexにする */
    display: flex;
    flex-direction: column;
}

/* ===========================
   画像
=========================== */
.product-image {
  position: relative;
  aspect-ratio: 800 / 538;   /* 横長画像の比率＝基準高さ */
  overflow: hidden;
}

.product-image a {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-image a img {
  /* ★ここが肝 */
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  display: block;
}

/* ===========================
   タイトル（2行固定）
=========================== */
.product-item h3 {
    margin: 5px 0;
    font-size: 16px;
    line-height: 1.3;

    /* 2行 × 1.3 × 16px ≒ 約42px */
    height: 42px;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===========================
   リリース日（1行固定）
=========================== */
.product-item .release-date {
    font-size: 14px;
    text-align: right;
    margin: 5px 0;

    /* 1行 */
    height: 18px;
    overflow: hidden;
}

/* ===========================
   女優名（3行固定）
=========================== */
.product-item .actress-link-list {
    margin: 5px 0;
    font-size: 14px;
    line-height: 1.3;

    /* 1?3行はOK。伸びたいときだけ伸びる */
    min-height: calc(1.3em * 1); /* 1行分の最低高さだけ保障 */

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===========================
   ジャンル（2行固定）
=========================== */
.product-item .genre-link-list {
    margin: 5px 0 10px;
    font-size: 14px;
    line-height: 1.3;

    /* 2行 × 1.3 × 14px ≒ 約36px */
    height: 36px;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===========================
   ボタンを一番下に揃える
=========================== */
.product-page-link {
    margin-top: auto;  /* ← これで最下部に固定される */
    display: flex;
    gap: 10px;
}

.product-page-link a {
    flex: 1;
    text-align: center;
    background: #ff5f57;
    color: #fff;
    padding: 5px 0;
    text-decoration: none;
    border-radius: 4px;
    display: block;
    font-weight: bold;
}


/* 画面幅930px以下で3列表示 */
@media screen and (max-width: 1053px) {
    .product-item {
        flex: 0 0 calc(33.3333% - 1.2%); /* 3列表示、列間を考慮 */
    }
}

/* 画面幅768px以下で2列表示 */
@media screen and (min-width: 768px) and (max-width: 1053px) {
    .product-item {
        flex: 0 0 calc(50% - 1%); /* 2列表示、列間を考慮 */
    }
}

/* 画面幅480px以下で1列表示（必要なら） */
@media screen and (max-width: 767px) {
    .product-item {
        flex: 0 0 100%; /* 1列表示 */
    }
}

/**** チェックボックス ****/
.chkboxLabel {
  display: inline-block;
  padding: 15px 5px;
  background-color: #fff;
  border: 1px solid #333;
    border-top-color: rgb(51, 51, 51);
    border-right-color: rgb(51, 51, 51);
    border-bottom-color: rgb(51, 51, 51);
    border-left-color: rgb(51, 51, 51);
  cursor: pointer;
  line-height: 8px;
  width: 6em;
  text-align: center;
  margin: 2px;
  font-size: 1.2rem;
  border-radius: 3px;
  color: #333;
  font-weight: bold;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

/* フィルターパネルのボタンと疑似セレクトを完全統一 */
.filter-panel button,
.pseudo-select {
    all: unset;               /* ブラウザデフォルトのスタイルをリセット */
    box-sizing: border-box;   /* サイズ計算を統一 */
    display: inline-block;
    position: relative;
    width: 6em;
    margin: 2px;
    padding: 8px 5px;
    font-family: inherit;     /* フォントを親に揃える */
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    color: #333;
    background-color: #fff;
    border: 1px solid #333;
    border-radius: 3px;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

/* 初期状態の全角スペース用 */
.pseudo-select .selected.empty::after {
  content: none; /* 三角を非表示 */
}

.pseudo-select .selected {
  display: inline-flex;
    width: 100%;
  justify-content: center;
  align-items: center;
}

.pseudo-select .selected:not(.empty)::after {
  content: "▼";
  font-size: 0.5em;
  margin-left: 4px;
}

.pseudo-select .options {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid #333;
  border-radius: 3px;
  background: #fff;
  z-index: 1000;
}

.pseudo-select .options li {
  padding: 8px 5px;
  text-align: center;
  cursor: pointer;
}

.pseudo-select .options li:hover {
  background-color: #eee;
}

@media screen and (min-width: 768px) and (max-width: 1053px) {
  .filter-panel button,
  .pseudo-select {
        width: calc(calc(100% / 6) - 10px);
  }
}

.filter-panel button.active,
input[type="radio"]:checked + .chkboxLabel, input[type="checkbox"]:checked + .chkboxLabel {
  background-color: #2589d0;
  border-color: #2e6891;
  color: #fff;
  box-shadow: 0 2px 5px 0 rgba(0,0,0,0.1);
}
input.auto-submit {
  display: none;
}

@media screen and (max-width: 767px) {
  .filter-panel {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    justify-content: center;
    gap: 4px;
  }

  /* 共通：幅を少し広げる */
  .filter-panel button,
  .pseudo-select {
    width: 7.2em;
  }

  /* ===== 並び順 ===== */
  .filter-2dvr:nth-of-type(1) { grid-column: 1; }
  .filter-2dvr:nth-of-type(2) { grid-column: 2; }

  .filter-single { grid-column: 1; }
  .filter-no-best { grid-column: 2; }

  /* ===== セール中 OFF ===== */
  .filter-panel[data-on-sale="0"] .filter-on-sale {
    grid-column: 1; /* ← 左列 */
  }

  /* ===== セール中 ON ===== */
  .filter-panel[data-on-sale="1"] .filter-on-sale {
    grid-column: 1;
  }

  .filter-panel[data-on-sale="1"] .pseudo-select {
    grid-column: 2;
  }

  /* 人気順はON時のみ */
  .filter-panel[data-on-sale="0"] .pseudo-select {
    display: none;
  }
}

/**** ページネーション ****/

.pager.upper {
  margin-bottom: 20px;
}
.pager-body {
  margin-left: -3px;
}
a.page-nums, .pager .current {
  color: #607d8b;
  padding: 8px 18px;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  letter-spacing: 0;
  margin: 0 3px;
  border-radius: 3px;
}
a.page-nums {
  background: #afafaf;
  color: #fff;
}
.page-nums.dots {
  margin: 0 4px;
  display: inline-block;
}
.pager .current {
  background: #dd3333;
  color: #fff;
  font-weight: bold;
}
.pager p {
  margin-bottom: 0;
}
.pager.lower {
  margin-top: 20px;
}

.result-count {
  margin: 0 0 20px;
  font-size: 16px;
}

@media screen and (max-width: 1053px) {
  .pager {
    width: fit-content;   /* 中身に合わせた幅 */
 }
  a.page-nums,
  .pager .current {
    padding: 8px 14px;
 }
}

/*************************************************************
トップページ
*************************************************************/
.actress-coming .actress-grid,
.actress-new .actress-grid {
  margin: 0 auto;
}
.sale-info {
   line-height: 1.3;
}

.page-front .front-ranking-tabs {
  margin-bottom: 15px;
}

.page-front .front-ranking-content {
    display: none;
}
.page-front .front-ranking-content.active {
    display: block;
}

/*************************************************************
女優タイル
*************************************************************/
/* タイル全体リンクをブロック化してクリック可能に */
.actress-image-link {
    position: relative;
    display: block;
    width: 181px;
    height: 125px;
    margin: 0 auto;
    padding: 0 28px;
}
.actress-info-link {
    text-decoration: none;
    color: inherit;
}

/* グリッド全体 */
.actress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(181px, 1fr));
    gap: 16px;
    margin: 0 auto;
    padding: 0;
}

/* タイル */
.actress-tile,
.actress-tile-wrap {
    text-align: center;
    white-space: nowrap; /* 改行させない */
    overflow: hidden;
    text-overflow: ellipsis;
    width: 181px;
    margin: 0 auto;
}

/* 画像 */
.actress-image {
    width: 125px;
    height: 125px;
    object-fit: cover;
}

@media screen and (max-width: 767px) {
  .actress-detail-header .content {
    margin: 0 auto;
    width: fit-content;
  }
}

/* 情報 */
.actress-info p {
    margin: 4px 0;
    font-size: 13px;
    line-height: 1.2;
}

.actress-tile .actress-info .actress-name {
    font-weight: bold;
    font-size: 16px; /* フォント大きく */
    color: #333;
}

.sale-count,
.actress-ruby {
    color: #666;
}

.actress-birthday,
.actress-size {
    font-size: 13px;
    color: #333;
}

/* レスポンシブ（スマホ+タブレット縦） */
@media screen and (max-width: 1053px) {
  .actress-info p {
    font-size: 12px;
  }
  .actress-name {
    font-size: 16px;
  }
}

/*************************************************************
女優詳細ページ
*************************************************************/

.page-actress-detail h1.page_title {
    border-bottom: none;
}

@media screen and (max-width: 768px) {
    .actress-detail-header {
        width: fit-content;   /* 中身に合わせた幅 */
        margin: 0 auto;       /* ブロック全体を中央寄せ */
    }
}

/* 女優情報横並び */
.page-actress-detail .flex-container {
    display: flex;
    align-items: flex-start; /* 上揃え */
    gap: 16px;               /* ボックス間の隙間 */
}

.d-page_title span {
    font-size: 0.7em;
}

.actress-detail dl {
    margin-bottom: 0.5em;
}
.actress-detail {
    line-height: 1.0;
}
.actress-detail dt,
.actress-detail dd {
    padding: 0;
}
.actress-detail dt {
    font-size: 13px;
    color: #999;
}
.actress-detail dd {
    border: none;
    font-size: 16px;
    color: #333;
}

/*************************************************************
商品詳細ページ
*************************************************************/
.page-product-detail h1.page_title {
    padding: 0 0 3px;
    font-weight: 600;
    font-size: 1rem;
    border-bottom: 3px solid #333;
    margin-bottom: 3px;
}
.page-product-detail .product-detail-pr {
    margin-bottom: 20px;
}
.page-product-detail h3 {
    padding: 0;
    font-weight: 600;
    font-size: 0.9rem;
    border-bottom: 2px solid #333;
    margin: 0 0 15px;
}

.page-product-detail .description {
    margin-bottom: 38px;
}

.sample-package img {
    max-height: 360px; /* 最大の縦サイズ */
    width: auto;       /* 横幅は縦横比に応じて自動調整 */
    height: auto;      /* 縦横比を維持 */
    display: block;    /* 余白を防ぐ場合に推奨 */
    margin: 0;
}

/* デフォルト（縦並び） */
.page-product-detail .content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 動画比率維持 */

@media screen and (min-width: 1054px) {
  .sample-movie {
    width: 50%;
    max-width: 560px;
  }
}

.sample-movie iframe {
  width: 100%;
  height: 360px;
  display: block;
}

@media screen and (max-width: 500px) {
  .sample-movie + .product-info {
    margin-top: calc(
      (360px - (115% * 9 / 14)) * -1
    );
  }
}

/* --- 情報テーブル共通 --- */
.product-info-tbl {
    border-collapse: collapse;
    background: none;
    border: none;
    font-size: 0.85rem;
    line-height: 1.2;
    margin: 0 !important;
}

.product-info-tbl .review-stars img {
    margin: 0;
    position: relative;
    top: -2px;
}

/* --- product-info-tbl th --- */
.product-info-tbl th {
    font-weight: 300;
    padding: 4px 0;
    white-space: nowrap;
    width: 85px;
    overflow: hidden;
    text-overflow: ellipsis;
    border: none;
    background: none;
    text-align: right;
    vertical-align: top;
}

.product-info-tbl td {
    padding: 0;
    border: none;
    background: none;
}

/* --- product-price-tbl を内容ぴったりに強制 --- */
.product-price-tbl {
    display: inline-block !important;  /* 内容幅にフィット */
    width: max-content !important;     /* 中のテキスト幅だけ */
    max-width: max-content !important;
    table-layout: auto;
    background: none;
    border: none;
    border-collapse: collapse;
    background: none;
    border: none;
    font-size: 0.85rem;
    line-height: 1.2;
    margin: 10px 0 0 !important;
}

/* th / td どちらも内容に合わせる */
.product-price-tbl th,
.product-price-tbl td {
    padding: 6px 10px;
    white-space: nowrap;
    width: auto !important;     /* 念のため強制上書き */
    background: none;
    border: 1px solid #999;
}

.product-price-tbl .price-type {
    font-weight: 300;
    text-align: left;
}

.product-price-tbl .deadline {
   text-align: center;
}

.product-price-tbl .price-box {
   text-align: right;
}

.product-price-tbl .list-price {
   vertical-align: middle;
   text-decoration: line-through;
   margin-right: 5px;
}

.product-price-tbl .current-price {
    vertical-align: middle;
    font-size: 1.3rem;
    font-weight: bold;
    color: #ff0000;
}

.detail-price-wrap {
  width: max-content;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .detail-price-wrap {
    margin: 0 auto;
  }
}

.campaign-info {
    margin-top: 7px;
}
.campaign-end {
    position: relative;
    font-weight: 700;
    padding: 5px 55px;
    background-color: #ff3e75;
    border-radius: 9999px;
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
    color: #fff;
    width: max-content;
}
.campaign-string {
    position: absolute;
    left: 8px;
    transform: rotate(-35deg);
    color: #ffd84d;
    font-weight: bold;
}

/* --- 1054px以上で横並び --- */
@media (min-width: 1054px) {
    .page-product-detail .content {
        flex-direction: row;
        align-items: flex-start;
    }

    .sample-movie {
        flex: 0 0 auto;
    }
}

.product-detail-btn {
  width: 9em;
  height: 2.8em;
  color: #fff;
  font-weight: bold;
  font-size: 18px; /* 同じフォントサイズ */
  border-radius: 6px; /* 同じ角丸 */
  text-decoration: none;
  text-align: center;
  transition: 0.25s;
  cursor: pointer;
    padding: 12px 24px;
    border: none;
}

/* FANZAボタン */
.product-detail-btn-wrap .fanza-btn {
    display: inline-block;
    background-color: #e60000; /* FANZAっぽい赤 */
}

.product-detail-btn-wrap .fav-product-btn {
  display: none;
  background-color: #ababab; /* 未追加は透明 */
}

@media screen and (min-width: 1054px) {
  .product-detail-btn-wrap .fanza-btn:hover {
    background-color: #c80000; /* 濃い赤に */
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  }
  .product-detail-btn-wrap .fav-product-btn:hover {
  background-color: #696969;
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  }
}

.product-detail-btn-wrap .fav-product-btn.added {
  background-color: #F0C600; /* お気に入り追加時は黄色 */
  border-color: #F0C600; /* 枠も黄色に揃える */
}

/*************************************************************
一覧ページ
*************************************************************/
.maker-table,
.series-table,
.genre-table {
    border-collapse: collapse;
    width: 100%;
    margin-top: 20px;
}
.maker-table th,
.series-table th,
.genre-table th {
    width: 1px; /* 内容幅に自動調整 */
    padding: 2px 5px;
    background: none; /* 背景色なし */
    text-align: center;
    vertical-align: middle;
}
.maker-table td,
.series-table td
.genre-table td {
    padding: 2px 5px;
}
.maker-table td a,
.series-table td a,
.genre-table td a {
    display: inline-block;
    margin-right: 8px;
    margin-bottom: 4px;
    text-decoration: none;
    color: #0073aa;
}
.maker-table td a:hover,
.series-table td a:hover,
.genre-table td a:hover {
    text-decoration: underline;
}

/*************************************************************
セール・お気に入りページ
*************************************************************/

/* タブボタンコンテナ */
.sale-tabs,
.fav-tabs {
    display: flex;
    width: 100%;
    margin: 0 auto 38px; /* 中央寄せ＋下マージン */
    font-family: sans-serif;
    justify-content: space-between; /* ボタン間に少し間隔 */
}

/* 各タブボタン */
.sale-tabs button,
.fav-tabs button {
    flex: 1; /* 50%ずつ */
    margin: 0 3px; /* ボタン間の隙間 */
    padding: 10px 0;
    border: none;
    background-color: #e0e0e0;
    color: #333;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative; /* 三角用に相対位置 */
}

/* 選択中のタブ */
.sale-tabs button.active,
.fav-tabs button.active {
    background-color: #eb6363;
    color: #fff;
}

/* 選択中タブの下三角 */
.sale-tabs button.active::after,
.fav-tabs button.active::after {
    content: '';
    position: absolute;
    bottom: -12px; /* ボタンの下に少し出す */
    left: 50%;
    transform: translateX(-50%);
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid #eb6363; /* 三角の色はボタン背景と同じ */
}

/* ホバー時（選択中でない場合のみ） */
.sale-tabs button:not(.active):hover,
.fav-tabs button:not(.active):hover {
    background-color: #d6d6d6;
}

.fav-pagenation {
  position: relative;
}

button.clear-fav {
    position: absolute;
    right: 10px;
    top: -2px;
    font-size: 14px;
    border: none;
    background-color: #efefef;
    padding: 5px 8px;
}

/*************************************************************
ランキングページ
*************************************************************/

.ranking-number {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 10;
  background: #ff3e75;
  color: #fff;
  padding: 0 6px;
  font-size: 1.2em;
  font-weight: bold;
  border-radius: 4px;
}

.ranking-tabs {
  margin-bottom: 20px;
}

.front-ranking-tabs a,
.ranking-tabs a {
  display: inline-block;
  padding: 15px 5px;
  background-color: #fff;
  border: 1px solid #333;
    border-top-color: rgb(51, 51, 51);
    border-right-color: rgb(51, 51, 51);
    border-bottom-color: rgb(51, 51, 51);
    border-left-color: rgb(51, 51, 51);
  cursor: pointer;
  line-height: 8px;
  text-align: center;
  margin: 2px;
  font-size: 1.2rem;
  border-radius: 3px;
  color: #333;
  font-weight: bold;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.front-ranking-tabs a.active,
.ranking-tabs a.active {
  background-color: #2589d0;
  border-color: #2e6891;
  color: #fff;
  box-shadow: 0 2px 5px 0 rgba(0,0,0,0.1);
}

@media screen and (max-width: 767px) {
  .front-ranking-tabs {
    display: flex;
  }

  .front-ranking-tabs a {
    flex: 1 1 33.333%;
    box-sizing: border-box;
  }
}

.ranking-info {
  margin: 0 0 20px;
  border-bottom: 2px solid #333;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

@media (max-width: 767px) {
  .ranking-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    line-height: 1.1;
  }
  .ranking-pagination {
    font-size: 13px;
  }
}

.ranking-range {
  font-size: 1.2em;
  font-weight: bold;
}

.page-ranking .actress-grid,
.page-ranking .products-grid {
   margin: 0;
}

.ranking-number-actress {
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 2px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  /* カード構造 */
  .actress-tile-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 165px;
  }
  .actress-info,
  .actress-tile {
    width: 165px;
  }
  .actress-tile {
    margin-bottom: 20px;
  }

  .fav-actress-icon {
    top: 5px;
    right: 25px;
  }

  .actress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
    gap: 0;
  }
}


/*************************************************************
コンタクトフォーム7
*************************************************************/

/* 全体 */
.wpcf7-form {
  width: 100%;
  max-width: 680px;
  margin: 30px 0 0;
  padding: 0 2%;
  font-family: "Noto Sans JP", sans-serif;
}

/* ラベル */
.wpcf7-form p label {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 6px;
  color: #333;
}

/* テキスト入力・メール・テキストエリア */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
  width: 100%;
  padding: 10px 5px;
  border: 1px solid #666;
  background: transparent;
  transition: border-color .2s ease;
  font-size: 1rem;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-bottom-color: #0077ff;
  outline: none;
}

/* textarea を自然な高さに */
.wpcf7-form textarea {
  min-height: 140px;
  resize: vertical;
}

/* 送信ボタン */
.wpcf7-form input[type="submit"] {
  display: inline-block;
  padding: 12px 24px;
  background: #0077ff;
  color: #fff;
  font-size: 1rem;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background .2s ease;
  margin-top: 10px;
}

.wpcf7-form input[type="submit"]:hover {
  background: #005fcc;
}

/* エラーメッセージ等の色調整（任意） */
.wpcf7-not-valid-tip {
  font-size: 0.85rem;
  color: #d30000;
}

/* 成功メッセージ */
.wpcf7-response-output {
  border: none !important;
  padding: 0;
  margin-top: 16px;
  font-size: 0.9rem;
}

.cf-turnstile div {
  margin: 0 !important;
}

.wpcf7 .wpcf7-turnstile {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 0 !important;
  overflow: visible;
}

.wpcf7-form p:nth-of-type(3) {
    margin-bottom: 8px !important;
}

/*************************************************************
ヘッダー
*************************************************************/

@media screen and (min-width: 1054px) {
  .header-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 2%;
  }

/* 左端ロゴ */
  #logo {
    flex: 0 0 auto;
    margin: 0;
  }

  #logo img{
    height:30px !important;
  }

  /* 検索フォーム全体 */
  .header-search {
    flex: 1 1 auto;        /* 左右の要素に挟まれて中央を伸ばす */
    max-width: 700px;      /* 最大幅を少し広めに */
    margin: 0 auto;        /* 左右の余白 */
  }
}

@media screen and (max-width: 1053px) {
   #logo,
   .logo {
    display: block;
    padding: 0 10px;
    width: 100%;
    text-align: center;
    max-width: 220px;
    margin: 0 auto;
  }

  .header-search {
    width: 100%;      /* 最大幅を少し広めに */
    margin: 0 auto 15px;        /* 左右の余白 */
    padding: 0 10px;
  }

  .header-button {
    display: flex;
    justify-content: space-between; /* 左右に分ける */
    align-items: center;            /* 縦中央揃え */
    padding: 0 10px 15px; 
  }

/* もしボタンやアイコンの高さを揃えたい場合 */
  .header-button .search-btn p,
  .header-button .header-favorites a {
    display: inline-flex;
    align-items: center;
  }
}

.header-button p {
  margin: 0;
}

.header-button .search-btn .button {
  padding: 0 12px;
  background-color: #2589d0;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
  color: #fff;
  overflow: hidden;
  border: none;
  height: 38px;
  display: inline-block;
  line-height: 38px;
  margin: 0;
}

.search-form-1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;
    border: 2px solid #2589d0;
    border-radius: 0;
    width: 100%;
}

/* 入力ボックス */
.search-form-1 input {
    flex: 1;            /* 横幅すべて使用 */
    height: 45px;
    padding: 5px 15px;
    border: none;
    box-sizing: border-box;
    font-size: 1em;
    outline: none;
    width: 100%;
    background-color: #fff;
    border-radius: 0;
}

.search-form-1 label {
    flex: 1;
}

/* 通常のプレースホルダー色 */
.search-form-1 input::placeholder {
    color: #666;
    transition: color 0.2s;
}

/* 入力状態になったらプレースホルダーを非表示 */
.search-form-1 input:focus::placeholder {
    color: transparent;
}

/* 検索ボタン */
.search-form-1 button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 45px;
    border: none;
    background-color: #2589d0;
    cursor: pointer;
    border-radius: 0;
    /* 背景画像を設定 */
    background-image: url("/wp-content/uploads/parts/search.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px 24px;
}

/* お気に入りボタン */
.header-favorites {
  display: flex;       /* 横並びにする */
  justify-content: flex-start; /* 左寄せ */
  gap: 0;              /* 子間の隙間をなくす */
}

.fav-icons-wrapper {
    display: flex;
}

.fav-item {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
    color: #fff; /* 文字色 */
    overflow: hidden;
}

/* 左半分：商品 */
.fav-product {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 12px;
    background-color: #F0C600;  /* 黄色 */
    color: #fff;                 /* 文字色白 */
    border-radius: 4px 0 0 4px;
    height: 38px;
}

/* 右半分：女優 */
.fav-actress {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 12px;
    background-color: #FF69B4;  /* ピンク */
    color: #fff;
    border-radius: 0 4px 4px 0;
    height: 38px;
}

/* アイコンの縦位置調整 */
.fav-product-icon-header,
.fav-actress-icon-header {
    display: inline-block;
    vertical-align: middle; /* 文字と同じ高さに揃える */
    width: 16px;
    height: auto;
}
.fav-product-icon-header {
    position: relative;
    top: -1px;
}

/* ホバーで少し明るく */
.fav-item:hover .fav-product {
    background-color: #FFE066;
}
.fav-item:hover .fav-actress {
    background-color: #FF85C1;
}

@media screen and (min-width: 1054px) {
  /* 右端お気に入り */
  .header-favorites {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
  }
}

#fancybox-wrap:has(.fancybox-form) {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -75%) !important;
}

#fancybox-content {
  height: fit-content !important;
}


/*************************************************************
サイドバー
*************************************************************/

.widget {
  margin-bottom: 40px;
  padding: 0 10px;
  position: relative;
}

/* ===============================
   Actress Search Widget Styling
   =============================== */

.widget_actress_search_widget {
    width: 100%;
    max-width: 300px;
    background: #fff;
    box-sizing: border-box;
}

/* 見出し */
.c-search-form__headline {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px;
    padding: 5px 10px;
    background: #ff3e75;
    color: #fff;
    text-align: center;
}

/* ラベル部分 */
.c-search-form__label {
    font-size: 13px;
    margin-bottom: 4px;
    font-weight: 600;
}

/* 各項目の余白 */
.c-search-form__name,
.c-search-form__age,
.c-search-form__bust,
.c-search-form__cup,
.c-search-form__height {
    margin-bottom: 14px;
}

/* input & select 共通 */
.c-search-form__form input[type="text"],
.c-search-form__form select {
    width: 100px;
    padding: 6px 8px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
}

/* フル幅が必要なフィールド */
.c-search-form__name input {
    width: 100% !important;
}

/* ～ の間隔調整 */
.c-search-form__age input,
.c-search-form__bust input,
.c-search-form__height input,
.c-search-form__cup select {
    margin-right: 3px;
}
.c-search-form__age input:last-of-type,
.c-search-form__bust input:last-of-type,
.c-search-form__height input:last-of-type,
.c-search-form__cup select:last-of-type {
    margin-right: 0;
}

/* ボタン配置 */
.c-search-form__btn-wrap {
    margin-top: 18px;
    display: flex;
}

/* ボタン共通 */
.c-search-form__btn {
    flex: 1;
    padding: 8px 0;
    font-size: 14px;
    border-radius: 4px;
    cursor: pointer;
}

/* 検索ボタン */
.c-search-form__btn--submit {
    background-color: #2589d0;
    border: none;
    color: #fff;
    font-weight: 600;
}

/* クリアボタン */
.c-search-form__btn--clear {
    background: #f2f2f2;
    border: 1px solid #ccc;
    color: #333;
}

/*************************************************************
セール
*************************************************************/
.sale-info {
  gap: 3px;
}
.left-time-wrap {
  border: 1px solid rgb(204 0 0);
  font-size: .9rem;
  line-height: 1.125rem;
  --tw-border-opacity: 1;
  white-space: nowrap;
  display: inline-flex;
  width: auto;
  width: max-content;        /* 中身にぴったり合わせる */
  align-self: flex-start; 
}

.sale-string {
  clip-path: polygon(0 0,0 100%,calc(100% - 8px) 100%,100% 0);
  color: #fff;
  background: rgb(204 0 0);
  padding-right: .75rem;
  padding-left: .25rem;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  max-width: 6rem;
  padding: .2rem .75rem .2rem .35rem;
}

.left-time {
  color: rgb(204 0 0);
  padding: .2rem .35rem .2rem .35rem;
}

.sale-price-wrap {
  gap: 3px;
  align-items: center;
}
.sale-price-wrap .list-price {
  font-size: .8rem;
  font-weight: 400;
  color: rgb(153 153 153);
  text-decoration: line-through;
}
.sale-price {
  font-size: .9rem;
  font-weight: bold;
  color: rgb(204 0 0);
}
.sale-section .filter-panel input[type="radio"],
.sale-section .filter-panel input[type="checkbox"] {
    display: none; /* 画面に表示されない */
}
