/* Product-led sales ranking. Keep all three products visible without a scroller. */
.home-ranking { padding-top: 0; scroll-margin-top: 190px; }
.home-ranking__panel { position: relative; isolation: isolate; padding: 40px; background: #151613; color: #fff; border-radius: 30px; overflow: hidden; }
.home-ranking__panel::before { content: ""; position: absolute; z-index: -1; pointer-events: none; width: 380px; height: 380px; right: -80px; top: -245px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025); }
.home-ranking__heading { position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 34px; }
.home-ranking__eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0 0 20px; color: var(--orange); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.home-ranking__eyebrow::before { content: ""; width: 26px; height: 2px; background: currentColor; }
.home-ranking__eyebrow span { padding-left: 16px; border-left: 1px solid rgba(255,90,31,.4); font-family: "Space Grotesk", sans-serif; font-size: 10px; letter-spacing: .16em; }
.home-ranking__heading h2 { margin: 0; color: #fff; font-family: "Noto Sans JP", sans-serif; font-size: clamp(26px, 3.2vw, 44px); font-weight: 800; line-height: 1.55; letter-spacing: -.035em; }
.home-ranking__heading h2 span { color: inherit; padding: 0 .06em; }
.home-ranking__mobile-break { display: none; }
.home-ranking__lead { margin: 0 0 8px; color: #c7c8c1; font-size: 13px; line-height: 1.7; }
.home-ranking__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.home-ranking__grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-ranking__grid[data-count="1"] { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
.home-ranking__item { min-width: 0; }
.home-ranking-card { height: 100%; display: flex; flex-direction: column; border: 2px solid transparent; border-radius: 20px; overflow: hidden; color: var(--ink); background: #fff; transition: transform .2s, border-color .2s; }
.home-ranking__item--first .home-ranking-card { border-color: var(--orange); }
.home-ranking-card__visual { position: relative; padding: 56px 16px 12px; background: #fff; }
.home-ranking-card__rank { position: absolute; inset: 12px 20px auto; display: flex; align-items: center; gap: 12px; }
.home-ranking-card__number { display: block; color: #555751; font-family: "Bebas Neue", sans-serif; font-size: 46px; line-height: 1; }
.home-ranking__item--first .home-ranking-card__number { color: var(--orange); }
.home-ranking-card__best { border-left: 1px solid #d5d4cf; padding-left: 12px; color: #a83b16; font-family: "Space Grotesk", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .14em; line-height: 1.55; }
.home-ranking-card__visual img { display: block; width: 100%; height: clamp(156px, 17vw, 224px); object-fit: contain; }
.home-ranking-card__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 16px; border-top: 1px solid #f0efeb; }
.home-ranking-card__brand { margin: 0; color: #666760; font-family: "Space Grotesk", sans-serif; font-size: 10px; line-height: 1.5; font-weight: 500; letter-spacing: .12em; }
.home-ranking-card h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; font-size: 14px; font-weight: 700; line-height: 1.65; overflow-wrap: anywhere; }
.home-ranking-card__bottom { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; margin-top: auto; }
.home-ranking-card__price { font-family: "Space Grotesk", "Noto Sans JP", sans-serif; font-size: 22px; line-height: 1.4; font-weight: 700; }
.home-ranking-card__action { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 46px; padding: 10px 12px; border-radius: 8px; background: #20211d; color: #fff; font-size: 12px; font-weight: 700; }
.home-ranking__item--first .home-ranking-card__action { color: #151613; background: var(--orange); }
.home-ranking-card:focus-visible { outline: 3px solid var(--orange); outline-offset: 5px; }
.home-ranking__method { margin: 24px 0 0; max-width: 850px; font-size: 11px; line-height: 1.9; color: #b9bbb2; }
/* The store's existing proof points belong with its introduction. */
.home-store-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 28px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-store-proof > div { text-align: center; }
.home-store-proof > div + div { border-left: 1px solid var(--line); }
.home-store-proof strong { display: block; color: #b4431c; font-family: "Bebas Neue", sans-serif; font-size: 44px; font-weight: 400; line-height: 1; }
.home-store-proof strong small { font-size: .55em; }
.home-store-proof span { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; }
@media (hover: hover) {
  .home-ranking-card:hover { transform: translateY(-4px); border-color: var(--orange); }
}
@media (max-width: 1050px) {
  .home-ranking__panel { padding: 28px; }
  .home-ranking__heading { display: block; }
  .home-ranking__lead { margin-top: 12px; }
  .home-ranking__grid { gap: 14px; }
  .home-ranking-card__visual { padding-right: 14px; padding-left: 14px; }
  .home-ranking-card__body { padding: 16px; }
}
@media (max-width: 720px) {
  .home-ranking { scroll-margin-top: 120px; }
  .home-ranking__panel { padding: 28px 16px 24px; border-radius: 24px; }
  .home-ranking__heading { margin-bottom: 24px; }
  .home-ranking__eyebrow { gap: 10px; font-size: 11px; margin-bottom: 14px; }
  .home-ranking__eyebrow::before { width: 18px; }
  .home-ranking__eyebrow span { font-size: 9px; padding-left: 10px; }
  .home-ranking__heading h2 { font-size: clamp(25px, 7vw, 36px); }
  .home-ranking__mobile-break { display: block; }
  .home-ranking__lead { font-size: 12px; margin: 10px 0 0; }
  .home-ranking__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .home-ranking__item--first { grid-column: 1 / -1; }
  .home-ranking__grid[data-count="2"] .home-ranking__item--first { grid-column: auto; }
  .home-ranking-card { border-radius: 14px; }
  .home-ranking-card__visual { padding: 44px 8px 8px; }
  .home-ranking-card__visual img { height: auto; aspect-ratio: 1; }
  .home-ranking-card__rank { inset: 10px 12px auto; }
  .home-ranking-card__number { font-size: 34px; }
  .home-ranking-card__body { padding: 10px; gap: 6px; }
  .home-ranking-card__brand { font-size: 9px; letter-spacing: .05em; }
  .home-ranking-card h3 { font-size: 12px; line-height: 1.65; }
  .home-ranking-card__bottom { gap: 8px; padding-top: 4px; }
  .home-ranking-card__price { font-size: 20px; }
  .home-ranking-card__action { min-height: 44px; padding: 10px; font-size: 11px; }
  .home-ranking-card__action svg { width: 16px; flex-shrink: 0; }
  /* Secondary cards follow the compact product-card pattern; the whole card stays linked. */
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__visual { padding: 0; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__rank { z-index: 1; inset: 8px auto auto 8px; padding: 4px 7px; border-radius: 6px; background: rgba(255, 255, 255, .92); }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__number { font-size: 28px; color: #191a16; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__body { gap: 6px; border-top: 0; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card h3 { -webkit-line-clamp: 2; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__bottom { flex-direction: row; justify-content: space-between; align-items: center; gap: 4px; padding-top: 0; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__price { font-size: 17px; }
  .home-ranking__item:not(.home-ranking__item--first) .home-ranking-card__action { flex-shrink: 0; width: 24px; padding: 0; background: transparent; color: #191a16; font-size: 0; justify-content: flex-end; }
  /* Give the leading product a wide, compact card instead of a full-width square photograph. */
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card { display: grid; grid-template-columns: minmax(0, .44fr) minmax(0, .56fr); }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__visual { display: flex; align-items: center; padding: 50px 8px 10px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__visual img { max-height: 220px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__number { font-size: 42px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__rank { gap: 8px; left: 10px; right: 8px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__best { font-size: 8px; padding-left: 8px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__body { min-width: 0; padding: 12px; border-top: 0; border-left: 1px solid #f0efeb; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card h3 { font-size: 13px; }
  .home-ranking__grid[data-count="3"] .home-ranking__item--first .home-ranking-card__price { font-size: 22px; }
  .home-ranking__method { margin-top: 20px; font-size: 10px; }
  .home-store-proof { gap: 0; padding: 20px 0; margin-bottom: 24px; }
  .home-store-proof strong { font-size: 36px; }
  .home-store-proof span { font-size: 10px; }
}
@media (max-width: 360px) {
  .home-ranking-card__action { padding: 10px 8px; gap: 4px; font-size: 10px; white-space: nowrap; }
  .home-ranking-card__action svg { width: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-ranking-card { transition: none; }
  .home-ranking-card:hover { transform: none; }
}
