@keyframes fv-indicator-animation-01 {
  0%      { transform: scaleX(1); opacity: 1; }
  33.33%  { transform: scaleX(1); opacity: 1; }
  36.67%  { transform: scaleX(0.5); opacity: 0.4; }
  83.33%  { transform: scaleX(0.5); opacity: 0.4; }
  90%     { transform: scaleX(1); opacity: 1; }
  100%    { transform: scaleX(1); opacity: 1; }
}
@keyframes fv-indicator-animation-02 {
  0%      { transform: scaleX(0.5); opacity: 0.4; }
  23.33%  { transform: scaleX(0.5); opacity: 0.4; }
  33.33%  { transform: scaleX(1); opacity: 1; }
  66.67%  { transform: scaleX(1); opacity: 1; }
  70%     { transform: scaleX(0.5); opacity: 0.4; }
  100%    { transform: scaleX(0.5); opacity: 0.4; }
}
@keyframes fv-indicator-animation-03 {
  0%      { transform: scaleX(0.5); opacity: 0.4; }
  56.67%  { transform: scaleX(0.5); opacity: 0.4; }
  66.67%  { transform: scaleX(1); opacity: 1; }
  90%     { transform: scaleX(1); opacity: 1; }
  100%    { transform: scaleX(0.5); opacity: 0.4; }
}

@keyframes slide-animation-01 {
  0%      { opacity: 1; }
  33.33%  { opacity: 1; }
  36.67%  { opacity: 0; }
  83.33%  { opacity: 0; }
  90%     { opacity: 1; }
  100%    { opacity: 1; }
}
@keyframes slide-animation-02 {
  0%      { opacity: 0; }
  23.33%  { opacity: 0; }
  33.33%  { opacity: 1; }
  66.67%  { opacity: 1; }
  70%     { opacity: 0; }
  100%    { opacity: 0; }
}
@keyframes slide-animation-03 {
  0%      { opacity: 0; }
  56.67%  { opacity: 0; }
  66.67%  { opacity: 1; }
  90%     { opacity: 1; }
  100%    { opacity: 0; }
}

.fv-custom .picture {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 560px;
  opacity: 0;
  @media (max-width: 767px) {
    height: 390px;
  }
}

.fv-custom .picture.picture01 {
  opacity: 1;
  animation: slide-animation-01 15s infinite ease-in-out;
}

.fv-custom .picture.picture02 {
  animation: slide-animation-02 15s infinite ease-in-out;
}

.fv-custom .picture.picture03 {
  animation: slide-animation-03 15s infinite ease-in-out;
}

.fv-custom {
    display: flex;
    flex-direction: column;
    position: relative;
    align-items: center;
    justify-content: center;
    /* 560px slide + 50px background below (from Figma div#topWrap padding-bottom) */
    height: 610px;
    overflow: hidden;
    background-color: #F8F0DA;
    background-image: url(../image/headerbg-bg.png);
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: cover;
    @media (max-width: 1244px) {
      padding-inline: 0;
    }
    @media (max-width: 767px) {
      padding-inline: 0;
      /* 390px slide + 30px background below (SP Figma padding-bottom) */
      height: 420px;
      background-image: url(../image/sp-first-view-bg.png);
    }
}
.fv-custom::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 560px;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
    pointer-events: none;
    z-index: 15;
    @media (max-width: 767px) {
      height: 390px;
    }
}
.fv-image {
    width: 100%;
    height: 560px;
    max-width: 1440px;
    @media (max-width: 767px) {
      height: 390px;
      max-width: 100%;
    }
}
.fv-custom .picture .img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fv-text-wrapper {
    position: absolute;
    z-index: 20;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 560px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 9px;
    width: max-content;
    max-width: 100%;
    @media (max-width: 767px) {
      height: 390px;
      gap: 8.8px;
    }
}
.fv-main-custom {
  color: #FFFFFF;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 49.8px;
  font-style: normal;
  font-weight: 700;
  line-height: 60px;
  letter-spacing: 4.02%;
  text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
  padding: 0 50px;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: auto;
  @media (max-width: 767px) {
    font-size: 25.9px;
    line-height: 31.2px;
    letter-spacing: normal;
    padding: 0 30px;
  }
}
.fv-indicators {
  position: absolute;
  z-index: 16;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  align-items: center;
  @media (max-width: 767px) {
    bottom: 40px;
  }
}
.fv-indicator {
  display: block;
  width: 24px;
  height: 4px;
  border-radius: 2px;
  background-color: #ffffff;
  transform-origin: center;
  transform: scaleX(0.5);
  opacity: 0.4;
}
.fv-indicator--01 {
  transform: scaleX(1);
  opacity: 1;
  animation: fv-indicator-animation-01 15s infinite ease-in-out;
}
.fv-indicator--02 {
  animation: fv-indicator-animation-02 15s infinite ease-in-out;
}
.fv-indicator--03 {
  animation: fv-indicator-animation-03 15s infinite ease-in-out;
}

.fv-text-wrapper-sub-container {
  color: #FFFFFF;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 17.9px;
  font-style: normal;
  font-weight: 700;
  line-height: 25.2px;
  letter-spacing: 5.59%;
  text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
  padding: 0 50px;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: auto;
  @media (max-width: 767px) {
    font-size: 13.9px;
    line-height: 19.6px;
    letter-spacing: 7.19%;
    padding: 0 30px;
  }
}
