/** Shopify CDN: Minification failed

Line 623:0 All "@import" rules must come first

**/
/* CSS Document */
:root {
  interpolate-size: allow-keywords;
  --body-font: "Neue Plak", sans-serif;
  --secondary-font: "Neue Plak", sans-serif;
}

body .ls-price:first-letter,
body .price:first-letter,
body span[data-product-price]:first-letter {
  font-size: 0.8em;
}
body .ls-price,
body span[data-product-price] {
  display: -moz-inline-box;
  display: inline-block;
}

body #customer-info {
  display: none;
}
body .tl-switcher-container {
  display: none;
}
body .shopify-app-block:has(.lasthour-live-counter-container) {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
body .nav-icons .tl-switcher-container {
  display: block;
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  margin-left: 10px;
  box-shadow: initial;
  z-index: 9;
}
body:not(:has(.site-header)) .tl-switcher-container, body:not(:has(.site-header)) .socialplus-associate-banner {
  display: none;
}
body:not(:has(.site-header)) .nav-icons .tl-switcher-container {
  display: none;
}
body .tag-list:not(:first-child) {
  margin-top: 40px;
}
body .tag-list .item-list {
  margin-left: -4px;
  margin-right: -4px;
  margin-bottom: -4px;
}
body .tag-list .item-li {
  display: -moz-inline-box;
  display: inline-block;
  vertical-align: middle;
  margin-left: 4px;
  margin-right: 4px;
  margin-bottom: 4px;
}
body .tag-list .item-li a {
  display: block;
  border: 1px solid var(--color-primary-accent);
  padding: 4px 10px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  border-radius: 30px;
  color: rgba(var(--color-scheme-text), var(--tw-text-opacity));
}
body div:has(.locale-selectors__container) {
  display: none;
}
body #RegisterForm .field-checkbox:not(:first-child) {
  margin-top: 25px;
}
body #RegisterForm .field-checkbox:not(:last-child) {
  margin-bottom: 25px;
}
body #RegisterForm .field-checkbox a {
  text-decoration: underline;
}
body #RegisterForm .field-checkbox a:hover {
  text-decoration: none;
}
body #RegisterForm .field-checkbox + .field-checkbox {
  margin-top: -15px;
}
body .cf-form-inner .cf-field input[type=text], body .cf-form-inner .cf-field input[type=email], body .cf-form-inner .cf-field input[type=number], body .cf-form-inner .cf-field input[type=tel], body .cf-form-inner .cf-field input[type=password], body .cf-form-inner .cf-field textarea {
  border: 1px solid #ddd;
  padding-left: 15px;
}
body .cf-form-inner .cf-field input[type=text], body .cf-form-inner .cf-field input[type=email], body .cf-form-inner .cf-field input[type=number], body .cf-form-inner .cf-field input[type=tel], body .cf-form-inner .cf-field input[type=password] {
  line-height: 40px;
  height: 40px;
}
body .cf-form-inner .cf-field > label {
  font-size: 14px;
  margin-bottom: 5px;
  display: block;
}
body .cf-form-inner .cf-field > label:after {
  color: #ff0000;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph] {
  font-size: 14px;
  line-height: 1.6;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph]:not(:first-child) {
  margin-top: -10px;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph] a {
  text-decoration: underline;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph] a:hover {
  text-decoration: none;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph] em {
  font-style: noramal;
  display: block;
  text-indent: -1em;
  padding-left: 1em;
  font-size: 12px;
}
body .cf-form-inner .cf-field[data-cf-field-type=paragraph] p:not(:last-child) {
  margin-bottom: 5px;
}
body .cf-form-inner .cf-form-actions {
  display: flex;
  flex-direction: column-reverse;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-right: -10px;
  margin-bottom: -10px;
}
body .cf-form-inner .cf-form-actions .cf-button {
  height: 58px;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  line-height: 1.3;
  padding: 5px 10px;
  margin-right: 10px;
  margin-bottom: 10px;
  width: calc(100% - 10px);
  transition: all 0.3s ease;
}
body .cf-form-inner .cf-form-actions .cf-button span {
  transition: all 0.3s ease;
  font-size: 15px;
}
body .cf-form-inner .cf-form-actions .cf-submit-form {
  border: 1px solid var(--color-primary-accent);
  color: var(--color-primary-accent);
}
body .cf-form-inner .cf-form-actions .cf-submit-form span {
  color: var(--color-primary-accent);
}
body .cf-form-inner .cf-form-actions .cf-submit-form:hover {
  background-color: var(--color-primary-accent);
}
body .cf-form-inner .cf-form-actions .cf-submit-form:hover span {
  color: #FFF;
}
body .cf-form-inner .cf-form-actions .cf-cancel {
  border: none;
  color: var(--color-primary-accent);
}
body .cf-form-inner .cf-form-actions .cf-cancel span {
  color: var(--color-primary-accent);
}
body .cf-form-inner .cf-form-actions .cf-cancel:hover {
  background-color: var(--color-primary-text);
}
body .cf-form-inner .cf-form-actions .cf-cancel:hover span {
  color: #FFF;
}
body .cf-form-inner .cf-error-message {
  display: none;
}
body .cf-form-section.customer h1 {
  font-size: 3.052rem;
  font-weight: bold;
  font-family: var(--heading-font);
  margin-bottom: 20px;
}
body .cf-form-section.customer h1:not(:first-child) {
  margin-top: 20px;
}
@media screen and (max-width: 749px) {
  body .cf-form-section.customer h1 {
    font-size: 1.953rem;
  }
}
body img[src*="/line_add_friends/btn/ja.png"] {
  height: 50px;
  width: auto;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 749px) {
  body img[src*="/line_add_friends/btn/ja.png"] {
    height: 40px;
  }
}
body .payment-icons li {
  position: relative;
}
body .payment-icons li:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(229, 231, 235, var(--tw-border-opacity));
  border-radius: 3px;
}
body .slideshow {
  box-sizing: border-box;
}
@media screen and (min-width: 750px) {
  body .slideshow {
    width: 80rem;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}
body .slideshow .splide__arrow {
  background-color: rgba(255, 255, 255, 0.2);
  color: #FFF;
}
body #productSplide .splide__arrow {
  background-color: rgba(255, 255, 255, 0.2);
  color: #FFF;
}
body .ls-ul {
  align-items: flex-start !important;
}
body .ls-ul .limespot-recommendation-box-item {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
body .ls-link {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
body .ls-recommendation-box {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
  max-width: 80em;
  margin-left: auto;
  margin-right: auto;
}
body .ls-box-title {
  text-align: center;
  margin-top: 0;
  font-family: var(--heading-font);
  font-style: var(--heading-font-style);
  font-weight: var(--heading-font-weight);
  letter-spacing: var(--heading-letterspacing);
  text-transform: var(--heading-capitalize);
  font-size: 1.953rem;
  margin-bottom: 20px;
}
body .ls-title {
  text-align: center;
  font-size: initial;
}
body .ls-price {
  text-align: center;
  font-size: initial;
}
body .ls-price-wrap {
  text-align: center;
  margin-top: 0;
}
body .sidebar-container .search-box {
  border-width: 3px;
}
body .sidebar-container .search-box input[type=text] {
  line-height: 40px;
}
body .sidebar-container .search-box input[type=text]::placeholder {
  color: #999;
}
body .sidebar-container .search-box button svg path {
  fill: #74E492;
}
/* GW2026 CVR最適化: メインCTA = Cupickグリーン統一 */
body .add-to-cart-btn {
  border-radius: 60px;
  background-color: #07c439;
  color: #ffffff;
  border: none;
}
body .add-to-cart-btn:hover {
  background-color: #06a832;
  color: #ffffff;
}
/* Shopify Buy It Now (unbranded) を非表示 → 重複ボタン解消 */
body .shopify-payment-button__button--unbranded {
  display: none !important;
}
/* ブランド付き決済 (PayPal/Apple Pay/Google Pay/Shop Pay) は公式色を尊重 */
body .shopify-payment-button__button {
  border-radius: 60px !important;
}
body .bundler-heading {
  color: #FF904E;
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 10px;
}
body .bundler-target-element .bndlr-bundle-title, body .bundler-target-element .bndlr-bundle-description {
  display: none;
}
/* GW2026 CVR最適化: バンドル枠ボタン = Cupickグリーン統一 */
body .bundler-target-element .bndlr-add-to-bundle, body .bundler-target-element .bndlr-add-bundle-to-cart {
  border-radius: 60px;
  background-color: #07c439 !important;
  color: #ffffff !important;
  border: none;
}
body .bundler-target-element .bndlr-add-to-bundle:hover, body .bundler-target-element .bndlr-add-bundle-to-cart:hover {
  background-color: #06a832 !important;
  color: #ffffff !important;
}
body .product-section.requires-shipping .mt-8:has([data-app-block-single-banner=c7ce4024-3311-421d-a11c-913e4832ab19]) {
  display: none;
}
body .product__block-wrapper .mt-8:has(.shopify-app-block) {
  margin-top: 10px;
}
body .product__block-wrapper .my-8 {
  margin-top: 10px;
  margin-bottom: 15px;
}
body .product-title {
  display: flex;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
body .product-title > a {
  display: flex;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
body .product-title .font-body {
  -webkit-box-original-group: 1;
  -ms-flex-order: 1;
  order: 1;
}
body .product-title .page {
  -webkit-box-original-group: 2;
  -ms-flex-order: 2;
  order: 2;
  margin-left: auto;
  border: 1px solid rgba(229, 231, 235, var(--tw-border-opacity));
  padding: 5px;
  line-height: 1.2;
}
body .product-title .font-heading {
  -webkit-box-original-group: 3;
  -ms-flex-order: 3;
  order: 3;
  width: 100%;
  margin-top: 4px;
}
body .product-tags {
  margin-top: 5px;
}
body .product-tags li a {
  color: blue;
  text-decoration: underline;
  border: none;
  padding: 0;
}
body .product-tags li a:hover {
  text-decoration: none;
}
body .product-tags li a:hover {
  color: blue;
  background-color: transparent;
}
body .product-text-btn {
  color: #FF904E;
  text-align: center;
  margin-top: 10px;
}
body .product-matome-text {
  margin-bottom: 10px;
  text-align: center;
}
body .product-matome-text a {
  color: blue;
  text-decoration: underline;
}
body .product-matome-text a:hover {
  text-decoration: none;
}
body .product-payment > p {
  text-align: center;
  font-weight: 500;
  margin-bottom: 10px;
}
body .product-payment ul {
  display: flex;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin-right: -4px;
  margin-bottom: -4px;
}
body .product-payment ul li {
  margin-left: 0;
  margin-right: 4px;
  margin-bottom: 4px;
  line-height: 0;
}
body:has(#seungSlider) #kins-kins-popup, body:has(#seungSlider) [id^="widget-chat-container-"] {
  display: none;
}
body .featured-collection .text-scheme-text {
  margin-top: 15px;
  text-align: left;
}
body .featured-collection .text-scheme-text .product-grid-title {
  font-size: 15px;
}
body .featured-collection .text-scheme-text .mt-1 {
  font-size: 14px;
}
body .featured-collection .price {
  text-align: left;
  font-size: 14px;
}
@media screen and (min-width: 750px) {
  body .top-list .grid > li:nth-child(n+7) {
    display: none;
  }
}

@media screen and (max-width: 749px) {
  body .shopify-app-block:has(.lasthour-live-counter-container) {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
@media screen and (max-width: 749px) and (max-width: 350px) {
  body .nav-icons .p-1 {
    padding-left: 2px;
    padding-right: 2px;
  }
}
@media screen and (max-width: 749px) {
  body .nav-icons .tl-switcher-container {
    margin-right: -10px;
    margin-left: 5px;
  }
  body .nav-icons .tl-switcher-container .tl-select {
    padding-left: 4px;
    padding-right: 4px;
    column-gap: 4px;
  }
  body .nav-icons .tl-switcher-container .tl-select .tl-name {
    display: none;
  }
}
@media screen and (max-width: 749px) and (max-width: 350px) {
  body .nav-icons .tl-switcher-container {
    margin-right: -15px;
  }
  body .nav-icons .tl-switcher-container .tl-flag {
    width: 13px;
  }
}
@media screen and (max-width: 749px) {
  body .jdgm-rev-widg {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  body .jdgm-review-widget--small .jdgm-rev-widg, body .jdgm-review-widget--medium .jdgm-rev-widg {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  body .ls-recommendation-box {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  body .bundler-target-element .bndlr-mnm-available-products {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 3px;
  }
  body .bundler-target-element .bndlr-mnm-available-products .bndlr-product {
    margin: 0;
  }
  body .bundler-target-element .bndlr-mnm-available-products .bndlr-product-title, body .bundler-target-element .bndlr-mnm-available-products .bndlr-product-price {
    font-size: 0.8rem;
  }
  body .bundler-target-element .bndlr-mnm-available-products .bndlr-add-to-bundle {
    font-size: 0.8rem;
  }
  body .product-section {
    padding-top: 10px;
  }
  body .product-section > .gap-10 {
    gap: 15px;
  }
  body #liveVisitorCounterRTEA {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}
/* etc */
html:not([lang=ja]) .only-ja {
  display: none;
}

html:not([lang=en]) .only-en {
  display: none;
}

html:not([lang=ko]) .only-ko {
  display: none;
}

html:not([lang=zh-TW]) .only-zh-TW {
  display: none;
}

html:not([lang=zh-CN]) .only-zh-CN {
  display: none;
}

@media screen and (max-width: 749px) {
  br.pc {
    display: none;
  }
}
br.tablet {
  display: none;
}
@media screen and (min-width: 750px) and (max-width: 1100px) {
  br.tablet {
    display: inline;
  }
}
br.sp {
  display: none;
}
@media screen and (max-width: 749px) {
  br.sp {
    display: inline;
  }
}

@media screen and (max-width: 749px) {
  img.pc {
    display: none;
  }
}
@media screen and (min-width: 750px) {
  img.sp {
    display: none;
  }
}

@media screen and (min-width: 750px) {
  .hidden-pc {
    display: none;
  }
}
@media screen and (max-width: 749px) {
  .hidden-sp {
    display: none;
  }
}

/* etc */
/* GW2026: STKY Add to Cart スティッキーバーを最前面固定 */
#satcb_bar,
.satcb_bar_bottom_mobile,
.satcb_bar_top_mobile,
.satcb_bar_bottom_desktop,
.satcb_quick_buy,
.media > .satcb_quick_buy {
  z-index: 9999 !important;
}

/* === CUPICK_PR_RENEWAL_START === */
/* =========================================================
   Cupick.jp 5/12 Press Release Renewal — CSS Add-on
   ---------------------------------------------------------
   既存 assets/custom.css の末尾に追記する想定。
   2026-05-06: Persona D (Otaku Collector) + Modern Global typography 確定
   関連: design/DESIGN.md v1.1, design/preview/design-typography.html
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;700;800;900&display=swap');

:where(.cupick-this-month-section,
       .cupick-ranking-section,
       .cupick-talents-section,
       .cupick-publishers-section,
       .cupick-trust-section,
       .cupick-circle-nav-section,
       .cupick-top-bar) {
  font-family: "Inter", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
}
.cupick-section-title-en,
.cupick-publishers__title-en,
.cupick-badge-rank {
  font-family: "Inter", sans-serif !important;
}

:root {
  --cupick-brand-green: #069A2E;
  --cupick-brand-green-hover: #058628;
  --cupick-brand-green-soft: rgba(6,154,46,0.08);
  --cupick-brand-green-light: #07c439;
  --cupick-accent-lime: #7CFFA0;
  --cupick-accent-lime-soft: rgba(124,255,160,0.18);

  --cupick-neutral-0: #FFFFFF;
  --cupick-neutral-50: #FAFAFA;
  --cupick-neutral-100: #F4F4F5;
  --cupick-neutral-200: #E5E5E7;
  --cupick-neutral-400: #9CA0A8;
  --cupick-neutral-600: #52555E;
  --cupick-neutral-800: #262830;
  --cupick-neutral-900: #13141A;

  --cupick-shadow-card: 0 2px 8px rgba(19,20,26,0.06);
  --cupick-radius-md: 12px;
  --cupick-radius-pill: 9999px;
  --cupick-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ========== Section: Top Bar ========== */
.cupick-top-bar {
  background: var(--cupick-neutral-100);
  color: var(--cupick-neutral-800);
  font-size: 14px;
  text-align: center;
  padding: 8px 16px;
  letter-spacing: 0.04em;
}
.cupick-top-bar__text { margin: 0; }

/* ========== Section: Section Heads(共通) ========== */
.cupick-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 24px;
  gap: 16px;
}
.cupick-section-title-en {
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cupick-neutral-900);
  margin: 0 0 4px;
}
@media (min-width: 1200px) {
  .cupick-section-title-en { font-size: 28px; }
}
.cupick-section-title-ja {
  font-size: 16px;
  color: var(--cupick-neutral-600);
  margin: 0;
  font-weight: 400;
}
.cupick-see-all {
  font-size: 14px;
  font-weight: 500;
  text-decoration: underline;
  color: var(--cupick-neutral-900);
  white-space: nowrap;
  text-underline-offset: 4px;
}
.cupick-see-all:hover { color: var(--cupick-brand-green); }

/* ========== Section: Circle Nav ========== */
.cupick-circle-nav {
  padding: 32px 0;
  background: var(--cupick-neutral-0);
}
.cupick-circle-nav__inner {
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}
.cupick-circle-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--cupick-neutral-800);
}
.cupick-circle-nav__icon {
  width: 56px; height: 56px;
  border-radius: var(--cupick-radius-pill);
  background: var(--cupick-neutral-50);
  display: flex; align-items: center; justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--cupick-neutral-900);
  transition: all 150ms var(--cupick-ease-out);
  border: 1px solid transparent;
}
.cupick-circle-nav__icon svg {
  width: 26px; height: 26px;
  display: block;
}
@media (min-width: 1200px) {
  .cupick-circle-nav__icon { width: 64px; height: 64px; font-size: 26px; }
  .cupick-circle-nav__icon svg { width: 30px; height: 30px; }
}
.cupick-circle-nav__item:hover .cupick-circle-nav__icon {
  border-color: var(--cupick-accent-lime);
  background: var(--cupick-neutral-0);
  box-shadow: 0 0 0 4px var(--cupick-accent-lime-soft), var(--cupick-shadow-card);
}
.cupick-circle-nav__label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* ========== Section: Publishers Banner ========== */
.cupick-publishers {
  padding: 48px 0;
  background: var(--cupick-neutral-0);
  overflow: hidden;
}
.cupick-publishers__head {
  text-align: left;
  margin-bottom: 24px;
}
.cupick-publishers__title-en {
  font-family: "Inter", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cupick-neutral-900);
  margin: 0 0 4px;
}
@media (min-width: 1200px) {
  .cupick-publishers__title-en { font-size: 28px; }
}
.cupick-publishers__title-ja {
  font-size: 16px;
  color: var(--cupick-neutral-600);
  margin: 0;
}
.cupick-publishers__marquee-wrap {
  overflow: hidden;
  width: 100%;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
}
.cupick-publishers__marquee {
  display: flex;
  gap: 16px;
  animation: cupickMarquee 150s linear infinite;
  width: max-content;
  padding: 8px 0;
}
@media (min-width: 750px) {
  .cupick-publishers__marquee { animation-duration: 120s; }
}
@media (min-width: 1200px) {
  .cupick-publishers__marquee { animation-duration: 90s; }
}
.cupick-publishers__marquee:hover { animation-play-state: paused; }
@keyframes cupickMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - 8px)); }
}
/* v2 — 商品表紙 + 出版社名オーバーレイ(2026-05-07 Shin 確定 ①A + ②a) */
.cupick-publishers__card {
  flex: 0 0 120px;
  aspect-ratio: 2 / 3;
  border-radius: var(--cupick-radius-md);
  background: var(--cupick-neutral-0);
  display: block;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  transition: transform 220ms var(--cupick-ease-out), box-shadow 220ms var(--cupick-ease-out);
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
@media (min-width: 750px) {
  .cupick-publishers__card { flex: 0 0 140px; }
}
@media (min-width: 1200px) {
  .cupick-publishers__card { flex: 0 0 160px; }
}
.cupick-publishers__card:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.cupick-publishers__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 画像下部に黒グラデ + 白UPPER オーバーレイ(案①A) */
.cupick-publishers__card-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 24px 8px 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%);
  color: #fff;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
  line-height: 1.3;
}
@media (min-width: 750px) {
  .cupick-publishers__card-overlay { font-size: 12px; padding: 28px 10px 12px; }
}
/* 画像なし出版社カード — 緑〜ライムグラデ(案②a・Persona D) */
.cupick-publishers__card--no-image {
  background: linear-gradient(135deg, var(--cupick-brand-green) 0%, var(--cupick-accent-lime) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 12px 8px;
}
.cupick-publishers__name {
  font-family: "Inter", sans-serif;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--cupick-neutral-900);
  text-align: center;
  text-transform: uppercase;
  line-height: 1.3;
  text-shadow: 0 1px 1px rgba(255,255,255,0.3);
}
@media (min-width: 750px) {
  .cupick-publishers__name { font-size: 13px; }
}

/* ========== Section: Trust Indicators(A案 = アイコン横並び3バッジ) ========== */
.cupick-trust {
  background: var(--cupick-neutral-50);
  padding: 32px 16px;
  text-align: center;
  border-top: 1px solid var(--cupick-neutral-200);
  border-bottom: 1px solid var(--cupick-neutral-200);
}
.cupick-trust__text {
  margin: 0;
  font-size: 16px;
  color: var(--cupick-neutral-800);
  letter-spacing: 0.04em;
}
.cupick-trust__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  max-width: 720px;
  margin-inline: auto;
}
@media (max-width: 480px) {
  .cupick-trust__grid { gap: 8px; }
}
.cupick-trust__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  padding: 12px 8px;
}
.cupick-trust__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  color: var(--cupick-brand-green);
  margin-bottom: 4px;
}
.cupick-trust__icon svg {
  width: 28px; height: 28px;
}
@media (min-width: 750px) {
  .cupick-trust__icon { width: 44px; height: 44px; }
  .cupick-trust__icon svg { width: 34px; height: 34px; }
}
.cupick-trust__strong {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 0.01em;
  color: var(--cupick-neutral-900);
  line-height: 1.2;
}
@media (min-width: 750px) {
  .cupick-trust__strong { font-size: 22px; }
}
.cupick-trust__small {
  font-size: 11px;
  color: var(--cupick-neutral-600);
  letter-spacing: 0.02em;
  line-height: 1.4;
  text-align: center;
}
@media (min-width: 750px) {
  .cupick-trust__small { font-size: 12px; }
}

/* ========== Grid: Ranking & Talent(横スクロール) ========== */
.cupick-grid--ranking {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 200px;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 16px;
  margin: 0;
  list-style: none;
}
.cupick-grid--ranking > * { scroll-snap-align: start; }
@media (min-width: 1200px) {
  .cupick-grid--ranking {
    grid-template-columns: repeat(5, 1fr);
    grid-auto-flow: row;
    grid-auto-columns: unset;
    overflow: visible;
  }
}
.cupick-rank-item {
  position: relative;
  list-style: none;
}
.cupick-badge-rank {
  position: absolute;
  top: 0; left: 0;
  width: 40px;
  height: 48px;
  background: var(--cupick-neutral-900);
  color: var(--cupick-neutral-0);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 22px;
  font-weight: 800;
  z-index: 2;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 85%, 0 100%);
  text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
/* 順位別グラデーション(2026-05-07 Shin 確定) */
.cupick-rank-item[data-rank="1"] .cupick-badge-rank {
  background: linear-gradient(135deg, #FFE082 0%, #FFB300 50%, #B8860B 100%);
  color: #3E2723;
  text-shadow: 0 1px 1px rgba(255,255,255,0.4);
}
.cupick-rank-item[data-rank="2"] .cupick-badge-rank {
  background: linear-gradient(135deg, #F5F5F5 0%, #BDBDBD 50%, #757575 100%);
  color: #212121;
  text-shadow: 0 1px 1px rgba(255,255,255,0.4);
}
.cupick-rank-item[data-rank="3"] .cupick-badge-rank {
  background: linear-gradient(135deg, #D7A06C 0%, #A57045 50%, #6D4225 100%);
  color: #FFF8E1;
  text-shadow: 0 1px 1px rgba(0,0,0,0.3);
}

.cupick-grid--talent {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 140px;
  gap: 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 16px;
  margin: 0;
  list-style: none;
}
@media (min-width: 1200px) {
  .cupick-grid--talent {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-flow: row;
    grid-auto-columns: unset;
    overflow: visible;
  }
}
.cupick-talent-card { list-style: none; }
.cupick-talent-card a {
  display: block;
  text-decoration: none;
  color: var(--cupick-neutral-800);
  text-align: center;
}
.cupick-talent-card__img {
  width: 84%;
  margin: 0 auto 12px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cupick-neutral-100);
  box-shadow: 0 0 0 2px var(--cupick-neutral-0), 0 0 0 3px var(--cupick-neutral-200);
  transition: box-shadow 200ms var(--cupick-ease-out);
}
.cupick-talent-card a:hover .cupick-talent-card__img {
  box-shadow: 0 0 0 2px var(--cupick-neutral-0), 0 0 0 3px var(--cupick-accent-lime);
}
.cupick-talent-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.cupick-talent-card__name {
  font-size: 14px;
  font-weight: 600;
  margin: 0;
  color: var(--cupick-neutral-900);
}
.cupick-talent-card__count {
  font-size: 12px;
  color: var(--cupick-neutral-600);
  margin: 4px 0 0;
}

/* ========== Empty State ========== */
.cupick-empty {
  text-align: center;
  color: var(--cupick-neutral-400);
  padding: 48px;
  list-style: none;
  grid-column: 1 / -1;
}

/* ========== Common: Grid for product items ========== */
/* モバイルは3列(ピッコマ・comico 等の漫画系ECに合わせる、2026-05-06 Shin 確定) */
.cupick-grid--product {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 750px) {
  .cupick-grid--product { grid-template-columns: repeat(4, 1fr); gap: 16px; }
}
@media (min-width: 1200px) {
  .cupick-grid--product { grid-template-columns: repeat(5, 1fr); gap: 24px; }
}

/* ========== Product card additions(既存 product-grid-item.liquid に追加するクラス用) ========== */
/* 商品タイプバッジ — 既存 .product-grid-item にバッジコンテナを追加 */
.cupick-badge-stack {
  position: absolute;
  top: 8px;
  left: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 1;
}
.cupick-badge {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-family: "Inter", sans-serif;
  white-space: nowrap;
  line-height: 1.2;
}
.cupick-badge--new {
  background: linear-gradient(135deg, var(--cupick-brand-green) 0%, var(--cupick-accent-lime) 100%);
  color: var(--cupick-neutral-900);
  font-weight: 700;
}
.cupick-badge--event { background: var(--cupick-brand-green); color: var(--cupick-neutral-0); }
.cupick-badge--shipping {
  background: rgba(255,255,255,0.92);
  color: var(--cupick-neutral-900);
  border: 1px solid var(--cupick-neutral-900);
}

/* お気に入り(♥)アイコン — 商品カード右上 */
.cupick-card-fav {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 36px; height: 36px;
  border-radius: var(--cupick-radius-pill);
  background: rgba(255,255,255,0.92);
  border: none;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cupick-neutral-800);
  transition: transform 150ms var(--cupick-ease-out);
}
.cupick-card-fav:hover { transform: scale(1.1); color: var(--cupick-brand-green); }
.cupick-card-fav.is-active { color: var(--cupick-brand-green); }

/* ========== Hero(編集的・既存 slideshow を活かしつつ可読性向上) ========== */
.cupick-hero-overlay-readable {
  position: relative;
}
.cupick-hero-overlay-readable::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}

/* ========== Ranking Item: 内側 <ul> リセット + 順位バッジの再配置 ========== */
.cupick-rank-item__inner {
  list-style: none;
  margin: 0;
  padding: 0;
  display: block;
}
.cupick-rank-item__inner > li {
  width: 100%;
  display: block;
}

/* ========== Ranking Item: 票数表示(Persona D 強化) ========== */
.cupick-rank-item__votes {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 6px 0 0;
  padding: 2px 8px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--cupick-brand-green);
  background: var(--cupick-accent-lime-soft);
  border-radius: 4px;
  letter-spacing: 0.04em;
}
.cupick-rank-item__votes::before {
  content: '▲';
  font-size: 9px;
  color: var(--cupick-brand-green);
}
.cupick-rank-item__votes-label {
  font-weight: 500;
  color: var(--cupick-neutral-600);
}

/* ========== Section Heading: 編集的・装飾化(2026-05-06 デザイン強化) ========== */
.cupick-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 16px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--cupick-neutral-200);
  position: relative;
}
.cupick-section-head::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 56px;
  height: 3px;
  background: var(--cupick-brand-green);
  border-radius: 2px;
}
.cupick-section-title-en {
  font-family: "Inter", "Helvetica Neue", sans-serif;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--cupick-brand-green);
  margin: 0 0 4px;
  text-transform: uppercase;
}
.cupick-section-title-ja {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--cupick-neutral-900);
  margin: 0;
  line-height: 1.3;
}
@media (min-width: 750px) {
  .cupick-section-title-en { font-size: 14px; }
  .cupick-section-title-ja { font-size: 26px; }
}
.cupick-see-all {
  font-size: 13px;
  font-weight: 600;
  color: var(--cupick-neutral-600);
  text-decoration: none;
  white-space: nowrap;
  transition: color 150ms var(--cupick-ease-out);
}
.cupick-see-all:hover { color: var(--cupick-brand-green); }

/* ========== Section Spacing: セクション間に余白 ========== */
.cupick-this-month-section,
.cupick-ranking-section,
.cupick-talents-section,
.cupick-publishers-section,
.cupick-trust-section,
.cupick-circle-nav-section {
  padding: 32px 0;
  background: var(--cupick-neutral-0);
}
@media (min-width: 750px) {
  .cupick-this-month-section,
  .cupick-ranking-section,
  .cupick-talents-section,
  .cupick-publishers-section,
  .cupick-trust-section,
  .cupick-circle-nav-section {
    padding: 56px 0;
  }
}
/* 偶数番セクションは subtle 背景でリズムを作る */
.cupick-talents-section,
.cupick-trust-section {
  background: var(--cupick-neutral-50);
}

/* ========== Product card hover refinement(全体一律で適用) ========== */
.cupick-grid--product > li,
.cupick-rank-item {
  transition: transform 200ms var(--cupick-ease-out);
}
.cupick-grid--product > li:hover,
.cupick-rank-item:hover {
  transform: translateY(-2px);
}

/* ========== Wrapper override(セクション内余白を一定に) ========== */
.cupick-this-month-section .wrapper,
.cupick-ranking-section .wrapper,
.cupick-talents-section .wrapper,
.cupick-publishers-section .wrapper,
.cupick-trust-section .wrapper,
.cupick-circle-nav-section .wrapper {
  padding-left: 16px;
  padding-right: 16px;
  max-width: 1280px;
  margin: 0 auto;
}
@media (min-width: 750px) {
  .cupick-this-month-section .wrapper,
  .cupick-ranking-section .wrapper,
  .cupick-talents-section .wrapper,
  .cupick-publishers-section .wrapper,
  .cupick-trust-section .wrapper,
  .cupick-circle-nav-section .wrapper {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* ========== Image Crop Strategy(2026-05-06 Shin 確定)
   原則: contain で全体表示優先。
   特定商品だけ cover に切り替えたい場合は <li class="cupick-card--crop"> を付与。
   ========== */
.cupick-grid--product img.lazyload,
.cupick-grid--product .gallery-image-cropped img,
.cupick-grid--product img[data-bgset],
.cupick-rank-item img.lazyload,
.cupick-rank-item .gallery-image-cropped img {
  object-fit: contain;
  background: var(--cupick-neutral-50);
}
.cupick-grid--product .gallery-image-cropped,
.cupick-rank-item .gallery-image-cropped {
  background: var(--cupick-neutral-50);
}
/* オーバーライド: cover 必要時のみ class 付与 */
.cupick-card--crop img.lazyload,
.cupick-card--crop .gallery-image-cropped img {
  object-fit: cover !important;
}
/* === CUPICK_PR_RENEWAL_END === */

/* === CUPICK_DENSITY_START === */
/* 2026-08-02 ホーム陳列密度改修
   実測根拠: docs/home-ux-catalog-plan-2026-07-31.md / 設計図: design/home-density-mockup.html
   このブロックを削除すれば改修前に戻る（冪等） */

/* ── 1. 商品カードのタイトルを2行で打ち止める（全ページの商品カードに適用）
      実測: スマホ幅103pxの列でタイトルが4〜5行に折り返し、1枚あたり90pxを消費していた */
.type-product-grid-item .product-grid-title,
.type-product-grid-item .text-scheme-text.break-words {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.42;
  margin-top: 8px !important;
  margin-bottom: 2px !important;
}
.type-product-grid-item .price { margin-top: 4px !important; }

/* ── 2. ホームのセクション余白を圧縮 */
.cupick-rail.section-y-padding,
.cupick-hero-grid.section-y-padding { padding-top: 20px; padding-bottom: 20px; }
.cupick-rail .grid,
.cupick-hero-grid .grid { margin-top: 16px !important; }

/* ── 3. 見出しと「すべて見る」を同じ行に並べる（縦80pxの節約） */
.cupick-rail .wrapper,
.cupick-hero-grid .wrapper { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 12px; }
.cupick-rail .wrapper > h2,
.cupick-hero-grid .wrapper > h2 { order: 1; flex: 1 1 auto; margin-bottom: 0; }
.cupick-rail .wrapper > div:last-child,
.cupick-hero-grid .wrapper > div:last-child { order: 2; margin-top: 0 !important; flex: 0 0 auto; }
.cupick-rail .wrapper > ul,
.cupick-hero-grid .wrapper > ul { order: 3; flex: 0 0 100%; width: 100%; }
.cupick-rail .wrapper > div:last-child .btn,
.cupick-hero-grid .wrapper > div:last-child .btn { padding: 6px 14px; font-size: 12px; }
/* 見出しは左寄せに（flex化で中央寄せのままだと座りが悪いため） */
.cupick-rail .wrapper > h2,
.cupick-hero-grid .wrapper > h2 { text-align: left !important; }
.cupick-rail .wrapper > h2 > div,
.cupick-hero-grid .wrapper > h2 > div { text-align: left !important; }

/* ── 4. レール（横スクロール1行）
      1セクション約1,100px → 約320pxで12件を収容する */
.cupick-rail .grid {
  display: flex !important;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  gap: 12px !important;
  padding-bottom: 6px;
  scrollbar-width: thin;
}
.cupick-rail .grid > li {
  flex: 0 0 44%;            /* スマホで2.2件見える＝続きがあると分かる幅 */
  scroll-snap-align: start;
  min-width: 0;
}
@media (min-width: 1024px) {
  .cupick-rail .grid { gap: 16px !important; }
  .cupick-rail .grid > li { flex: 0 0 15.5%; }
}
.cupick-rail .grid::-webkit-scrollbar { height: 4px; }
.cupick-rail .grid::-webkit-scrollbar-thumb { background: rgba(0,0,0,.18); border-radius: 4px; }

/* ── 5. 新着は2列グリッドで大きく見せる（表紙103px → 約165px幅） */
.cupick-hero-grid .grid { row-gap: 20px !important; column-gap: 12px !important; }

/* ── 6. 出版社ロゴ帯の余白圧縮（商品ゼロの領域を417px → 約300pxへ） */
.cupick-publishers { padding-top: 28px !important; padding-bottom: 28px !important; }

/* === CUPICK_DENSITY_END === */

/* === CUPICK_PAGINATION_START === */
/* コレクションのページ送り改修（2026-08-04）
   経緯: /collections/new は305件あるのに送りが「次」1リンクだけで、
   32件ずつ9回タップしないと最後に到達できなかった。実測到達は32件。
   件数表示も hidden lg:block でモバイルから見えていなかった。
   モバイルはセッション66%・購入75%なので、そこを基準に組んでいる。 */

.cupick-pagination {
  margin: 3rem 0 1rem;
}

.cupick-pagination__count {
  margin-bottom: 0.875rem;
  text-align: center;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--color-scheme-meta, currentColor);
  opacity: 0.85;
}

.cupick-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 44×44px は Apple HIG / WCAG 2.2 Target Size (Minimum) の下限。
   改修前のタップ領域は 33×13px しかなかった。 */
.cupick-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 0.5rem;
  border: 1px solid var(--color-scheme-border, rgba(128, 128, 128, 0.35));
  border-radius: 4px;
  font-size: 0.9375rem;
  line-height: 1;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.cupick-pagination__link:hover,
.cupick-pagination__link:focus-visible {
  border-color: currentColor;
  background-color: var(--color-scheme-border, rgba(128, 128, 128, 0.12));
}

.cupick-pagination__link--current {
  font-weight: 700;
  border-color: currentColor;
  background-color: var(--color-scheme-border, rgba(128, 128, 128, 0.18));
  cursor: default;
}

.cupick-pagination__link--arrow {
  padding: 0 0.625rem;
}

.cupick-pagination__icon {
  display: inline-block;
  width: 1.125rem;
  height: 1.125rem;
}

.cupick-pagination__icon svg {
  width: 100%;
  height: 100%;
}

/* 中略（…）は押せないのでタップ領域を持たせない */
.cupick-pagination__gap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: 44px;
  opacity: 0.55;
  font-size: 0.9375rem;
}

@media (max-width: 480px) {
  .cupick-pagination__list {
    gap: 0.25rem;
  }
  .cupick-pagination__link {
    min-width: 44px;
    padding: 0 0.375rem;
    font-size: 0.875rem;
  }
}

/* --- 「もっと見る」ボタン（2026-08-04） --- */
.cupick-load-more {
  margin: 2.5rem 0 0.5rem;
  text-align: center;
}

.cupick-load-more__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 48px;
  min-width: 220px;
  padding: 0 1.5rem;
  border: 1px solid currentColor;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font-size: 0.9375rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s ease, opacity 0.15s ease;
}

.cupick-load-more__btn:hover:not(:disabled),
.cupick-load-more__btn:focus-visible:not(:disabled) {
  background-color: var(--color-scheme-border, rgba(128, 128, 128, 0.12));
}

.cupick-load-more__btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.cupick-load-more__spinner {
  width: 1rem;
  height: 1rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: cupick-load-more-spin 0.7s linear infinite;
}

@keyframes cupick-load-more-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .cupick-load-more__spinner { animation-duration: 2.4s; }
}

/* JS が動く環境ではページ番号リストを隠し「もっと見る」に一本化する。
   DOM からは消さない（クローラー・JS無効環境には見える）。 */
.cupick-pagination__list[data-js-hidden] {
  display: none;
}

/* 番号リストを隠すと nav が件数表示だけになるので、下の余白を詰める */
.cupick-pagination:has(.cupick-pagination__list[data-js-hidden]) {
  margin-bottom: 0;
}

.cupick-pagination + .cupick-load-more {
  margin-top: 0.5rem;
}
/* === CUPICK_PAGINATION_END === */
