@charset "UTF-8";
/* foundation */
main {
  width: 100vw;
}

.sp-only {
  display: block !important;
}
@media (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.pc-only {
  display: none !important;
}
@media (min-width: 768px) {
  .pc-only {
    display: block !important;
  }
}

.l-section {
  width: 100vw;
}

/* layout */
/* foundation */
.l-footer {
  background-color: #F5F5F5;
  padding: 10.6666666667vw 13.3333333333vw;
}
@media (min-width: 768px) {
  .l-footer {
    padding: 2.734375vw 0;
  }
}
.l-footer .footer_logo {
  width: 46.1333333333vw;
  height: auto;
  display: block;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .l-footer .footer_logo {
    width: 13.515625vw;
  }
}

.footer__link {
  margin: 9.6vw 0;
  display: flex;
  justify-content: center;
  gap: 4.2666666667vw;
}
@media (min-width: 768px) {
  .footer__link {
    margin: 3.75vw 0;
    display: flex;
    gap: 1.25vw;
  }
}
.footer__link a {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 3.4666666667vw;
  color: #333;
  font-weight: 500;
}
@media (min-width: 768px) {
  .footer__link a {
    font-size: 1.015625vw;
  }
}

small {
  margin: 0 auto;
  display: block;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 3.2vw;
  color: #333;
  font-weight: 500;
}
@media (min-width: 768px) {
  small {
    font-size: 0.9375vw;
  }
}

/* object - component (.c-) */
/* foundation */
.f-cta {
  position: fixed;
  left: 50%;
  bottom: 2.6666666667vw;
  transform: translate(-50%, 120%);
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
@media (min-width: 768px) {
  .f-cta {
    bottom: 1.5625vw;
  }
}

/* 表示状態 */
.f-cta.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.floating-btn .btn-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.1333333333vw;
  min-width: 87.4666666667vw;
  padding: 4vw 3.2vw;
  border-radius: 2.1333333333vw;
  border: 0.8vw solid #ffffff;
  background: linear-gradient(180deg, #34BC28 0%, #21B526 48%, #368A1A 100%);
  box-shadow: 0 1.048vw 1.9653333333vw rgba(96, 95, 95, 0.22);
  color: #fff;
  text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 8.8vw;
  font-weight: 900;
  letter-spacing: 0.08em;
  box-sizing: border-box;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
@media (min-width: 768px) {
  .floating-btn .btn-cta {
    gap: 0.625vw;
    min-width: 25.625vw;
    padding: 1.171875vw 0.9375vw;
    border-radius: 0.625vw;
    border: 0.234375vw solid #ffffff;
    font-size: 2.578125vw;
  }
}
.floating-btn .btn-cta .floating-btn__cta-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.1333333333vw;
  height: 9.0666666667vw;
}
@media (min-width: 768px) {
  .floating-btn .btn-cta .floating-btn__cta-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.96875vw;
    height: 2.65625vw;
  }
}
.floating-btn .btn-cta .floating-btn__cta-text {
  white-space: nowrap;
  text-shadow: 0 0.92vw 1.2586666667vw rgba(34, 108, 21, 0.59);
}
@media (min-width: 768px) {
  .floating-btn .btn-cta .floating-btn__cta-text {
    white-space: nowrap;
    text-shadow: 0 0.26953125vw 0.36875vw rgba(34, 108, 21, 0.59);
  }
}
.floating-btn .btn-cta .floating-btn__cta-arrow {
  position: relative;
  display: inline-block;
  width: 2.6666666667vw;
  height: 2.6666666667vw;
  margin-left: -1.0666666667vw;
  margin-top: 0.8vw;
  font-size: 0;
  line-height: 0;
  overflow: visible;
}
@media (min-width: 768px) {
  .floating-btn .btn-cta .floating-btn__cta-arrow {
    width: 0.78125vw;
    height: 0.78125vw;
    margin-left: -0.3125vw;
    margin-top: 0.234375vw;
  }
}
.floating-btn .btn-cta .floating-btn__cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 1.0666666667vw solid transparent;
  border-bottom: 1.0666666667vw solid transparent;
  border-left: 1.6vw solid #ffffff;
  transform: translate(-50%, -50%);
  opacity: 1;
}
@media (min-width: 768px) {
  .floating-btn .btn-cta .floating-btn__cta-arrow::before {
    border-top: 0.3125vw solid transparent;
    border-bottom: 0.3125vw solid transparent;
    border-left: 0.46875vw solid #ffffff;
  }
}

/* 矢印用アニメーション */
@keyframes arrow-loop {
  0% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
  45% {
    transform: translate(140%, -50%);
    opacity: 0;
  }
  50% {
    transform: translate(-220%, -50%);
    opacity: 0;
  }
  100% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
}
@media (min-width: 768px) {
  .floating-btn .btn-cta:hover,
  .floating-btn .btn-cta:focus-visible {
    filter: saturate(200%);
  }
  .floating-btn .btn-cta:hover .floating-btn__cta-arrow::before,
  .floating-btn .btn-cta:focus-visible .floating-btn__cta-arrow::before {
    animation: arrow-loop 0.6s ease forwards;
  }
}
/* object - project (.p-) */
/* foundation */
.p-hero {
  background-image: url(../images/mv-sp.webp);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100vw;
  position: relative;
}
@media (min-width: 768px) {
  .p-hero {
    background-image: url(../images/mv-pc.webp);
    background-repeat: no-repeat;
    background-size: cover;
    width: 100vw;
  }
}

.p-hero__inner {
  width: 100%;
  padding-top: 165.0666666667vw;
  padding-bottom: 8.5333333333vw;
  /* LINE丸アイコン */
  /* テキスト部分 */
  /* 矢印 */
}
.p-hero__inner .p-hero__button {
  margin: 0 auto;
  width: 87.4666666667vw;
}
.p-hero__inner .p-hero__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.1333333333vw;
  width: 100%;
  padding: 4vw 3.1413333333vw;
  border-radius: 2.1333333333vw;
  border: 0.8vw solid #ffffff;
  background: linear-gradient(180deg, #34BC28 0%, #21B526 48%, #368A1A 100%);
  box-shadow: 0 1.048vw 1.9653333333vw rgba(96, 95, 95, 0.22);
  text-decoration: none;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 8.8vw;
  font-weight: 900;
  letter-spacing: 0.08em;
  box-sizing: border-box;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.p-hero__inner .p-hero__cta-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.1333333333vw;
  height: 9.0666666667vw;
}
.p-hero__inner .p-hero__cta-text {
  white-space: nowrap;
  text-shadow: 0 0.92vw 1.2586666667vw rgba(34, 108, 21, 0.59);
}
.p-hero__inner .p-hero__cta-arrow {
  position: relative;
  display: inline-block;
  width: 2.6666666667vw;
  height: 2.6666666667vw;
  margin-left: -1.0666666667vw;
  margin-top: 0.8vw;
  font-size: 0;
  line-height: 0;
}
.p-hero__inner .p-hero__cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-top: 1.0666666667vw solid transparent;
  border-bottom: 1.0666666667vw solid transparent;
  border-left: 1.6vw solid #ffffff;
}
.p-hero__inner .p-hero__link {
  display: flex;
  align-items: center;
  gap: 1.8666666667vw;
  justify-content: center;
  margin-top: 3.4666666667vw;
}
.p-hero__inner .p-hero__content {
  content: "";
  background-image: url(../images/arrow_mv-sp.webp);
  background-size: contain;
  width: 6.6666666667vw;
  height: 6.6666666667vw;
  display: block;
}
.p-hero__inner .p-hero__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 4.8vw;
  font-weight: bold;
  color: #333;
  border-bottom: solid 0.1px #333;
}

.p-hero__pc {
  width: 100vw;
}
.p-hero__pc img {
  margin: 0 auto;
  display: block;
  width: 100%;
}

.p-hero__pc-inner {
  position: absolute;
  bottom: -14%;
  left: 52%;
  translate: -50%;
  padding: 2.5vw 0 1.5625vw;
  background-image: url(../images/cta_mv-pc.webp);
  background-repeat: no-repeat;
  background-size: contain;
  width: 70.3125vw;
  justify-content: center;
  align-items: center;
  gap: 3.90625vw;
  z-index: 999;
  /* LINE丸アイコン */
  /* テキスト部分 */
  /* 矢印 */
  /* 矢印用アニメーション */
  /* ホバー（PCのみで効けばOKならこんな感じで） */
}
@media (min-width: 768px) {
  .p-hero__pc-inner {
    display: flex !important;
  }
}
.p-hero__pc-inner .p-hero__button {
  width: 87.4666666667vw;
}
@media (min-width: 768px) {
  .p-hero__pc-inner .p-hero__button {
    width: 25.625vw;
  }
}
.p-hero__pc-inner .p-hero__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625vw;
  width: 100%;
  padding: 1.171875vw 0.9203125vw;
  border-radius: 0.625vw;
  border: 0.234375vw solid #ffffff;
  background: linear-gradient(180deg, #34BC28 0%, #21B526 48%, #368A1A 100%);
  box-shadow: 0 0.30703125vw 0.57578125vw rgba(96, 95, 95, 0.22);
  text-decoration: none;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.578125vw;
  font-weight: 900;
  letter-spacing: 0.08em;
  box-sizing: border-box;
  transition: transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-hero__pc-inner .p-hero__cta-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.96875vw;
  height: 2.65625vw;
}
.p-hero__pc-inner .p-hero__cta-text {
  white-space: nowrap;
  text-shadow: 0 0.26953125vw 0.36875vw rgba(34, 108, 21, 0.59);
}
.p-hero__pc-inner .p-hero__cta-arrow {
  position: relative;
  display: inline-block;
  width: 0.78125vw;
  height: 0.78125vw;
  margin-left: -0.3125vw;
  margin-top: 0.234375vw;
  font-size: 0;
  line-height: 0;
  overflow: visible;
}
.p-hero__pc-inner .p-hero__cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 0.3125vw solid transparent;
  border-bottom: 0.3125vw solid transparent;
  border-left: 0.46875vw solid #ffffff;
  transform: translate(-50%, -50%);
  opacity: 1;
}
@keyframes arrow-loop {
  0% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
  45% {
    transform: translate(140%, -50%);
    opacity: 0;
  }
  50% {
    transform: translate(-220%, -50%);
    opacity: 0;
  }
  100% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
}
.p-hero__pc-inner .p-hero__button .p-hero__cta:hover,
.p-hero__pc-inner .p-hero__button .p-hero__cta:focus-visible {
  filter: saturate(200%);
}
.p-hero__pc-inner .p-hero__button .p-hero__cta:hover .p-hero__cta-arrow::before,
.p-hero__pc-inner .p-hero__button .p-hero__cta:focus-visible .p-hero__cta-arrow::before {
  animation: arrow-loop 0.6s ease forwards;
}
.p-hero__pc-inner .p-hero__link {
  display: flex;
  align-items: center;
  gap: 0.546875vw;
  justify-content: center;
  margin-top: -0.390625vw;
  margin-right: 3.90625vw;
}
.p-hero__pc-inner .p-hero__link:hover {
  opacity: 0.7;
}
.p-hero__pc-inner .p-hero__content {
  content: "";
  background-image: url(../images/arrow_mv-sp.webp);
  background-size: contain;
  width: 2.5vw;
  height: 2.5vw;
  display: block;
}
.p-hero__pc-inner .p-hero__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.40625vw;
  font-weight: bold;
  border-bottom: solid 0.1px #333;
}

/* foundation */
.p-benefit__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-benefit__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* foundation */
.p-comparison {
  position: relative;
  overflow: hidden;
}

.p-comparison__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-comparison__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

.p-comparison__chart-scroll {
  position: absolute;
  bottom: 14.9333333333vw;
  padding-left: 5.3333333333vw;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  box-sizing: border-box;
}

/* 実際の表画像 */
.p-comparison__chart {
  display: block;
  width: 220vw;
  height: 127.7333333333vw;
}

/* foundation */
.p-flow__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-flow__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* foundation */
.p-offer__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-offer__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* foundation */
.p-voice {
  background-image: url(../images/bg_voice-sp.png);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100vw;
  height: 518.4vw;
}
@media (min-width: 768px) {
  .p-voice {
    background-image: url(../images/bg_voice-pc.png);
    background-repeat: no-repeat;
    background-size: cover;
    width: 100vw;
    height: 64.296875vw;
  }
}
.p-voice .l-container {
  padding-top: 58.9333333333vw;
}
@media (min-width: 768px) {
  .p-voice .l-container {
    padding-top: 17.578125vw;
  }
}

@media (min-width: 768px) {
  .p-voice__list {
    display: flex;
    gap: 2.5vw;
    justify-content: center;
    align-items: center;
  }
}

.p-voice__item {
  width: 90.9333333333vw;
  height: auto;
  display: block;
  margin: 0 auto 34.6666666667vw;
}
@media (min-width: 768px) {
  .p-voice__item {
    width: 26.640625vw;
    height: auto;
    display: block;
    margin: 0 0 10.15625vw;
  }
}

.c-media__img {
  width: 100%;
}

.p-voice__link {
  width: 32vw;
  height: auto;
  display: block;
  margin: -16vw auto;
}
@media (min-width: 768px) {
  .p-voice__link {
    width: 9.375vw;
    height: auto;
    display: block;
    margin: -4.6875vw auto;
  }
}

.p-voice__link:hover {
  opacity: 0.7;
}

/* foundation */
.p-faq {
  padding: 13.3333333333vw 0;
  background-color: #f5f5f5;
}
@media (min-width: 768px) {
  .p-faq {
    padding: 4.6875vw 0;
  }
}
.p-faq h2 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 6.4vw;
  color: #333;
  font-weight: 900;
  text-align: center;
}
@media (min-width: 768px) {
  .p-faq h2 {
    font-size: 1.875vw;
  }
}
.p-faq h3 {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 11.2vw;
  color: #D33969;
  font-weight: 900;
  text-align: center;
}
@media (min-width: 768px) {
  .p-faq h3 {
    font-size: 3.28125vw;
  }
}

.qa__block {
  margin-top: 8vw;
  display: flex;
  flex-direction: column;
  gap: 4.2666666667vw;
}
@media (min-width: 768px) {
  .qa__block {
    margin-top: 3.125vw;
    gap: 1.25vw;
  }
}

.qa__item {
  margin: 0 auto;
  background-color: #fff;
  border-radius: 2.6666666667vw;
  box-shadow: 3px 3px 4px rgba(134, 134, 134, 0.19);
  width: 91.4666666667vw;
}
@media (min-width: 768px) {
  .qa__item {
    border-radius: 0.78125vw;
    width: 37.265625vw;
  }
}
.qa__item summary {
  position: relative;
  padding: 4.2666666667vw 12.2666666667vw 4.2666666667vw 17.6vw;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.8vw;
  color: #333;
  font-weight: bold;
  cursor: pointer;
  line-height: 1.5;
  list-style: none;
}
@media (min-width: 768px) {
  .qa__item summary {
    padding: 1.6015625vw 3.59375vw 1.6015625vw 5.15625vw;
    font-size: 1.40625vw;
  }
}
.qa__item summary::before {
  content: "";
  position: absolute;
  left: 3.2vw;
  width: 9.6vw;
  height: 9.6vw;
  background-image: url(../images/faq_q-sp.svg);
  background-size: contain;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .qa__item summary::before {
    left: 1.25vw;
    width: 2.8125vw;
    height: 2.8125vw;
  }
}
.qa__item .qa__toggle {
  position: absolute;
  top: 50%;
  right: 4.2666666667vw;
  width: 4.2666666667vw;
  height: 4.2666666667vw;
  transform: translateY(-50%);
  transition: transform 0.2s ease;
}
@media (min-width: 768px) {
  .qa__item .qa__toggle {
    right: 1.5625vw;
    width: 1.25vw;
    height: 1.25vw;
  }
}
.qa__item .qa__toggle::before,
.qa__item .qa__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0.5333333333vw;
  margin-top: -0.2666666667vw;
  background-color: #999;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
@media (min-width: 768px) {
  .qa__item .qa__toggle::before,
  .qa__item .qa__toggle::after {
    height: 0.15625vw;
    margin-top: -0.078125vw;
  }
}
.qa__item .qa__toggle::before {
  transform: translateY(0) rotate(0deg);
}
.qa__item .qa__toggle::after {
  transform: translateY(0) rotate(90deg);
}
.qa__item[open] .qa__toggle {
  transform: translateY(-50%) rotate(90deg);
}
.qa__item[open] .qa__toggle::before {
  transform: translateY(0) rotate(90deg) scaleX(0);
  opacity: 0;
}
.qa__item p {
  width: 100%;
  position: relative;
  transform: translateY(-10px);
  opacity: 1;
  margin: 0;
  padding: 4.2666666667vw 10.6666666667vw;
  font-size: 4.2666666667vw;
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  line-height: 1.55;
  font-weight: bold;
}
@media (min-width: 768px) {
  .qa__item p {
    padding: 1.25vw 2.4609375vw 1.25vw 5.1171875vw;
    font-size: 1.25vw;
  }
}

/* foundation */
.p-program {
  position: relative;
  overflow: hidden;
}

.p-program__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-program__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

.p-program__list-scroll {
  position: absolute;
  left: 0;
  bottom: 13.3333333333vw;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding-left: 3.2vw;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .p-program__list-scroll {
    bottom: 4.6875vw;
    padding-left: 7.8125vw;
  }
}

.p-program__list {
  display: block;
  width: 497.3333333333vw;
  height: auto;
}
@media (min-width: 768px) {
  .p-program__list {
    width: 145.703125vw;
    height: auto;
  }
}

/* foundation */
.p-reason__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-reason__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* foundation */
@media (min-width: 768px) {
  .p-research_pc {
    width: 100vw;
    display: block;
  }
}
@media (min-width: 768px) {
  .p-research_pc img {
    width: 100%;
    height: auto;
  }
}

.p-research__inner {
  background-color: #f5f5f5;
  width: 100vw;
  display: block;
  margin: 0 auto;
  padding-bottom: 13.3333333333vw;
}
@media (min-width: 768px) {
  .p-research__inner {
    display: none;
  }
}
.p-research__inner img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

.research__block {
  display: flex;
  flex-direction: column;
  gap: 5.3333333333vw;
}

.research__items {
  margin: 0 auto;
  padding: 8vw 0;
  background-color: #fff;
  border-radius: 2.6666666667vw;
  box-shadow: 3px 3px 4px rgba(134, 134, 134, 0.19);
  width: 94.6666666667vw;
  /* 開いたら「＋詳しく見る」を消す */
}
.research__items .research__items-title {
  width: 84.2666666667vw;
}
.research__items summary {
  position: relative;
  padding: 9.0666666667vw 0.5333333333vw 0 12.8vw;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.2666666667vw;
  color: #333;
  font-weight: 500;
  cursor: pointer;
  line-height: 1.6;
  list-style: none;
}
.research__items summary::before {
  content: "";
  position: absolute;
  left: 3.2vw;
  width: 6.4vw;
  height: 6.6666666667vw;
  background-image: url(../images/research_q-sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
.research__items .research__more {
  margin-top: 10.6666666667vw;
}
.research__items .research__more img {
  display: block;
  margin: 10.6666666667vw 13.8666666667vw 0;
  width: 43.2vw;
  height: auto;
}
.research__items .research__item[open] .research__more {
  display: none;
}
.research__items p {
  width: 100%;
  position: relative;
  transform: translateY(-10px);
  line-height: 1.6;
  margin: 0;
  padding: 5.8666666667vw 2.6666666667vw 0;
  font-size: 4.2666666667vw;
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  font-weight: 500;
}
.research__items:nth-child(2) p {
  padding: 5.8666666667vw 4.2666666667vw 0 5.3333333333vw;
}
.research__items:nth-child(3) p {
  padding: 6.6666666667vw 5.3333333333vw 0;
}
.research__items:nth-child(4) p {
  padding: 5.8666666667vw 5.3333333333vw 0;
}

/* foundation */
.p-cta {
  background-image: url(../images/bg_cta-sp.webp);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100vw;
  position: relative;
  padding-bottom: 19.7333333333vw;
  /* LINE丸アイコン */
  /* テキスト部分 */
  /* 矢印 */
  /* 矢印用アニメーション */
}
@media (min-width: 768px) {
  .p-cta {
    background-image: none;
    padding-bottom: 3.4375vw;
  }
}
.p-cta .p-cta__image {
  width: 93.3333333333vw;
  display: block;
  margin: 0 auto;
}
.p-cta .p-cta__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-cta .p-cta__image {
    width: 100vw;
  }
}
.p-cta .p-cta__button {
  position: absolute;
  bottom: 21%;
  left: 50%;
  translate: -50%;
  margin: 0 auto;
  width: 80vw;
}
@media (min-width: 768px) {
  .p-cta .p-cta__button {
    bottom: 22%;
    width: 23.4375vw;
  }
}
.p-cta .p-cta__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.1333333333vw;
  width: 100%;
  padding: 4vw 3.1413333333vw;
  border-radius: 2.1333333333vw;
  border: 0.8vw solid #ffffff;
  background: linear-gradient(180deg, #34BC28 0%, #21B526 48%, #368A1A 100%);
  box-shadow: 0 1.048vw 1.9653333333vw rgba(96, 95, 95, 0.22);
  text-decoration: none;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 8vw;
  font-weight: 900;
  letter-spacing: 0.08em;
  box-sizing: border-box;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta {
    gap: 0.625vw;
    width: 100%;
    padding: 1.171875vw 0.9203125vw;
    border-radius: 0.625vw;
    border: 0.234375vw solid #ffffff;
    box-shadow: 0 0.30703125vw 0.57578125vw rgba(96, 95, 95, 0.22);
    font-size: 2.34375vw;
  }
}
.p-cta .p-cta__cta .u-small {
  font-size: 6.6666666667vw;
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta .u-small {
    font-size: 1.953125vw;
  }
}
.p-cta .p-cta__cta-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.1333333333vw;
  height: 9.0666666667vw;
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta-icon {
    width: 2.96875vw;
    height: 2.65625vw;
  }
}
.p-cta .p-cta__cta-text {
  white-space: nowrap;
  text-shadow: 0 0.92vw 1.2586666667vw rgba(34, 108, 21, 0.59);
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta-text {
    text-shadow: 0 0.26953125vw 0.36875vw rgba(34, 108, 21, 0.59);
  }
}
.p-cta .p-cta__cta-arrow {
  position: relative;
  display: inline-block;
  width: 2.6666666667vw;
  height: 2.6666666667vw;
  margin-left: -1.0666666667vw;
  margin-top: 0.8vw;
  font-size: 0;
  line-height: 0;
  overflow: visible;
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta-arrow {
    width: 0.78125vw;
    height: 0.78125vw;
    margin-left: -0.3125vw;
    margin-top: 0.234375vw;
  }
}
.p-cta .p-cta__cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 1.0666666667vw solid transparent;
  border-bottom: 1.0666666667vw solid transparent;
  border-left: 1.6vw solid #ffffff;
  transform: translate(-50%, -50%);
  opacity: 1;
}
@media (min-width: 768px) {
  .p-cta .p-cta__cta-arrow::before {
    border-top: 0.3125vw solid transparent;
    border-bottom: 0.3125vw solid transparent;
    border-left: 0.46875vw solid #ffffff;
  }
}
@keyframes arrow-loop {
  0% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
  45% {
    transform: translate(140%, -50%);
    opacity: 0;
  }
  50% {
    transform: translate(-220%, -50%);
    opacity: 0;
  }
  100% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
}
.p-cta .p-cta__link {
  display: flex;
  align-items: center;
  gap: 1.8666666667vw;
  justify-content: center;
  margin-top: -15.5333333333vw;
}
@media (min-width: 768px) {
  .p-cta .p-cta__link {
    gap: 0.546875vw;
    margin-top: -5.390625vw;
  }
}
@media (min-width: 768px) {
  .p-cta .p-cta__link:hover {
    opacity: 0.7;
  }
}
.p-cta .p-cta__content {
  content: "";
  background-image: url(../images/arrow-sp.webp);
  background-size: contain;
  background-repeat: no-repeat;
  width: 6.6666666667vw;
  height: 6.6666666667vw;
  display: block;
}
@media (min-width: 768px) {
  .p-cta .p-cta__content {
    width: 1.953125vw;
    height: 1.953125vw;
  }
}
.p-cta .p-cta__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 4.8vw;
  font-weight: 900;
  color: #FFF49E;
}
@media (min-width: 768px) {
  .p-cta .p-cta__text {
    font-size: 1.40625vw;
  }
}

.p-cta.bg_wh {
  background-image: none;
  background-color: #fff;
  width: 100vw;
  position: relative;
  padding-top: 10.6666666667vw;
}
@media (min-width: 768px) {
  .p-cta.bg_wh {
    padding-top: 0;
  }
}

@media (min-width: 768px) {
  .p-cta__button .p-cta__cta:hover,
  .p-cta__button .p-cta__cta:focus-visible {
    filter: saturate(200%);
  }
  .p-cta__button .p-cta__cta:hover .p-cta__cta-arrow::before,
  .p-cta__button .p-cta__cta:focus-visible .p-cta__cta-arrow::before {
    animation: arrow-loop 0.6s ease forwards;
  }
}
/* foundation */
.p-trouble__image {
  width: 100vw;
  display: block;
  margin: 0 auto;
}
.p-trouble__image img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* foundation */
.voice-detail {
  background-image: url(../images/bg_voice-detail-sp.png);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100vw;
  padding: 43.4666666667vw 3.7333333333vw 13.3333333333vw 5.3333333333vw;
}
@media (min-width: 768px) {
  .voice-detail {
    background-image: url(../images/bg_voice-detail-pc.png);
    background-repeat: no-repeat;
    background-size: cover;
    width: 100vw;
    padding: 16.640625vw 20.703125vw 4.6875vw;
  }
}

.voice-detail__image img {
  width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .voice-detail__image img {
    width: 100%;
    height: auto;
  }
}

/* object - utility (.u-) */
/* foundation */
.u-pink {
  color: #D33969;
  font-weight: bold;
}

.u-small {
  font-size: 7.3333333333vw;
}
@media (min-width: 768px) {
  .u-small {
    font-size: 2.1484375vw;
  }
}

/* foundation */
/* ==========================
   フェードイン共通
   ========================== */
[data-reveal] {
  opacity: 0;
  transform: translateY(0);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

/* 表示状態（共通） */
[data-reveal].is-visible {
  opacity: 1;
}

/* --- パターン1：その場でフェードイン --- */
[data-reveal=fade] {
  transform: translateY(0);
}

[data-reveal=fade].is-visible {
  transform: translateY(0);
}

/* --- パターン2：下から上に移動しながらフェードイン --- */
[data-reveal=up] {
  transform: translateY(24px);
}

[data-reveal=up].is-visible {
  transform: translateY(0);
}