a {
  text-decoration: none;
}
.u-sectionBg > * {
  position: relative;
  z-index: 1;
}
.u-sectionBg {
  position: relative;
}
.u-sectionBg::before {
  content: "";
  position: absolute;
  top: -70rem;
  left: 58%;
  z-index: -1;
  width: calc((2276 - 1920) *1rem + 100vw);
  aspect-ratio: 2276/2608 ;
  background: url("/drivers/blogarekore/images/main_bg_01.png") no-repeat center top / contain;
  transform: translateX(-50%);
}
.u-kv {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 725rem;
}
.u-kv__mask {
  width: 100%;
  height: auto;
}
.u-kv__bg {
  position: absolute;
  top: 64rem;
  left: -160rem;
  z-index: 1;
  width: 1058rem;
}
.u-kv__deco {
  position: absolute;
  z-index: 20;
}
.u-kv__cursive {
  top: 36rem;
  left: 434rem;
  width: 405rem;
  height: 82rem;
}
.u-kv__deco--lg {
  top: 614rem;
  right: 442rem;
  width: 149rem;
  height: 127rem;
}
.u-kv__deco--md {
  top: 348rem;
  left: -270rem;
  width: 59rem;
  height: 55rem;
}
.u-kv__deco--hg {
  top: 160rem;
  right: 440rem;
  width: 54rem;
}
/* --- blob スライダーエリア --- */
.u-kv__sliderWrap {
  position: relative;
  top: 38rem;
  z-index: 3;
  flex-shrink: 0;
  width: 1025rem;
  height: 628rem;
  margin-left: -160rem;
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));
  -webkit-filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));
}

/* SVG clip-path で blob形状 */
.u-kv__sliderWrap svg {
  position: absolute;
  width: 0;
  height: 0;
}

.u-kv__slider {
  position: relative;
  overflow: hidden;
  clip-path: url(#blobClip);
  width: 100%;
  height: 100%;
  border-radius: 0;
  -webkit-clip-path: url(#blobClip);
}

.u-kv__slide {
  position: absolute;
  opacity: 0;
  transition: opacity .8s ease;
  inset: 0;
}
.u-kv__slide.is-active {
  z-index: 10;
  opacity: 1;
}

.u-kv__slide a {
  cursor: pointer;
}
.u-kv__slide a,
.u-kv__slide picture,
.u-kv__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1 !important;
  -o-object-fit: cover;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-kv__slide picture {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .u-kv__slide img {
    width: 375rem;
    height: auto;
  }
}

.u-kv__txtBlock {
  position: absolute;
  bottom: 72rem;
  left: 160rem;
  z-index: 5;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4rem;
  opacity: 0;
  transition: opacity .8s ease;
  pointer-events: none;
}
.u-kv__txtBlock.is-active {
  opacity: 1;
  pointer-events: auto;
}
.u-kv__txtItem {
  padding: 6rem 16rem;
  border-radius: 4rem;
  background: #fff;
  font-family: var(--font-family-base);
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.5;
}
  /* --- ドットナビ --- */

.u-kv__dot {
  position: relative;
  width: 8rem;
  height: 8rem;
  margin: 6rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #006fe6;
  cursor: pointer;
}
/* SVGリングをdotに重ねる */
.u-kv__dotRing {
  position: absolute;
  top: 50%;
  left: 50%;
  overflow: visible;
  width: 24rem;
  height: 24rem;
  transform: translate(-50%, -50%) rotate(-90deg); /* 12時スタート */
  pointer-events: none;
}

.u-kv__dotRingCircle {
  fill: none;
  stroke: #006fe6;
  stroke-width: 1;
  stroke-dasharray: 56.5;   /* 2πr = 2×3.14159×9 ≒ 56.5 */
  stroke-dashoffset: 56.5;  /* 初期は非表示 */
  stroke-linecap: round;
}

/* アクティブなドットのリングだけアニメーション */
.u-kv__dot.is-active .u-kv__dotRingCircle {
  animation: dotRingProgress 4000ms linear forwards;
  -webkit-animation: dotRingProgress 4000ms linear forwards;
}

@-webkit-keyframes dotRingProgress {
  from {
    stroke-dashoffset: 56.5;
  }
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes dotRingProgress {
  from {
    stroke-dashoffset: 56.5;
  }
  to {
    stroke-dashoffset: 0;
  }
}
.u-kv__dots {
  position: absolute;
  bottom: -34rem;
  left: 35%;
  z-index: 6;
  display: flex;
  gap: 4rem;
  transform: translateX(-50%);
}


/* --- RANKINGパネル --- */
.u-kv__ranking {
  position: absolute;
  top: 54%;
  right: 0;
  z-index: 5;
  width: 380rem;
  padding: 23rem 24rem 23rem 30rem;
  border-radius: 8rem;
  background: #fff;
  transform: translateY(-50%);
}
.u-kv__rankingTtl {
  font-family: var(--font-family-en);
  font-size: 24rem;
  font-weight: 700;
}
.u-kv__rankingList {
  display: flex;
  flex-direction: column;
  gap: 14rem;
  margin-top: 24rem;
  counter-reset: ranking;
}
.u-kv__rankingItem {
  position: relative;
  z-index: 1;
  counter-increment: ranking;
}
.u-kv__rankingItem::before {
  content: counter(ranking);
  position: absolute;
  top: -6rem;
  left: -6rem;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 32rem;
  height: 32rem;
  border-radius: 50%;
  color: #fff;
  font-family: var(--font-family-en);
  font-size: 14rem;
  font-weight: 700;
}
.u-kv__rankingItem:nth-child(1)::before {
  background: #dbc27e;
}
.u-kv__rankingItem:nth-child(2)::before {
  background: #cfcfcf;
}
.u-kv__rankingItem:nth-child(3)::before {
  background: #e18f37;
}
.u-kv__rankingItem:nth-child(4)::before {
  background: #60a3e5;
}
.u-kv__rankingItem:nth-child(5)::before {
  background: #60a3e5;
}
.u-kv__rankingLink {
  display: flex;
  align-items: center;
  gap: 16rem;
}
.u-kv__rankingImg {
  overflow: hidden;
  flex-shrink: 0;
  width: 140rem;
  height: 78rem;
  border-radius: 4rem;
}
.u-kv__rankingTxt {
  display: -webkit-box;
  overflow: hidden;
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.u-kv__rankingBtn {
  display: none;
}
/* =====================
    SP (768px以下)
===================== */
@media (max-width: 768px) {
  .u-kv {
    flex-direction: column;
    justify-content: flex-start;
    min-height: 1021rem;
  }
  .u-kv__bg {
    position: absolute;
    top: 0;
    left: -20rem;
    z-index: 1;
    width: 375rem;
  }
  .u-kv__cursive {
    top: 23rem;
    left: 130rem;
    width: 208rem;
    height: 43rem;
  }
  .u-kv__deco--hg {
    top: 64rem;
    right: -13rem;
    width: 25rem;
    height: 23rem;
  }
  .u-kv__deco--md {
    top: 224rem;
    left: -6rem;
    width: 42rem;
    height: 40rem;
  }
  .u-kv__deco--lg {
    top: 530rem;
    right: 17rem;
    width: 65rem;
    height: 56rem;
  }
  .u-kv__txtBlock {
    position: absolute;
    bottom: 6rem;
    left: 100rem;
    gap: 2rem;
    width: 335rem;
  }
  .u-kv__txtItem {
    padding: 6rem 8rem;
    font-family: var(--font-family-base);
    font-size: 18rem;
  }
  .u-kv__sliderWrap {
    position: inherit;
    top: 0;
    z-index: 3;
    flex-shrink: 0;
    width: 536rem;
    height: 540rem;
    margin-top: 18rem;
    margin-left: 0;
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));
    -webkit-filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));
  }

  .u-kv__slider {
    clip-path: url(#blobClipSp);
    -webkit-clip-path: url(#blobClipSp);
  }
  .u-kv__dots {
    top: 605rem;
    bottom: 0;
    left: 50%;
    height: 20rem;
  }
  .u-kv__ranking {
    position: relative;
    z-index: 5;
    width: 100%;
    margin-top: 120rem;
    margin-bottom: 0;
    padding: 23rem 16rem 23rem 22rem;
    border-radius: 8rem;
    background: #fff;
    transform: none;
  }
  .u-kv__rankingList {
    gap: 22rem;
    margin-top: 24rem;
  }
  .u-kv__rankingImg {
    width: 120rem;
    height: 68rem;
    border-radius: 4rem;
  }
  .u-kv__rankingBtn {
    position: absolute;
    right: 50%;
    bottom: -28rem;
    z-index: 2;
    display: block;
    width: 214rem;
    padding: 9rem 10rem 12rem;
    border: none;
    border: 1rem solid #333;
    border-radius: 100rem;
    background: #fff;
    font-family: "Zen Kaku Gothic New";
    font-size: 15rem;
    font-weight: 700;
    line-height: 150%;
    letter-spacing: .04em;
    transform: translateX(50%);
    cursor: pointer;
  }
  .u-kv__rankingBtn span {
    position: absolute;
    margin-left: 20rem;
  }
  .u-kv__rankingItem {
    opacity: 1;
    transform: translateY(0);
  }
  .u-kv__rankingItem[style*="display: none"] {
    opacity: 0;
    transform: translateY(10px);
  }
  .u-kv__rankingItem:nth-child(n + 4) {
    display: none;
  }
  .u-kv__rankingItem.is-fade-in {
    animation: rankingFadeIn .4s ease forwards;
    -webkit-animation: rankingFadeIn .4s ease forwards;
  }

  @-webkit-keyframes rankingFadeIn {
    from {
      opacity: 0;
      transform: translateY(10rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes rankingFadeIn {
    from {
      opacity: 0;
      transform: translateY(10rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  [data-js-ranking] {
    position: relative;
  }

  [data-js-ranking]::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 120rem;
    background: linear-gradient(to bottom, transparent, #fff);
    transition: opacity .3s ease;
    pointer-events: none;
  }

  [data-js-ranking].is-open::after {
    opacity: 0;
  }
  .u-sectionBg::before {
    top: -70rem;
    left: 50%;
    width: 100vw;
    height: 2138rem;
    background: url("/drivers/blogarekore/images/sp_main_bg_01.png") no-repeat center top / cover;
  }
}

.u-articles {
  margin-top: 100rem;
}
@media screen and (max-width: 768px) {
  .u-articles {
    margin-top: 0;
  }
}
.u-rankingBg::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0%;
  z-index: 0;
  width: 60%;
  aspect-ratio: 1114 / 1723;
  background: url(/drivers/blogarekore/images/main_bg_02.png) no-repeat top/ contain;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .c-ranking::before {
    top: -428rem;
    left: -20rem;
    width: 100vw;
    height: 100%;
    background: url("/drivers/blogarekore/images/sp_main_bg_02.png") no-repeat center / cover;
  }
}

/* ==================================================
  各カテゴーリーページ　スタイル
================================================== */

.u-pageHdr {
  position: relative;
  padding: 60rem 0 80rem;
}
.u-pageHdr::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100vw;
  height: 1rem;
  background: #d8dfec;
  transform: translateX(-50%);
}
.u-pageHdr__category {
  display: flex;
  align-items: center;
  gap: 16rem;
  font-size: 20rem;
  font-weight: 500;
}
.u-pageHdr__category::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 10rem;
  height: 10rem;
  border-radius: 2rem;
}

.u-pageHdr__category.--color-green::before {
  background: #009905;
}
.u-pageHdr__category.--color-orange::before {
  background: #ff7b37;
}
.u-pageHdr__category.--color-blue-lt::before {
  background: #60a3e5;
}
.u-pageHdr__ttl {
  margin-top: 24rem;
  font-size: 32rem;
  font-weight: 700;
  line-height: 1.3;
}
.u-pageHdr__ttl.--en {
  font-family: var(--font-family-en);
  font-size: 36rem;
}
.u-pageHdr__txt {
  margin-top: 32rem;
  font-size: 16rem;
  font-weight: 400;
  line-height: 1.6;
}
.u-articles {
  padding: 80rem 0 120rem;
}
.u-pageNav {
  margin-top: 100rem;
}
@media screen and (max-width: 768px) {
  .u-articles {
    padding: 80rem 0 60rem;
  }
  .u-pageHdr__category {
    gap: 8rem;
    font-size: 16rem;
  }
  .u-pageHdr__category::before {
    width: 8rem;
    height: 8rem;
  }
  .u-pageHdr__ttl {
    font-size: 28rem;
  }
  .u-pageHdr__ttl.--en {
    font-size: 32rem;
  }
}