@charset "UTF-8";
:root {
  --black01: #464646;
  --purple01: #AC7B9D;
  --purple02: #86427B;
  --wrap-padding-horizontal: 2rem;
  --wrap: 110rem;
}
@media screen and (max-width: 767px) {
  :root {
    --wrap-padding-horizontal: 4rem;
  }
}

/* ------------------------------
    reset
------------------------------ */
html {
  overflow-y: scroll;
}
@media screen and (min-width: 1180px) {
  html {
    font-size: 62.5%;
  }
}
@media screen and (max-width: 1179px) {
  html {
    font-size: 0.8771929825vw;
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: 1.3333333333vw;
  }
}

*,
*:after,
*:before {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
address,
time,
ul,
ol,
li,
dl,
dt,
dd,
table,
th,
td,
img,
figure,
figcaption,
form,
input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  border: none;
  line-height: 100%;
  list-style-type: none;
  font-style: normal;
  font-weight: 400;
  font-family: YakuHanMP, "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  -webkit-text-size-adjust: 100%;
}

input,
button,
textarea,
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  resize: none;
  outline: none;
  background: none;
}

select::-ms-expand {
  display: none;
}

button:hover {
  cursor: pointer;
}

img,
object {
  vertical-align: bottom;
  width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  cursor: pointer;
}

/* base
--------------------------------*/
body {
  color: var(--black01);
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: left;
}
body:not(.is-loaded) {
  position: fixed;
  left: 0;
  width: 100%;
}
body.is-sp_nav_open {
  position: fixed;
  left: 0;
  width: 100%;
}

main {
  display: block;
  overflow: hidden;
}

section {
  position: relative;
}

/* ------------------------------
    common
------------------------------ */
@media screen and (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .u-minsp {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  a[href*="tel:"] {
    display: inline-block;
    pointer-events: none;
  }
}

.u-wrap {
  max-width: calc(var(--wrap) + var(--wrap-padding-horizontal) * 2);
  padding-inline: var(--wrap-padding-horizontal);
  margin-inline: auto;
  position: relative;
}

.u-fadein {
  opacity: 0;
  -webkit-filter: blur(1rem);
          filter: blur(1rem);
  -webkit-mask-image: linear-gradient(100deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 34%, rgba(0, 0, 0, 0) 66%, rgba(0, 0, 0, 0) 100%);
          mask-image: linear-gradient(100deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 34%, rgba(0, 0, 0, 0) 66%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
  -webkit-mask-position: 100% 0%;
          mask-position: 100% 0%;
}
.u-fadein.is-show {
  -webkit-animation: anime_fade01 1s ease 0s forwards;
          animation: anime_fade01 1s ease 0s forwards;
}

@-webkit-keyframes anime_fade01 {
  0% {
    opacity: 0;
    -webkit-filter: blur(1rem);
            filter: blur(1rem);
    -webkit-mask-position: 100% 0%;
            mask-position: 100% 0%;
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-mask-position: 0% 0%;
            mask-position: 0% 0%;
  }
}

@keyframes anime_fade01 {
  0% {
    opacity: 0;
    -webkit-filter: blur(1rem);
            filter: blur(1rem);
    -webkit-mask-position: 100% 0%;
            mask-position: 100% 0%;
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-mask-position: 0% 0%;
            mask-position: 0% 0%;
  }
}
@-webkit-keyframes anime_shine01 {
  0% {
    left: -100%;
  }
  25% {
    left: 100%;
  }
  100% {
    left: 100%;
  }
}
@keyframes anime_shine01 {
  0% {
    left: -100%;
  }
  25% {
    left: 100%;
  }
  100% {
    left: 100%;
  }
}
.slick-slider:not(.slick-initialized) {
  display: none;
}
.slick-slider div {
  -webkit-transition: none;
  transition: none;
}

.l-header {
  width: 100%;
  height: 90px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  opacity: 0;
  -webkit-transition: opacity 1s 1s;
  transition: opacity 1s 1s;
}
@media screen and (max-width: 767px) {
  .l-header {
    height: 50px;
  }
}
body.is-loaded .l-header {
  opacity: 1;
}

.l-header__wrap {
  max-width: 144rem;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: min(5.5555555556vw, 50px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-inline: min(5.1111111111vw, 46px);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .l-header__wrap {
    gap: 10px;
    padding-inline: 10px;
  }
}

.l-header__logo {
  width: min(18.8888888889vw, 170px);
  cursor: pointer;
}
@media (any-hover: hover) {
  .l-header__logo {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-header__logo:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .l-header__logo {
    position: relative;
    z-index: 1;
    width: 113px;
  }
}

.l-header-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: min(2.2222222222vw, 20px);
}

.l-header-menu__item a {
  font-size: min(1.7777777778vw, 16px);
  color: var(--purple01);
  letter-spacing: 0.05em;
  text-transform: capitalize;
}
@media (any-hover: hover) {
  .l-header-menu__item a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-header-menu__item a:hover {
    opacity: 0.6;
  }
}

.l-header-sound {
  color: var(--purple01);
  font-size: min(1.7777777778vw, 16px);
  letter-spacing: 0.05em;
  display: grid;
  grid-template-columns: 1fr min(10.6666666667vw, 96px);
  gap: min(1.1111111111vw, 10px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  .l-header-sound {
    position: relative;
    z-index: 1;
    font-size: 13px;
    letter-spacing: 0;
    grid-template-columns: 1fr 78px;
    gap: 10px;
  }
}

.l-header-sound__title {
  text-transform: capitalize;
}

.l-header-sound__buttons {
  --l-header-sound__buttons_padding: 3px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  height: 28px;
  background: var(--purple01);
  border-radius: calc(infinity * 1px);
  padding: var(--l-header-sound__buttons_padding);
}
@media screen and (max-width: 767px) {
  .l-header-sound__buttons {
    gap: 0;
    height: 22px;
  }
}
.l-header-sound__buttons.is-muted .l-header-sound__item--on {
  --l-header-sound__item_color: white;
}
@media (any-hover: hover) {
  .l-header-sound__buttons.is-muted .l-header-sound__item--on:hover {
    --l-header-sound__item_color: rgb(255 255 255/0.6);
  }
}
.l-header-sound__buttons.is-muted .l-header-sound__item--off {
  --l-header-sound__item_color: var(--purple01);
}
@media (any-hover: hover) {
  .l-header-sound__buttons.is-muted .l-header-sound__item--off:hover {
    --l-header-sound__item_color: rgb(172 123 157/0.6);
  }
}
.l-header-sound__buttons:not(.is-muted) .l-header-sound__item--on {
  --l-header-sound__item_color: var(--purple01);
}
@media (any-hover: hover) {
  .l-header-sound__buttons:not(.is-muted) .l-header-sound__item--on:hover {
    --l-header-sound__item_color: rgb(172 123 157/0.6);
  }
}
.l-header-sound__buttons:not(.is-muted) .l-header-sound__item--off {
  --l-header-sound__item_color: white;
}
@media (any-hover: hover) {
  .l-header-sound__buttons:not(.is-muted) .l-header-sound__item--off:hover {
    --l-header-sound__item_color: rgb(255 255 255/0.6);
  }
}
.l-header-sound__buttons:not(.is-muted) .l-header-sound__item--off::before {
  translate: -100% 0;
}

.l-header-sound__item {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-transform: uppercase;
  color: var(--l-header-sound__item_color);
  cursor: pointer;
  line-height: 1;
  text-align: center;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}
.l-header-sound__item.l-header-sound__item--on {
  padding-left: 0.1em;
}
@media screen and (max-width: 767px) {
  .l-header-sound__item.l-header-sound__item--on {
    padding-left: 0;
  }
}
.l-header-sound__item.l-header-sound__item--off {
  padding-right: 0.1em;
  position: relative;
}
@media screen and (max-width: 767px) {
  .l-header-sound__item.l-header-sound__item--off {
    padding-right: 0;
  }
}
.l-header-sound__item.l-header-sound__item--off::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: min(5vw, 45px);
  height: 100%;
  background: white;
  border-radius: calc(infinity * 1px);
  -webkit-transition: translate 0.3s;
  transition: translate 0.3s;
}
@media screen and (max-width: 767px) {
  .l-header-sound__item.l-header-sound__item--off::before {
    width: 36px;
  }
}

.l-header-sound__item-text {
  position: relative;
  z-index: 1;
  display: block;
}

.l-toggle-button {
  position: relative;
  z-index: 1;
  width: 30px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  background: var(--purple01);
}
.l-toggle-button span {
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: 9px;
  height: 2px;
  background: white;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  border-radius: calc(infinity * 1px);
}
.l-toggle-button span:nth-child(1) {
  top: 11px;
}
.l-toggle-button span:nth-child(2) {
  top: 17px;
}
.is-sp_nav_open .l-toggle-button span {
  width: 12px;
}
.is-sp_nav_open .l-toggle-button span:nth-child(1) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 14px;
}
.is-sp_nav_open .l-toggle-button span:nth-child(2) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  top: 14px;
}

.l-sp-nav {
  display: none;
}
@media screen and (max-width: 767px) {
  .l-sp-nav {
    position: fixed;
    top: 0;
    right: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    height: 100dvh;
    visibility: hidden;
    -webkit-transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
    transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
    transition: transform 0.3s, opacity 0.3s, visibility 0.3s;
    transition: transform 0.3s, opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
    background: white;
    padding: 63px 20px 30px;
  }
  .is-sp_nav_open .l-sp-nav {
    visibility: visible;
  }
}

.l-sp-nav-menu {
  display: grid;
  grid-template-columns: 1fr;
  gap: 27px;
  padding-inline: 20px;
}

.l-sp-nav-menu__item a {
  display: block;
  font-size: 18px;
  letter-spacing: 0.05em;
  color: var(--purple01);
  text-transform: capitalize;
}

.l-sp-nav-banner {
  position: relative;
  margin: 93px auto 0;
  max-width: 335px;
}

.l-sp-nav-banner__text {
  position: absolute;
  top: 10.7rem;
  left: 9rem;
  z-index: 1;
  font-size: 2rem;
  line-height: 1;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}

.l-sp-nav-submenu {
  margin-top: 23px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 24px;
}

.l-sp-nav-submenu__item a {
  position: relative;
  font-size: 12px;
  padding-right: 16px;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
.l-sp-nav-submenu__item a::after {
  content: "";
  position: absolute;
  top: calc((1.5em - 10px) / 2);
  right: 0;
  width: 11px;
  aspect-ratio: 1/1;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"><path fill="%23464646" d="M19.46,22H1c-.55,0-1-.45-1-1V2.54c0-.55.45-1,1-1h4.62c.55,0,1,.45,1,1s-.45,1-1,1h-3.62v16.46h16.46v-5.15c0-.55.45-1,1-1s1,.45,1,1v6.15c0,.55-.45,1-1,1ZM21.92.62c-.1-.24-.3-.44-.54-.54-.12-.05-.25-.08-.38-.08h-8.81c-.55,0-1,.45-1,1s.45,1,1,1h6.4l-7.29,7.29c-.39.39-.39,1.02,0,1.41.2.2.45.29.71.29s.51-.1.71-.29l7.29-7.29v6.4c0,.55.45,1,1,1s1-.45,1-1V1c0-.13-.03-.26-.08-.38Z" /></svg>') no-repeat center center/contain;
}
@media (any-hover: hover) {
  .l-sp-nav-submenu__item a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-sp-nav-submenu__item a:hover {
    opacity: 0.6;
  }
}

.l-sp-nav-sns {
  margin-top: 33px;
}

.l-sp-nav-sns__title {
  font-size: 14px;
  color: var(--purple01);
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.05em;
}

.l-sp-nav-sns-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 15px;
  margin-top: 12px;
}

.l-sp-nav-sns-grid__item.l-sp-nav-sns-grid__item--x {
  --l-sp-nav-sns-grid__item_width: 18px;
}
.l-sp-nav-sns-grid__item.l-sp-nav-sns-grid__item--line {
  --l-sp-nav-sns-grid__item_width: 23px;
}
.l-sp-nav-sns-grid__item.l-sp-nav-sns-grid__item--fb {
  --l-sp-nav-sns-grid__item_width: 11px;
}
.l-sp-nav-sns-grid__item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 45px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  background: var(--purple01);
}
.l-sp-nav-sns-grid__item a img {
  width: var(--l-sp-nav-sns-grid__item_width);
}

.l-footer {
  width: 100%;
  height: 5rem;
  position: relative;
  background: var(--purple01);
}
@media screen and (max-width: 767px) {
  .l-footer {
    height: auto;
    padding-block: 7rem 6rem;
  }
}

.l-footer_backtotop {
  position: absolute;
  top: 0;
  left: 5rem;
  translate: 0 calc(-100% - 5rem);
  width: 10rem;
  cursor: pointer;
}
@media (any-hover: hover) {
  .l-footer_backtotop {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .l-footer_backtotop:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .l-footer_backtotop {
    top: 0;
    left: 50%;
    translate: -50% calc(100% - 15rem);
    width: 24rem;
    height: 4rem;
    color: var(--purple01);
    font-size: 2.8rem;
    font-weight: 500;
    padding-left: 5rem;
    letter-spacing: 0.03em;
  }
  .l-footer_backtotop::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4.2rem;
    aspect-ratio: 1/1;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><path fill="%23AC7B9D" d="M28.16,21.58l-7.16-7.16-7.16,7.16-1.41-1.41,8.58-8.58,8.58,8.58-1.41,1.41ZM22,13h-2v16h2V13ZM42,21C42,9.42,32.58,0,21,0S0,9.42,0,21s9.42,21,21,21,21-9.42,21-21ZM40,21c0,10.48-8.52,19-19,19S2,31.48,2,21,10.52,2,21,2s19,8.52,19,19Z" /></svg>');
  }
}

.l-footer__wrap {
  max-width: 144rem;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-inline: 4.6rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .l-footer__wrap {
    display: block;
  }
}

.l-footer__logo a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.7rem;
}
@media screen and (max-width: 767px) {
  .l-footer__logo a {
    display: block;
    text-align: center;
  }
}
.l-footer__logo img {
  display: block;
  width: 8.8rem;
}
@media screen and (max-width: 767px) {
  .l-footer__logo img {
    width: 24.2rem;
    margin-inline: auto;
  }
}

.l-footer__text {
  color: white;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .l-footer__text {
    font-size: 2.4rem;
    margin-top: 3rem;
  }
}

.l-footer__copy {
  color: white;
  font-size: 1rem;
  line-height: 1;
  text-align: right;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 767px) {
  .l-footer__copy {
    font-size: 2rem;
    text-align: center;
    margin-top: 5rem;
    letter-spacing: 0;
  }
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100svh;
  z-index: 11;
  -webkit-mask-image: linear-gradient(100deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 33%, rgb(0, 0, 0) 50%);
          mask-image: linear-gradient(100deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 33%, rgb(0, 0, 0) 50%);
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
  -webkit-mask-position: 100% 0%;
          mask-position: 100% 0%;
}
body.is-animation .loading {
  -webkit-animation: 2s 3.8s anime_loading_open ease forwards;
          animation: 2s 3.8s anime_loading_open ease forwards;
}

body.is-loaded .loading {
  display: none;
}

@-webkit-keyframes anime_loading_open {
  0% {
    -webkit-mask-position: 100% 0%;
            mask-position: 100% 0%;
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 0;
  }
  100% {
    -webkit-mask-position: 0% 0%;
            mask-position: 0% 0%;
    opacity: 0;
  }
}

@keyframes anime_loading_open {
  0% {
    -webkit-mask-position: 100% 0%;
            mask-position: 100% 0%;
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 0;
  }
  100% {
    -webkit-mask-position: 0% 0%;
            mask-position: 0% 0%;
    opacity: 0;
  }
}
.loading__inner {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  background: linear-gradient(135deg, rgb(212, 203, 219) 0%, rgb(235, 198, 214) 100%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.loading__inner::before {
  background: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, 0.6)), color-stop(75%, rgba(255, 255, 255, 0)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 75%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  -webkit-transform: skewX(-30deg);
          transform: skewX(-30deg);
  width: 100%;
  opacity: 0.3;
  -webkit-filter: blur(10px);
          filter: blur(10px);
}
body.is-animation .loading__inner::before {
  -webkit-animation: 1.2s 2.2s anime_loading_shine linear forwards;
          animation: 1.2s 2.2s anime_loading_shine linear forwards;
}

.loading__logo {
  position: relative;
  width: 28rem;
  -webkit-mask-image: linear-gradient(100deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 23%, rgba(0, 0, 0, 0.37) 52%, rgba(0, 0, 0, 0) 100%);
          mask-image: linear-gradient(100deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 23%, rgba(0, 0, 0, 0.37) 52%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-size: 300% 100%;
          mask-size: 300% 100%;
  -webkit-mask-position: 100% 0%;
          mask-position: 100% 0%;
  opacity: 0;
  -webkit-filter: blur(1rem);
          filter: blur(1rem);
}
body.is-animation .loading__logo {
  -webkit-animation: anime_fade01 0.7s ease 1.2s forwards;
          animation: anime_fade01 0.7s ease 1.2s forwards;
}

@-webkit-keyframes anime_loading_shine {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}

@keyframes anime_loading_shine {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
.mv {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 50rem;
}
@media screen and (max-width: 767px) {
  .mv {
    min-height: 110rem;
  }
}

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

.mv__banner {
  position: absolute;
  right: 2.3rem;
  bottom: 2.3rem;
  width: 34rem;
  aspect-ratio: 680/228;
  -webkit-transition: opacity 1s 1s;
  transition: opacity 1s 1s;
  opacity: 0;
}
body.is-loaded .mv__banner {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  body.is-loaded .mv__banner {
    opacity: 0;
  }
  body.is-loaded .mv__banner.is-show {
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .mv__banner {
    position: fixed;
    bottom: 0;
    left: 50%;
    z-index: 9;
    translate: -50% 0;
    width: 67rem;
    aspect-ratio: 1340/240;
  }
}
.mv__banner a {
  display: block;
  width: 100%;
  height: 100%;
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
  color: transparent;
  background: url(../img/bnr_mv01_pc.png) no-repeat center center/contain;
  -webkit-filter: drop-shadow(0.5rem 0.5rem 0.5rem rgba(128, 114, 128, 0.6));
          filter: drop-shadow(0.5rem 0.5rem 0.5rem rgba(128, 114, 128, 0.6));
}
@media (any-hover: hover) {
  .mv__banner a:hover {
    background: url(../img/bnr_mv01_pc_on.png) no-repeat center center/contain;
  }
}
@media screen and (max-width: 767px) {
  .mv__banner a {
    background: url(../img/bnr_mv01_sp.png) no-repeat center center/contain;
  }
}

.background-area {
  background: url(../img/bg_background-area01.jpg) no-repeat center top/cover;
}
.background-area > *:nth-child(even) {
  background: rgba(255, 255, 255, 0.6);
}

.concept {
  padding-block: 15.5rem 14rem;
  position: relative;
}
.concept.is-show::before {
  -webkit-animation: 4s 0s anime_shine01 linear infinite;
          animation: 4s 0s anime_shine01 linear infinite;
  background: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, 0.6)), color-stop(75%, rgba(255, 255, 255, 0)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 75%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  -webkit-transform: skewX(-30deg);
          transform: skewX(-30deg);
  width: 100%;
  -webkit-filter: blur(10px);
          filter: blur(10px);
}
@media screen and (max-width: 767px) {
  .concept {
    padding-block: 21.5rem 19.5rem;
  }
}
.concept::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1.5rem;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(128, 114, 128, 0)), to(rgba(128, 114, 128, 0.2)));
  background: linear-gradient(0deg, rgba(128, 114, 128, 0) 0%, rgba(128, 114, 128, 0.2) 100%);
  mix-blend-mode: multiply;
}

.concept__title {
  width: 30rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .concept__title {
    width: 45rem;
  }
}

.concept__lead01 {
  font-size: 2.6rem;
  line-height: 1.7307692308;
  letter-spacing: 0.2em;
  margin-top: 5rem;
  letter-spacing: 0.15em;
  text-align: center;
  padding-left: 0.15em;
}
@media screen and (max-width: 767px) {
  .concept__lead01 {
    font-size: 3.8rem;
    line-height: 1.5526315789;
    margin-top: 10.2rem;
  }
}

.concept__lead02 {
  font-size: 3rem;
  line-height: 1.5;
  letter-spacing: 0.15em;
  text-align: center;
  padding-left: 0.15em;
}
@media screen and (max-width: 767px) {
  .concept__lead02 {
    font-size: 4.4rem;
    line-height: 1.5454545455;
  }
}

.concept__texts {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .concept__texts {
    margin-top: 3rem;
  }
}

.concept__text {
  font-size: 1.8rem;
  line-height: 2.6666666667;
  letter-spacing: 0.15em;
  text-align: center;
  padding-left: 0.15em;
}
@media screen and (max-width: 767px) {
  .concept__text {
    font-size: 3rem;
    line-height: 2.5;
    letter-spacing: 0.05em;
    text-align: center;
    padding-left: 0.05em;
  }
}
.concept__text:nth-child(n+2) {
  margin-top: -0.3em;
}
@media screen and (max-width: 767px) {
  .concept__text:nth-child(n+2) {
    margin-top: 0.4rem;
  }
}

.lineup {
  padding-block: 9.7rem;
  position: relative;
}
.lineup.is-show::before {
  -webkit-animation: 4s 0s anime_shine01 linear infinite;
          animation: 4s 0s anime_shine01 linear infinite;
  background: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, 0.6)), color-stop(75%, rgba(255, 255, 255, 0)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 75%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  -webkit-transform: skewX(-30deg);
          transform: skewX(-30deg);
  width: 100%;
  -webkit-filter: blur(10px);
          filter: blur(10px);
}
@media screen and (max-width: 767px) {
  .lineup {
    padding-block: 16.5rem 15rem;
    --wrap-padding-horizontal: 4.5rem;
  }
}

.lineup__title {
  width: 25.5rem;
}
@media screen and (max-width: 767px) {
  .lineup__title {
    width: 31.9rem;
  }
}

.lineup-slide {
  margin-top: 5.5rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide {
    margin-top: 11rem;
  }
}
.lineup-slide:not(.slick-initialized) {
  display: none;
}
.lineup-slide .slick-list {
  overflow: visible;
}
@media screen and (min-width: 768px) {
  .lineup-slide .slick-list {
    padding: 0 !important;
  }
}
.lineup-slide .slick-arrow {
  position: absolute;
  top: 9.3rem;
  width: 3rem;
  aspect-ratio: 3/10;
  text-indent: -100%;
  color: transparent;
  font-size: 0;
  z-index: 1;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.01 100.51"><path fill="%23464646" d="M30.15,100.51L0,50.26,30.15,0l.86.51L1.17,50.26l29.85,49.74-.86.51Z" /></svg>') no-repeat center center/contain;
}
@media (any-hover: hover) {
  .lineup-slide .slick-arrow {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .lineup-slide .slick-arrow:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .lineup-slide .slick-arrow {
    top: 20rem;
  }
}
.lineup-slide .slick-arrow.slick-prev {
  left: 0;
}
@media screen and (max-width: 767px) {
  .lineup-slide .slick-arrow.slick-prev {
    left: 9.5rem;
  }
}
.lineup-slide .slick-arrow.slick-next {
  right: 0;
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}
@media screen and (max-width: 767px) {
  .lineup-slide .slick-arrow.slick-next {
    right: 9.5rem;
  }
}
.lineup-slide .slick-dots {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide .slick-dots {
    gap: 2.8rem;
    margin-top: 10rem;
  }
}
.lineup-slide .slick-dots li button {
  width: 0.5rem;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
  color: transparent;
  background: var(--black01);
}
@media (any-hover: hover) {
  .lineup-slide .slick-dots li button {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .lineup-slide .slick-dots li button:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .lineup-slide .slick-dots li button {
    width: 1.4rem;
  }
}
.lineup-slide .slick-dots li.slick-active button {
  opacity: 0.6;
}

.lineup-slide-item {
  opacity: 0;
  -webkit-filter: blur(1rem);
          filter: blur(1rem);
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding-top: 34.2rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item {
    padding-top: 55rem;
  }
}
.lineup-slide-item::before {
  position: absolute;
  top: var(--lineup-slide-item_before_top);
  right: var(--lineup-slide-item_before_right);
  content: "renewal";
  width: 7rem;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  border: 1px solid var(--purple01);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1;
  color: var(--purple01);
  text-transform: uppercase;
  font-size: 1rem;
  font-family: YakuHanJP, "Montserrat", sans-serif;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item::before {
    width: 10.5rem;
    font-size: 1.6rem;
  }
}
.lineup.is-show .lineup-slide-item:nth-child(1) {
  -webkit-animation: anime_fade01 1s ease 0.2s forwards;
          animation: anime_fade01 1s ease 0.2s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(2) {
  -webkit-animation: anime_fade01 1s ease 0.4s forwards;
          animation: anime_fade01 1s ease 0.4s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(3) {
  -webkit-animation: anime_fade01 1s ease 0.6s forwards;
          animation: anime_fade01 1s ease 0.6s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(4) {
  -webkit-animation: anime_fade01 1s ease 0.8s forwards;
          animation: anime_fade01 1s ease 0.8s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(5) {
  -webkit-animation: anime_fade01 1s ease 1s forwards;
          animation: anime_fade01 1s ease 1s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(6) {
  -webkit-animation: anime_fade01 1s ease 1.2s forwards;
          animation: anime_fade01 1s ease 1.2s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(7) {
  -webkit-animation: anime_fade01 1s ease 1.4s forwards;
          animation: anime_fade01 1s ease 1.4s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(8) {
  -webkit-animation: anime_fade01 1s ease 1.6s forwards;
          animation: anime_fade01 1s ease 1.6s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(9) {
  -webkit-animation: anime_fade01 1s ease 1.8s forwards;
          animation: anime_fade01 1s ease 1.8s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(10) {
  -webkit-animation: anime_fade01 1s ease 2s forwards;
          animation: anime_fade01 1s ease 2s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(11) {
  -webkit-animation: anime_fade01 1s ease 2.2s forwards;
          animation: anime_fade01 1s ease 2.2s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(12) {
  -webkit-animation: anime_fade01 1s ease 2.4s forwards;
          animation: anime_fade01 1s ease 2.4s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(13) {
  -webkit-animation: anime_fade01 1s ease 2.6s forwards;
          animation: anime_fade01 1s ease 2.6s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(14) {
  -webkit-animation: anime_fade01 1s ease 2.8s forwards;
          animation: anime_fade01 1s ease 2.8s forwards;
}
.lineup.is-show .lineup-slide-item:nth-child(15) {
  -webkit-animation: anime_fade01 1s ease 3s forwards;
          animation: anime_fade01 1s ease 3s forwards;
}

.lineup-slide-item.lineup-slide-item--item01 {
  --lineup-slide-item_before_top: -1.5rem;
  --lineup-slide-item_before_right: 5.7rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item.lineup-slide-item--item01 {
    --lineup-slide-item_before_top: -1.1rem;
    --lineup-slide-item_before_right: 3.7rem;
  }
}
.lineup-slide-item.lineup-slide-item--item02 {
  --lineup-slide-item_before_top: -1.5rem;
  --lineup-slide-item_before_right: 5.7rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item.lineup-slide-item--item02 {
    --lineup-slide-item_before_top: -1.1rem;
    --lineup-slide-item_before_right: 3.7rem;
  }
}
.lineup-slide-item.lineup-slide-item--item03 {
  --lineup-slide-item_before_top: -1.5rem;
  --lineup-slide-item_before_right: 5.7rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item.lineup-slide-item--item03 {
    --lineup-slide-item_before_top: -1.1rem;
    --lineup-slide-item_before_right: 3.7rem;
  }
}
.lineup-slide-item.lineup-slide-item--item04 {
  --lineup-slide-item_before_top: 7rem;
  --lineup-slide-item_before_right: 4rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item.lineup-slide-item--item04 {
    --lineup-slide-item_before_top: 11rem;
    --lineup-slide-item_before_right: 3.8rem;
  }
}
.lineup-slide-item.lineup-slide-item--item05 {
  --lineup-slide-item_before_top: 7rem;
  --lineup-slide-item_before_right: 4.5rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item.lineup-slide-item--item05 {
    --lineup-slide-item_before_top: 11rem;
    --lineup-slide-item_before_right: 3.8rem;
  }
}

.lineup-slide-item__image {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
  width: 21.7rem;
  aspect-ratio: 434/1284;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item__image {
    width: 33rem;
  }
}

.lineup-slide-item__texts {
  position: relative;
  text-align: center;
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.slick-current .lineup-slide-item__texts {
  opacity: 1;
}

.lineup-slide-item__bland {
  font-size: 1.4rem;
  line-height: 1.8571428571;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item__bland {
    font-size: 2.4rem;
    line-height: 1.4166666667;
  }
}

.lineup-slide-item__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.7em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.6rem;
  line-height: 1.625;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item__name {
    font-size: 2.8rem;
    line-height: 1.5;
    letter-spacing: -0.05em;
  }
}

.lineup-slide-item-price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 0.2rem;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item-price {
    display: block;
  }
}

.lineup-slide-item-price__text {
  font-size: 1.2rem;
  line-height: 2.1666666667;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item-price__text {
    font-size: 2.4rem;
    line-height: 1.75;
  }
}
@media screen and (max-width: 767px) {
  .lineup-slide-item-price__text:nth-child(n+2) {
    margin-top: -0.5rem;
  }
}
.lineup-slide-item-price__text:nth-child(n+2)::before {
  content: "/";
  display: inline-block;
  margin-inline: 1em;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item-price__text:nth-child(n+2)::before {
    content: none;
  }
}

.lineup-slide-item__type {
  font-size: 1.4rem;
  width: 8rem;
  aspect-ratio: 8/2;
  border-radius: calc(infinity * 1px);
  margin: 1rem auto 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1;
  border: 1px solid var(--black01);
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .lineup-slide-item__type {
    font-size: 2.4rem;
    width: 13.6rem;
    aspect-ratio: 136/34;
    margin-top: 3.9rem;
  }
}

.review {
  padding-block: 11rem 9.7rem;
  position: relative;
}
.review.is-show::before {
  -webkit-animation: 4s 0s anime_shine01 linear infinite;
          animation: 4s 0s anime_shine01 linear infinite;
  background: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, 0.6)), color-stop(75%, rgba(255, 255, 255, 0)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 75%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  -webkit-transform: skewX(-30deg);
          transform: skewX(-30deg);
  width: 100%;
  -webkit-filter: blur(10px);
          filter: blur(10px);
}
@media screen and (max-width: 767px) {
  .review {
    padding-block: 16.5rem 15rem;
    --wrap-padding-horizontal: 4.5rem;
  }
}

.review__title {
  width: 25rem;
}
@media screen and (max-width: 767px) {
  .review__title {
    width: 31.1rem;
  }
}

.review__heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .review__heading {
    display: block;
  }
}

.review__note {
  color: var(--purple01);
  font-size: 1.4rem;
  text-align: right;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .review__note {
    font-size: 2.4rem;
    text-align: left;
    margin-top: 1rem;
  }
}

.review-movielist {
  margin-top: 4rem;
}
@media screen and (min-width: 768px) {
  .review-movielist {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 3rem;
  }
}
@media screen and (max-width: 767px) {
  .review-movielist {
    margin-top: 7.8rem;
  }
  .review-movielist .slick-list {
    overflow: visible;
  }
  .review-movielist .slick-dots {
    position: relative;
    z-index: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 2.8rem;
    margin-top: 6.5rem;
  }
  .review-movielist .slick-dots li button {
    width: 1.4rem;
    aspect-ratio: 1/1;
    border-radius: calc(infinity * 1px);
    text-indent: 100%;
    overflow: hidden;
    white-space: nowrap;
    color: transparent;
    background: var(--black01);
  }
  .review-movielist .slick-dots li.slick-active button {
    opacity: 0.6;
  }
}

.review-movielist-item {
  opacity: 0;
  translate: 0 2rem;
}
@media screen and (max-width: 767px) {
  .review-movielist-item {
    margin-inline: 2.5rem;
  }
}
.review.is-show .review-movielist-item:nth-child(1) {
  -webkit-animation: anime_movie01 1s ease 0.2s forwards;
          animation: anime_movie01 1s ease 0.2s forwards;
}
.review.is-show .review-movielist-item:nth-child(2) {
  -webkit-animation: anime_movie01 1s ease 0.4s forwards;
          animation: anime_movie01 1s ease 0.4s forwards;
}
.review.is-show .review-movielist-item:nth-child(3) {
  -webkit-animation: anime_movie01 1s ease 0.6s forwards;
          animation: anime_movie01 1s ease 0.6s forwards;
}
.review.is-show .review-movielist-item:nth-child(4) {
  -webkit-animation: anime_movie01 1s ease 0.8s forwards;
          animation: anime_movie01 1s ease 0.8s forwards;
}
.review.is-show .review-movielist-item:nth-child(5) {
  -webkit-animation: anime_movie01 1s ease 1s forwards;
          animation: anime_movie01 1s ease 1s forwards;
}
.review.is-show .review-movielist-item:nth-child(6) {
  -webkit-animation: anime_movie01 1s ease 1.2s forwards;
          animation: anime_movie01 1s ease 1.2s forwards;
}
.review.is-show .review-movielist-item:nth-child(7) {
  -webkit-animation: anime_movie01 1s ease 1.4s forwards;
          animation: anime_movie01 1s ease 1.4s forwards;
}
.review.is-show .review-movielist-item:nth-child(8) {
  -webkit-animation: anime_movie01 1s ease 1.6s forwards;
          animation: anime_movie01 1s ease 1.6s forwards;
}
.review.is-show .review-movielist-item:nth-child(9) {
  -webkit-animation: anime_movie01 1s ease 1.8s forwards;
          animation: anime_movie01 1s ease 1.8s forwards;
}
.review.is-show .review-movielist-item:nth-child(10) {
  -webkit-animation: anime_movie01 1s ease 2s forwards;
          animation: anime_movie01 1s ease 2s forwards;
}
.review.is-show .review-movielist-item:nth-child(11) {
  -webkit-animation: anime_movie01 1s ease 2.2s forwards;
          animation: anime_movie01 1s ease 2.2s forwards;
}
.review.is-show .review-movielist-item:nth-child(12) {
  -webkit-animation: anime_movie01 1s ease 2.4s forwards;
          animation: anime_movie01 1s ease 2.4s forwards;
}
.review.is-show .review-movielist-item:nth-child(13) {
  -webkit-animation: anime_movie01 1s ease 2.6s forwards;
          animation: anime_movie01 1s ease 2.6s forwards;
}
.review.is-show .review-movielist-item:nth-child(14) {
  -webkit-animation: anime_movie01 1s ease 2.8s forwards;
          animation: anime_movie01 1s ease 2.8s forwards;
}
.review.is-show .review-movielist-item:nth-child(15) {
  -webkit-animation: anime_movie01 1s ease 3s forwards;
          animation: anime_movie01 1s ease 3s forwards;
}

@media screen and (max-width: 767px) {
  .review-movielist-item.slick-active .review-movielist-item__image {
    opacity: 0;
    z-index: -1;
  }
}

@-webkit-keyframes anime_movie01 {
  0% {
    opacity: 0;
    translate: 0 2rem;
  }
  100% {
    opacity: 1;
    translate: 0 0;
  }
}

@keyframes anime_movie01 {
  0% {
    opacity: 0;
    translate: 0 2rem;
  }
  100% {
    opacity: 1;
    translate: 0 0;
  }
}
.review-movielist-item__movie {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  line-height: 1;
  font-size: 0;
  aspect-ratio: 9/16;
}
@media screen and (max-width: 767px) {
  .review-movielist-item__movie {
    border-radius: 1.6rem;
  }
}
.review-movielist-item__movie iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (any-hover: hover) {
  .review-movielist-item__movie {
    cursor: pointer;
  }
  .review-movielist-item__movie:hover .review-movielist-item__image {
    opacity: 0;
    z-index: -1;
  }
}
.review-movielist-item__movie::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.review-movielist-item__image {
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
}
.review-movielist-item__image::before {
  content: "";
  position: absolute;
  bottom: 1.1rem;
  right: 1.1rem;
  width: 3.3rem;
  aspect-ratio: 1/1;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50.83 50.83"><path fill="%23ac7b9d" d="M19.01,35.42l20-10-20-10v20ZM25.42,50.83C11.4,50.83,0,39.43,0,25.42S11.4,0,25.42,0s25.42,11.4,25.42,25.42-11.4,25.42-25.42,25.42ZM25.42.83C11.86.83.83,11.86.83,25.42s11.03,24.58,24.58,24.58,24.58-11.03,24.58-24.58S38.97.83,25.42.83Z" /></svg>');
}
@media screen and (max-width: 767px) {
  .review-movielist-item__image::before {
    bottom: 2rem;
    right: 2rem;
    width: 6rem;
  }
}
.review-movielist-item__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.review-movielist-item__name {
  color: var(--purple02);
  font-size: 1.6rem;
  font-weight: 500;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .review-movielist-item__name {
    font-size: 3.2rem;
    margin-top: 2.5rem;
  }
}

.review-movielist-item__name-small {
  font-size: 1.2rem;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .review-movielist-item__name-small {
    font-size: 2.4rem;
  }
}

.modal-video-body {
  max-width: 490px;
}

.modal-video-inner {
  padding: 60px 50px;
}

.modal-video-close-btn {
  top: auto !important;
  bottom: -42px !important;
  right: 50% !important;
  translate: 50% 0;
  width: 62px;
  height: 13px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 61.99 12.71"><path fill="%23ffffff" d="M0,12L12,0l.71.71L.71,12.71l-.71-.71ZM0,.71L.71,0l12,12-.71.71L0,.71ZM28.32,12.08c-.77,0-1.46-.12-2.09-.36s-1.18-.59-1.65-1.04c-.47-.46-.83-1.01-1.08-1.67s-.38-1.41-.38-2.25.13-1.59.39-2.26.63-1.24,1.1-1.71c.47-.47,1.02-.83,1.66-1.07.63-.24,1.32-.36,2.06-.36.59,0,1.11.06,1.57.19.46.13.91.32,1.36.59l.03,2.3h-.67l-.55-2.53.8.27v.49c-.38-.29-.75-.5-1.11-.62s-.76-.18-1.2-.18c-.75,0-1.41.18-2,.55s-1.05.91-1.38,1.64c-.33.72-.5,1.62-.5,2.68s.17,1.94.5,2.67c.33.72.79,1.27,1.37,1.64s1.24.55,1.97.55c.44,0,.85-.06,1.25-.19.39-.13.78-.33,1.18-.62v.48l-.77.24.56-2.49h.66v2.28c-.47.28-.94.48-1.43.61s-1.03.19-1.62.19l-.03-.02ZM33.25,11.84v-.39l1.62-.15h.56l1.65.15v.39h-3.84,0ZM34.45,11.84c0-.31.02-.65.02-1.01s0-.74,0-1.13,0-.74,0-1.08V1.41l-1.19-.07v-.38l2.39-.45.21.13-.04,2.18v6.88c0,.38,0,.76,0,1.13,0,.37,0,.71.02,1.01h-1.46.03ZM42.44,12.05c-.65,0-1.25-.15-1.79-.44s-.97-.73-1.29-1.31-.48-1.28-.48-2.11.17-1.55.5-2.12c.34-.57.78-1.01,1.32-1.3s1.13-.44,1.74-.44,1.23.15,1.77.44.99.73,1.32,1.3c.34.57.5,1.28.5,2.12s-.17,1.54-.5,2.11c-.33.58-.77,1.01-1.31,1.31-.54.29-1.14.44-1.79.44h.01ZM42.44,11.6c.66,0,1.18-.29,1.55-.87s.56-1.42.56-2.53-.19-1.96-.56-2.54c-.37-.58-.89-.88-1.55-.88s-1.17.29-1.54.88c-.37.58-.56,1.43-.56,2.54s.19,1.96.56,2.53c.37.58.89.87,1.54.87ZM50.54,12.05c-.48,0-.9-.05-1.28-.15-.38-.1-.76-.25-1.14-.44v-1.71h.67l.36,1.82-.56-.04v-.5c.28.18.56.31.85.41.29.1.63.15,1.03.15.61,0,1.06-.12,1.37-.36.31-.24.46-.56.46-.96,0-.34-.1-.61-.31-.83-.21-.21-.6-.41-1.18-.59l-.74-.27c-.57-.2-1.02-.46-1.37-.79s-.51-.77-.51-1.31c0-.62.24-1.13.71-1.55.47-.42,1.15-.62,2.02-.62.44,0,.83.05,1.16.15.34.1.69.26,1.05.48l-.06,1.54h-.6l-.39-1.69.48.11v.45c-.28-.21-.55-.35-.8-.43s-.53-.13-.83-.13c-.51,0-.91.11-1.18.34s-.41.53-.41.89c0,.32.11.58.33.79s.59.4,1.1.58l.73.25c.72.24,1.23.54,1.53.88s.46.77.46,1.27c0,.43-.11.81-.34,1.16-.23.34-.56.61-1,.8-.44.19-.98.29-1.62.29h.01ZM59.12,12.05c-.71,0-1.34-.14-1.89-.43s-.98-.72-1.29-1.29-.47-1.28-.47-2.12.16-1.49.49-2.07.76-1.02,1.3-1.34c.54-.31,1.12-.47,1.75-.47s1.17.13,1.62.39c.44.26.78.61,1.01,1.06.23.44.34.95.34,1.52,0,.34-.03.62-.08.84h-5.81v-.45h3.92c.26,0,.44-.07.53-.21s.14-.36.14-.67c0-.61-.15-1.09-.45-1.46s-.72-.55-1.26-.55c-.38,0-.73.12-1.04.37s-.56.61-.75,1.09-.28,1.07-.28,1.77c0,.76.11,1.38.34,1.87s.54.85.93,1.07c.39.22.84.34,1.36.34s.92-.09,1.28-.27.67-.43.94-.76l.24.18c-.3.5-.69.9-1.17,1.18s-1.05.42-1.7.42h0Z" /></svg>');
}
.modal-video-close-btn::before, .modal-video-close-btn::after {
  content: none;
}
@media (any-hover: hover) {
  .modal-video-close-btn {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .modal-video-close-btn:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .modal-video-close-btn {
    bottom: -28px !important;
  }
}

@media (orientation: landscape) {
  .modal-video-body {
    max-width: 510px;
  }
  .modal-video-inner {
    padding-block: 60px;
  }
}
.review-sns {
  margin-top: 7rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 767px) {
  .review-sns {
    display: block;
    margin-top: 8.5rem;
  }
}

.review-sns__text {
  font-size: 2.4rem;
  letter-spacing: 0.07em;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  .review-sns__text {
    font-size: 3.6rem;
    line-height: 1.5833333333;
    display: block;
    text-align: center;
  }
}

.review-sns__link {
  color: white;
  font-size: 3rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 28rem;
  aspect-ratio: 28/4;
  background: var(--purple02);
  margin-inline: 0.2em;
  margin-bottom: 0.1rem;
  translate: 0 -0.2rem;
  -webkit-clip-path: polygon(0 1rem, 1rem 0, 100% 0, 100% calc(100% - 1rem), calc(100% - 1rem) 100%, 0 100%);
          clip-path: polygon(0 1rem, 1rem 0, 100% 0, 100% calc(100% - 1rem), calc(100% - 1rem) 100%, 0 100%);
  padding-bottom: 0.2rem;
}
@media screen and (max-width: 767px) {
  .review-sns__link {
    font-size: 4.5rem;
    line-height: 1.2666666667;
    width: 41.8rem;
    aspect-ratio: 418/60;
    -webkit-clip-path: polygon(0 1.5rem, 1.5rem 0, 100% 0, 100% calc(100% - 1.5rem), calc(100% - 1.5rem) 100%, 0 100%);
            clip-path: polygon(0 1.5rem, 1.5rem 0, 100% 0, 100% calc(100% - 1.5rem), calc(100% - 1.5rem) 100%, 0 100%);
    margin-inline: 0 0.2em;
  }
}

.review-snslink {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 767px) {
  .review-snslink {
    gap: 2.2rem;
    margin-top: 2rem;
  }
}

.review-snslink__item.review-snslink__item--x {
  --review-snslink__item_width: 2rem;
}
@media screen and (max-width: 767px) {
  .review-snslink__item.review-snslink__item--x {
    --review-snslink__item_width: 4.4rem;
  }
}
.review-snslink__item.review-snslink__item--insta {
  --review-snslink__item_width: 2rem;
}
@media screen and (max-width: 767px) {
  .review-snslink__item.review-snslink__item--insta {
    --review-snslink__item_width: 4.5rem;
  }
}
.review-snslink__item.review-snslink__item--tiktok {
  --review-snslink__item_width: 2.4rem;
}
@media screen and (max-width: 767px) {
  .review-snslink__item.review-snslink__item--tiktok {
    --review-snslink__item_width: 4.8rem;
  }
}
.review-snslink__item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4rem;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  background: var(--purple01);
}
@media (any-hover: hover) {
  .review-snslink__item a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .review-snslink__item a:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .review-snslink__item a {
    width: 9rem;
  }
}
.review-snslink__item a img {
  width: var(--review-snslink__item_width);
}

@media screen and (min-width: 768px) {
  .image-area {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
  }
}

@media screen and (max-width: 767px) {
  .image-area__item {
    width: 32rem;
    margin-right: 1px;
  }
}

.campaign {
  background: linear-gradient(138deg, rgb(235, 198, 214) 0%, rgb(212, 203, 219) 100%);
}

.campaign__inner {
  padding-block: 16.2rem 15rem;
}
@media screen and (max-width: 767px) {
  .campaign__inner {
    padding-block: 14rem 5rem;
  }
}

.campaign-box {
  position: relative;
  width: 100rem;
  height: 95rem;
  margin-inline: auto;
  padding: 5.4rem 9rem 7.1rem;
}
@media screen and (max-width: 767px) {
  .campaign-box {
    width: 67rem;
    height: 224.5rem;
    padding: 8.2rem 3rem 7rem;
  }
}
.campaign-box *:not(.campaign-box-heading *) {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
.campaign-box::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: -1rem;
  left: -0.7rem;
  width: 100.4rem;
  aspect-ratio: 1002/949;
  background: url(../img/bg_campaign01_pc.svg) no-repeat center center/contain;
}
@media screen and (max-width: 767px) {
  .campaign-box::before {
    top: -1rem;
    left: 0;
    width: 67rem;
    aspect-ratio: 670/2247;
    background: url(../img/bg_campaign01_sp.svg) no-repeat center center/contain;
  }
}

.campaign-box__inner {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: white;
  translate: 0.5rem 0;
  -webkit-clip-path: polygon(0 6rem, 6rem 0, 100% 0, 100% calc(100% - 6rem), calc(100% - 6rem) 100%, 0 100%);
          clip-path: polygon(0 6rem, 6rem 0, 100% 0, 100% calc(100% - 6rem), calc(100% - 6rem) 100%, 0 100%);
}
@media screen and (max-width: 767px) {
  .campaign-box__inner {
    translate: 0.8rem 0;
  }
}

.campaign-box-heading {
  position: relative;
  z-index: 1;
  color: var(--purple02);
  letter-spacing: 0.15em;
  text-align: center;
  padding-left: 0.15em;
}

.campaign-box-heading__text {
  font-size: 2.6rem;
  line-height: 1.4615384615;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .campaign-box-heading__text {
    font-size: 3.8rem;
    line-height: 1.5263157895;
    letter-spacing: 0;
  }
}

.campaign-box-heading__title {
  font-size: 3.6rem;
  line-height: 1.0555555556;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .campaign-box-heading__title {
    font-size: 4.4rem;
    line-height: 1.3863636364;
    margin-top: 0.5rem;
  }
}

.campaign-box-heading__date {
  width: 49rem;
  margin: 2.3rem auto 0;
}
@media screen and (max-width: 767px) {
  .campaign-box-heading__date {
    width: 59rem;
    margin: 3.5rem auto 0;
  }
}

.campaign-box-present {
  position: absolute;
  z-index: 1;
  top: -5.5rem;
  right: -3.5rem;
  width: 21rem;
  -webkit-filter: drop-shadow(0.5rem 0.5rem 0.5rem rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0.5rem 0.5rem 0.5rem rgba(0, 0, 0, 0.25));
}

.campaign-area01 {
  width: 68rem;
  margin: 5.2rem auto 0;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 35rem;
  grid-template-rows: auto 1fr;
  grid-template-areas: "area1 area2" "area1 area3";
  gap: 4rem 3.5rem;
}
@media screen and (max-width: 767px) {
  .campaign-area01 {
    width: 100%;
    margin: 3.5rem 0 0;
    grid-template-columns: 100%;
    grid-template-rows: auto auto auto;
    grid-template-areas: "area2" "area1" "area3";
    gap: 0;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.campaign-area01__image {
  grid-area: area1;
  position: relative;
}
@media screen and (max-width: 767px) {
  .campaign-area01__image {
    aspect-ratio: 1238/828;
    margin-top: 3.5rem;
  }
}
.campaign-area01__image img {
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 37.3rem;
  margin-top: 0.5rem;
}
@media screen and (max-width: 767px) {
  .campaign-area01__image img {
    width: 61.9rem;
    margin-top: 0;
    margin-left: 0.5rem;
  }
}

.campaign-area01__text {
  grid-area: area2;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
  padding-left: 0.05em;
}
@media screen and (max-width: 767px) {
  .campaign-area01__text {
    font-size: 2.8rem;
  }
}

.campaign-area01-present {
  position: relative;
  grid-area: area3;
  border: 1px solid var(--purple02);
  padding: 0.5rem 1.5rem 1.5rem;
  width: 33rem;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present {
    margin: 7rem auto 0;
    padding: 1.5rem 1rem 2rem;
    width: 59rem;
  }
}

.campaign-area01-present__title {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -62%;
  width: 14.7rem;
  height: 3rem;
  background: white;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present__title {
    width: 26.8rem;
    height: 6rem;
  }
}
.campaign-area01-present__title img {
  width: 10.3rem;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present__title img {
    width: 15.4rem;
  }
}

.campaign-area01-present__text {
  font-size: 1.2rem;
  line-height: 1;
  text-align: center;
  color: var(--purple01);
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present__text {
    font-size: 1.8rem;
  }
}

.campaign-area01-present__list {
  margin-top: 1rem;
  padding-left: 1rem;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present__list {
    margin-top: 2rem;
    padding-left: 2.5rem;
  }
}
.campaign-area01-present__list li {
  font-size: 1.2rem;
  line-height: 1.8333333333;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .campaign-area01-present__list li {
    font-size: 2.2rem;
    line-height: 2;
    letter-spacing: 0.01em;
  }
}

.campaign-area02 {
  position: relative;
  z-index: 1;
  background: #F2F2F2;
  padding: 1.2rem;
  margin: 6rem auto 0;
  width: 80rem;
  height: 20rem;
}
@media screen and (max-width: 767px) {
  .campaign-area02 {
    padding: 1.5rem 1.2rem;
    margin-top: 5.5rem;
    width: 59rem;
    height: 60rem;
  }
}

.campaign-area02__inner {
  height: 100%;
  padding: 0.7rem 1.5rem;
  overflow-y: auto;
  -ms-overflow-style: none;
  /* IE, Edge 対応 */
  scrollbar-width: none;
  /* Firefox 対応 */
}
@media screen and (max-width: 767px) {
  .campaign-area02__inner {
    padding: 0 3rem 0 1.5rem;
  }
}
.campaign-area02__inner .scroll__inner::-webkit-scrollbar {
  /* Chrome, Safari 対応 */
  display: none;
}
.campaign-area02__inner .simplebar-scrollbar::before {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(125, 70, 120, 0.3);
  border-radius: calc(infinity * 1px);
  width: 6px;
}
@media screen and (max-width: 767px) {
  .campaign-area02__inner .simplebar-scrollbar::before {
    width: 5px;
  }
}
.campaign-area02__inner .simplebar-scrollbar.simplebar-visible::before {
  opacity: 1;
}
.campaign-area02__inner .simplebar-track {
  background: rgba(125, 70, 120, 0.3);
  width: 6px !important;
  border-radius: calc(infinity * 1px);
}
@media screen and (max-width: 767px) {
  .campaign-area02__inner .simplebar-track {
    width: 5px !important;
  }
}

.campaign-area02__title {
  font-weight: 500;
  color: var(--purple02);
  font-size: max(12px, 1.4rem);
  line-height: 1.2857142857;
}
@media screen and (max-width: 767px) {
  .campaign-area02__title {
    font-size: 2.6rem;
  }
}

.campaign-area02__texts {
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .campaign-area02__texts {
    margin-top: 3rem;
  }
}
.campaign-area02__texts p {
  margin-top: 1.4em;
  font-size: max(10px, 1.2rem);
  line-height: 1.4166666667;
  line-break: strict;
}
@media screen and (max-width: 767px) {
  .campaign-area02__texts p {
    margin-top: 1.6em;
    font-size: 2.2rem;
    line-height: 1.6363636364;
    letter-spacing: -0.03em;
  }
}
.campaign-area02__texts p:first-child {
  margin-top: 0;
}
@media (any-hover: hover) {
  .campaign-area02__texts a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .campaign-area02__texts a:hover {
    opacity: 0.6;
  }
}

.campaign-area03 {
  position: relative;
  z-index: 1;
}

.campaign-area03__check {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 3rem;
  font-size: 1.4rem;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .campaign-area03__check {
    font-size: 2.8rem;
    margin-top: 3rem;
  }
}
.campaign-area03__check input[type=checkbox] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  border: 0;
  overflow: hidden;
  padding: 0;
  clip: rect(0, 0, 0, 0);
}
.campaign-area03__check input[type=checkbox]:checked + .campaign-area03__checktext::after {
  opacity: 1;
}
.campaign-area03__check .campaign-area03__checktext {
  position: relative;
  padding-left: 1.6rem;
}
@media screen and (max-width: 767px) {
  .campaign-area03__check .campaign-area03__checktext {
    padding-left: 2.4rem;
  }
}
.campaign-area03__check .campaign-area03__checktext::before {
  content: "";
  position: absolute;
  top: calc((1.5em - 1rem) / 2);
  left: 0;
  border: 1px solid var(--black01);
  width: 1.2rem;
  height: 1.2rem;
}
@media screen and (max-width: 767px) {
  .campaign-area03__check .campaign-area03__checktext::before {
    top: calc((1.5em - 2.2rem) / 2);
    width: 2.2rem;
    height: 2.2rem;
  }
}
.campaign-area03__check .campaign-area03__checktext::after {
  content: "";
  position: absolute;
  top: calc((1.5em - 0.5rem) / 2);
  left: 0.2rem;
  width: 0.8rem;
  height: 0.4rem;
  border-left: 1px solid var(--black01);
  border-bottom: 1px solid var(--black01);
  rotate: -45deg;
  opacity: 0;
}
@media screen and (max-width: 767px) {
  .campaign-area03__check .campaign-area03__checktext::after {
    top: 1.4rem;
    left: 0.5rem;
    width: 1.3rem;
    height: 0.9rem;
  }
}

.campaign-area03__button {
  position: relative;
  width: 20rem;
  height: 4rem;
  margin: 2.8rem auto 0;
}
@media screen and (max-width: 767px) {
  .campaign-area03__button {
    width: 39rem;
    height: 7rem;
    margin-top: 2.5rem;
  }
}
.campaign-area03__button a {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 1px solid var(--purple02);
  color: var(--purple02);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .campaign-area03__button a {
    font-size: 2.8rem;
  }
}
.campaign-area03:has(input[type=checkbox]:checked) .campaign-area03__button a {
  pointer-events: auto;
}
@media (any-hover: hover) {
  .campaign-area03:has(input[type=checkbox]:checked) .campaign-area03__button a {
    -webkit-transition: background-color 0.3s;
    transition: background-color 0.3s;
  }
  .campaign-area03:has(input[type=checkbox]:checked) .campaign-area03__button a:hover {
    background-color: rgba(125, 70, 120, 0.2);
  }
}
.campaign-area03:has(input[type=checkbox]:checked) .campaign-area03__note {
  display: none !important;
}

.campaign-area03__note {
  position: absolute;
  top: calc(100% + 1.5rem);
  left: 50%;
  translate: -50% 0;
  width: 30rem;
  font-size: 1.2rem;
  text-align: center;
  color: var(--purple02);
  text-align: center;
  margin-top: 1rem;
  display: none;
}
@media screen and (max-width: 767px) {
  .campaign-area03__note {
    top: calc(100% + 1rem);
    width: 59rem;
    font-size: 2.4rem;
  }
}

.banner-area {
  padding-block: 13rem 5rem;
}
@media screen and (max-width: 767px) {
  .banner-area {
    padding-block: 25rem 18rem;
  }
}

.banner-area-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  width: 90rem;
  margin-inline: auto;
  padding-top: 2rem;
}
@media screen and (max-width: 767px) {
  .banner-area-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    width: 100%;
    padding-top: 0;
  }
}
.banner-area-grid a {
  display: block;
  position: relative;
}
@media (any-hover: hover) {
  .banner-area-grid a {
    -webkit-transition: translate 0.3s;
    transition: translate 0.3s;
  }
  .banner-area-grid a:hover {
    translate: 0 -1.5rem;
  }
}

.banner-area-grid-brand__image {
  aspect-ratio: 1/1;
}

.banner-area-grid-brand__text {
  position: absolute;
  top: 10.5rem;
  left: 0;
  width: 100%;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.02em;
  text-align: center;
  padding-left: 0.02em;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-brand__text {
    top: 16.5rem;
    font-size: 2.8rem;
  }
}

.banner-area-grid-coupon {
  position: relative;
}

.banner-area-grid-coupon__image {
  aspect-ratio: 1/1;
}

.banner-area-grid-coupon__lead {
  position: absolute;
  top: 10.5rem;
  left: 0;
  width: 100%;
  font-size: 1.6rem;
  line-height: 1.375;
  letter-spacing: 0.02em;
  text-align: center;
  padding-left: 0.02em;
  color: var(--purple02);
}
@media screen and (max-width: 767px) {
  .banner-area-grid-coupon__lead {
    top: 16.4rem;
    font-size: 2.8rem;
    line-height: 1.5;
  }
}

.banner-area-grid-coupon__texts {
  position: absolute;
  top: 21.3rem;
  right: 8rem;
  width: 10rem;
  height: 10rem;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-coupon__texts {
    top: 27.4rem;
    right: 50%;
    translate: 50% 0;
    width: 30rem;
    height: 8rem;
  }
}

.banner-area-grid-coupon__text {
  font-size: 1.4rem;
  line-height: 1.4285714286;
  letter-spacing: 0.01em;
  text-align: center;
  padding-left: 0.01em;
  color: #806D89;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-coupon__text {
    font-size: 2.4rem;
    line-height: 1.4166666667;
    letter-spacing: 0;
  }
}
.banner-area-grid-coupon__text:nth-child(n+2) {
  margin-top: 0.6rem;
}

.banner-area-grid-coupon__note {
  position: absolute;
  bottom: 3.8rem;
  left: 0;
  width: 100%;
  color: #806D89;
  font-size: 1rem;
  line-height: 1.5;
  text-align: center;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}

.banner-area-grid-shop__image {
  aspect-ratio: 435/150;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-shop__image {
    aspect-ratio: 1340/360;
  }
}

.banner-area-grid-shop__text {
  position: absolute;
  top: 7rem;
  left: 5rem;
  font-size: 1.2rem;
  line-height: 1.8333333333;
  text-align: center;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-shop__text {
    top: 9.5rem;
    left: 4.5rem;
    font-size: 2.2rem;
  }
}

.banner-area-grid-counseling__image {
  aspect-ratio: 435/150;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-counseling__image {
    aspect-ratio: 1340/360;
  }
}

.banner-area-grid-counseling__text {
  position: absolute;
  top: 7rem;
  left: 7rem;
  font-size: 1.2rem;
  line-height: 1.8333333333;
  text-align: center;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .banner-area-grid-counseling__text {
    top: 9.5rem;
    left: 4.5rem;
    font-size: 2.2rem;
  }
}

.banner-area-sns {
  margin-top: 7rem;
}
@media screen and (max-width: 767px) {
  .banner-area-sns {
    margin-top: 10rem;
  }
}

.banner-area-sns__title {
  font-size: 1.6rem;
  color: var(--purple01);
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .banner-area-sns__title {
    font-size: 2.8rem;
  }
}

.banner-area-sns-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.6rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.3rem;
}
@media screen and (max-width: 767px) {
  .banner-area-sns-grid {
    gap: 3rem;
    margin-top: 2.6rem;
  }
}

.banner-area-sns-grid__item.banner-area-sns-grid__item--x {
  --review-snslink__item_width: 1.6rem;
}
@media screen and (max-width: 767px) {
  .banner-area-sns-grid__item.banner-area-sns-grid__item--x {
    --review-snslink__item_width: 3.5rem;
  }
}
.banner-area-sns-grid__item.banner-area-sns-grid__item--line {
  --review-snslink__item_width: 2.1rem;
}
@media screen and (max-width: 767px) {
  .banner-area-sns-grid__item.banner-area-sns-grid__item--line {
    --review-snslink__item_width: 4.7rem;
  }
}
.banner-area-sns-grid__item.banner-area-sns-grid__item--fb {
  --review-snslink__item_width: 1.1rem;
}
@media screen and (max-width: 767px) {
  .banner-area-sns-grid__item.banner-area-sns-grid__item--fb {
    --review-snslink__item_width: 2.3rem;
  }
}
.banner-area-sns-grid__item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4rem;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  background: var(--purple01);
}
@media (any-hover: hover) {
  .banner-area-sns-grid__item a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .banner-area-sns-grid__item a:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  .banner-area-sns-grid__item a {
    width: 9rem;
  }
}
.banner-area-sns-grid__item a img {
  width: var(--review-snslink__item_width);
}