@charset "utf-8";

.ranking_flex {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  gap: 20px;
  @media screen and (max-width: 767px) {
    flex-direction: column;
    gap: 10px;
    align-items: center;
  }
}
.ranking_flex--box {
  max-width: 284px;
  width: 100%;
  min-height: 124px;
  background: #F1EDDD;
  padding: 10px;
}
.ranking_flex--title {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: bold;
  background: #D0C68E;
  border-radius: 20px;
  min-height: 28px;
  padding: 0 20px;
  text-align: center;
}
.ranking_flex--detail {
  display: flex;
  justify-content: center;
  align-items: center;
  .before {
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.2;
  }
  .arrow {
    margin: 0 8px;
  }
  .after {
    position: relative;
    font-size: 1.8rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.2;
    top: -10px;
    min-height: 90px;
    .big_num {
      font-size: 6rem;
      font-weight: bold;
      color: #D60B0A;
      margin: 0 10px;
      position: relative;
      top: 5px;
    }
    .after_text {
      position: relative;
      z-index: 1;
    }
    &::before {
      content: "";
      background: url(../img/num_bg.webp) no-repeat center/cover;
      width: 81px;
      height: 81px;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50% , -50%);
      z-index: 0;
    }
  }
}
.theme_border {
  border: 1px solid var(--theme-color);
}

.flex_box_list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
  max-width: 873px;
  margin: 20px auto 0;
  @media screen and (max-width: 767px) {
    justify-content: center;
    gap: 16px;
  }
}
.flex_box {
  max-width: 271px;
  width: 100%;
  figure {
    margin: 0;
  }
  @media screen and (max-width: 767px) {
    width: min(270px, calc(50% - 8px));
  }
}
.flex_box--text {
  background: var(--theme-color);
  color: #FFF;
  font-weight: bold;
  letter-spacing: 3.2px;
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 5px 10% 5px 5%;
  span {
    position: relative;
    &::after {
      content: "";
      background: url(../img/arrow_gold.svg) no-repeat center/cover;
      width: 15px;
      height: 15px;
      position: absolute;
      top: 50%;
      right: -20px;
      transform: translateY(-50%) rotate(270deg);
      @media screen and (max-width: 767px) {
        right: -15px;
      }
    }
  }
  @media screen and (max-width: 767px) {
    font-size: 1.4rem;
    letter-spacing: 2px;
    justify-content: flex-start;
  }
}