/* A 案の共通外観。トップとセール一覧だけに適用する。 */
:is(.page--home, .page--deals) {
  --paper: #ffffff;
  --paper-warm: #ffffff;
  --paper-deep: #f6f7f9;
  --ink: #20242c;
  --ink-soft: #414650;
  --ink-mute: #59616d;
  --ink-faint: #626a75;
  --rule: #dfe3e8;
  --rule-soft: #edf0f3;
  --vermillion: #c92d43;
  --vermillion-deep: #a31e32;
  --serif: var(--sans);
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem);
  --max: 78rem;
  background: #f6f7f9;
}
:is(.page--home, .page--deals) .grain, :is(.page--home, .page--deals) .masthead__rule, :is(.page--home, .page--deals) .brand__sub { display: none; }
:is(.page--home, .page--deals) .masthead { background: white; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
:is(.page--home, .page--deals) .masthead__inner { align-items: center; gap: 1.5rem; }
:is(.page--home, .page--deals) .brand { align-items: center; gap: .65rem; }
:is(.page--home, .page--deals) .brand__mark { background: var(--vermillion); border-radius: 10px; width: 2.3rem; height: 2.3rem; }
:is(.page--home, .page--deals) .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
:is(.page--home, .page--deals) .masthead__nav { font-size: .8rem; gap: .5rem 1rem; letter-spacing: 0; }
.page--home .masthead__nav a:first-child, .page--deals .masthead__nav a[href="/deals/"] { color: var(--vermillion); font-weight: 700; }
:is(.page--home, .page--deals) .page { padding-top: 0; padding-bottom: 1.5rem; }
:is(.page--home, .page--deals) .hero { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2.3rem 0 1.5rem; }
:is(.page--home, .page--deals) .home-eyebrow { color: var(--vermillion); font-size: .7rem; font-weight: 700; letter-spacing: .12em; margin-bottom: .6rem; }
:is(.page--home, .page--deals) .hero__title { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; max-width: none; font-size: clamp(1.75rem, 3.5vw, 2.65rem); letter-spacing: -.04em; margin: 0 0 .65rem; }
:is(.page--home, .page--deals) .hero__title span { color: var(--vermillion); }
:is(.page--home, .page--deals) .home-description { color: var(--ink-mute); font-size: .9rem; }
:is(.page--home, .page--deals) .hero__lede { order: 5; font-size: .72rem; color: var(--ink-faint); margin-top: 1.1rem; }
:is(.page--home, .page--deals) .hero__lede strong { font: inherit; font-weight: 600; }
:is(.page--home, .page--deals) .hero__search { width: 100%; max-width: 40rem; margin-top: 1.6rem; }
:is(.page--home, .page--deals) .hero__search form { grid-template-columns: minmax(0, 1fr) auto; border: 1px solid #c7cdd5; border-radius: 12px; padding: .35rem; box-shadow: 0 4px 16px #20242c08; }
:is(.page--home, .page--deals) .hero__search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); padding: 0; }
:is(.page--home, .page--deals) .hero__search input { min-width: 0; padding: .75rem .9rem; font: inherit; font-size: 1rem; background: transparent; }
:is(.page--home, .page--deals) .hero__search input::placeholder { font-style: normal; }
:is(.page--home, .page--deals) .hero__search button { border: 0; border-radius: 8px; padding: 0 1.6rem; font: inherit; font-weight: 700; font-size: .9rem; background: var(--vermillion); color: white; }
:is(.page--home, .page--deals) .hero__search button:hover { background: var(--vermillion-deep); }
:is(.page--home, .page--deals) .hero__pills { margin-top: 1rem; gap: .5rem; justify-content: center; }
:is(.page--home, .page--deals) .pill { background: white; border: 1px solid var(--rule); border-radius: 7px; padding: .4rem .8rem; font: inherit; font-size: .75rem; letter-spacing: 0; }
:is(.page--home, .page--deals) .pill span { margin-left: .6rem; color: var(--ink-faint); }
:is(.page--home, .page--deals) .pill:hover { border-color: var(--vermillion); color: var(--vermillion); }
:is(.page--home, .page--deals) .deals, :is(.page--home, .page--deals) .idols { margin-top: 1.5rem; }
:is(.page--home, .page--deals) .section-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 0; padding-bottom: 0; margin-bottom: 1.2rem; }
:is(.page--home, .page--deals) .section-head .home-eyebrow { margin-bottom: .3rem; font-size: .65rem; }
:is(.page--home, .page--deals) .section-head h2 { font-size: 1.4rem; letter-spacing: -.03em; }
:is(.page--home, .page--deals) .section-head__sub { font-family: var(--sans); font-size: .75rem; margin-top: .25rem; letter-spacing: 0; }
:is(.page--home, .page--deals) .home-section-link { flex-shrink: 0; font-size: .8rem; font-weight: 600; }
:is(.page--home, .page--deals) .home-section-link span { margin-left: .5rem; color: var(--vermillion); }
:is(.page--home, .page--deals) .ranking__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; border: 0; }
:is(.page--home, .page--deals) .ranking__item { min-width: 0; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; background: white; transition: border-color .2s, box-shadow .2s; }
:is(.page--home, .page--deals) .ranking__item:hover { border-color: #aeb7c3; background: white; box-shadow: 0 5px 18px #20242c0c; }
:is(.page--home, .page--deals) .ranking__cover { background: #edf0f3; }
:is(.page--home, .page--deals) .ranking__cover::before { display: none; }
:is(.page--home, .page--deals) .ranking__controls { display: grid; background: white; border-bottom: 1px solid var(--rule-soft); }
:is(.page--home, .page--deals) .ranking__gallery { display: grid; place-items: center; min-height: 1.8rem; border-top: 1px solid var(--rule-soft); }
:is(.page--home, .page--deals) .ranking__gallery .sc-dots { position: static; transform: none; padding: .4rem .5rem; background: none; backdrop-filter: none; opacity: 1; }
:is(.page--home, .page--deals) .ranking__gallery .sc-dots i { background: #aeb5bf; }
:is(.page--home, .page--deals) .ranking__gallery .sc-dots i.is-on { background: var(--vermillion); }
:is(.page--home, .page--deals) .ranking__actions { display: flex; justify-content: flex-end; min-height: 2.55rem; border-top: 1px solid var(--rule-soft); }
:is(.page--home, .page--deals) .deals__item .ranking__play { position: static; flex: 1 1 auto; width: auto; min-width: 0; padding: .5rem; background: #f6f7f9; color: var(--ink-soft); border: 0; font: 600 .75rem var(--sans); letter-spacing: 0; }
:is(.page--home, .page--deals) .deals__item .ranking__play:hover { background: #edf0f3; color: var(--vermillion); }
:is(.page--home, .page--deals) .deals__item .ranking__actions .watch-btn { position: static; flex: 0 0 2.55rem; width: 2.55rem; height: auto; min-height: 2.55rem; border: 0; border-left: 1px solid var(--rule-soft); border-radius: 0; background: white; }
:is(.page--home, .page--deals) .deals__item .ranking__actions .watch-btn::before { display: none; }
:is(.page--home, .page--deals) .deals__item .ranking__actions .watch-btn[aria-pressed="true"] { background: var(--vermillion); color: white; }
:is(.page--home, .page--deals) .ranking__main, :is(.page--home, .page--deals) .ranking__body { min-width: 0; grid-template-columns: minmax(0, 1fr); }
:is(.page--home, .page--deals) .ranking__body { padding: .9rem; gap: .4rem; }
:is(.page--home, .page--deals) .deals__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-family: var(--sans); font-size: .88rem !important; line-height: 1.6; letter-spacing: 0; height: 3.2em; }
:is(.page--home, .page--deals) .deals__meta { display: flex; align-items: center; gap: .5rem; min-width: 0; padding-top: .3rem; border-top: 1px dashed var(--rule-soft); }
:is(.page--home, .page--deals) .deals__meta .deals__actor { flex: 1 1 auto; min-width: 0; width: auto; padding: 0; border-top: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
:is(.page--home, .page--deals) .deals__meta .deals__chip { position: static; inset: auto; flex: 0 0 auto; }
:is(.page--home, .page--deals) .deals__price { gap: .4rem; flex-wrap: wrap; align-items: baseline; }
:is(.page--home, .page--deals) .deals__price-now { font: 750 1.4rem var(--sans); color: var(--vermillion); letter-spacing: -.04em; }
:is(.page--home, .page--deals) .deals__price-old { font: .7rem var(--sans); }
:is(.page--home, .page--deals) .deals__price-arrow { font-size: .7rem; }
:is(.page--home, .page--deals) .deals__rating { font-size: .7rem; flex-wrap: wrap; }
:is(.page--home, .page--deals) .deals__chip { border-radius: 4px; font: 700 .75rem var(--sans); padding: .3rem .5rem; }
:is(.page--home, .page--deals) .ranking__buy { margin: auto .9rem .9rem; padding: .55rem; text-align: center; border: 1px solid var(--rule); border-radius: 6px; background: white; color: var(--ink-soft); font: 600 .75rem var(--sans); letter-spacing: 0; }
:is(.page--home, .page--deals) .ranking__buy:hover { background: #f6f7f9; color: var(--vermillion); border-color: var(--vermillion); }
:is(.page--home, .page--deals) .section-more { text-align: center; margin-top: 1.5rem; }
:is(.page--home, .page--deals) .section-more a { display: inline-block; background: white; border: 1px solid var(--rule); border-radius: 8px; padding: .7rem 1.8rem; font: 600 .8rem var(--sans); }
:is(.page--home, .page--deals) .idols { margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--rule); }
:is(.page--home, .page--deals) .idol__name { font-family: var(--sans); font-size: .8rem; }
:is(.page--home, .page--deals) .idol__avatar { border-color: var(--rule); }
:is(.page--home, .page--deals) .idol__count { font-family: var(--sans); }
/* 白い本文に旧フッターの淡い文字色が残ると、文字が背景に溶け込む。
   フッターは濃色の帯として独立させ、本文・凡例とも十分なコントラストを取る。 */
:is(.page--home, .page--deals) .colophon,
.page--search .colophon,
:is(.page--genres, .page--actors) .colophon {
  margin-top: 2rem;
  padding: 2.5rem 0;
  background: #20242c;
  border-top: 0;
  color: #ffffff;
}
:is(.page--home, .page--deals) .colophon__head,
.page--search .colophon__head,
:is(.page--genres, .page--actors) .colophon__head { color: #b9c0ca; }
:is(.page--home, .page--deals) .colophon__text,
.page--search .colophon__text,
:is(.page--genres, .page--actors) .colophon__text { color: #e3e7ec; }
:is(.page--home, .page--deals) .legend--cool,
.page--search .legend--cool,
:is(.page--genres, .page--actors) .legend--cool { background: #7c8592; }
:is(.page--home, .page--deals) :focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 1050px) {
  :is(.page--home, .page--deals) .ranking__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  :is(.page--home, .page--deals) .masthead { padding: .75rem 0; }
  :is(.page--home, .page--deals) .masthead__inner { gap: .5rem; }
  :is(.page--home, .page--deals) .brand__name { font-size: 1rem; }
  :is(.page--home, .page--deals) .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  :is(.page--home, .page--deals) .masthead__toggle { border-radius: 6px; min-height: 40px; }
  :is(.page--home, .page--deals) .masthead__nav { font-size: .9rem; }
  :is(.page--home, .page--deals) .hero { padding: 1.8rem 0 1.2rem; }
  :is(.page--home, .page--deals) .hero__title { font-size: clamp(1.55rem, 5.4vw, 2rem); }
  :is(.page--home, .page--deals) .home-description { font-size: .75rem; }
  :is(.page--home, .page--deals) .hero__search { margin-top: 1.1rem; }
  :is(.page--home, .page--deals) .hero__search button { padding: 0 1rem; }
  :is(.page--home, .page--deals) .hero__pills { gap: .35rem; }
  :is(.page--home, .page--deals) .pill { padding: .4rem .5rem; font-size: .68rem; }
  :is(.page--home, .page--deals) .pill span { margin-left: .2rem; }
  :is(.page--home, .page--deals) .hero__lede { margin-top: .8rem; font-size: .65rem; }
  :is(.page--home, .page--deals) .ranking__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  :is(.page--home, .page--deals) .section-head h2 { font-size: 1.2rem; }
  :is(.page--home, .page--deals) .section-head__sub { font-size: .68rem; }
  :is(.page--home, .page--deals) .home-section-link { font-size: .72rem; }
  :is(.page--home, .page--deals) .ranking__body { padding: .65rem; }
  :is(.page--home, .page--deals) .deals__title { font-size: .8rem !important; }
  :is(.page--home, .page--deals) .deals__price-now { font-size: 1.2rem; }
  :is(.page--home, .page--deals) .ranking__buy { margin: auto .65rem .65rem; font-size: .68rem; }
  :is(.page--home, .page--deals) .idols { margin-top: 2.5rem; }
}

/* 作品詳細。検索結果から来た時も、同じ「比較して購入する」画面として読めるようにする。 */
.page--item {
  --paper: #ffffff;
  --paper-warm: #ffffff;
  --paper-deep: #f6f7f9;
  --ink: #20242c;
  --ink-soft: #414650;
  --ink-mute: #59616d;
  --ink-faint: #626a75;
  --rule: #dfe3e8;
  --rule-soft: #edf0f3;
  --vermillion: #c92d43;
  --vermillion-deep: #a31e32;
  --serif: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem);
  --max: 78rem;
  background: #f6f7f9;
}
.page--item .grain, .page--item .masthead__rule, .page--item .brand__sub { display: none; }
.page--item .masthead { background: #fff; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.page--item .masthead__inner { align-items: center; gap: 1.5rem; }
.page--item .brand { align-items: center; gap: .65rem; }
.page--item .brand__mark { background: var(--vermillion); border-radius: 10px; width: 2.3rem; height: 2.3rem; }
.page--item .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
.page--item .masthead__nav { font-size: .8rem; gap: .5rem 1rem; letter-spacing: 0; }
.page--item .page { padding-top: 0; padding-bottom: 1.5rem; }
.page--item .breadcrumb { margin: 1.25rem 0 0; font-family: var(--sans); font-size: .72rem; letter-spacing: 0; }
.page--item .item-detail__hero { padding: 1.2rem 0 1.5rem; }
.page--item .item-detail__title { font: 750 clamp(1.55rem, 2.8vw, 2.45rem)/1.4 var(--sans); letter-spacing: -.04em; max-width: 50rem; }
.page--item .item-detail__hero .item__chip { border-radius: 5px; font: 700 .78rem var(--sans); letter-spacing: .03em; margin-bottom: .7rem; }
.page--item .item-detail__hero-meta { gap: .7rem; margin-top: .75rem; }
.page--item .item-detail__badge { border-radius: 5px; font: 600 .72rem var(--sans); letter-spacing: 0; padding: .35rem .55rem; background: #fff; }
.page--item .item-detail__top { gap: 1.25rem; }
@media (min-width: 880px) {
  .page--item .item-detail__top { grid-template-columns: minmax(0, 38rem) minmax(18rem, 1fr); align-items: stretch; }
}
.page--item .item-detail__cover { height: clamp(20rem, 56vh, 34rem); border: 1px solid var(--rule); border-radius: 12px; background: #20242c; }
.page--item .item-detail__price-box { justify-content: center; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--rule); border-left: 0; border-radius: 12px; background: #fff; box-shadow: 0 5px 18px #20242c08; }
.page--item .item-detail__captured { font-family: var(--sans); font-size: .72rem; letter-spacing: 0; }
.page--item .item-detail__cta { border-radius: 7px; background: var(--vermillion); font-family: var(--sans); font-size: .9rem; letter-spacing: 0; }
.page--item .item-detail__cta:hover { background: var(--vermillion-deep); border-color: var(--vermillion-deep); }
.page--item .item-detail__watch { border-radius: 7px; font-family: var(--sans); letter-spacing: 0; }
.page--item .item-detail__watch:hover { color: var(--vermillion); border-color: var(--vermillion); }
.page--item .price-chart__flat, .page--item .price-chart__empty { border-radius: 10px; background: #fff; font-family: var(--sans); }
.page--item .item-detail__chart-section, .page--item .item-detail__info { margin-top: 2.5rem; }
.page--item .price-chart__badges { gap: .45rem; }
.page--item .price-chart__badge, .page--item .item-detail__tag { border-radius: 6px; background: #fff; font-family: var(--sans); letter-spacing: 0; }
.page--item .item-detail__related { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--rule); }
.page--item .related__block-head { font-family: var(--sans); font-size: 1.05rem; letter-spacing: -.02em; }
.page--item .related-card__cover { border-radius: 8px; }
.page--item .related-card__title, .page--item .related-card__price { font-family: var(--sans); letter-spacing: 0; }
.page--item .item-detail__prevnext { margin-top: 2rem; }
.page--item .item-detail__nav-link { border-radius: 8px; background: #fff; }
.page--item .item-detail__nav-link:hover { background: #fff; }
.page--item .item-detail__nav-title, .page--item .item-detail__nav-dir { font-family: var(--sans); letter-spacing: 0; }
.page--item .colophon { margin-top: 2rem; padding: 2.5rem 0; background: #20242c; border-top: 0; color: #fff; }
.page--item .colophon__head { color: #b9c0ca; }
.page--item .colophon__text { color: #e3e7ec; }
.page--item .legend--cool { background: #7c8592; }
.page--item :focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 720px) {
  .page--item .masthead { padding: .75rem 0; }
  .page--item .masthead__inner { gap: .5rem; }
  .page--item .brand__name { font-size: 1rem; }
  .page--item .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  .page--item .item-detail__hero { padding: 1rem 0 1.2rem; }
  .page--item .item-detail__cover { height: clamp(18rem, 58vh, 28rem); border-radius: 9px; }
  .page--item .item-detail__price-box { padding: 1.15rem; border-radius: 9px; }
  .page--item .item-sticky { background: #fff; border-top-color: var(--rule); box-shadow: 0 -4px 16px #20242c18; }
  .page--item .item-sticky__now { font-family: var(--sans); color: var(--vermillion); }
  .page--item .item-sticky__cta { border-radius: 7px; font-family: var(--sans); letter-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.page--home, .page--deals) .ranking__item { transition: none; }
}

/* ジャンル詳細も一覧・検索結果と同じ、比較しやすいカードの画面に揃える。 */
.page--genre {
  --paper: #ffffff; --paper-warm: #ffffff; --paper-deep: #f6f7f9;
  --ink: #20242c; --ink-soft: #414650; --ink-mute: #59616d; --ink-faint: #626a75;
  --rule: #dfe3e8; --rule-soft: #edf0f3; --vermillion: #c92d43; --vermillion-deep: #a31e32;
  --serif: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem); --max: 78rem; background: #f6f7f9;
}
.page--genre .grain, .page--genre .masthead__rule, .page--genre .brand__sub { display: none; }
.page--genre .masthead { background: #fff; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.page--genre .masthead__inner { align-items: center; gap: 1.5rem; }
.page--genre .brand { align-items: center; gap: .65rem; }
.page--genre .brand__mark { width: 2.3rem; height: 2.3rem; border-radius: 10px; background: var(--vermillion); }
.page--genre .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
.page--genre .masthead__nav { gap: .5rem 1rem; font-size: .8rem; letter-spacing: 0; }
.page--genre .masthead__nav a[href="/genres/"] { color: var(--vermillion); font-weight: 700; }
.page--genre .page { padding-top: 0; padding-bottom: 1.5rem; }
.page--genre .breadcrumb { margin: 1.25rem 0 0; font: .72rem var(--sans); letter-spacing: 0; }
.page--genre .actor__hero { margin: 1rem 0 1.5rem; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--rule); border-left: 4px solid var(--vermillion); border-radius: 12px; background: #fff; }
.page--genre .actor__kicker { margin: 0 0 .4rem; color: var(--vermillion); font: 700 .72rem var(--sans); letter-spacing: .1em; }
.page--genre .actor__name { font: 750 clamp(1.75rem, 3vw, 2.4rem)/1.35 var(--sans); letter-spacing: -.04em; }
.page--genre .actor__meta { margin: .65rem 0 0; color: var(--ink-mute); font: .85rem var(--sans); letter-spacing: 0; }
.page--genre .actor__meta em { color: var(--ink); font: 700 1.05rem var(--sans); }
.page--genre .actor__filters { margin: 0 0 1.5rem; padding: 1.15rem 1.25rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; }
.page--genre .actor__filters form { display: flex; align-items: end; gap: 1.1rem 2rem; }
.page--genre .filters__field { min-width: min(100%, 16rem); }
.page--genre .filters__field label { color: var(--ink-soft); font: 600 .75rem var(--sans); letter-spacing: 0; }
.page--genre .filters__field select { min-height: 44px; border: 1px solid #cdd3db; border-radius: 7px; background: #fff; color: var(--ink); font: .82rem var(--sans); }
.page--genre .filters__field select:focus { border-color: var(--vermillion); outline: 2px solid #c92d4326; outline-offset: 1px; }
.page--genre .filters__field--check .check { min-height: 44px; padding: 0; color: var(--ink-soft); font: 600 .8rem var(--sans); }
.page--genre .filters__status { margin: .7rem 0 0; color: var(--ink-mute); font: .75rem var(--sans); letter-spacing: 0; }
.page--genre .items { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; border: 0; }
.page--genre .item { min-width: 0; padding: .9rem; gap: .7rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.page--genre .item:hover { border-color: #aeb7c3; background: #fff; box-shadow: 0 5px 18px #20242c0c; }
.page--genre .item__cover { border: 0; border-radius: 7px; background: #edf0f3; }
.page--genre .item__title { font: 650 .88rem/1.6 var(--sans); letter-spacing: 0; }
.page--genre .item__price-now { color: var(--vermillion); }
.page--genre .actors__pager { margin-top: 2rem; padding: 1.25rem 0; gap: .65rem; border-top: 1px solid var(--rule); }
.page--genre .actors__pager button { min-height: 44px; padding: .6rem 1rem; border: 1px solid var(--rule); border-radius: 7px; background: #fff; color: var(--ink); font: 600 .8rem var(--sans); letter-spacing: 0; }
.page--genre .actors__pager button:hover:not(:disabled) { border-color: var(--vermillion); background: var(--vermillion); color: #fff; }
.page--genre .pager__jump input { min-height: 44px; border: 1px solid var(--rule); border-radius: 7px; background: #fff; }
.page--genre .actor__notice { padding: 2rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; font-family: var(--sans); }
.page--genre .colophon { margin-top: 2rem; padding: 2.5rem 0; border-top: 0; background: #20242c; color: #fff; }
.page--genre .colophon__head { color: #b9c0ca; }
.page--genre .colophon__text { color: #e3e7ec; }
.page--genre .legend--cool { background: #7c8592; }
.page--genre :focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 1050px) { .page--genre .items { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .page--genre .masthead { padding: .75rem 0; }
  .page--genre .masthead__inner { gap: .5rem; }
  .page--genre .brand__name { font-size: 1rem; }
  .page--genre .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  .page--genre .actor__hero { margin-top: 1rem; padding: 1.15rem; border-radius: 9px; }
  .page--genre .actor__filters { padding: .9rem; }
  .page--genre .actor__filters form { align-items: stretch; flex-direction: column; gap: .7rem; }
  .page--genre .filters__field { width: 100%; }
  .page--genre .filters__field select { width: 100%; font-size: 1rem; }
  .page--genre .items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .page--genre .item { padding: .65rem; gap: .5rem; }
  .page--genre .item__title { font-size: .8rem; }
  .page--genre .actors__pager button { padding: .6rem .8rem; }
}

/* 女優詳細はプロフィールと作品を同じ密度で見渡せるカードの画面にする。 */
.page--actor {
  --paper: #ffffff; --paper-warm: #ffffff; --paper-deep: #f6f7f9;
  --ink: #20242c; --ink-soft: #414650; --ink-mute: #59616d; --ink-faint: #626a75;
  --rule: #dfe3e8; --rule-soft: #edf0f3; --vermillion: #c92d43; --vermillion-deep: #a31e32;
  --serif: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem); --max: 78rem; background: #f6f7f9;
}
.page--actor .grain, .page--actor .masthead__rule, .page--actor .brand__sub { display: none; }
.page--actor .masthead { padding: 1rem 0; border-bottom: 1px solid var(--rule); background: #fff; }
.page--actor .masthead__inner { align-items: center; gap: 1.5rem; }
.page--actor .brand { align-items: center; gap: .65rem; }
.page--actor .brand__mark { width: 2.3rem; height: 2.3rem; border-radius: 10px; background: var(--vermillion); }
.page--actor .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
.page--actor .masthead__nav { gap: .5rem 1rem; font-size: .8rem; letter-spacing: 0; }
.page--actor .masthead__nav a[href="/actors/"] { color: var(--vermillion); font-weight: 700; }
.page--actor .page { padding-top: 0; padding-bottom: 1.5rem; }
.page--actor .breadcrumb { margin: 1.25rem 0 0; font: .72rem var(--sans); letter-spacing: 0; }
.page--actor .actor__top { margin-top: 1rem; }
.page--actor .actor__hero { margin: 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--rule); border-left: 4px solid var(--vermillion); border-radius: 12px; background: #fff; }
.page--actor .actor__headline { align-items: center; }
.page--actor .actor__portrait { border-color: var(--rule); }
.page--actor .actor__kicker { margin: 0 0 .35rem; color: var(--vermillion); font: 700 .72rem var(--sans); letter-spacing: .1em; }
.page--actor .actor__name { font: 750 clamp(1.75rem, 3vw, 2.4rem)/1.3 var(--sans); letter-spacing: -.04em; }
.page--actor .actor__meta { margin: .55rem 0 0; color: var(--ink-mute); font: .84rem var(--sans); letter-spacing: 0; }
.page--actor .actor__meta em { color: var(--ink); font: 700 1.05rem var(--sans); }
.page--actor .actor__sns { margin-top: 1rem; }
.page--actor .sns-link { border-color: var(--rule); border-radius: 6px; font-family: var(--sans); letter-spacing: 0; }
.page--actor .actor__profile, .page--actor .actor__stats { border: 1px solid var(--rule); border-left: 3px solid var(--vermillion); border-radius: 12px; background: #fff; box-shadow: 0 3px 12px #20242c06; }
.page--actor .actor__profile-head, .page--actor .actor__stats-head { font-family: var(--sans); letter-spacing: -.02em; }
.page--actor .profile-grid { font-family: var(--sans); }
.page--actor .profile-grid dt { color: var(--ink-mute); font-size: .75rem; }
.page--actor .profile-grid dd { color: var(--ink); font-size: .82rem; }
.page--actor .profile-bio, .page--actor .stats-note, .page--actor .profile-source { font-family: var(--sans); }
.page--actor .actor__items { margin-top: 2rem; }
.page--actor .actor__filters { margin: 0 0 1.5rem; padding: 1.15rem 1.25rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; }
.page--actor .actor__filters form { display: flex; align-items: end; gap: 1.1rem 2rem; }
.page--actor .filters__field { min-width: min(100%, 16rem); }
.page--actor .filters__field label { color: var(--ink-soft); font: 600 .75rem var(--sans); letter-spacing: 0; }
.page--actor .filters__field select { min-height: 44px; border: 1px solid #cdd3db; border-radius: 7px; background: #fff; color: var(--ink); font: .82rem var(--sans); }
.page--actor .filters__field select:focus { border-color: var(--vermillion); outline: 2px solid #c92d4326; outline-offset: 1px; }
.page--actor .filters__field--check .check { min-height: 44px; padding: 0; color: var(--ink-soft); font: 600 .8rem var(--sans); }
.page--actor .filters__status { margin: .7rem 0 0; color: var(--ink-mute); font: .75rem var(--sans); letter-spacing: 0; }
.page--actor .items { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; border: 0; }
.page--actor .item { min-width: 0; padding: .9rem; gap: .7rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.page--actor .item:hover { border-color: #aeb7c3; background: #fff; box-shadow: 0 5px 18px #20242c0c; }
.page--actor .item__cover { border: 0; border-radius: 7px; background: #edf0f3; }
.page--actor .item__title { font: 650 .88rem/1.6 var(--sans); letter-spacing: 0; }
.page--actor .item__price-now { color: var(--vermillion); }
.page--actor .actors__pager { margin-top: 2rem; padding: 1.25rem 0; gap: .65rem; border-top: 1px solid var(--rule); }
.page--actor .actors__pager button { min-height: 44px; padding: .6rem 1rem; border: 1px solid var(--rule); border-radius: 7px; background: #fff; color: var(--ink); font: 600 .8rem var(--sans); letter-spacing: 0; }
.page--actor .actors__pager button:hover:not(:disabled) { border-color: var(--vermillion); background: var(--vermillion); color: #fff; }
.page--actor .pager__jump input { min-height: 44px; border: 1px solid var(--rule); border-radius: 7px; background: #fff; }
.page--actor .actor__notice { padding: 2rem; border: 1px solid var(--rule); border-radius: 12px; background: #fff; font-family: var(--sans); }
.page--actor .colophon { margin-top: 2rem; padding: 2.5rem 0; border-top: 0; background: #20242c; color: #fff; }
.page--actor .colophon__head { color: #b9c0ca; }
.page--actor .colophon__text { color: #e3e7ec; }
.page--actor .legend--cool { background: #7c8592; }
.page--actor :focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 1050px) { .page--actor .items { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .page--actor .masthead { padding: .75rem 0; }
  .page--actor .masthead__inner { gap: .5rem; }
  .page--actor .brand__name { font-size: 1rem; }
  .page--actor .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  .page--actor .actor__hero { padding: 1.15rem; border-radius: 9px; }
  .page--actor .actor__portrait { width: 4.4rem; height: 4.4rem; }
  .page--actor .actor__profile, .page--actor .actor__stats { border-radius: 9px; }
  .page--actor .actor__filters { padding: .9rem; }
  .page--actor .actor__filters form { align-items: stretch; flex-direction: column; gap: .7rem; }
  .page--actor .filters__field { width: 100%; }
  .page--actor .filters__field select { width: 100%; font-size: 1rem; }
  .page--actor .items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .page--actor .item { padding: .65rem; gap: .5rem; }
  .page--actor .item__title { font-size: .8rem; }
  .page--actor .actors__pager button { padding: .6rem .8rem; }
}

/* 作品検索もトップ/セール一覧と同じ白・薄灰・赤アクセントで揃える。 */
.page--search {
  --paper: #ffffff;
  --paper-warm: #ffffff;
  --paper-deep: #f6f7f9;
  --ink: #20242c;
  --ink-soft: #414650;
  --ink-mute: #59616d;
  --ink-faint: #626a75;
  --rule: #dfe3e8;
  --rule-soft: #edf0f3;
  --vermillion: #c92d43;
  --vermillion-deep: #a31e32;
  --serif: var(--sans);
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem);
  --max: 78rem;
  background: #f6f7f9;
}
.page--search .grain, .page--search .masthead__rule, .page--search .brand__sub { display: none; }
.page--search .masthead { background: white; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.page--search .masthead__inner { align-items: center; gap: 1.5rem; }
.page--search .brand { align-items: center; gap: .65rem; }
.page--search .brand__mark { background: var(--vermillion); border-radius: 10px; width: 2.3rem; height: 2.3rem; }
.page--search .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
.page--search .masthead__nav { font-size: .8rem; gap: .5rem 1rem; letter-spacing: 0; }
.page--search .masthead__nav a[href="/search/"] { color: var(--vermillion); font-weight: 700; }
.page--search .page { padding-top: 2rem; padding-bottom: 4rem; }
.page--search .page-head { margin: 0 0 1.6rem; padding: 0; border: 0; }
.page--search .page-head__title { font: 750 clamp(1.8rem, 3vw, 2.3rem)/1.4 var(--sans); letter-spacing: -.04em; }
.page--search .search__controls { margin: 0 0 1.8rem; padding: 1.25rem; border: 1px solid var(--rule); border-radius: 12px; background: white; }
.page--search .search__controls form { grid-template-columns: minmax(0, 1fr) minmax(8rem, .35fr) auto auto; gap: .85rem; align-items: end; }
.page--search .filters__field { min-width: 0; gap: .5rem; }
.page--search .filters__field label { color: var(--ink-soft); font: 600 .75rem var(--sans); letter-spacing: 0; }
.page--search .filters__field input, .page--search .filters__field select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #cdd3db; border-radius: 7px; background: #fff; padding: .65rem .7rem; color: var(--ink); font: .8rem var(--sans); }
.page--search .filters__field input:focus, .page--search .filters__field select:focus { border-color: var(--vermillion); outline: 2px solid #c92d4326; outline-offset: 1px; }
.page--search .filters__field--check .check { min-height: 44px; padding: 0 .2rem; font: 600 .78rem var(--sans); color: var(--ink-soft); }
.page--search .search__submit { min-height: 44px; border: 0; border-radius: 7px; padding: .6rem 1.5rem; background: var(--vermillion); color: white; font: 700 .8rem var(--sans); letter-spacing: 0; }
.page--search .search__submit:hover { background: var(--vermillion-deep); }
.page--search .filters__status { margin: .75rem 0 0; color: var(--ink-mute); font: .75rem var(--sans); letter-spacing: 0; }
.page--search .search__hint { border-left-color: var(--vermillion); border-radius: 0 7px 7px 0; background: white; }
.page--search .section-head { align-items: center; border: 0; padding: 0; margin-bottom: 1.2rem; }
.page--search .section-head h2 { font-size: 1.4rem; letter-spacing: -.03em; }
.page--search .section-head__sub { font: .75rem var(--sans); letter-spacing: 0; }
.page--search .search__genres, .page--search .search__actors, .page--search .search__intro { margin-top: 1.5rem; }
.page--search .search__actor-list { border: 0; border-radius: 0; overflow: visible; gap: .65rem; background: transparent; }
.page--search .search__actor-list li { border: 1px solid var(--rule); border-radius: 10px; background: white; overflow: hidden; }
.page--search .search__actor-list a:hover { background: var(--paper-deep); }
.page--search .search__items { margin-top: 1.5rem; }
.page--search .items { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; border: 0; }
.page--search .item { min-width: 0; border: 1px solid var(--rule); border-radius: 12px; padding: .9rem; gap: .7rem; background: white; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.page--search .item:hover { border-color: #aeb7c3; background: white; box-shadow: 0 5px 18px #20242c0c; }
.page--search .item__cover { border: 0; border-radius: 7px; background: #edf0f3; }
.page--search .item__title { font: 650 .88rem/1.6 var(--sans); letter-spacing: 0; }
.page--search .item__price-now { color: var(--vermillion); }
.page--search .actors__pager { margin-top: 2rem; padding: 1.25rem 0; gap: .65rem; border-top: 1px solid var(--rule); }
.page--search .actors__pager button { min-height: 44px; border: 1px solid var(--rule); border-radius: 7px; background: white; color: var(--ink); font: 600 .8rem var(--sans); letter-spacing: 0; padding: .6rem 1rem; }
.page--search .actors__pager button:hover:not(:disabled) { background: var(--vermillion); color: white; border-color: var(--vermillion); }
.page--search .pager__jump input { background: white; border: 1px solid var(--rule); border-radius: 7px; min-height: 44px; }
.page--search .actor__notice { padding: 2rem; background: white; border: 1px solid var(--rule); border-radius: 12px; font-family: var(--sans); }
.page--search :focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 1050px) {
  .page--search .items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ジャンル・女優一覧も同じシェルとカード表現に揃える。 */
:is(.page--genres, .page--actors) {
  --paper: #ffffff; --paper-warm: #ffffff; --paper-deep: #f6f7f9;
  --ink: #20242c; --ink-soft: #414650; --ink-mute: #59616d; --ink-faint: #626a75;
  --rule: #dfe3e8; --rule-soft: #edf0f3; --vermillion: #c92d43; --vermillion-deep: #a31e32;
  --serif: var(--sans); --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(1rem, 4vw, 2.75rem); --max: 78rem; background: #f6f7f9;
}
:is(.page--genres, .page--actors) .grain,
:is(.page--genres, .page--actors) .masthead__rule,
:is(.page--genres, .page--actors) .brand__sub { display: none; }
:is(.page--genres, .page--actors) .masthead { background: white; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
:is(.page--genres, .page--actors) .masthead__inner { align-items: center; gap: 1.5rem; }
:is(.page--genres, .page--actors) .brand { align-items: center; gap: .65rem; }
:is(.page--genres, .page--actors) .brand__mark { background: var(--vermillion); border-radius: 10px; width: 2.3rem; height: 2.3rem; }
:is(.page--genres, .page--actors) .brand__name { font-size: 1.2rem; letter-spacing: -.04em; }
:is(.page--genres, .page--actors) .masthead__nav { font-size: .8rem; gap: .5rem 1rem; letter-spacing: 0; }
.page--genres .masthead__nav a[href="/genres/"], .page--actors .masthead__nav a[href="/actors/"] { color: var(--vermillion); font-weight: 700; }
:is(.page--genres, .page--actors) .page { padding-top: 2rem; padding-bottom: 4rem; }
:is(.page--genres, .page--actors) .page-head { margin: 0 0 1.6rem; padding: 0; border: 0; }
:is(.page--genres, .page--actors) .page-head__title { font: 750 clamp(1.8rem, 3vw, 2.3rem)/1.4 var(--sans); letter-spacing: -.04em; }
:is(.page--genres, .page--actors) .filters { margin: 0 0 1.8rem; padding: 1.25rem; border: 1px solid var(--rule); border-radius: 12px; background: white; }
:is(.page--genres, .page--actors) .filters__field label { color: var(--ink-soft); font: 600 .75rem var(--sans); letter-spacing: 0; }
:is(.page--genres, .page--actors) .filters__field input, :is(.page--genres, .page--actors) .filters__field select { min-height: 44px; border: 1px solid #cdd3db; border-radius: 7px; background: #fff; padding: .65rem .7rem; color: var(--ink); font: .8rem var(--sans); }
:is(.page--genres, .page--actors) .filters__field input:focus, :is(.page--genres, .page--actors) .filters__field select:focus { border-color: var(--vermillion); outline: 2px solid #c92d4326; outline-offset: 1px; }
.page--genres .genres__intro { border-bottom: 0; padding: 0; }
.page--genres .genres__eyebrow { color: var(--vermillion); font: 700 .7rem var(--sans); letter-spacing: .08em; }
.page--genres .genres__featured { border: 1px solid var(--rule); border-left: 3px solid var(--vermillion); border-radius: 10px; background: white; }
.page--genres .genre-categories__button { border-radius: 7px; background: white; }
.page--genres .genre-categories__button.is-active { background: var(--vermillion); border-color: var(--vermillion); }
.page--genres .genre-tag { border-radius: 7px; background: white; }
.page--genres .genre-tag:hover { background: var(--paper-deep); }
.page--actors .actors { margin-top: 1.5rem; }
.page--actors .ranking__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; border: 0; }
.page--actors .ranking__item { min-width: 0; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; background: white; transition: border-color .2s, box-shadow .2s; }
.page--actors .ranking__item:hover { border-color: #aeb7c3; background: white; box-shadow: 0 5px 18px #20242c0c; }
.page--actors .ranking__cover { background: #edf0f3; border: 0; }
.page--actors .ranking__main, .page--actors .ranking__body { min-width: 0; }
.page--actors .ranking__main { grid-template-columns: minmax(0, 1fr); }
.page--actors .ranking__body { padding: .9rem; }
.page--actors .ranking__name { font: 650 .95rem/1.5 var(--sans); letter-spacing: 0; }
.page--actors .ranking__count { min-width: 0; flex-wrap: wrap; gap: .25rem .5rem; }
.page--actors .ranking__count > span:first-child { white-space: nowrap; }
.page--actors .ranking__profile { white-space: normal; text-align: right; }
.page--actors .ranking__buy { margin: auto .9rem .9rem; padding: .55rem; border: 1px solid var(--rule); border-radius: 6px; background: white; color: var(--ink-soft); font: 600 .75rem var(--sans); text-align: center; }
.page--actors .ranking__buy:hover { color: var(--vermillion); border-color: var(--vermillion); background: var(--paper-deep); }
:is(.page--genres, .page--actors) .actors__pager { margin-top: 2rem; padding: 1.25rem 0; border-top: 1px solid var(--rule); }
:is(.page--genres, .page--actors) .actors__pager button { min-height: 44px; border: 1px solid var(--rule); border-radius: 7px; background: white; color: var(--ink); font: 600 .8rem var(--sans); letter-spacing: 0; padding: .6rem 1rem; }
:is(.page--genres, .page--actors) .actors__pager button:hover:not(:disabled) { background: var(--vermillion); color: white; border-color: var(--vermillion); }
.page--actors .kana-index__btn { border-radius: 7px; background: white; }
.page--actors .kana-index__btn.is-active { background: var(--vermillion); border-color: var(--vermillion); }
@media (max-width: 1050px) { .page--actors .ranking__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  :is(.page--genres, .page--actors) .masthead { padding: .75rem 0; }
  :is(.page--genres, .page--actors) .masthead__inner { gap: .5rem; }
  :is(.page--genres, .page--actors) .brand__name { font-size: 1rem; }
  :is(.page--genres, .page--actors) .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  :is(.page--genres, .page--actors) .page { padding-top: 1.4rem; }
  :is(.page--genres, .page--actors) .filters { padding: .9rem; margin-bottom: 1.4rem; }
  .page--actors .ranking__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .page--actors .ranking__body { padding: .65rem; }
}
@media (max-width: 720px) {
  .page--search .masthead { padding: .75rem 0; }
  .page--search .masthead__inner { gap: .5rem; }
  .page--search .brand__name { font-size: 1rem; }
  .page--search .brand__mark { width: 2rem; height: 2rem; border-radius: 7px; }
  .page--search .page { padding-top: 1.4rem; }
  .page--search .search__controls { padding: .9rem; margin-bottom: 1.4rem; }
  .page--search .search__controls form { grid-template-columns: 1fr auto; gap: 1rem .7rem; }
  .page--search .filters__field:first-child, .page--search .filters__field--submit { grid-column: 1 / -1; }
  .page--search .filters__field--select { grid-column: 1; }
  .page--search .filters__field--check { grid-column: 2; }
  .page--search .filters__field input, .page--search .filters__field select { font-size: 1rem; }
  .page--search .search__submit { width: 100%; }
  .page--search .items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .page--search .item { padding: .65rem; gap: .5rem; }
  .page--search .section-head h2 { font-size: 1.2rem; }
  .page--search .section-head__sub { font-size: .68rem; }
  .page--search .item__title { font-size: .8rem; }
  .page--search .actors__pager button { padding: .6rem .8rem; }
}
