html {
  /* font-feature-settings: 'palt'; */
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

@media screen and (min-width:1372px) {
  html {
    font-size: calc(100vw / 1372 * 10);
  }
}

@media screen and (max-width:1280px) {
  html {
    font-size: calc(100vw / 1280 * 10);
  }
}

@media screen and (max-width:768px) {
  html {
    font-size: calc(100vw / 402 * 10);
    scroll-padding-top: 7.2rem;
  }
}

body {
  background: #fff;
  color: #000;
  font-family: 'Inter', sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: normal;
  position: relative;
  width: 100%;
}

@media screen and (max-width:768px) {
  body {
    font-size: 1.5rem;
  }
}

html:not(.is-page-ready) {
  overflow: hidden;
}

.body-container {
  min-height: 100vh;
  /* overflow-x: hidden だと子孫の position:sticky が効かないため clip を使用 */
  overflow-x: clip;
  opacity: 0;
  padding-top: 8rem;
  transition: opacity 0.45s ease;
}

html.is-page-ready .body-container {
  opacity: 1;
}

@media screen and (max-width:768px) {
  .body-container {
    padding-top: 7.2rem;
  }
}

img:not(.cover) {
  height: auto;
  max-width: 100%;
  width: 100%;
}

img.cover {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

a {
  transition: .3s;
}

em {
  font-style: normal;
}

.max1000 {
  margin: 0 auto;
  max-width: 100rem;
  width: 100%;
}

.max1172 {
  margin: 0 auto;
  max-width: 117.2rem;
  width: 100%;
}

.max1280 {
  margin: 0 auto;
  max-width: 128rem;
  width: 100%;
}

/* ---------------------------------------------------------------------------
// header
--------------------------------------------------------------------------- */
header {
  height: 8rem;
  position: fixed;
  top: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.8);
  z-index: 100;
  transition: background .3s, transform .35s ease, opacity .35s ease;
}

header.is-open {
  background: rgba(255, 255, 255, 1);
}

header .wrap {
  padding: 0 2.4rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}

header .wrap .head {
  display: flex;
  align-items: center;
  gap: 2.2rem;
}

header .wrap .head .logo {
  width: 32.3rem;
  position: relative;
  top: -.4rem;
}

header .wrap .head span {
  font-size: 1.4rem;
  line-height: 1.14;
}

header .wrap .navs .nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}

header .wrap .navs .nav .item .link:not(.btn) {
  display: inline-flex;
  align-items: center;
  position: relative;
  font-weight: 700;
  transition: color .3s;
}

header .wrap .navs .nav .item .link:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.2rem;
  height: 2px;
  background: #FF6E00;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s;
}

header .wrap .navs .nav .item .link:not(.btn):hover {
  color: #FF6E00;
}

header .wrap .navs .nav .item .link:not(.btn):hover::after {
  transform: scaleX(1);
}

header .wrap .navs .nav .item .link.btn {
  height: 4.6rem;
  background: #FF6E00;
  border-radius: 100vh;
  color: #fff;
  display: flex;
  padding: 0 2rem;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  border: solid 1px #fff;
  font-weight: 700;
}

header .wrap .navs .nav .item .link.btn:hover {
  background: rgba(255, 255, 255, 0.85);
  color: #FF6E00;
  border-color: #FF6E00;
  box-shadow: 0 10px 10px 0 rgba(0, 98, 211, 0.15);
}

header .wrap .navs .nav .item .link.btn svg {
  width: 1.6rem;
  height: 1.6rem;
  flex-shrink: 0;
}

header .wrap .navs .nav .item .link.btn svg path {
  stroke: currentColor;
  transition: stroke .3s;
}

header .menu-btn {
  display: none;
}

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

  header .wrap {
    padding: 0 1.6rem 0 2rem;
    gap: 1.2rem;
  }

  header .wrap .head {
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    min-width: 0;
  }

  header .wrap .head .logo {
    width: 27rem;
    max-width: 100%;
    position: static;
  }

  header .wrap .head span {
    font-size: 1.3rem;
    margin-top: .3rem;
  }

  header .menu-btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .45rem;
    flex-shrink: 0;
    width: 4.4rem;
    height: 4.4rem;
    margin-left: auto;
    border: none;
    border-radius: 50%;
    background: #FF6E00;
    cursor: pointer;
    z-index: 102;
  }

  header .menu-btn span {
    display: block;
    width: 1.8rem;
    height: .2rem;
    border-radius: 100vh;
    background: #fff;
    transition: transform .3s ease, opacity .3s ease;
    transform-origin: center;
  }

  header.is-open .menu-btn span:nth-child(1) {
    transform: translateY(.65rem) rotate(45deg);
  }

  header.is-open .menu-btn span:nth-child(2) {
    opacity: 0;
  }

  header.is-open .menu-btn span:nth-child(3) {
    transform: translateY(-.65rem) rotate(-45deg);
  }

  header .wrap .navs {
    position: fixed;
    top: 7.2rem;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 101;
    background: #fff;
    padding: 3.2rem 2.4rem 4rem;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-1.2rem);
    transition: opacity .3s ease, transform .3s ease, visibility .3s;
  }

  header.is-open .wrap .navs {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  header .wrap .navs .nav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  header .wrap .navs .nav .item {
    border-bottom: 1px solid #eee;
  }

  header .wrap .navs .nav .item .link:not(.btn) {
    display: flex;
    width: 100%;
    padding: 2rem 0;
    font-size: 1.6rem;
  }

  header .wrap .navs .nav .item .link:not(.btn)::after {
    display: none;
  }

  header .wrap .navs .nav .item:last-child {
    border-bottom: none;
    margin-top: 2.4rem;
  }

  header .wrap .navs .nav .item .link.btn {
    width: 100%;
    height: 5.2rem;
    font-size: 1.4rem;
  }

  body.is-menu-open {
    overflow: hidden;
  }
}

/* ---------------------------------------------------------------------------
// ttlA
--------------------------------------------------------------------------- */
.ttlA {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  gap: .9rem;
  position: relative;
}

.ttlA > span {
  opacity: 0;
  transform: translateY(1.2rem);
}

.ttlA.is-inview > span {
  animation: reveal-fadeup 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.ttlA .shape {
  --fall-angle: 53.0222deg;
  --fall-travel: 28rem;
  --fall-dur: 1.1s;
  --fall-delay: 0.08s;
  opacity: 0;
}

.ttlA.is-inview .shape {
  animation: ttl-shape-fall var(--fall-dur, 1.1s) var(--fall-delay, 0s) cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes ttl-shape-fall {
  from {
    opacity: 0;
    transform: translate3d(calc(sin(var(--fall-angle)) * var(--fall-travel)),
        calc(cos(var(--fall-angle)) * var(--fall-travel) * -1),
        0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* ---------------------------------------------------------------------------
// fv + section-01 group
--------------------------------------------------------------------------- */
.fv-sec01-group {
  position: relative;
  overflow: hidden;
}

/* ---------------------------------------------------------------------------
// fv
--------------------------------------------------------------------------- */
.section-fv {
  position: relative;
  z-index: 11;
}

.section-fv .wrap {
  position: relative;
  height: 67.9rem;
  padding: 8.3rem 4.6rem 0 0;
}

.section-fv .img01 {
  position: absolute;
  top: 0;
  left: -5.4rem;
  height: 100%;
  pointer-events: none;
  opacity: 0;
}

html.is-page-ready .section-fv .img01 {
  animation: fv-img01-fadein 1s ease 0.6s both;
}

.section-fv .img01 img {
  object-fit: contain;
  height: 100%;
}

.section-fv .img02 {
  position: absolute;
  top: 0;
  left: -5.4rem;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

.section-fv .img02 img {
  object-fit: contain;
  height: 100%;
}

@keyframes fv-img01-fadein {
  from {
    opacity: .8;
  }

  to {
    opacity: 1;
  }
}

.section-fv .txts {
  width: 56.1rem;
  margin-left: auto;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.section-fv .txts .h1 {
  width: 100%;
  opacity: 0;
}

html.is-page-ready .section-fv .txts .h1 {
  animation: fv-h1-swoosh 1.05s cubic-bezier(0.16, 0.84, 0.44, 1) 0.45s both;
}

@keyframes fv-h1-swoosh {
  0% {
    opacity: 0;
    transform: translateX(12rem);
  }

  55% {
    opacity: 1;
  }

  78% {
    transform: translateX(-0.8rem);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.section-fv .txts .desc {
  line-height: 1.75;
  width: 47rem;
  font-weight: 700;
  margin-top: 2.4rem;
  opacity: 0;
}

html.is-page-ready .section-fv .txts .desc {
  animation: fv-bnr-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.75s both;
}

.section-fv .txts .desc strong {
  font-size: 3.24rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 1.6rem;
}

.section-fv .txts .btn {
  width: 32.8rem;
  height: 6.8rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #FF6E00;
  color: #fff;
  border-radius: 100vh;
  border: 1px solid #FFF;
  font-weight: 700;
  box-shadow: 0 1rem 1rem 0 rgba(145, 145, 145, 0.25);
  gap: .8rem;
  margin-top: 2.4rem;
  transition: background .3s, color .3s, border-color .3s, box-shadow .3s;
  opacity: 0;
}

html.is-page-ready .section-fv .txts .btn {
  animation: fv-bnr-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.95s both;
}

.section-fv .txts .btn:hover {
  background: rgba(255, 255, 255, 0.85);
  color: #FF6E00;
  border-color: #FF6E00;
  box-shadow: 0 10px 10px 0 rgba(0, 98, 211, 0.15);
}

.section-fv .txts .btn svg {
  width: 1.6rem;
  height: 1.6rem;
  flex-shrink: 0;
}

.section-fv .txts .btn svg path {
  stroke: currentColor;
  transition: stroke .3s;
}

.section-fv .decos > div {
  position: absolute;
}

.section-fv .decos .deco01,
.section-fv .decos .deco01-2,
.section-fv .decos .deco02,
.section-fv .decos .deco03,
.section-fv .decos .deco04,
.section-fv .decos .deco06,
.section-fv .decos .deco07,
.section-fv .decos .deco08 {
  --deco-angle: 53.0222deg;
  --deco-travel: 40rem;
  opacity: 0;
}

html.is-page-ready .section-fv .decos .deco01,
html.is-page-ready .section-fv .decos .deco01-2,
html.is-page-ready .section-fv .decos .deco02,
html.is-page-ready .section-fv .decos .deco03,
html.is-page-ready .section-fv .decos .deco04,
html.is-page-ready .section-fv .decos .deco06,
html.is-page-ready .section-fv .decos .deco07,
html.is-page-ready .section-fv .decos .deco08 {
  animation: fv-deco-fall var(--deco-dur, 1.8s) var(--deco-delay, 0s) cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes fv-deco-fall {
  from {
    opacity: 0;
    transform: translate(calc(sin(var(--deco-angle)) * var(--deco-travel)),
        calc(cos(var(--deco-angle)) * var(--deco-travel) * -1));
  }

  to {
    opacity: 1;
    transform: translate(0, 0);
  }
}

.section-fv .decos .deco01 {
  top: 0;
  right: 26.6rem;
  width: 80.3rem;
  --deco-dur: 1.7s;
  --deco-delay: 0s;
  --deco-travel: 48rem;
}

.section-fv .decos .deco02 {
  top: -2rem;
  right: 69.2rem;
  width: 11.8rem;
  --deco-dur: 0.95s;
  --deco-delay: 0.6s;
  --deco-travel: 36rem;
}

.section-fv .decos .deco03 {
  top: 39.5rem;
  right: 91.7rem;
  width: 14.4rem;
  z-index: 6;
  --deco-dur: 1.35s;
  --deco-delay: 0.2s;
  --deco-travel: 40rem;
}

.section-fv .decos .deco04 {
  top: 52.3rem;
  right: 59.8rem;
  width: 16.5rem;
  z-index: 6;
  --deco-dur: 1.1s;
  --deco-delay: 0.8s;
  --deco-travel: 42rem;
}

.section-fv .decos .deco06 {
  top: 58.73rem;
  right: 98.95rem;
  width: 24.4rem;
  z-index: 6;
  --deco-dur: 1.5s;
  --deco-delay: 0.35s;
  --deco-travel: 44rem;
}

.section-fv .decos .deco07 {
  top: 48rem;
  right: -1rem;
  width: 37.5rem;
  z-index: 6;
  --deco-dur: 1.45s;
  --deco-delay: 1s;
  --deco-travel: 40rem;
}

.section-fv .decos .deco08 {
  top: -10rem;
  right: 98.95rem;
  width: 36.9rem;
  z-index: 6;
  --deco-dur: 1.2s;
  --deco-delay: 0.48s;
  --deco-travel: 38rem;
}

.section-fv .decos .deco09 {
  top: 26.4rem;
  right: 78rem;
  width: 45.4rem;
  z-index: 7;
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0;
}

html.is-page-ready .section-fv .decos .deco09 {
  animation: fv-deco-shine 1.15s ease-out 1.8s both;
}

@keyframes fv-deco-shine {
  0% {
    opacity: 0;
    transform: scale(0.65);
    filter: brightness(0.6);
  }

  40% {
    opacity: 1;
    transform: scale(1.18);
    filter: brightness(1.7);
  }

  100% {
    opacity: 0.75;
    transform: scale(1);
    filter: brightness(1);
  }
}

.section-fv .wrap .bnrs {
  position: absolute;
  z-index: 11;
  left: 0;
  right: 0;
  bottom: -7.65rem;
  margin: auto;
  display: flex;
  justify-content: space-between;
}

.section-fv .wrap .bnrs .bnr {
  background: #FFD992;
  border-radius: 2rem;
  box-shadow: 0 1rem 2rem -.4rem rgba(134, 134, 134, 0.25);
  height: 15.3rem;
  padding: .8rem;
  width: calc((100% - 5rem) / 2);
  position: relative;
}

.section-fv .wrap .bnrs .bnr .illust {
  position: absolute;
}

.section-fv .wrap .bnrs .bnr01 .illust {
  width: 14.8rem;
  right: 4.5rem;
  bottom: .3rem;
}

.section-fv .wrap .bnrs .bnr02 .illust {
  width: 12.9rem;
  right: 5.5rem;
  bottom: 2.2rem;
}

.section-fv .wrap .bnrs .bnr .box {
  border-radius: 1.5rem;
  border: solid 1px #fff;
  height: 100%;
  display: flex;
  align-items: center;
  text-align: center;
}

.section-fv .wrap .bnrs .bnr .box p {
  display: flex;
  align-items: center;
  flex-direction: column;
  font-size: 2rem;
  font-weight: 700;
  width: 28.4rem;
}

.section-fv .wrap .bnrs .bnr .box p strong {
  color: #FF6E00;
  font-size: 4rem;
}

.section-fv .wrap .bnrs .bnr .box p strong sup {
  font-size: 1.4rem;
  position: relative;
  top: -2.5rem;
}

.section-fv .wrap .bnrs .bnr .note {
  font-size: 1.2rem;
  color: #FF6E00;
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  margin: auto;
  bottom: -3rem;
}

.section-fv .wrap .bnrs .bnr01,
.section-fv .wrap .bnrs .bnr02 {
  opacity: 0;
}

html.is-page-ready .section-fv .wrap .bnrs .bnr01,
html.is-page-ready .section-fv .wrap .bnrs .bnr02 {
  animation: fv-bnr-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

html.is-page-ready .section-fv .wrap .bnrs .bnr01 {
  animation-delay: 1s;
}

html.is-page-ready .section-fv .wrap .bnrs .bnr02 {
  animation-delay: 1.3s;
}

@keyframes fv-bnr-fadeup {
  from {
    opacity: 0;
    transform: translateY(2.4rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.section-fv .points-area {
  opacity: 0;
}

html.is-page-ready .section-fv .points-area {
  animation: fv-points-fadein 0.75s ease 1.55s both;
}

@keyframes fv-points-fadein {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.section-fv .points {
  display: flex;
  width: 100%;
  margin-top: 12.4rem;
  border-bottom: solid 1px;
  padding-bottom: .8rem;
}

.section-fv .points .point {
  display: flex;
  flex: 1 1 auto;
  width: max-content;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  height: 5.6rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 700;
  gap: .8rem;
}

.section-fv .points .point::before {
  content: "";
  background-image: url(../img/check01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 1.8rem;
  height: 1.8rem;
}

.section-fv .points .point + .point {
  border-left: solid 1px;
}

@media screen and (max-width:768px) {
  .section-fv .wrap {
    height: auto;
    padding: 30rem 2.5rem 0;
  }

  .section-fv .img01 {
    position: absolute;
    height: 29.1rem;
    top: 0;
    left: 0;
    height: auto;
    overflow: hidden;
  }

  .section-fv .img01 img {
    transform: scale(1.35) translateX(4rem) translateY(1.5rem);
  }

  .section-fv .img02 {
    position: absolute;
    height: 29.1rem;
    top: 0;
    left: 0;
    height: auto;
    overflow: hidden;
  }

  .section-fv .img02 img {
    transform: scale(1.35) translateX(4rem) translateY(1.5rem);
  }

  .section-fv .txts {
    width: 100%;
    z-index: 9;
  }

  .section-fv .txts .desc {
    line-height: 1.66;
    width: 100%;
    font-weight: 700;
    margin-top: 1.6rem;
  }

  .section-fv .txts .desc strong {
    font-size: 2rem;
    margin-bottom: 1rem;
  }

  .section-fv .txts .btn {
    width: 36.2rem;
    height: 5.2rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 1.5rem;
    margin: 0 auto;
    z-index: 20;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(1.2rem);
    animation: none;
    transition: background .3s, color .3s, border-color .3s, box-shadow .3s, opacity .35s, transform .35s, visibility .35s;
  }

  html.is-page-ready .section-fv .txts .btn {
    animation: none;
  }

  .section-fv .txts .btn.is-shown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* section-05 没入中: ヘッダーと固定CTAを退避して有効高さを確保 */
  body.is-sec05-immersive header {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }

  body.is-sec05-immersive header.is-open {
    transform: translateY(-110%);
  }

  body.is-sec05-immersive .section-fv .txts .btn,
  body.is-sec05-immersive .section-fv .txts .btn.is-shown {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(1.2rem) !important;
  }

  /* 登録フォーム表示中は追従CTAを隠す */
  body.is-entry-inview .section-fv .txts .btn,
  body.is-entry-inview .section-fv .txts .btn.is-shown {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(1.2rem) !important;
  }

  .section-fv .txts .btn svg path {
    stroke: currentColor;
    transition: stroke .3s;
  }

  .section-fv .decos .deco01 {
    top: -12rem;
    right: -17rem;
    width: calc(80.3rem * .6);
  }

  .section-fv .decos .deco01-2 {
    top: 22rem;
    right: 11rem;
    width: calc(80.3rem * .6);
    z-index: 7;
    --deco-dur: 1.5s;
    --deco-delay: .5s;
    --deco-travel: 32rem;
  }

  .section-fv .decos .deco02 {
    top: -2rem;
    right: 18rem;
    width: calc(11.8rem * .6);
    --deco-dur: 0.95s;
    --deco-delay: 0.6s;
    --deco-travel: 28rem;
  }

  .section-fv .decos .deco03 {
    top: 12rem;
    right: -6rem;
    width: calc(14.4rem * .6);
    opacity: 0 !important;
  }

  .section-fv .decos .deco04 {
    top: 18rem;
    right: -4rem;
    width: calc(16.5rem * .6);
    z-index: 6;
    --deco-dur: 1.1s;
    --deco-delay: 0.8s;
    --deco-travel: 30rem;
  }

  .section-fv .decos .deco06 {
    top: 16rem;
    right: 26rem;
    width: calc(24.4rem * .6);
  }

  .section-fv .decos .deco07 {
    top: 24rem;
    right: -5rem;
    width: calc(37.5rem * .6);
    opacity: 0 !important;
  }

  .section-fv .decos .deco08 {
    top: -9rem;
    right: 25rem;
    width: calc(36.9rem * .6);
  }

  .section-fv .decos .deco09 {
    top: 6.5rem;
    right: 9.8rem;
    width: 28.9rem;
  }

  .section-fv .wrap .bnrs {
    position: static;
    margin-top: 4.5rem;
    gap: 1.45rem;
  }

  .section-fv .wrap .bnrs .bnr {
    height: 10.1rem;
    padding: .7rem;
    width: calc((100% - 1.45rem) / 2);
  }

  .section-fv .wrap .bnrs .bnr .illust {
    position: absolute;
  }

  .section-fv .wrap .bnrs .bnr01 .illust {
    width: 6.5rem;
    right: 6.6rem;
    bottom: auto;
    top: -3rem;
  }

  .section-fv .wrap .bnrs .bnr02 .illust {
    width: 6rem;
    right: 4.3rem;
    bottom: auto;
    top: -2.6rem;
  }

  .section-fv .wrap .bnrs .bnr .box {
    padding-top: 1.54rem;
  }

  .section-fv .wrap .bnrs .bnr .box p {
    font-size: 1.4rem;
    width: 100%m;
  }

  .section-fv .wrap .bnrs .bnr .box p strong {
    font-size: 2.4rem;
  }

  .section-fv .wrap .bnrs .bnr02 .box p strong {
    margin-left: 1.4rem;
  }

  .section-fv .wrap .bnrs .bnr .box p strong sup {
    font-size: 1.4rem;
    position: relative;
    top: -1rem;
  }

  .section-fv .wrap .bnrs .bnr .note {
    bottom: -3.5rem;
    width: 100vw;
    left: -20.8rem;
  }

  .section-fv .points-area {
    width: calc(100% - 5rem);
    border: solid 1px;
    margin: 6rem auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .section-fv .points {
    width: auto;
    flex-direction: column;
    border: none !important;
    padding: 2rem;
    margin: 0;
    gap: 1rem;
  }

  .section-fv .points .point {
    font-size: 1.5rem;
    gap: .4rem;
    border: none !important;
    height: auto;
  }
}

/* ---------------------------------------------------------------------------
// section-01
--------------------------------------------------------------------------- */
.section-01 {
  position: relative;
}

.section-01 .wrap {
  position: relative;
  height: 74rem;
}

.section-01 .wrap .img {
  width: 78.5rem;
  position: absolute;
  top: -11rem;
  right: -1.4rem;
  pointer-events: none;
  --fall-dur: 1.4s;
  --fall-delay: 0.2s;
  --fall-travel: 48rem;
}

.section-01 .wrap .txts {
  position: relative;
  z-index: 9;
  padding-top: 24.6rem;
  margin-left: 13.5rem;
  width: 36rem;
}

.section-01 .wrap .txts .h2 {
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.39;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(2rem);
}

.section-01 .wrap .txts .desc {
  font-size: 1.6rem;
  margin-top: 3.5rem;
  line-height: 1.7;
  font-weight: 700;
  opacity: 0;
  transform: translateY(2rem);
}

.section-01 .wrap.is-inview .txts .h2 {
  animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.45s both;
}

.section-01 .wrap.is-inview .txts .desc {
  animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.65s both;
}

.section-01 .wrap .shapes > div {
  position: absolute;
}

.section-01 .wrap .img,
.section-01 .wrap .shapes .shape01,
.section-01 .wrap .shapes .shape02,
.section-01 .wrap .shapes .shape03,
.section-01 .wrap .shapes .shape04 {
  --fall-angle: 53.0222deg;
  --fall-travel: 42rem;
  opacity: 0;
}

.section-01 .wrap.is-inview .img,
.section-01 .wrap.is-inview .shapes .shape01,
.section-01 .wrap.is-inview .shapes .shape02,
.section-01 .wrap.is-inview .shapes .shape03,
.section-01 .wrap.is-inview .shapes .shape04 {
  animation: sec01-fall var(--fall-dur, 1.2s) var(--fall-delay, 0s) cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes sec01-fall {
  from {
    opacity: 0;
    transform: translate3d(calc(sin(var(--fall-angle)) * var(--fall-travel)),
        calc(cos(var(--fall-angle)) * var(--fall-travel) * -1),
        0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.section-01 .wrap .shapes .shape01 {
  width: 6rem;
  top: 16.6rem;
  left: 4.5rem;
  --fall-dur: 1.05s;
  --fall-delay: 0.12s;
  --fall-travel: 36rem;
}

.section-01 .wrap .shapes .shape02 {
  width: 46.5rem;
  top: 12rem;
  left: 7rem;
  --fall-dur: 1.35s;
  --fall-delay: 0.38s;
  --fall-travel: 46rem;
}

.section-01 .wrap .shapes .shape03 {
  width: 7rem;
  top: 35.7rem;
  left: 42rem;
  --fall-dur: 0.95s;
  --fall-delay: 0.55s;
  --fall-travel: 38rem;
}

.section-01 .wrap .shapes .shape04 {
  width: 37.5rem;
  top: 40rem;
  right: -2rem;
  --fall-dur: 1.25s;
  --fall-delay: 0.72s;
  --fall-travel: 48rem;
}

@media screen and (max-width:768px) {
  .section-01 {
    position: relative;
  }

  .section-01 .wrap {
    position: relative;
    height: 56.8rem;
    padding: 2rem 2.5rem;
  }

  .section-01 .wrap .img {
    width: calc(78.5rem * .65);
    top: 9rem;
    right: -8.5rem;
    --fall-travel: 30rem;
  }

  .section-01 .wrap .txts {
    padding-top: 0;
    margin-left: 0;
    width: 100%;
  }

  .section-01 .wrap .txts .h2 {
    font-size: 2.4rem;
  }

  .section-01 .wrap .txts .desc {
    font-size: 1.4rem;
    margin-top: 2rem;
    width: 16.8rem;
  }

  .section-01 .wrap .shapes .shape01 {
    width: calc(6rem * .6);
    top: -2rem;
    left: 1.75rem;
  }

  .section-01 .wrap .shapes .shape02 {
    width: calc(46.5rem * .65);
    top: -4rem;
    left: -4rem;
  }

  .section-01 .wrap .shapes .shape03 {
    width: calc(7rem * .6);
    top: 10rem;
    left: 20rem;
    --fall-dur: 0.95s;
    --fall-delay: 0.55s;
    --fall-travel: 38rem;
  }

  .section-01 .wrap .shapes .shape04 {
    display: none;
  }

  .section-01 .wrap .shapes .shape01,
  .section-01 .wrap .shapes .shape02,
  .section-01 .wrap .shapes .shape03,
  .section-01 .wrap .shapes .shape04 {
    --fall-travel: 28rem;
  }
}

/* ---------------------------------------------------------------------------
// section-02
--------------------------------------------------------------------------- */
.section-02 {
  position: relative;
  padding-bottom: 6rem;
  margin-top: -10rem;
}

.section-02 .wrap {
  position: relative;
  padding: 3rem 0 1rem;
}

.logo-scroll {
  --logo-w: 15.4rem;
  --logo-gap: 4.6rem;
  --logo-row-gap: 3.2rem;
  display: flex;
  flex-direction: column;
  gap: var(--logo-row-gap);
  margin-top: 4rem;
  overflow: hidden;
  width: 100%;
  opacity: 0;
  transform: translateY(2rem);
}

.logo-scroll.is-inview {
  animation: reveal-fadeup 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s both;
}

.logo-scroll__row {
  overflow: hidden;
  width: 100%;
}

.logo-scroll__track {
  display: flex;
  width: max-content;
  will-change: transform;
  backface-visibility: hidden;
}

.logo-scroll__set {
  display: flex;
  flex-shrink: 0;
}

.logo-scroll__item {
  flex: 0 0 var(--logo-w);
  width: var(--logo-w);
  margin-right: var(--logo-gap);
}

.logo-scroll__item img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.logo-scroll__row--ltr .logo-scroll__track {
  animation: logo-scroll-ltr 10s linear infinite;
}

.logo-scroll__row--rtl .logo-scroll__track {
  animation: logo-scroll-rtl 10s linear infinite;
}

@keyframes logo-scroll-ltr {
  from {
    transform: translate3d(-50%, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes logo-scroll-rtl {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {

  .logo-scroll__row--ltr .logo-scroll__track,
  .logo-scroll__row--rtl .logo-scroll__track {
    animation: none;
    transform: none;
  }
}

@media screen and (max-width:768px) {
  .section-02 {
    position: relative;
    padding-bottom: 6rem;
    margin-top: 0;
  }

  .section-02 .wrap {
    padding: 0;
  }

  .logo-scroll {
    --logo-w: 9.1rem;
    --logo-gap: 2.8rem;
    --logo-row-gap: 2rem;
    margin-top: 3rem;
  }
}

/* ---------------------------------------------------------------------------
// section-03
--------------------------------------------------------------------------- */
.section-03 .wrap {
  position: relative;
  border-radius: 2rem;
  background: linear-gradient(251deg, #FFF3A5 10.79%, rgba(255, 110, 0, 0.40) 89.21%);
  padding: 8.7rem 0 2rem;
}

.section-03 .wrap::before {
  content: "";
  background-image: url(../img/03-arrow.svg);
  width: 27.4rem;
  height: 15.5rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  top: -7.75rem;
  left: 0;
  right: 0;
  margin: auto;
  position: absolute;
  opacity: 0;
  transform: translateY(-1.5rem);
}

.section-03 .wrap.is-inview::before {
  animation: reveal-fadedown 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.section-03 .wrap .h2 {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  opacity: 0;
  transform: translateY(1.5rem);
}

.section-03 .wrap.is-inview .h2 {
  animation: reveal-fadeup 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.section-03 .wrap .cards {
  display: flex;
  gap: 2.8rem;
  flex-wrap: wrap;
  margin-top: 2.3rem;
}

.section-03 .wrap .cards .card {
  width: calc((100% - 5.6rem) / 3);
  border-radius: 2rem;
  height: auto;
  background: #fff;
  position: relative;
  padding: 3rem 3rem 2rem;
  opacity: 0;
  transform: translateY(2rem);
}

.section-03 .wrap.is-inview .cards .card {
  animation: reveal-fadeup 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-03 .wrap.is-inview .cards .card:nth-child(1) {
  animation-delay: 0.12s;
}

.section-03 .wrap.is-inview .cards .card:nth-child(2) {
  animation-delay: 0.2s;
}

.section-03 .wrap.is-inview .cards .card:nth-child(3) {
  animation-delay: 0.28s;
}

.section-03 .wrap.is-inview .cards .card:nth-child(4) {
  animation-delay: 0.36s;
}

.section-03 .wrap.is-inview .cards .card:nth-child(5) {
  animation-delay: 0.44s;
}

.section-03 .wrap.is-inview .cards .card:nth-child(6) {
  animation-delay: 0.52s;
}

.section-03 .wrap .cards .card::before {
  content: "";
  position: absolute;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

.section-03 .wrap .cards .card01::before {
  background-image: url(../img/03-pict01.svg);
  width: 5.3rem;
  height: 4.1rem;
  top: 2.6rem;
  left: 3.4rem;
}

.section-03 .wrap .cards .card02::before {
  background-image: url(../img/03-pict02.svg);
  width: 4.1rem;
  height: 4.1rem;
  top: 2.4rem;
  left: 4rem;
}

.section-03 .wrap .cards .card03::before {
  background-image: url(../img/03-pict03.svg);
  width: 4.8rem;
  height: 4.1rem;
  top: 2.3rem;
  left: 3.5rem;
}

.section-03 .wrap .cards .card04::before {
  background-image: url(../img/03-pict04.svg);
  width: 5.1rem;
  height: 3.8rem;
  top: 2.6rem;
  left: 3.8rem;
}

.section-03 .wrap .cards .card05::before {
  background-image: url(../img/03-pict05.svg);
  width: 4.3rem;
  height: 4.2rem;
  top: 2.2rem;
  left: 3.7rem;
}

.section-03 .wrap .cards .card06::before {
  background-image: url(../img/03-pict06.svg);
  width: 4.2rem;
  height: 4.2rem;
  top: 2.2rem;
  left: 4rem;
}

.section-03 .wrap .cards .card .h3 {
  margin-left: 8rem;
  border-bottom: none;
  font-size: 2rem;
  font-weight: 700;
  padding-bottom: 1rem;
  position: relative;
  line-height: 1.4;
}

.section-03 .wrap .cards .card .h3::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='2' viewBox='0 0 5 2' fill='none'%3E%3Cpath d='M1 1H1.1' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: left center;
  background-size: 5px 2px;
}

.section-03 .wrap .cards .card p {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.7;
  margin-top: 1.4rem;
  white-space: nowrap;
}

.section-03 .wrap .note {
  width: fit-content;
  max-width: 100%;
  margin: 2rem auto 0;
  font-size: 1.4rem;
  font-weight: 400;
  text-align: left;
  padding-left: 1em;
  text-indent: -1em;
  opacity: 0;
  transform: translateY(1.2rem);
}

.section-03 .wrap.is-inview .note {
  animation: reveal-fadeup 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.7s both;
}

@media screen and (max-width:768px) {
  .section-03 {
    padding: 0 1.75rem;
  }

  .section-03 .wrap {
    padding: 7.4rem 1.75rem 3.5rem;
  }

  .section-03 .wrap::before {
    width: 18.7rem;
    height: 10.6rem;
    top: -5.3rem;
  }

  .section-03 .wrap .cards {
    gap: 1.4rem;
    margin-top: 2rem;
  }

  .section-03 .wrap .cards .card {
    width: 100%;
    padding: 3rem 3rem 2rem;
  }

  .section-03 .wrap .cards .card p {
    white-space: normal;
  }
}

/* ---------------------------------------------------------------------------
// section-04
--------------------------------------------------------------------------- */
.section-04 .wrap {
  position: relative;
  padding: 15.8rem 0 7rem;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.section-04 .wrap .illust {
  width: 15.6rem;
  position: absolute;
  left: 17.7rem;
  top: 7rem;
  opacity: 0;
  transform: translateY(1.5rem);
}

.section-04 .wrap .illust.is-inview {
  animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.section-04 .wrap .h2 {
  text-align: center;
  position: relative;
  font-size: 3.6rem;
  font-weight: 700;
  letter-spacing: calc(-1em * (.9 / 36));
  opacity: 0;
  transform: translateY(1.5rem);
}

.section-04 .wrap .h2.is-inview {
  animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-04 .wrap .h2::before {
  content: "";
  background-image: url(../img/04-line.png);
  width: 19.1rem;
  height: 4rem;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 19.1rem 4rem;
  top: 3.2rem;
  right: 1rem;
  position: absolute;
  z-index: -1;
  clip-path: inset(0 100% 0 0);
}

.section-04 .wrap .h2.is-inview::before {
  animation: sec04-marker 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
}

@keyframes sec04-marker {
  from {
    clip-path: inset(0 100% 0 0);
  }

  to {
    clip-path: inset(0 0 0 0);
  }
}

.section-04 .wrap .cards {
  width: 100%;
  display: flex;
  gap: 2.8rem;
  margin-top: 4rem;
  flex-wrap: wrap;
}

.section-04 .wrap .cards .card {
  width: calc((100% - 8.4rem) / 4);
  border: solid 1px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 9rem;
  font-weight: 700;
  line-height: 1.25;
  color: #18181B;
  opacity: 0;
  transform: translateY(1.5rem);
}

.section-04 .wrap .cards.is-inview .card {
  animation: reveal-fadeup 0.65s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-04 .wrap .cards.is-inview .card:nth-child(1) {
  animation-delay: 0.05s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(2) {
  animation-delay: 0.1s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(3) {
  animation-delay: 0.15s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(4) {
  animation-delay: 0.2s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(5) {
  animation-delay: 0.25s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(6) {
  animation-delay: 0.3s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(7) {
  animation-delay: 0.35s;
}

.section-04 .wrap .cards.is-inview .card:nth-child(8) {
  animation-delay: 0.4s;
}

.section-04 .wrap .desc {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2;
  text-align: center;
  color: #FFD700;
  margin-top: 4.5rem;
}

.section-04 .wrap .desc span {
  display: inline-block;
  margin-top: 1rem;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
}

.section-04 .wrap .desc.is-inview span {
  animation: sec04-desc-marker 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-04 .wrap .desc.is-inview span:nth-of-type(1) {
  animation-delay: 0.1s;
}

.section-04 .wrap .desc.is-inview span:nth-of-type(2) {
  animation-delay: 0.28s;
}

.section-04 .wrap .desc.is-inview span:nth-of-type(3) {
  animation-delay: 0.46s;
}

@keyframes sec04-desc-marker {
  from {
    background-size: 0% 100%;
  }

  to {
    background-size: 100% 100%;
  }
}

@media screen and (max-width:768px) {
  .section-04 .wrap {
    padding: 15.8rem 0 9rem;
  }

  .section-04 .wrap .illust {
    width: 9rem;
    right: 0;
    left: 0;
    margin: auto;
    top: 4rem;
  }

  .section-04 .wrap .h2 {
    font-size: 2.4rem;
  }

  .section-04 .wrap .h2::before {
    width: 12.1rem;
    height: 2.6rem;
    background-size: 12.1rem 2.6rem;
    top: 2rem;
    right: 2rem;
  }

  .section-04 .wrap .cards {
    gap: 1rem;
    margin-top: 3rem;
    justify-content: center;
  }

  .section-04 .wrap .cards .card {
    width: 31.5rem;
    height: 5.4rem;
  }

  .section-04 .wrap .desc {
    font-size: 1.6rem;
    margin-top: 3rem;
  }

  .section-04 .wrap .desc span {
    display: inline-block;
    margin-top: .5rem;
    background-image: linear-gradient(#000, #000);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 0% 100%;
  }

  .section-04 .wrap .desc.is-inview span {
    animation: sec04-desc-marker 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }

  .section-04 .wrap .desc.is-inview span:nth-of-type(1) {
    animation-delay: 0.1s;
  }

  .section-04 .wrap .desc.is-inview span:nth-of-type(2) {
    animation-delay: 0.28s;
  }

  .section-04 .wrap .desc.is-inview span:nth-of-type(3) {
    animation-delay: 0.46s;
  }
}

/* ---------------------------------------------------------------------------
// parallax-group / section-05
--------------------------------------------------------------------------- */
.parallax-group {
  /* 固定100vh + 切替用スクロール約3.5画面（ゆっくり入れ替え） */
  height: 450vh;
  position: relative;
  z-index: 1;
}

.section-05 {
  --sec05-t: 0;
  --sec05-s1: 0;
  --sec05-s2: 0;
  --sec05-s3: 0;
  --sec05-s4: 0;
  --sec05-arrow: 0px;
  --sec05-vh: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--sec05-vh);
  max-height: var(--sec05-vh);
  overflow: hidden;
  background: url(../img/p-bg.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 1;
}

.section-05.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

.section-05.is-passed {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  z-index: 1;
}

.section-05 .shape01 {
  width: 64.8rem;
  top: 9rem;
  bottom: 0;
  margin: auto;
  right: calc((100vw - 100rem) / 2 - 8.8rem);
  z-index: 1;
  position: absolute;
  height: 55.7rem;
  --fall-angle: 53.0222deg;
  --fall-travel: 46rem;
  --shape-p: var(--sec05-s1, 0);
  opacity: var(--shape-p);
  transform: translate3d(calc(sin(var(--fall-angle)) * var(--fall-travel) * (1 - var(--shape-p))),
      calc(cos(var(--fall-angle)) * var(--fall-travel) * -1 * (1 - var(--shape-p))),
      0);
  will-change: transform, opacity;
}

.section-05 .wrap {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 100%;
  display: flex;
  padding: 20rem 0 7rem;
  align-items: center;
}

.section-05 .wrap01 {
  z-index: 2;
}

.section-05 .wrap02 {
  z-index: 3;
  pointer-events: none;
}

.section-05.is-scene2 .wrap02 {
  pointer-events: auto;
}

.section-05::before {
  content: "";
  background-image: url(../img/03-arrow.svg);
  width: 33rem;
  height: 16.2rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  top: -5.7rem;
  left: 0;
  right: 0;
  margin: auto;
  position: absolute;
  z-index: 4;
  opacity: 0;
  transform: translateY(-1.5rem);
  translate: 0 calc(var(--sec05-arrow) * -1);
  will-change: transform, translate, opacity;
  pointer-events: none;
}

.section-05.is-inview::before {
  animation: reveal-fadedown 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.section-05 .wrap .left {
  width: 45rem;
  position: relative;
  z-index: 9;
  transition: opacity 0.45s ease;
  flex-shrink: 0;
}

.section-05 .wrap01 .left {
  opacity: 1;
}

.section-05.is-scene2 .wrap01 .left {
  opacity: 0;
  pointer-events: none;
}

.section-05 .wrap02 .left {
  opacity: 0;
}

.section-05.is-scene2 .wrap02 .left {
  opacity: 1;
}

.section-05 .wrap01 .left .h2,
.section-05 .wrap01 .left .desc01 {
  opacity: 0;
  transform: translateY(2rem);
}

.section-05.is-wrap01-in .wrap01 .left .h2 {
  animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s both;
}

.section-05.is-wrap01-in .wrap01 .left .desc01 {
  animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.35s both;
}

.section-05 .wrap02 .left .h2,
.section-05 .wrap02 .left .desc01 {
  opacity: 0;
  transform: translateY(2rem);
}

.section-05.is-scene2 .wrap02 .left .h2 {
  animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

.section-05.is-scene2 .wrap02 .left .desc01 {
  animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
}

.section-05 .wrap01 .left .h2 {
  width: 100%;
}

.section-05 .wrap02 .left .h2 {
  width: 42.3rem;
}

.section-05 .wrap .left .desc01 {
  font-weight: 700;
  line-height: 1.75;
  margin-top: 4rem;
}

.section-05 .wrap .left .desc02 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2;
  color: #FFD700;
  margin-top: 4rem;
  opacity: 0;
  transform: translateY(-1.5rem);
}

.section-05.is-wrap01-in .wrap .left .desc02 {
  animation: reveal-fadedown 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.55s both;
}

.section-05 .wrap .left .desc02 span {
  display: inline-block;
  margin-top: 1rem;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
}

.section-05.is-wrap01-in .wrap .left .desc02 span {
  animation: sec04-desc-marker 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-05.is-wrap01-in .wrap .left .desc02 span:nth-of-type(1) {
  animation-delay: 0.7s;
}

.section-05.is-wrap01-in .wrap .left .desc02 span:nth-of-type(2) {
  animation-delay: 0.88s;
}

.section-05 .wrap .right {
  margin-left: auto;
  position: relative;
  z-index: 3;
  will-change: transform;
}

/* % ではなく vh で動かし、相手画像が画面内に食い込まないようにする */
.section-05 .wrap01 .right {
  width: 47.7rem;
  transform: translate3d(0, calc(-1 * var(--sec05-vh) * var(--sec05-t)), 0);
}

.section-05 .wrap02 .right {
  width: 66.9rem;
  flex-shrink: 0;
  transform: translate3d(0, calc(var(--sec05-vh) * (1 - var(--sec05-t))), 0);
}

.section-05 .wrap .right .img {
  position: relative;
}

.section-05 .wrap .right .img div {
  position: absolute;
}

.section-05 .wrap .right .img .shape02,
.section-05 .wrap .right .img .shape03,
.section-05 .wrap .right .img .shape04 {
  --fall-angle: 53.0222deg;
  --shape-p: 0;
  opacity: var(--shape-p);
  transform: translate3d(calc(sin(var(--fall-angle)) * var(--fall-travel) * (1 - var(--shape-p))),
      calc(cos(var(--fall-angle)) * var(--fall-travel) * -1 * (1 - var(--shape-p))),
      0);
  will-change: transform, opacity;
}

.section-05 .wrap .right .img .shape02 {
  width: 15.3rem;
  top: -7rem;
  right: 17.2rem;
  z-index: 4;
  height: 12.1rem;
  --fall-travel: 36rem;
  --shape-p: var(--sec05-s2, 0);
}

.section-05 .wrap .right .img .shape03 {
  width: 17.6rem;
  bottom: 11.3rem;
  right: 1.6rem;
  z-index: 4;
  height: 13.6rem;
  --fall-travel: 40rem;
  --shape-p: var(--sec05-s3, 0);
}

.section-05 .wrap .right .img .shape04 {
  width: 24.46rem;
  bottom: 14rem;
  right: 10rem;
  z-index: 4;
  height: 18.6rem;
  --fall-travel: 42rem;
  --shape-p: var(--sec05-s4, 0);
}

@media (prefers-reduced-motion: reduce) {
  .parallax-group {
    height: auto;
  }

  .section-05 {
    position: relative;
    height: auto;
    overflow: visible;
  }

  .section-05 .wrap {
    position: relative;
    height: auto;
  }

  .section-05::before,
  .section-05 .wrap01 .left,
  .section-05 .wrap02 .left,
  .section-05 .wrap01 .left .h2,
  .section-05 .wrap01 .left .desc01,
  .section-05 .wrap02 .left .h2,
  .section-05 .wrap02 .left .desc01 {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    transition: none !important;
    animation: none !important;
  }

  .section-05 .wrap01 .right,
  .section-05 .wrap02 .right {
    transform: none !important;
  }

  .section-05 .wrap02 {
    pointer-events: auto;
  }

  .section-05 .shape01,
  .section-05 .wrap .right .img .shape02,
  .section-05 .wrap .right .img .shape03,
  .section-05 .wrap .right .img .shape04 {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* SP: 100vh固定＋スクロール連動（後続セクションの重ねもPC同様） */
@media screen and (max-width: 768px) {
  .parallax-group {
    height: 450vh;
  }

  .section-05 {
    background-image: url(../img/p-bg-sp.png);
    /* wrap間の移動距離を画面高より少し大きくし、前wrapの写真が残らないようにする */
    --sec05-shift: calc(var(--sec05-vh) * 1.2);
  }

  .section-05::before {
    width: 18.7rem;
    height: 10.6rem;
    top: -5.3rem;
  }

  .section-05 .shape01 {
    width: 38.7rem;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 0;
    left: 0;
    z-index: 1;
    position: absolute;
    max-height: 73rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .section-05 .wrap {
    height: 100%;
    padding: 8rem 2.5rem 0;
    flex-direction: column;
    max-height: 66rem;
    margin: auto;
    top: 0;
    bottom: 0;
  }

  .section-05 .wrap .left {
    width: 100%;
    height: 50%;
    transition: none;
    will-change: transform;
  }

  /* SP: テキストも画像と同じくスクロールで上下に入れ替え（フェード切替なし） */
  .section-05 .wrap01 .left,
  .section-05.is-scene2 .wrap01 .left {
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0, calc(-1 * var(--sec05-shift) * var(--sec05-t)), 0);
  }

  .section-05 .wrap02 .left,
  .section-05.is-scene2 .wrap02 .left {
    opacity: 1;
    transform: translate3d(0, calc(var(--sec05-shift) * (1 - var(--sec05-t))), 0);
  }

  .section-05 .wrap01 .right {
    width: 17.4rem;
    margin-left: 6rem;
    transform: translate3d(0, calc(-1 * var(--sec05-shift) * var(--sec05-t)), 0);
    margin-top: 5rem;
  }

  .section-05 .wrap02 .right {
    width: 37rem;
    transform: translate3d(0, calc(var(--sec05-shift) * (1 - var(--sec05-t))), 0);
    margin-top: -4rem;
    margin-right: auto;
  }

  /* SP: wrap01 / wrap02 が見えてからテキスト出現（オフスクリーンで発火済みにしない） */
  .section-05 .wrap01 .left .h2,
  .section-05 .wrap01 .left .desc01,
  .section-05 .wrap02 .left .h2,
  .section-05 .wrap02 .left .desc01 {
    opacity: 0;
    transform: translateY(2rem);
    animation: none;
  }

  .section-05.is-wrap01-in .wrap01 .left .h2 {
    animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s both;
  }

  .section-05.is-wrap01-in .wrap01 .left .desc01 {
    animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.35s both;
  }

  .section-05.is-wrap02-in .wrap02 .left .h2 {
    animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
  }

  .section-05.is-wrap02-in .wrap02 .left .desc01 {
    animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
  }

  .section-05 .wrap01 .left .h2 {
    width: 31.6rem;
  }

  .section-05 .wrap02 .left .h2 {
    width: 29.4rem;
  }

  .section-05 .wrap .left .desc01 {
    font-weight: 700;
    line-height: 1.75;
    margin-top: 2rem;
  }

  .section-05 .wrap .left .desc02 {
    font-size: 1.6rem;
    margin-top: 1rem;
  }

  .section-05 .wrap .left .desc02 span {
    margin-top: .5rem;
  }

  .section-05 .wrap .right {
    height: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .section-05 .wrap .right .img .shape02 {
    width: calc(15.3rem * .35);
    top: -2rem;
    right: 6.5rem;
    height: calc(12.1rem * .35);
  }

  .section-05 .wrap .right .img .shape03 {
    width: calc(17.6rem * .35);
    bottom: 4rem;
    right: -1rem;
    height: calc(13.6rem * .35);
  }

  .section-05 .wrap .right .img .shape04 {
    width: calc(24.46rem * .6);
    bottom: 10rem;
    right: 2.5rem;
    height: calc(18.6rem * .6);
  }

  @media (prefers-reduced-motion: reduce) {
    .parallax-group {
      height: auto;
    }

    .section-05 {
      position: relative;
      height: auto;
      overflow: visible;
    }

    .section-05 .wrap {
      position: relative;
      height: auto;
    }

    .section-05::before,
    .section-05 .wrap01 .left,
    .section-05 .wrap02 .left,
    .section-05 .wrap01 .left .h2,
    .section-05 .wrap01 .left .desc01,
    .section-05 .wrap02 .left .h2,
    .section-05 .wrap02 .left .desc01 {
      opacity: 1 !important;
      pointer-events: auto !important;
      transform: none !important;
      translate: none !important;
      transition: none !important;
      animation: none !important;
    }

    .section-05 .wrap01 .right,
    .section-05 .wrap02 .right {
      transform: none !important;
    }

    .section-05 .wrap02 {
      pointer-events: auto;
    }

    .section-05 .shape01,
    .section-05 .wrap .right .img .shape02,
    .section-05 .wrap .right .img .shape03,
    .section-05 .wrap .right .img .shape04 {
      opacity: 1 !important;
      transform: none !important;
      animation: none !important;
    }
  }
}

/* ---------------------------------------------------------------------------
// section-06（section-05 の上に重なってスクロール）
--------------------------------------------------------------------------- */
.section-06 {
  position: relative;
  z-index: 2;
  background: #fff;
}

.section-06 .pict {
  position: absolute;
  width: 12.8rem;
  height: 12.8rem;
  display: flex;
  justify-content: center;
  align-items: center;
  left: 0;
  right: 0;
  margin: auto;
  top: -6.4rem;
  background: #fff;
  border-radius: 100%;
}

.section-06 .pict img {
  width: 5.7rem;
  opacity: 0;
  transform: translateY(1.5rem) scale(0.92);
}

.section-06 .wrap.is-inview .pict img {
  animation: sec06-pict-in 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

@keyframes sec06-pict-in {
  from {
    opacity: 0;
    transform: translateY(1.5rem) scale(0.92);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.section-06 .wrap {
  padding: 9rem 0 11rem;
}

.section-06 .wrap .cards {
  margin-top: 3rem;
  display: flex;
  gap: 2.8rem;
  flex-wrap: wrap;
}

.section-06 .wrap .cards .card {
  width: calc((100% - 8.4rem) / 4);
  height: 14rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;
  font-weight: 700;
  text-align: center;
  position: relative;
  gap: 1rem;
  background: #FFD992;
  opacity: 0;
  transform: translateY(2rem);
  box-shadow: .8rem .8rem 1.75rem 0 rgba(0, 0, 0, 0.10);
}

.section-06 .wrap.is-inview .cards .card {
  animation: reveal-fadeup 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-06 .wrap.is-inview .cards .card:nth-child(1) {
  animation-delay: 0.15s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(2) {
  animation-delay: 0.23s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(3) {
  animation-delay: 0.31s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(4) {
  animation-delay: 0.39s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(5) {
  animation-delay: 0.47s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(6) {
  animation-delay: 0.55s;
}

.section-06 .wrap.is-inview .cards .card:nth-child(7) {
  animation-delay: 0.63s;
}

.section-06 .wrap .cards .card::after {
  content: "";
  background-image: url(../img/06-arrow.svg);
  width: 1.9rem;
  height: 2.6rem;
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center left;
  top: 0;
  bottom: 0;
  margin: auto;
  right: -1.9rem;
  z-index: -1;
}

.section-06 .wrap .cards .card:nth-child(4)::after,
.section-06 .wrap .cards .card:nth-child(8)::after,
.section-06 .wrap .cards .card:last-of-type::after {
  display: none;
}

.section-06 .wrap .cards .card span {
  color: #FF6E00;
  font-size: 2rem;
}

@media screen and (max-width: 768px) {
  .section-06 .pict {
    width: 10rem;
    top: -5rem;
    height: 10rem;
  }

  .section-06 .pict img {
    width: 5rem;
  }

  .section-06 .wrap {
    padding: 6rem 2.5rem 7rem;
  }

  .section-06 .wrap .cards {
    margin-top: 3rem;
    gap: 2.5rem;
    justify-content: center;
  }

  .section-06 .wrap .cards .card {
    width: 31.5rem;
    height: 10.4rem;
    gap: .6rem;
  }

  .section-06 .wrap .cards .card::after {
    content: "";
    background-position: center;
    top: auto;
    left: 0;
    right: 0;
    bottom: -2.4rem;
    margin: auto;
    transform: rotate(90deg);
    display: block !important;
  }

  .section-06 .wrap .cards .card:last-of-type::after {
    display: none !important;
  }
}

/* ---------------------------------------------------------------------------
// section-07
--------------------------------------------------------------------------- */
.section-07 {
  --sec07-scale: 1.18;
  position: relative;
  z-index: 2;
  overflow: hidden;
}

.section-07 .bg {
  position: absolute;
  inset: -12%;
  background-image: url(../img/07-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(var(--sec07-scale));
  will-change: transform;
  z-index: 0;
}

.section-07::before {
  content: "";
  opacity: 0.6;
  background: linear-gradient(251deg, #FFF3A5 10.79%, #FF6E00 58.29%, #FF6E00 89.21%);
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

.section-07 .wrap {
  padding: 21rem 0 18rem;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  text-align: center;
}

.section-07 .wrap .h2 {
  width: 62.4rem;
  opacity: 0;
  transform: translateY(2rem);
}

.section-07 .wrap .desc {
  text-align: center;
  font-weight: 700;
  margin-top: 3rem;
  line-height: 1.75;
  opacity: 0;
  transform: translateY(2rem);
}

.section-07 .wrap.is-inview .h2 {
  animation: reveal-fadeup 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.1s both;
}

.section-07 .wrap.is-inview .desc {
  animation: reveal-fadeup 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.35s both;
}

@media screen and (max-width:768px) {

  /* .section-07 .bg {
    background-image: url(../img/07-bg-sp.jpg);
  } */
  .section-07 .wrap {
    padding: 11rem 2.5rem 8rem;
  }

  .section-07 .wrap .h2 {
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
// section-08
--------------------------------------------------------------------------- */
.section-08 {
  position: relative;
  z-index: 2;
  overflow: hidden;
  background: #fff;
}

.section-08 .wrap {
  padding: 9rem 0 11rem;
}

.section-08 .wrap .faqs {
  margin-top: 4.5rem;
}

.section-08 .wrap .faqs .faq {
  border-top: 1px solid #000;
  opacity: 0;
  transform: translateY(1.5rem);
}

.section-08 .wrap.is-inview .faqs .faq {
  animation: reveal-fadeup 0.65s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(1) {
  animation-delay: 0.08s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(2) {
  animation-delay: 0.14s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(3) {
  animation-delay: 0.2s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(4) {
  animation-delay: 0.26s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(5) {
  animation-delay: 0.32s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(6) {
  animation-delay: 0.38s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(7) {
  animation-delay: 0.44s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(8) {
  animation-delay: 0.5s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(9) {
  animation-delay: 0.56s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(10) {
  animation-delay: 0.62s;
}

.section-08 .wrap.is-inview .faqs .faq:nth-child(11) {
  animation-delay: 0.68s;
}

.section-08 .wrap .faqs .faq:last-of-type {
  border-bottom: 1px solid #000;
}

.section-08 .wrap .faqs .faq .q {
  display: flex;
  padding: 2.8rem 0;
  position: relative;
  cursor: pointer;
}

.section-08 .wrap .faqs .faq .q span {
  color: #FF6E00;
  font-size: 2rem;
  width: 3.5rem;
  font-weight: 700;
  font-family: 'Fira Mono', monospace;
  position: relative;
  top: .1rem;
}

.section-08 .wrap .faqs .faq .q em {
  font-size: 1.8rem;
  width: calc(100% - 3.5rem - 2.7rem);
  ;
  font-weight: 700;
}

.section-08 .wrap .faqs .faq .q::after {
  content: "";
  background-image: url(../img/faq-arrow.svg);
  width: 1.7rem;
  height: .9rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  transform: rotate(0deg);
  transition: transform .35s ease;
}

.section-08 .wrap .faqs .faq.is-open .q::after {
  transform: rotate(180deg);
}

.section-08 .wrap .faqs .faq .a {
  margin-left: 3.5rem;
  margin-bottom: 0;
  padding: 0;
  background: transparent;
  transition: margin-bottom .4s ease;
}

.section-08 .wrap .faqs .faq.is-open .a {
  margin-bottom: 3rem;
}

.section-08 .wrap .faqs .faq .faq-body {
  height: 0;
  overflow: hidden;
  transition: height .4s ease;
}

.section-08 .wrap .faqs .faq .faq-body-inner {
  background: #F5F5F5;
  padding: 3rem 3.5rem 3rem;
  font-weight: 700;
  line-height: 1.75;
}

@media screen and (max-width:768px) {
  .section-08 .wrap {
    padding: 6rem 2.5rem 7rem;
  }

  .section-08 .wrap .faqs .faq .q {
    padding: 2.5rem 0;
  }

  .section-08 .wrap .faqs .faq .q span {
    font-size: 1.8rem;
    width: 3rem;
  }

  .section-08 .wrap .faqs .faq .q em {
    font-size: 1.6rem;
    width: calc(100% - 3rem - 2rem);
    ;
  }

  .section-08 .wrap .faqs .faq .q::after {
    width: 1.5rem;
    height: .7rem;
  }

  .section-08 .wrap .faqs .faq .a {
    margin-left: 3rem;
  }

  .section-08 .wrap .faqs .faq.is-open .a {
    margin-bottom: 2.5rem;
  }

  .section-08 .wrap .faqs .faq .faq-body-inner {
    background: #F5F5F5;
    padding: 2rem;
  }
}

/* ---------------------------------------------------------------------------
// section-09
--------------------------------------------------------------------------- */
.section-09 {
  position: relative;
  z-index: 2;
  background: #F5F8FD;
}

.section-09 .wrap {
  padding: 9rem 0 11rem;
}

.section-09 .form-dummy {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #fff;
  border-radius: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 4rem;
  color: #999;
  font-weight: 700;
  overflow: hidden;
}

.section-09 .form-dummy::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: .4rem;
  background: linear-gradient(90deg,
      #0060CC 0%,
      #0093E8 18%,
      #00BEBD 32%,
      #13C04F 42%,
      #8DCC21 52%,
      #FFC903 65%,
      #FF930F 80%,
      #FF541D 100%);
}

@media screen and (max-width:768px) {
  .section-09 .wrap {
    padding: 6rem 2rem 8rem;
  }

  .section-09 .form-dummy {
    aspect-ratio: 4 / 5;
    margin-top: 3rem;
    border-radius: 1.6rem;
    font-size: 1.4rem;
  }
}

/* ---------------------------------------------------------------------------
// reveal shared
--------------------------------------------------------------------------- */
@keyframes reveal-fadeup {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes reveal-fadedown {
  from {
    opacity: 0;
    transform: translateY(-1.5rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes reveal-fadein {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {

  .section-fv .img01,
  .section-fv .decos .deco01,
  .section-fv .decos .deco01-2,
  .section-fv .decos .deco02,
  .section-fv .decos .deco03,
  .section-fv .decos .deco04,
  .section-fv .decos .deco06,
  .section-fv .decos .deco07,
  .section-fv .decos .deco08,
  .section-fv .decos .deco09,
  .section-fv .wrap .bnrs .bnr01,
  .section-fv .wrap .bnrs .bnr02,
  .section-fv .points-area,
  .section-fv .txts .desc,
  .section-fv .txts .btn,
  .section-fv .txts .h1,
  .section-01 .wrap .txts .h2,
  .section-01 .wrap .txts .desc,
  .ttlA > span,
  .logo-scroll,
  .section-03 .wrap::before,
  .section-03 .wrap .h2,
  .section-03 .wrap .cards .card,
  .section-03 .wrap .note,
  .section-04 .wrap .illust,
  .section-04 .wrap .h2,
  .section-04 .wrap .cards .card,
  .section-06 .pict img,
  .section-06 .wrap .cards .card,
  .section-07 .wrap .h2,
  .section-07 .wrap .desc,
  .section-08 .wrap .faqs .faq,
  aside .bnrs .bnr,
  footer .wrap .raw .left .h2,
  footer .wrap .raw .left .desc,
  footer .wrap .raw .right,
  footer .wrap .copyright {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  .section-04 .wrap .h2::before,
  .section-04 .wrap .desc span {
    clip-path: none !important;
    background-size: 100% 100% !important;
    animation: none !important;
  }

  .section-05 .wrap .desc02,
  .section-05 .wrap .desc02 span {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    background-size: 100% 100% !important;
    animation: none !important;
  }

  .section-07 .bg {
    transform: none !important;
  }
}

/* ---------------------------------------------------------------------------
//  aside
--------------------------------------------------------------------------- */
aside {
  background: #fff;
  position: relative;
  z-index: 2;
}

aside .wrap {
  padding: 8rem 0;
}

aside .bnrs {
  max-width: 87rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

aside .bnrs .bnr {
  display: block;
  opacity: 0;
  transform: translateY(2rem);
}

aside .wrap.is-inview .bnrs .bnr {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.08s,
    transform 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.08s;
}

aside .wrap.is-inview .bnrs .bnr:nth-child(2) {
  transition-delay: 0.2s;
}

aside .wrap.is-inview .bnrs .bnr:hover {
  opacity: .7;
  transition: opacity .3s ease;
}

@media screen and (max-width:768px) {
  aside .wrap {
    padding: 5rem 2.5rem;
  }
}

/* ---------------------------------------------------------------------------
//  footer
--------------------------------------------------------------------------- */
footer {
  border-top: solid 1px #000;
  background: #fff;
  position: relative;
  z-index: 2;
}

footer .wrap {
  padding: 6rem 0 3rem;
}

footer .wrap .raw {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

footer .wrap .raw .left {
  width: 30.2rem;
  text-align: center;
}

footer .wrap .raw .left .h2 {
  opacity: 0;
  transform: translateY(1.5rem);
}

footer .wrap.is-inview .raw .left .h2 {
  animation: reveal-fadeup 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.05s both;
}

footer .wrap .raw .left .desc {
  font-size: 1.4rem;
  margin-top: 1.5rem;
  opacity: 0;
}

footer .wrap.is-inview .raw .left .desc {
  animation: reveal-fadein 0.7s ease 0.15s both;
}

footer .wrap .raw .right {
  width: 62.2rem;
  opacity: 0;
}

footer .wrap.is-inview .raw .right {
  animation: reveal-fadein 0.7s ease 0.2s both;
}

footer .wrap .raw .right .desc {
  font-size: 1.3rem;
  font-weight: bold;
  line-height: 1.5;
}

footer .wrap .raw .right .navs {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: solid 1px #BEBEBE;
  font-size: 1.5rem;
}

footer .wrap .raw .right .navs .nav {
  display: flex;
  justify-content: space-between;
  font-weight: bold;
}

footer .wrap .raw .right .navs .nav .link:hover {
  opacity: .7;
}

footer .wrap .copyright {
  text-align: center;
  font-size: 1rem;
  font-weight: 400;
  margin-top: 6rem;
  opacity: 0;
}

footer .wrap.is-inview .copyright {
  animation: reveal-fadein 0.7s ease 0.3s both;
}

@media screen and (max-width:768px) {
  footer .wrap {
    padding: 4rem 2.5rem 10rem;
  }

  footer .wrap .raw {
    flex-direction: column;
  }

  footer .wrap .raw .left {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  footer .wrap .raw .left .h2 {
    width: 23.4rem;
  }

  footer .wrap .raw .left .desc {
    font-size: 1.4rem;
    margin-top: 1rem;
  }

  footer .wrap .raw .right {
    width: 100%;
    text-align: center;
    margin-top: 1rem;
  }

  footer .wrap .raw .right .navs .nav {
    flex-direction: column;
    gap: 1.3rem;
  }

  footer .wrap .copyright {
    margin-top: 3rem;
  }
}

/* ---------------------------------------------------------------------------
//  PC/SP
--------------------------------------------------------------------------- */
.forSP {
  display: none;
}

@media screen and (max-width:768px) {
  .forSP {
    display: block;
  }

  .forPC {
    display: none;
  }
}