@charset "UTF-8";

.report .report_wrapper {
  display: grid;
  gap: 100px 85px;
  grid-template-columns: minmax(400px, 848px) minmax(200px, 287px);
}

.ranking ol {
  counter-reset: rank;
  font-size: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ranking ol > li {
  counter-increment: rank;
}

.ranking ol > li > a {
  background-color: #F0F0F0;
  display: block;
  margin-left: 21px;
  padding: 15px 15px 15px 35px;
  position: relative;
  transition: all 0.3s;
}

.ranking ol > li > a time {
  color: #666;
  display: block;
  font-size: 13px;
  margin-bottom: 2px;
  transition: color 300ms ease;
}

.ranking ol > li > a::before {
  background-color: #666;
  content: "1";
  color: #fff;
  display: block;
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-weight: 700;
  height: 42px;
  line-height: 42px;
  text-align: center;
  width: 42px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(-50%, -50%);
}

.ranking ol > li > a p span {
  box-decoration-break: slice;
  /* Firefox用に指定 */
  -webkit-box-decoration-break: slice;
  /* Firefox以外のブラウザ用に指定 */
  background-image: linear-gradient(#285ae1, #285ae1);
  /* 単色 */
  background-size: 0 1px;
  /* 幅(0=見えない状態) | 高さ(=線の太さ) */
  background-position: bottom right;
  /* 右下に配置 */
  background-repeat: no-repeat;
  padding-bottom: 1px;
  transition: background-size 300ms ease-out, color 300ms ease;
}

.ranking ol > li:nth-child(1) > a::before {
  content: "1";
  background-color: #08287f;
}

.ranking ol > li:nth-child(2) > a::before {
  content: "2";
  background-color: #285ae1;
}

.ranking ol > li:nth-child(3) > a::before {
  content: "3";
  background-color: #3a64cc;
}

.ranking ol > li:nth-child(4) > a::before {
  content: "4";
}

.ranking ol > li:nth-child(5) > a::before {
  content: "5";
}

.banner {
  text-align: center;
}

.banner a {
  position: relative;
}

.banner a img {
  transition: all 0.3s;
}

.banner a .arrow-l {
  border: none;
  color: #73C22E;
  font-size: 12px;
  height: 24px;
  width: 24px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.banner a .arrow-l::before {
  background-image: conic-gradient(#73C22E var(--circle-clip1), transparent var(--circle-clip1));
}

@media screen and (max-width: 767.8px) {
  .report .report_wrapper {
    grid-template-columns: auto;
  }

  .banner a .arrow-l {
    font-size: 3.2vw;
    height: 6.4vw;
    width: 6.4vw;
    right: 5.33333vw;
  }
}

@media (hover: hover) {
  .ranking ol > li > a:hover {
    background-color: #e2e9f4;
  }

  .ranking ol > li > a:hover time {
    color: #285ae1;
  }

  .ranking ol > li > a:hover p span {
    background-size: 100% 1px;
    /* 幅(100%=文字の長さ) | 高さ(=線の太さ) */
    background-position: bottom left;
    /* 左下に配置 */
    color: #285ae1;
  }

  .banner a img:hover {
    opacity: 0.7;
  }

  .banner a:hover .arrow-l {
    color: #fff;
  }

  .banner a:hover .arrow-l::after {
    background-color: #9DD46C;
  }

  .banner a:hover .arrow-l::before {
    background-image: conic-gradient(#FFF var(--circle-clip2), transparent var(--circle-clip2));
  }
}

@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) {
  .ranking ol > li > a:hover {
    background-color: #e2e9f4;
  }

  .ranking ol > li > a:hover time {
    color: #285ae1;
  }

  .ranking ol > li > a:hover p span {
    background-size: 100% 1px;
    /* 幅(100%=文字の長さ) | 高さ(=線の太さ) */
    background-position: bottom left;
    /* 左下に配置 */
    color: #285ae1;
  }

  .banner a img:hover {
    opacity: 0.7;
  }

  .banner a:hover .arrow-l {
    color: #fff;
  }

  .banner a:hover .arrow-l::after {
    background-color: #9DD46C;
  }

  .banner a:hover .arrow-l::before {
    background-image: conic-gradient(#FFF var(--circle-clip2), transparent var(--circle-clip2));
  }
}