@charset "utf-8";

/* =========================================================
   日本酒ランキングページ 専用CSS
   EC商品棚風 / 角丸なし
   PC: 1位やや大、2-3位中、4位以下5列
   1〜3位の順位数字を大きく表示
   ========================================================= */

.ranking-page {
  margin-bottom: 56px;
}

/* パンくず */
.ranking-page .pankuzu {
  padding: 16px 0 10px;
  font-size: var(--fs-m);
  color: #6b5a3a;
}

.ranking-page .pankuzu a {
  color: #4a6b1e;
  text-decoration: none;
}

.ranking-page .pankuzu a:hover {
  text-decoration: underline;
}

/* =========================================================
   ページタイトル
   ========================================================= */

.ranking-page .title-block {
  margin: 20px 0 32px;
  padding: 26px 28px 24px;
  background:
    linear-gradient(90deg, rgba(127, 63, 0, 0.10), rgba(255, 255, 255, 0) 55%),
    #fbf7ef;
  border-top: 4px solid #5f3b18;
  border-bottom: 1px solid #cdbb99;
  border-left: 10px solid #8a5a22;
  background-image: none !important;
  border-radius: 0 !important;
}

.ranking-page .title-copy {
  margin: 0 0 9px;
  padding: 0 0 8px;
  color: #7f3f00;
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.4;
  border-bottom: 1px solid #d8c7a3;
}

.ranking-page .title-jizake {
  margin: 0;
  color: #2f281f;
  font-size: var(--fs-4xl);
  font-weight: 700;
  line-height: 1.25;
}

/* 見出し */
.ranking-page .h2-gray-midasi {
  display: block;
  margin: 0 0 14px;
  padding: 0 0 8px;
  color: #3a2d20;
  font-size: var(--fs-3xl);
  line-height: 1.35;
  border-bottom: 3px solid #7f3f00;
  font-family: "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

/* リード文 */
.ranking-lead {
  margin: 0 0 26px;
  padding: 13px 16px;
  color: #4f4638;
  line-height: 1.8;
  background: #fffdf7;
  border: 1px solid #eadfca;
  border-left: 5px solid #b9903c;
}

/* =========================================================
   ランキング本体
   既存 .ranking 横スクロール指定を解除
   PCは10分割グリッド
   - 1位: 10幅
   - 2位/3位: 各5幅
   - 4位以下: 各2幅 = 5列
   ========================================================= */

.sake-ranking.ranking {
  counter-reset: kgw-ranking;

  display: grid !important;
  grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
  gap: 16px 14px !important;

  overflow: visible !important;
  scroll-snap-type: none !important;
  -webkit-overflow-scrolling: auto !important;

  margin: 0 0 50px !important;
  padding: 0 !important;
  padding-left: 0 !important;

  list-style: none !important;
  box-sizing: border-box;
}

div#main-full ol.sake-ranking {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* =========================================================
   基本カード
   ========================================================= */

.sake-ranking.ranking .ranking-item {
  counter-increment: kgw-ranking;
  position: relative;

  width: auto !important;
  flex: initial !important;
  scroll-snap-align: none !important;

  margin: 0 !important;
  padding: 0 !important;

  background: #ffffff !important;
  border: 1px solid #d8c7a3 !important;
  border-top: 5px solid #7a643b !important;
  border-radius: 0 !important;
  box-shadow: 0 2px 0 rgba(95, 75, 42, 0.10);

  box-sizing: border-box;

  transition:
    transform 0.14s ease,
    border-color 0.14s ease,
    box-shadow 0.14s ease,
    background-color 0.14s ease;
}

.sake-ranking.ranking .ranking-item:hover {
  transform: translateY(-2px);
  border-color: #a6843d !important;
  box-shadow: 0 6px 16px rgba(70, 45, 15, 0.14);
  background: #fffdf7 !important;
}

.sake-ranking.ranking .ranking-item a {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.sake-ranking.ranking .ranking-item a:hover {
  text-decoration: none;
}

/* カード中身 */
.sake-ranking.ranking .ranking-item-block {
  position: relative;

  display: flex !important;
  flex-direction: column;
  align-items: stretch;

  min-height: 100%;
  padding: 0 10px 12px !important;

  box-sizing: border-box;
}

/* 順位分の上余白 */
.sake-ranking.ranking .ranking-item-block::before {
  content: "";
  display: block;
  height: 31px;
}

/* 商品画像 */
.sake-ranking.ranking .ranking-item img {
  display: block;

  width: 100% !important;
  max-width: 128px !important;
  height: 128px !important;

  object-fit: contain;

  margin: 0 auto 10px !important;
  padding: 7px !important;

  background: #fff !important;
  border: 1px solid #e7dcc7 !important;
  border-radius: 0 !important;

  box-sizing: border-box;
}

/* テキスト領域 */
.sake-ranking.ranking .ranking-item-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* 商品名 */
.sake-ranking.ranking .ranking-item .text {
  height: auto !important;
  overflow: visible !important;

  margin: 0 0 5px !important;
  padding: 0 !important;

  color: #2d2419 !important;
  font-size: var(--fs-m) !important;
  font-weight: 700;
  line-height: 1.42 !important;
  text-align: left;
}

/* 一行説明文 */
.sake-ranking.ranking .ranking-copy {
  margin: 0 0 8px !important;
  padding: 0;

  color: #5f564a !important;
  font-size: var(--fs-s) !important;
  font-weight: 400;
  line-height: 1.45 !important;
  text-align: left;

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

/* titlecopy内のstrongを抑える */
.sake-ranking.ranking .ranking-copy strong,
.sake-ranking.ranking .ranking-copy b {
  font-weight: 400 !important;
  color: #5f564a !important;
}

/* 価格 */
.sake-ranking.ranking .ranking-item .price {
  display: block !important;
  margin: auto 0 0 !important;
  padding-top: 7px;

  color: #b80000 !important;
  font-size: var(--fs-m) !important;
  font-weight: 800 !important;
  line-height: 1.35;
  text-align: left;

  border-top: 1px solid #eee2cd;
}

/* =========================================================
   順位表示
   4位以下は控えめ、1〜3位だけ大きくする
   ========================================================= */

.sake-ranking.ranking .ranking-item .order {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;

  display: flex;
  align-items: center;
  justify-content: center;

  min-width: 58px !important;
  height: 31px !important;
  padding: 0 9px !important;

  color: #ffffff;
  background: #5f4b2a;
  border: none;
  border-radius: 0 !important;
  box-shadow: none;

  font-weight: 800;
  font-size: var(--fs-s) !important;
  line-height: 1;
  white-space: nowrap;

  transform: none !important;
}

/* 既存 .ranking の王冠・counter指定を打ち消す */
.sake-ranking.ranking .ranking-item .order::before,
.sake-ranking.ranking .ranking-item:nth-of-type(1) .order::before,
.sake-ranking.ranking .ranking-item:nth-of-type(2) .order::before,
.sake-ranking.ranking .ranking-item:nth-of-type(3) .order::before {
  counter-increment: none !important;
  content: counter(kgw-ranking) !important;
  font-size: 1.28em !important;
  line-height: 1;
}

.sake-ranking.ranking .ranking-item .order::after {
  content: "位";
  margin-left: 3px;
  font-size: 0.78em;
  font-weight: 800;
}

/* =========================================================
   1位：大きいが主張しすぎないサイズ
   ========================================================= */

.sake-ranking.ranking .ranking-item:nth-child(1) {
  grid-column: 1 / -1;

  background:
    linear-gradient(90deg, rgba(184, 137, 24, 0.12), rgba(255, 255, 255, 0) 52%),
    #fffaf0 !important;

  border: 1px solid #cdbb99 !important;
  border-top: 6px solid #b88918 !important;
  box-shadow: 0 4px 14px rgba(110, 75, 20, 0.13);
}

.sake-ranking.ranking .ranking-item:nth-child(1):hover {
  background:
    linear-gradient(90deg, rgba(184, 137, 24, 0.16), rgba(255, 255, 255, 0) 52%),
    #fff7e5 !important;
}

/* 1位は横長 */
.sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block {
  display: grid !important;
  grid-template-columns: 240px 1fr !important;
  gap: 28px !important;
  align-items: center;

  min-height: 270px;
  padding: 58px 30px 28px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block::before {
  display: none;
}

/* 1位画像 */
.sake-ranking.ranking .ranking-item:nth-child(1) img {
  width: 220px !important;
  max-width: 220px !important;
  height: 220px !important;

  margin: 0 !important;
  padding: 12px !important;

  background: #fff !important;
  border: 1px solid #d2bd8a !important;
}

/* 1位順位：数字を大きく */
.sake-ranking.ranking .ranking-item:nth-child(1) .order {
  min-width: 128px !important;
  height: 60px !important;

  background: #b88918 !important;
  font-size: var(--fs-2xl) !important;
}

.sake-ranking.ranking .ranking-item:nth-child(1) .order::before {
  font-size: 1.45em !important;
  line-height: 1;
}

.sake-ranking.ranking .ranking-item:nth-child(1) .order::after {
  font-size: 0.78em !important;
}

/* 1位商品名 */
.sake-ranking.ranking .ranking-item:nth-child(1) .text {
  font-size: var(--fs-2xl) !important;
  line-height: 1.42 !important;
  margin-bottom: 12px !important;
}

/* 1位説明文 */
.sake-ranking.ranking .ranking-item:nth-child(1) .ranking-copy {
  font-size: var(--fs-m) !important;
  line-height: 1.7 !important;
  margin-bottom: 16px !important;

  display: block;
  overflow: visible;
}

/* 1位価格 */
.sake-ranking.ranking .ranking-item:nth-child(1) .price {
  font-size: var(--fs-xl) !important;
  padding-top: 11px;
}

/* =========================================================
   2位・3位：中くらいで目立たせる
   ========================================================= */

.sake-ranking.ranking .ranking-item:nth-child(2),
.sake-ranking.ranking .ranking-item:nth-child(3) {
  grid-column: span 5;

  background:
    linear-gradient(180deg, #fffaf2 0%, #ffffff 48%, #fbf7ef 100%) !important;
}

/* 2位・3位は横長 */
.sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block,
.sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block {
  display: grid !important;
  grid-template-columns: 170px 1fr !important;
  gap: 18px !important;
  align-items: center;

  min-height: 210px;
  padding: 54px 20px 20px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block::before,
.sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block::before {
  display: none;
}

.sake-ranking.ranking .ranking-item:nth-child(2) img,
.sake-ranking.ranking .ranking-item:nth-child(3) img {
  width: 155px !important;
  max-width: 155px !important;
  height: 155px !important;

  margin: 0 !important;
  padding: 9px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .text,
.sake-ranking.ranking .ranking-item:nth-child(3) .text {
  font-size: var(--fs-xl) !important;
  line-height: 1.45 !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .ranking-copy,
.sake-ranking.ranking .ranking-item:nth-child(3) .ranking-copy {
  font-size: var(--fs-m) !important;
  line-height: 1.6 !important;

  display: block;
  overflow: visible;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .price,
.sake-ranking.ranking .ranking-item:nth-child(3) .price {
  font-size: var(--fs-xl) !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) {
  border-top-color: #737b82 !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .order {
  background: #737b82;
}

.sake-ranking.ranking .ranking-item:nth-child(3) {
  border-top-color: #9a5a2f !important;
}

.sake-ranking.ranking .ranking-item:nth-child(3) .order {
  background: #9a5a2f;
}

/* 2位・3位順位：数字を大きく */
.sake-ranking.ranking .ranking-item:nth-child(2) .order,
.sake-ranking.ranking .ranking-item:nth-child(3) .order {
  min-width: 112px !important;
  height: 54px !important;
  font-size: var(--fs-xl) !important;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .order::before,
.sake-ranking.ranking .ranking-item:nth-child(3) .order::before {
  font-size: 1.42em !important;
  line-height: 1;
}

.sake-ranking.ranking .ranking-item:nth-child(2) .order::after,
.sake-ranking.ranking .ranking-item:nth-child(3) .order::after {
  font-size: 0.78em !important;
}

/* =========================================================
   4位以下：一覧性重視で小さめ
   ========================================================= */

.sake-ranking.ranking .ranking-item:nth-child(n+4) {
  grid-column: span 2;
  border-top-color: #5f4b2a !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-item-block {
  padding: 0 10px 12px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-item-block::before {
  height: 31px;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) img {
  max-width: 128px !important;
  height: 128px !important;
  margin-bottom: 10px !important;
  padding: 7px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .text {
  font-size: var(--fs-m) !important;
  line-height: 1.42 !important;
  margin-bottom: 5px !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-copy {
  font-size: var(--fs-s) !important;
  line-height: 1.45 !important;
  margin-bottom: 8px !important;

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

.sake-ranking.ranking .ranking-item:nth-child(n+4) .price {
  font-size: var(--fs-m) !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .order {
  min-width: 58px !important;
  height: 31px !important;
  font-size: var(--fs-s) !important;
}

.sake-ranking.ranking .ranking-item:nth-child(n+4) .order::before {
  font-size: 1.28em !important;
}

/* =========================================================
   タブレット
   ========================================================= */

@media screen and (max-width: 900px) {
  .sake-ranking.ranking {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px 14px !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(1),
  .sake-ranking.ranking .ranking-item:nth-child(2),
  .sake-ranking.ranking .ranking-item:nth-child(3) {
    grid-column: 1 / -1;
  }

  .sake-ranking.ranking .ranking-item:nth-child(n+4) {
    grid-column: auto;
  }

  .sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block {
    grid-template-columns: 200px 1fr !important;
    gap: 22px !important;
    min-height: 240px;
    padding: 56px 22px 26px !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(1) img {
    width: 185px !important;
    max-width: 185px !important;
    height: 185px !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(1) .text {
    font-size: var(--fs-xl) !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(1) .order {
    min-width: 106px !important;
    height: 50px !important;
    font-size: var(--fs-xl) !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block {
    grid-template-columns: 170px 1fr !important;
    min-height: 210px;
    padding: 52px 22px 22px !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(2) img,
  .sake-ranking.ranking .ranking-item:nth-child(3) img {
    width: 155px !important;
    max-width: 155px !important;
    height: 155px !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(2) .order,
  .sake-ranking.ranking .ranking-item:nth-child(3) .order {
    min-width: 100px !important;
    height: 46px !important;
    font-size: var(--fs-l) !important;
  }

  .sake-ranking.ranking .ranking-item:nth-child(n+4) img {
    max-width: 145px !important;
    height: 145px !important;
  }
}

/* =========================================================
   スマホ
   ========================================================= */

@media screen and (max-width: 640px) {
  .ranking-page {
    margin-bottom: 38px;
  }

  .ranking-page .pankuzu {
    padding: 10px 0 6px;
    font-size: var(--fs-s);
  }

  .ranking-page .title-block {
    margin: 14px 0 22px;
    padding: 18px 14px 16px;
    border-left-width: 7px;
  }

  .ranking-page .title-copy {
    font-size: var(--fs-l);
  }

  .ranking-page .title-jizake {
    font-size: var(--fs-3xl);
  }

  .ranking-page .h2-gray-midasi {
    margin: 0 0 12px;
    font-size: var(--fs-2xl);
  }

  .ranking-lead {
    margin: 0 0 18px;
    padding: 11px 12px;
    font-size: var(--fs-s);
  }

  .sake-ranking.ranking {
    display: block !important;
    margin-bottom: 34px !important;
  }

  .sake-ranking.ranking .ranking-item,
  .sake-ranking.ranking .ranking-item:nth-child(1),
  .sake-ranking.ranking .ranking-item:nth-child(2),
  .sake-ranking.ranking .ranking-item:nth-child(3),
  .sake-ranking.ranking .ranking-item:nth-child(n+4) {
    margin-bottom: 14px !important;
    border-top-width: 5px !important;
    grid-column: auto;
  }

  /* スマホは全体を画像左・説明右の売場リスト型 */
  .sake-ranking.ranking .ranking-item .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-item-block {
    display: grid !important;
    grid-template-columns: 122px 1fr !important;
    gap: 12px !important;
    align-items: center;

    min-height: 158px !important;
    padding: 47px 12px 14px !important;
  }

  .sake-ranking.ranking .ranking-item-block::before,
  .sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block::before,
  .sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block::before,
  .sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block::before,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-item-block::before {
    display: none;
  }

  .sake-ranking.ranking .ranking-item img,
  .sake-ranking.ranking .ranking-item:nth-child(1) img,
  .sake-ranking.ranking .ranking-item:nth-child(2) img,
  .sake-ranking.ranking .ranking-item:nth-child(3) img,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) img {
    width: 114px !important;
    max-width: 114px !important;
    height: 114px !important;

    margin: 0 !important;
    padding: 6px !important;
  }

  .sake-ranking.ranking .ranking-item .text,
  .sake-ranking.ranking .ranking-item:nth-child(1) .text,
  .sake-ranking.ranking .ranking-item:nth-child(2) .text,
  .sake-ranking.ranking .ranking-item:nth-child(3) .text,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .text {
    font-size: var(--fs-l) !important;
    line-height: 1.42 !important;
    margin-bottom: 6px !important;
  }

  .sake-ranking.ranking .ranking-copy,
  .sake-ranking.ranking .ranking-item:nth-child(1) .ranking-copy,
  .sake-ranking.ranking .ranking-item:nth-child(2) .ranking-copy,
  .sake-ranking.ranking .ranking-item:nth-child(3) .ranking-copy,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-copy {
    font-size: var(--fs-s) !important;
    line-height: 1.45 !important;
    margin-bottom: 8px !important;

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

  .sake-ranking.ranking .ranking-item .price,
  .sake-ranking.ranking .ranking-item:nth-child(1) .price,
  .sake-ranking.ranking .ranking-item:nth-child(2) .price,
  .sake-ranking.ranking .ranking-item:nth-child(3) .price,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .price {
    font-size: var(--fs-m) !important;
    padding-top: 7px;
  }

  .sake-ranking.ranking .ranking-item .order,
  .sake-ranking.ranking .ranking-item:nth-child(1) .order,
  .sake-ranking.ranking .ranking-item:nth-child(2) .order,
  .sake-ranking.ranking .ranking-item:nth-child(3) .order,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .order {
    min-width: 82px !important;
    height: 40px !important;
    padding: 0 11px !important;
    font-size: var(--fs-m) !important;
  }

  .sake-ranking.ranking .ranking-item .order::before,
  .sake-ranking.ranking .ranking-item:nth-child(1) .order::before,
  .sake-ranking.ranking .ranking-item:nth-child(2) .order::before,
  .sake-ranking.ranking .ranking-item:nth-child(3) .order::before,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .order::before {
    font-size: 1.35em !important;
  }
}

/* かなり狭いスマホ */
@media screen and (max-width: 390px) {
  .sake-ranking.ranking .ranking-item .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(1) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(2) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(3) .ranking-item-block,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .ranking-item-block {
    grid-template-columns: 106px 1fr !important;
    gap: 10px !important;
  }

  .sake-ranking.ranking .ranking-item img,
  .sake-ranking.ranking .ranking-item:nth-child(1) img,
  .sake-ranking.ranking .ranking-item:nth-child(2) img,
  .sake-ranking.ranking .ranking-item:nth-child(3) img,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) img {
    width: 98px !important;
    max-width: 98px !important;
    height: 98px !important;
  }

  .sake-ranking.ranking .ranking-item .text,
  .sake-ranking.ranking .ranking-item:nth-child(1) .text,
  .sake-ranking.ranking .ranking-item:nth-child(2) .text,
  .sake-ranking.ranking .ranking-item:nth-child(3) .text,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .text {
    font-size: var(--fs-m) !important;
  }

  .sake-ranking.ranking .ranking-item .order,
  .sake-ranking.ranking .ranking-item:nth-child(1) .order,
  .sake-ranking.ranking .ranking-item:nth-child(2) .order,
  .sake-ranking.ranking .ranking-item:nth-child(3) .order,
  .sake-ranking.ranking .ranking-item:nth-child(n+4) .order {
    min-width: 74px !important;
    height: 36px !important;
    font-size: var(--fs-s) !important;
  }
}