/* 明るい生成りの平台。style.css の既存機能を残し、最後に見た目だけを上書きする。 */
:root {
  --paper: #fbfaf6; --paper-deep: #f0ece4; --paper-warm: #fffdfa;
  --ink: #29251f; --ink-mute: #716b62; --rule: #ddd8cf; --rule-soft: #ece8e0;
  --vermillion: #bb3a2f; --vermillion-deep: #8f2822;
  --sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Noto Sans JP", sans-serif;
  --serif: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

[hidden] { display: none !important; }
body { background: var(--paper); color: var(--ink); font-family: var(--sans); }
.grain { opacity: .035; }
.masthead { background: rgba(251, 250, 246, .94); border-color: var(--rule); }
.brand__mark { display: none; }
.brand__name, h1, h2, h3, .page-head__title, .actor__name { font-family: var(--serif); }
.brand__name { white-space: nowrap; }
.masthead__rule, .masthead__rule::after { background: var(--rule); }
.masthead__rule::after { width: 100%; }
.masthead__nav a, .masthead__watch, .section-head__sub, .page-head__lede { color: var(--ink-mute); }
.site-search { background: #fff; border-color: #c9c3b8; }
.site-search__label { color: var(--ink-mute); }
.site-search__submit { flex-shrink: 0; white-space: nowrap; }
.page { max-width: var(--max); }
.hero { padding: 1rem 0 1.5rem; border-bottom: 1px solid var(--rule); }
.hero__lede { color: var(--ink-mute); font-size: .75rem; }
.home-genres { padding-top: 2.5rem; }
.section-head { margin-bottom: 1.35rem; }
.section-head h2, .page-head__title { font-family: var(--serif); }
.section-head__link, .section-more a { color: var(--ink-mute); }

/* 作品カード: 既存の横長カード指定を確実にリセットする。 */
.ranking__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.1rem 1.1rem; border: 0; }
.ranking__item { display: block; min-width: 0; padding: 0; border: 0; background: transparent; }
.ranking__main { display: block; }
.ranking__cover { display: block; position: relative; aspect-ratio: 1; width: 100%; height: auto; overflow: hidden; background: var(--paper-deep); border: 1px solid #e6e0d7; }
.ranking__cover-img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ranking__body { display: block; padding: .75rem 0 0; }
.ranking__name, .deals__title { display: -webkit-box; min-height: 3.1em; overflow: hidden; color: var(--ink); font-family: var(--sans); font-size: .94rem; line-height: 1.55; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.deals__actor { display: block; margin-top: .25rem; padding: 0; border: 0; background: none; color: var(--ink-mute); font: inherit; font-size: .7rem; text-align: left; }
.deals__price { display: flex; align-items: baseline; gap: .4rem; margin-top: .5rem; flex-wrap: wrap; }
.deals__price-old { color: #999; font-size: .68rem; text-decoration: line-through; }
.deals__price-arrow { display: none; }
.deals__price-now { order: 1; color: var(--vermillion); font: 700 1.15rem/1 var(--sans); }
.deals__price-old { order: 2; color: var(--ink-faint); }
.deals__discount { margin-left: auto; color: var(--vermillion); font-size: .68rem; font-weight: 700; }
.deals__discount { order: 3; }
.deals__chip { background: var(--paper); color: var(--vermillion); font-size: .7rem; }
.ranking__buy, .ranking__detail { display: inline-block; margin-top: .65rem; padding: 0; border: 0; background: transparent; color: var(--vermillion-deep); font-size: .7rem; }

/* サークル棚は名前と代表作を読める横長カード。 */
.idols__row, #creators-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.idol { display: block; }
.idol__link { display: grid; grid-template-columns: 6.25rem minmax(0, 1fr); gap: .35rem .85rem; padding: .85rem; background: #fff; border: 1px solid var(--rule); }
.idol__avatar { grid-row: 1 / 4; aspect-ratio: 1; overflow: hidden; border-radius: 0; background: var(--paper-deep); }
.idol__img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.idol__name { align-self: end; font: 700 .88rem/1.4 var(--sans); }
.idol__count, .idol__feature { color: var(--ink-mute); font-size: .68rem; }
.idol__feature { display: -webkit-box; overflow: hidden; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.idol__link { min-width: 0; max-width: 100%; }
.idol__name, .idol__feature { min-width: 0; }

/* 一覧・詳細共通 */
.items, .search__grid, .search-results { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.8rem 1.1rem; }
.item { min-width: 0; padding: 0; border: 0; background: transparent; }
.item__cover { aspect-ratio: 1; overflow: hidden; background: var(--paper-deep); border: 1px solid #e6e0d7; }
.item__cover-img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.item__title { color: var(--ink); font: 600 .94rem/1.55 var(--sans); }
.item__actor, .item__creator { color: var(--ink-mute); font-size: .7rem; }
.item__price { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .25rem .6rem; }
.item__price-now { color: var(--vermillion); font: 700 1rem var(--sans); }
.item-detail__price-box .item__price-now { font-size: 1.8rem; }
#creators-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#creators-list .ranking__main { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: .4rem .85rem; padding: .85rem; background: #fff; border: 1px solid var(--rule); }
#creators-list .ranking__cover { grid-row: 1 / 4; width: 100px; }
#creators-list .ranking__body { padding: 0; }
#creators-list .ranking__name { min-height: 0; font-family: var(--sans); }
#creators-list .ranking__feature-title { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.item__detail-link, .item__cta { color: var(--vermillion-deep); font-size: .7rem; }
.item__chip, .deal-pct { background: var(--paper); color: var(--vermillion); }
.page-head { padding: 2rem 0; border-bottom: 1px solid var(--rule); }
.page-head__title, .actor__name { font-size: 1.9rem; }
.filters { background: var(--paper-warm); border-color: var(--rule); }
.genre-cloud { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.genre-cloud__item { margin: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.genre-tag { display: flex; justify-content: space-between; gap: .5rem; padding: .9rem 1rem; font-family: var(--serif); }
.genre-tag__total { color: var(--vermillion); font-family: var(--sans); font-size: .68rem; }
.actor__hero { padding: 2rem 0; border-bottom: 1px solid var(--rule); }
.item-detail__cover { background: var(--paper-deep); border-color: var(--rule); }
.item-detail__title { font-family: var(--serif); }
.item-detail__price-now { color: var(--vermillion); }
.related-card { background: #fff; border-color: var(--rule); }
.related-card { background: transparent; border-bottom: 0; }
.related-card__title { color: var(--ink); font-family: var(--sans); }
.related-card__price { color: var(--vermillion); font-family: var(--sans); }
.watchlist__empty { background: var(--paper-warm); border-color: var(--rule); }
.colophon { margin-top: 3rem; background: var(--paper-deep); border-top: 1px solid var(--rule); color: var(--ink-mute); }
.colophon__title { color: var(--ink); }
.colophon__head { color: var(--ink-mute); }
.colophon__text, .colophon__list, .colophon__list a { color: var(--ink-mute); }
.colophon__col a { color: var(--vermillion-deep); }
.legend--cool { background: #9b9488; }
.masthead__rule::before { background: transparent !important; }
.masthead__rule::after { background: var(--rule) !important; margin-top: 0; }
.site-search__label { background: #fff; color: var(--ink-mute); }
.brand__sub { display: block !important; }

@media (max-width: 760px) {
  .page { width: auto; max-width: none; margin: 0; padding: 1.25rem 1rem 4rem; }
  .masthead__top { flex-wrap: wrap; gap: .75rem; }
  .masthead__brand { display: block; }
  .brand__name { font-size: 1.25rem; }
  .ranking__list, .items, .search__grid, .search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem .75rem; }
  .idols__row, #creators-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  #creators-list .ranking__main { display: block; padding: .6rem; }
  #creators-list .ranking__cover { width: 100%; }
  .idol__link { display: block; padding: .6rem; }
  .idol__name { display: block; margin-top: .6rem; font-size: .8rem; }
  .idol__count, .idol__feature { display: -webkit-box; margin-top: .3rem; overflow: hidden; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .genre-cloud { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-head { padding: 1.5rem 0; }
  .page-head__title, .actor__name { font-size: 1.5rem; }
  .ranking__name, .deals__title, .item__title { font-size: .85rem; }
  .deals__price-now, .item__price-now { font-size: 1rem; }
  .item-detail__price-box .item__price-now { font-size: 1.55rem; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
