/* MyFans-first hero. The same 410px composition is used on desktop and mobile. */
.fv.fv-myfans {
  position: relative;
  height: 760px;
  padding: 0;
  overflow: hidden;
  background: #f7f2ef;
  color: #242027;
}

/* The portrait now fills the hero. Copy sits on top of the image instead of above it. */
.fv-myfans .fv-single-visual {
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: 0;
  overflow: hidden;
  background: #e9e2de;
}

.fv-myfans .fv-single-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 43% 47%;
  opacity: 0;
  transform: scale(1.012);
  transition: opacity .35s ease;
  filter: none;
}

.fv-myfans .fv-single-visual.is-ready img {
  opacity: 1;
}

/* Soft editorial wash: enough contrast for Japanese copy while keeping the portrait visible. */
.fv-myfans::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(180deg,
      rgba(255, 254, 253, .96) 0%,
      rgba(255, 254, 253, .88) 17%,
      rgba(255, 254, 253, .66) 34%,
      rgba(255, 254, 253, .20) 55%,
      rgba(255, 254, 253, .03) 72%,
      rgba(28, 21, 30, .18) 100%);
}

.fv-myfans::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 254, 253, .18) 0%, rgba(255, 254, 253, 0) 72%);
}

.fv-myfans .fv-logo {
  top: 16px;
  left: 18px;
  z-index: 5;
}

.fv-myfans .fv-logo .logo {
  color: #242027;
}

.fv-myfans .fv-logo .logo-symbol {
  box-shadow: none;
}

.fv-myfans .fv-copy {
  position: absolute;
  z-index: 4;
  top: 112px;
  left: 26px;
  right: 24px;
  bottom: auto;
  color: #242027;
}

.fv-myfans .fv-kicker {
  display: block;
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #a94ed0;
  font: 700 9px/1.3 'Manrope', sans-serif;
  letter-spacing: .18em;
}

.fv-myfans .fv-service-name {
  display: inline-block;
  margin: 0 0 15px;
  color: #a64bd0;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.5;
  letter-spacing: .01em;
}

.fv-myfans .fv-copy h1 {
  max-width: 350px;
  margin: 0 0 15px;
  color: #211d23;
  font-size: 40px;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.052em;
}

.fv-myfans .fv-copy p {
  max-width: 330px;
  margin: 0;
  color: rgba(48, 42, 50, .82);
  font-size: 11px;
  font-weight: 550;
  line-height: 1.9;
  text-wrap: pretty;
}

.fv-myfans .fv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  width: min(100%, 330px);
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid rgba(57, 47, 61, .22);
}

.fv-myfans .fv-tags span {
  padding: 0 11px;
  border: 0;
  border-right: 1px solid rgba(57, 47, 61, .22);
  border-radius: 0;
  background: transparent;
  color: rgba(62, 53, 65, .78);
  font: 650 9px/1.4 'Manrope', sans-serif;
  letter-spacing: .03em;
}

.fv-myfans .fv-tags span:first-child {
  padding-left: 0;
}

.fv-myfans .fv-tags span:last-child {
  border-right: 0;
}

.fv-myfans .fv-single-visual figcaption {
  display: none;
}

.fv-myfans .fv-scroll {
  z-index: 4;
  top: 570px;
  right: -9px;
  color: #9c909f;
}

@media (max-width: 767px) {
  .fv.fv-myfans {
    height: 760px;
  }
}

@media (max-width: 374px) {
  .fv-myfans .fv-copy {
    top: 108px;
    left: 22px;
    right: 20px;
  }

  .fv-myfans .fv-copy h1 {
    max-width: 305px;
    font-size: 35px;
  }

  .fv-myfans .fv-copy p {
    max-width: 305px;
    font-size: 10.5px;
  }

  .fv-myfans .fv-single-visual img {
    object-position: 43% 48%;
  }
}