@charset "UTF-8";

#container {
  padding-top: 12.5rem;

  @media screen and (max-width: 767px) {
    padding-top: 9rem;
  }
}

/* ------------------------------------------- */
/* first view
/* ------------------------------------------- */
.fv {
  position: relative;
  /* height: 100svh; */
  min-height: 106rem;
  overflow: hidden;
  background: #fff;
  container-type: inline-size;

  @media screen and (max-width: 767px) {
    min-height: 0;
    height: 100vh;
  }
}

.fv-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  pointer-events: none;
}

@media screen and (min-width: 768px) {
  .fv-stage {
    inset: auto;
    left: 50%;
    top: 50%;
    width: 192rem;
    height: 108rem;
    translate: -50% -50%;
    scale: min(100vw / 1920px, 100svh / 1080px);
  }
}


.fv-motion {
  opacity: 0;
  translate: 0 1.6rem;
  transition:
    opacity 0.9s ease,
    translate 0.9s ease;
}

.fv.is-in .fv-motion {
  opacity: 1;
  translate: 0 0;
}

.fv-blob > .fv-motion {
  transition-delay: 0s;
}

.fv-copy .fv-motion {
  transition-delay: 0.18s;
}

.fv-person-1 .fv-motion {
  transition-delay: 0.12s;
}

.fv-person-2 .fv-motion {
  transition-delay: 0.2s;
}

.fv-person-3 .fv-motion {
  transition-delay: 0.28s;
}

.fv-snack-1 .fv-motion {
  transition-delay: 0.18s;
}

.fv-snack-2 .fv-motion {
  transition-delay: 0.26s;
}

.fv-snack-3 .fv-motion {
  transition-delay: 0.22s;
}

.fv-snack-4 .fv-motion {
  transition-delay: 0.3s;
}

.fv-snack-5 .fv-motion {
  transition-delay: 0.24s;
}

.fv-snack-6 .fv-motion {
  transition-delay: 0.16s;
}

.fv-deco .fv-motion {
  transition-delay: 0.35s;
}

.fv.is-in .fv-person .fv-motion,
.fv.is-in .fv-deco .fv-motion {
  animation: fv-float 5.8s ease-in-out 1.1s infinite;
}

.fv.is-in .fv-person-2 .fv-motion {
  animation-duration: 6.4s;
  animation-delay: 1.4s;
}

.fv.is-in .fv-person-3 .fv-motion {
  animation-duration: 5.2s;
  animation-delay: 1.7s;
}

.fv.is-in .fv-snack .fv-motion {
  animation: fv-swing 4.8s ease-in-out 1.1s infinite;
}

.fv.is-in .fv-snack-2 .fv-motion {
  animation-duration: 5.4s;
  animation-delay: 1.3s;
}

.fv.is-in .fv-snack-3 .fv-motion {
  animation-duration: 5s;
  animation-delay: 1.5s;
}

.fv.is-in .fv-snack-4 .fv-motion {
  animation-duration: 4.4s;
  animation-delay: 1.2s;
}

.fv.is-in .fv-snack-5 .fv-motion {
  animation-duration: 5.2s;
  animation-delay: 1.4s;
}

.fv.is-in .fv-snack-6 .fv-motion {
  animation-duration: 4.6s;
  animation-delay: 1.15s;
}

.fv.is-in .fv-deco-1 .fv-motion,
.fv.is-in .fv-deco-3 .fv-motion,
.fv.is-in .fv-deco-5 .fv-motion {
  animation: fv-pulse 4.6s ease-in-out 1.2s infinite;
}

.fv.is-in .fv-deco-2 .fv-motion,
.fv.is-in .fv-deco-4 .fv-motion,
.fv.is-in .fv-deco-6 .fv-motion {
  animation: fv-float 6.2s ease-in-out 1.3s infinite;
}

@keyframes fv-float {
  0%,
  100% {
    translate: 0 0;
  }
  50% {
    translate: 0 -0.8rem;
  }
}

@keyframes fv-swing {
  0%,
  100% {
    rotate: var(--rot, 0deg);
  }
  50% {
    rotate: calc(var(--rot, 0deg) + 5deg);
  }
}

@keyframes fv-pulse {
  0%,
  100% {
    scale: 1;
  }
  50% {
    scale: 1.08;
  }
}

/* ------------------------------------------- */
/* blob + copy
/* ------------------------------------------- */
.fv-blob {
  position: absolute;
  left: 59%;
  top: 44%;
  z-index: 2;
  width: 75%;
  max-width: 100%;
  translate: -50% -50%;

  > .fv-motion,
  & picture {
    display: block;
    width: 100%;
  }

  .fv-blob-img {
    display: block;
    width: 70%;
    max-width: 100%;
    height: auto;
  }

  @media screen and (max-width: 767px) {
    left: 50%;
    top: 48%;
    width: 100%;

    & picture,
    .fv-blob-img {
      width: 100%;
    }
  }
}

.fv-copy {
  position: absolute;
  left: 37%;
  top: 48%;
  z-index: 3;
  /* width: 72%; */
  text-align: center;
  translate: -50% -50%;

  @media screen and (max-width: 767px) {
    left: 50%;
    width: 78%;
  }
}

.fv-catch {
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 700;
  font-size: 6.3rem;
  line-height: 8rem;
  text-align: center;
  letter-spacing: 0.13em;
  color: #000000;

  & span {
    color: #00a3e0;
  }

  @media screen and (max-width: 767px) {
    font-size: 3.37075rem;
    line-height: 4.4rem;
  }
}

.fv-wave {
  display: block;
  /* width: 28rem; */
  /* max-width: 70%; */
  height: auto;
  margin: 2.2rem auto 2.8rem;
  margin-left: -1rem;

  @media screen and (max-width: 767px) {
    /* width: 16rem; */
    margin: 0.8rem auto 1.6rem;
  }
}

.fv-lead {
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 700;
  font-size: 3.5rem;
  line-height: 5.5rem;
  text-align: center;
  letter-spacing: 0.09em;
  color: #282828;

  @media screen and (max-width: 767px) {
    font-size: 1.75007rem;
    line-height: 3.2rem;
  }
}

/* ------------------------------------------- */
/* people
/* ------------------------------------------- */
.fv-person {
  position: absolute;
  z-index: 4;

  & img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.fv-person-1 {
  left: -5%;
  top: 11%;
  width: 42%;
  max-width: none;
  z-index: 5;

  @media screen and (max-width: 767px) {
    left: -8%;
    top: -3%;
    width: 65vw;
  }
}

.fv-person-2 {
  right: 5%;
  top: -1%;
  width: 23%;
  max-width: 100%;
  z-index: 5;

  @media screen and (max-width: 767px) {
    right: 2%;
    top: 7%;
    width: 41vw;
  }
}

.fv-person-3 {
  left: 55%;
  bottom: 10%;
  width: 35%;
  /* max-width: 34rem; */
  z-index: 5;

  @media screen and (max-width: 767px) {
    left: 8%;
    bottom: 7%;
    width: 75vw;
  }
}

/* ------------------------------------------- */
/* snacks
/* ------------------------------------------- */
.fv-snack {
  position: absolute;
  z-index: 6;

  & img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.fv-snack-1 {
  left: 23%;
  top: 2%;
  /* max-width: 16rem; */
  --rot: -18deg;
  width: 12%;

  @media screen and (max-width: 767px) {
    /* left: 4%;
    top: 8%;
    width: 20vw; */
    display: none;
  }
}

.fv-snack-2 {
  right: 24%;
  top: 10%;
  width: 12%;
  /* max-width: 14rem; */
  --rot: 14deg;

  @media screen and (max-width: 767px) {
    left: 50%;
    top: 3.5%;
    width: 22vw;
  }
}

.fv-snack-3 {
  left: 22%;
  bottom: 16%;
  width: 10%;
  /* max-width: 14rem; */
  --rot: 12deg;

  @media screen and (max-width: 767px) {
    left: 20%;
    top: 21%;
    width: 21.5vw;
    bottom: 0;
  }
}

.fv-snack-4 {
  right: 3%;
  bottom: 17%;
  width: 13%;
  /* max-width: 13rem; */
  --rot: -36deg;

  @media screen and (max-width: 767px) {
    right: 2%;
    bottom: 18%;
    width: 25vw;
  }
}

.fv-snack-5 {
  left: 48%;
  bottom: 11%;
  width: 8%;
  --rot: -10deg;

  @media screen and (max-width: 767px) {
    left: 0;
    bottom: 11%;
    width: 20%;

  }
}

.fv-snack-6 {
  left: 2.5%;
  bottom: 19%;
  width: 8%;
  --rot: 6deg;

  @media screen and (max-width: 767px) {
    left: 0;
    top: 20%;
    width: 18%;
  }
}

.fv-snack .fv-motion {
  rotate: var(--rot, 0deg);
}

/* ------------------------------------------- */
/* dots
/* ------------------------------------------- */
.fv-deco {
  position: absolute;
  z-index: 1;

  & img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.fv-deco-1 {
  left: 6%;
  top: 8%;
  width: 4%;

  @media screen and (max-width: 767px) {
    left: 4%;
    top: 3%;
    width: 12vw;
    z-index: 7;
  }
}

.fv-deco-2 {
  left: 35%;
  top: 0;
  width: 6.6%;
  z-index: 3;

  @media screen and (max-width: 767px) {
    display: none;
    /* left: 36%;
    top: 12%;
    width: 10vw; */
  }
}

.fv-deco-3 {
  left: 35%;
  bottom: 13%;
  width: 8%;
  z-index: 4;

  @media screen and (max-width: 767px) {
    left: 7%;
    top: 58%;
    width: 23vw;
    z-index: 6;
  }
}

.fv-deco-4 {
  left: 52%;
  top: 80%;
  width: 5.4%;

  @media screen and (max-width: 767px) {
    left: 48%;
    top: 82%;
    width: 12vw;
  }
}

.fv-deco-5 {
  left: 78%;
  top: 36%;
  width: 4.8%;
  z-index: 5;

  @media screen and (max-width: 767px) {
    left: 78%;
    top: 38%;
    width: 10vw;
  }
}

.fv-deco-6 {
  left: 88%;
  top: 37%;
  width: 6.2%;
  z-index: 8;

  @media screen and (max-width: 767px) {
    left: 80%;
    top: 40%;
    width: 16vw;
    /* display: none; */
  }
}

@media (prefers-reduced-motion: reduce) {
  .fv-motion,
  .fv-person img,
  .fv-snack .fv-motion,
  .fv-deco .fv-motion,
  .home-about-dots,
  .home-work-dots,
  .home-interview-dots {
    animation: none !important;
    transition: none !important;
    opacity: 1;
    translate: 0 0;
    scale: 1;
  }
}

/* ------------------------------------------- */
/* ABOUT
/* ------------------------------------------- */
.sec-home-about {
  padding: 12rem 0;
  padding-top: 2rem;
  background: #fff;
  position: relative;

  @media screen and (max-width: 1240px) and (min-width: 767.01px) {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  @media screen and (max-width: 767px) {
    padding: 4rem 0;
    padding-top: 0;
  }
}

.home-about {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 6rem;

  @media screen and (max-width: 767px) {
    flex-direction: column;
    align-items: stretch;
    gap: 4.8rem;
  }
}

.home-about-dots {
  display: block;
  width: 10rem;
  height: auto;
  margin-bottom: 2.4rem;
  position: absolute;
  left: 10%;
  top: 0;
  animation: about-dots 5.6s ease-in-out infinite;

  @media screen and (max-width: 767px) {
    width: 7rem;
    margin-bottom: 1.6rem;
    left: 75%;
    top: -7%;
  }
}

@keyframes about-dots {
  0%,
  100% {
    translate: 0 0;
    rotate: 0deg;
    scale: 1;
  }
  35% {
    translate: 0.8rem -1.2rem;
    rotate: 10deg;
    scale: 1.08;
  }
  70% {
    translate: -0.6rem 0.5rem;
    rotate: -6deg;
    scale: 0.96;
  }
}

.home-about-intro {
  width: 35%;

  @media screen and (max-width: 767px) {
    width: 100%;
  }

  .title-main {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 3.5rem;
    letter-spacing: 0.05em;
    color: #00a3e0;

    @media screen and (max-width: 767px) {
      font-size: 1.6rem;
      line-height: 2.3rem;
    }
  }

  .title-sub {
    font-family: "Zen Kaku Gothic New";
    font-style: normal;
    font-weight: 700;
    font-size: 3.9rem;
    line-height: 5.6rem;
    letter-spacing: 0.13em;
    color: #282828;

    @media screen and (max-width: 767px) {
      font-size: 2.6rem;
      line-height: 3.8rem;
    }
  }
}

.home-about-text {
  margin-top: 2.4rem;
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 183%;
  letter-spacing: 0.06em;
  color: #000000;

  @media screen and (max-width: 767px) {
    font-size: 1.6rem;
    line-height: 181%;
  }
}

.home-about-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.4rem;
  width: 65%;

  @media screen and (max-width: 767px) {
    width: 100%;
    gap: 2rem;
    display: flex;
    flex-direction: column;
  }
}

.home-about-card {
  display: block;
  overflow: hidden;
  border-radius: 2rem;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);

  @media screen and (max-width: 767px) {
    border-radius: 1.2rem;
  }

  &:hover {
    transform: translateY(-0.6rem);
    box-shadow: 0 1.6rem 3.2rem rgb(0 0 0 / 12%);
    opacity: 0.7;

    & img {
      transform: scale(1.06);
    }
  }

  & img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 500 / 336;
    object-fit: cover;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
}

/* ------------------------------------------- */
/* WORK
/* ------------------------------------------- */
.sec-home-work {
  position: relative;
  padding: 8rem 0 4rem;
  background: #fff;
  overflow: visible;

  &::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    bottom: 0;
    z-index: 0;
    background: #f9f6e9;
    pointer-events: none;
  }

  @media screen and (max-width: 1240px) and (min-width: 767.01px) {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  @media screen and (max-width: 767px) {
    padding: 2rem 0 0;
  }
}

.home-work {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1520 / 660;

  &::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: #00a3e0;
    border-radius: 4rem;
    pointer-events: none;
  }

  @media screen and (max-width: 767px) {
    display: flex;
    flex-direction: column;
    aspect-ratio: auto;
    padding: 0 0 3.6rem;

    &::before {
      border-radius: 2.4rem;
    }
  }
}

.home-work-dots {
  position: absolute;
  top: -3.6%;
  right: 6.5%;
  z-index: 4;
  width: 12rem;
  height: auto;
  pointer-events: none;
  animation: about-dots 5.6s ease-in-out infinite;

  @media screen and (max-width: 767px) {
    top: -2.4rem;
    right: 2.4rem;
    width: 8.5rem;
  }
}

.home-work-photos {
  position: absolute;
  left: -4%;
  top: -8%;
  z-index: 2;
  display: block;
  width: 50%;

  & img {
    display: block;
    width: 100%;
    height: auto;
  }

  @media screen and (max-width: 1240px) and (min-width: 767.01px) {
    left: -3%;
    top: -6%;
    width: 48%;
  }

  @media screen and (max-width: 767px) {
    position: relative;
    left: auto;
    top: auto;
    order: 2;
    width: 100%;
    margin: 2.4rem auto 0;
  }
}

.home-work-copy {
  position: absolute;
  left: 55%;
  right: 8%;
  top: 50%;
  z-index: 3;
  translate: 0 -50%;

  @media screen and (max-width: 767px) {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    order: 1;
    translate: 0;
    /* padding: 3.2rem 0 0; */
    padding: 4.5rem 2.4rem 0;
  }

  .title-main {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 3.5rem;
    letter-spacing: 0.05em;
    color: #fff;

    @media screen and (max-width: 767px) {
      font-size: 1.4rem;
      line-height: 2rem;
    }
  }

  .title-sub {
    font-family: "Zen Kaku Gothic New";
    font-style: normal;
    font-weight: 700;
    font-size: 3.9rem;
    line-height: 5.6rem;
    letter-spacing: 0.13em;
    color: #fff;

    @media screen and (max-width: 767px) {
      font-size: 2.2rem;
      line-height: 1.4;
      letter-spacing: 0.04em;
    }
  }

  @media screen and (max-width: 1240px) and (min-width: 767.01px) {
    left: 54%;
    right: 4.5%;

    .title-sub {
      font-size: 3.2rem;
      line-height: 4.6rem;
    }
  }
}

.home-work-text {
  margin-top: 2.5rem;
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 183%;
  letter-spacing: 0.06em;
  color: #ffffff;

  @media screen and (max-width: 1080px) and (min-width: 767.01px) {
    font-size: 1.5rem;
  }

  @media screen and (max-width: 767px) {
    margin-top: 1.6rem;
    font-size: 1.6rem;
  }
}

.home-work-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.17rem;
  display: flex;
  margin-top: 5rem;
  /* flex-direction: column; */
  align-items: center;
  /* padding: 2.6rem 3rem 2.7rem; */
  gap: 1rem;
  width: 18.3rem;
  height: 5.5rem;
  /* height: 6.4rem; */
  background: #ffffff;
  border-radius: 2.8rem;
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 3.2rem;
  letter-spacing: 0.03em;
  color: #00a3e0;
  text-decoration: none;
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;

  & img {
    width: auto;
    height: auto;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }

  &:hover {
    transform: translateY(-0.2rem);
    box-shadow: 0 0.8rem 1.8rem rgba(0, 0, 0, 0.18);
    opacity: 0.7;

    & img {
      transform: translateX(0.4rem);
    }
  }

  @media screen and (max-width: 767px) {
    /* width: 100%; */
    width: 14.6rem;
    height: 4.5rem;
    margin-top: 2.4rem;
    font-size: 1.6rem;
    line-height: 2.3rem;

    & img {
      width: 1.3rem;
      height: 0.5rem;
    }
  }
}

/* ------------------------------------------- */
/* STAFF INTERVIEW
/* ------------------------------------------- */
.sec-home-interview {
  position: relative;
  z-index: 1;
  padding: 8rem 0 12rem;
  background: #f9f6e9;
  overflow: hidden;

  @media screen and (max-width: 1240px) and (min-width: 767.01px) {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  @media screen and (max-width: 767px) {
    padding: 6rem 0 4rem;
  }
}

.home-interview-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 5rem;

  .title-main {
    font-family: "Jost";
    font-style: normal;
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 3.5rem;
    letter-spacing: 0.05em;
    color: #00a3e0;

    @media screen and (max-width: 767px) {
      font-size: 1.2rem;

      .title-main {
        font-size: 2.6rem;
        line-height: 3.8rem;
        letter-spacing: 0.13em;
        color: #282828;
      }
    }
  }

  .title-sub {
    font-family: "Zen Kaku Gothic New";
    font-style: normal;
    font-weight: 700;
    font-size: 3.9rem;
    line-height: 5.6rem;
    letter-spacing: 0.13em;
    color: #282828;

    @media screen and (max-width: 767px) {
      font-size: 2.2rem;
      line-height: 1;
      letter-spacing: 0.04em;
    }
  }

  @media screen and (max-width: 767px) {
    margin-bottom: 1rem;
  }
}

.home-interview-dots {
  display: block;
  width: 12rem;
  height: auto;
  flex-shrink: 0;
  pointer-events: none;
  animation: about-dots 5.6s ease-in-out infinite;

  @media screen and (max-width: 767px) {
    width: 7.2rem;
  }
}

.swiper.interview-swiper {
  overflow: visible;
  padding-top: 1.6rem;
  padding-bottom: 2.4rem;
  margin-left: 0;
  margin-right: 0;
  width: 100%;

  @media screen and (max-width: 767px) {
    overflow: hidden;
    width: calc(100% + 2.2rem);
    margin-right: -2.2rem;
  }

  .swiper-wrapper {
    display: flex;
    align-items: stretch;
  }

  .swiper-slide {
    box-sizing: border-box;
    width: 42rem;
    height: auto;
    flex-shrink: 0;

    @media screen and (max-width: 767px) {
      width: 72vw;
    }
  }
}

.interview-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  text-align: left;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.35s ease;

  &:hover {
    opacity: 0.75;
  }
}

.interview-card-photo {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  border: 1.5rem solid #fff;
  background: #fff;

  & img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  @media screen and (max-width: 767px) {
    border: 1.2rem solid #fff;
  }
}

.interview-card-title {
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.6;
  color: #282828;
  letter-spacing: 0.14em;
  max-width: 34.3rem;
  margin: 2.4rem auto 0;
  @media screen and (max-width: 767px) {
    font-size: 1.8rem;
    line-height: 2.9rem;
    letter-spacing: 0.14em;
    /* padding: 0 4.5rem; */
  }
}

.interview-card-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.8rem;
  height: 3.2rem;
  margin-top: 1.6rem;
  padding: 0 1.6rem;
  border-radius: 0.6rem;
  background: #e5b854;
  font-family: "Zen Kaku Gothic New";
  font-style: normal;
  font-weight: 700;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  color: #fff;

  @media screen and (max-width: 767px) {
    /* padding: 8.00263px; */
    border-radius: 4.80158px;
    /* margin: 0 4.5rem; */
    margin-top: 2rem;
    font-family: "Zen Kaku Gothic New";
    font-style: normal;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 210%;
    color: #ffffff;
    /* width: 6.082rem; */
    height: 2.801rem;
  }
}

.home-interview-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 6rem auto 0;
  background: #fff;
  border-radius: 2.8rem;
  /* box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 8%); */
  /* padding: 2.6rem 3rem 2.7rem; */
  width: 18.3rem;
  height: 6.4rem;
  background: #ffffff;
  border-radius: 4.5rem;

  font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.8rem;
  letter-spacing: 0.03em;
  color: #00a3e0;
  text-decoration: none;
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    opacity 0.35s ease;

  & img {
    width: auto;
    height: auto;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }

  &:hover {
    transform: translateY(-0.2rem);
    box-shadow: 0 0.8rem 1.8rem rgba(0, 0, 0, 0.18);
    opacity: 0.7;

    & img {
      transform: translateX(0.4rem);
    }
  }

  @media screen and (max-width: 767px) {
    /* width: 100%; */
    margin-top: 0;
    font-size: 1.5rem;
    line-height: 2.3rem;
    width: 14.6rem;
    height: 4.7rem;
    border-radius: 3.16984rem;
  }
}
