@charset "UTF-8";
:root {
  --color-bg: #fff;
  --color-bg-rgb: 255, 255, 255;
  --color-gray: #F5F5F5;
  --color-footer-bg: #fff;
  --text-black:#272727;
  --main-gray-color:#E5E5E5;
  --color-primary:#0A0E3B;
  --color-secondary:#920C1E;
  --color-danger:#920C1E;
  --font-langJa:"Zen Kaku Gothic New", sans-serif;
  --pc-width:1400;
  --contents-width:1118;
  --contents-width-px:calc(var(--contents-width) * 1px);
  --radius-xs: 8px;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 32px;
}

html {
  width: 100%;
  min-height: 100%;
  height: auto;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  font-size: 62.5%;
}

body {
  width: 100%;
  min-height: 100%;
  height: auto;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--text-black);
  background-color: #fff;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  text-rendering: optimizeLegibility;
}

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

@media (min-width: 767px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
img, svg {
  max-width: 100%;
  height: auto;
}

:where(:focus-visible) {
  outline: 3px solid Highlight;
  outline-offset: 2px;
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}

.tabsp-only {
  display: none;
}

@media (max-width: 960px) {
  .pc-only {
    display: none;
  }
  .tabsp-only {
    display: block;
  }
}
@media (max-width: 767px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
}
.l-inner {
  margin: 0 auto;
  width: 92%;
  max-width: var(--contents-width-px);
}
@media (max-width: 767px) {
  .l-inner {
    width: 89.3333333333%;
  }
}

body {
  position: relative;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

main {
  position: relative;
  overflow: hidden;
}

.u-bg-stripe {
  background-color: #fff;
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #e2e2e8 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #e2e2e8 calc(100% - 1px));
  background-size: 30px 30px;
  background-repeat: repeat;
  background-position: center center;
}

.u-link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.u-link:hover, .u-link:active, .u-link:focus {
  text-decoration: none;
}

.u-tar {
  text-align: right;
}

.u-tac {
  text-align: center;
}

.u-ttl-font {
  font-family: "Shippori Antique", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.u-ttl-font-m {
  font-family: "Shippori Antique", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.u-ttl-font-b {
  font-family: "Shippori Antique", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.u-ttl-l {
  font-size: 3.6rem;
  line-height: 150%;
}

.u-ttl-m {
  font-size: 2.4rem;
  line-height: 170%;
}
@media (max-width: 767px) {
  .u-ttl-m {
    font-size: 2.2rem;
  }
}

.u-txt-sm {
  font-size: 1.6rem;
  line-height: 170%;
}

.u-txt-md {
  font-size: 2rem;
  line-height: 170%;
  font-weight: 500;
}
@media (max-width: 767px) {
  .u-txt-md {
    font-size: 1.8rem;
  }
}

.u-color-primary {
  color: var(--color-primary);
}

.u-color-secondary {
  color: var(--color-secondary);
}

.c-btn01 {
  position: relative;
  display: block;
  padding: 0 1.5em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 2rem;
  font-weight: 700;
  font-size: clamp(1.6rem,1.42vw,2rem);
  text-align: center;
  background: #FFF759;
  border: 2px solid #1C1D63;
  box-shadow: 4px 4px 0px #1C1D63;
  border-radius: 50px;
  transition: all 0.1s ease;
}
@media (max-width: 960px) {
  .c-btn01 {
    font-size: 1.6rem;
    font-weight: 700;
  }
}
.c-btn01 span {
  position: relative;
  padding: 0.5em 1.75em;
  display: inline-block;
  text-align: center;
}
.c-btn01 span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: inline-block;
  width: 1.25em;
  height: 1.25em;
  background: url(../img/ico_bag.svg) no-repeat center/contain;
}
.c-btn01 span:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  background: url(../img/ico_arrow.svg) no-repeat center/contain;
}
.c-btn01[data-type=map] span::before {
  width: 1.5em;
  height: 1.5em;
  background-image: url(../img/ico_map.svg);
}
.c-btn01[data-color=blue] {
  background-color: #DEF3FF;
}
.c-btn01:hover, .c-btn01:focus {
  box-shadow: 1px 1px 0px #1C1D63;
  transform: translate(2px, 3px);
}

.c-btn02 {
  position: relative;
  padding: 0.5em 1em;
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.6rem;
  font-weight: 500;
  background: #FFFFFF;
  border: 4px solid #B66569;
  border-radius: 50px;
}
.c-btn02 span {
  display: inline-block;
  padding: 0 2em 0 2em;
}
@media (max-width: 767px) {
  .c-btn02 span {
    padding-left: 0;
  }
}
.c-btn02:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
  display: inline-block;
  width: 1.75em;
  height: 1.75em;
  background: url(../img/ico_pdf.png) no-repeat center/contain;
}
.c-btn02:hover, .c-btn02:focus {
  opacity: 0.6;
}

.c-list01 li {
  position: relative;
  padding-left: 1em;
}

.c-list01 li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

/**********************
* 装飾共通
***********************/
[class^=cloud] {
  position: absolute;
  pointer-events: none;
  width: 525px;
  aspect-ratio: 525/240;
}
[class^=cloud] img {
  width: 100%;
}
@media (max-width: 767px) {
  [class^=cloud] {
    width: 147px;
  }
}

/**********************
* header
***********************/
.l-header {
  position: fixed;
  top: 0%;
  left: 0;
  width: 100%;
  height: 96px;
  z-index: 100;
  transition: 0.75s height ease-in-out;
  padding: 0px;
}
.l-header .l-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
  padding: 0;
  height: 100%;
  width: 100%;
  max-width: 100%;
  gap: 0;
}

.header-logo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 304px;
}
@media (max-width: 1200px) {
  .header-logo {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}

.header-logo__link {
  position: relative;
  display: block;
  width: 110px;
}
@media (max-width: 1200px) {
  .header-logo__link {
    width: 80px;
  }
}
.header-logo__link img {
  width: 100%;
  height: auto;
}
.header-logo__link:hover, .header-logo__link:focus {
  opacity: 0.8;
}

@media (max-width: 1200px) {
  .l-header {
    height: 84px;
  }
  .l-header .l-inner {
    padding: 0 4%;
    justify-content: space-between;
    flex-direction: row;
  }
  .header-logo__link {
    max-width: 80px;
  }
}
/**********************
* PC header
**********************/
/* タブレットサイズはメニューのみSP MVのみロゴ非表示 */
body:not(.is-mv-hide) .header-logo__link {
  opacity: 0;
  visibility: hidden;
}
@media (max-width: 767px) {
  body:not(.is-mv-hide) .header-logo__link {
    opacity: 1;
    visibility: visible;
  }
}

.is-mv-hide .l-header {
  background-color: #fff;
  border-bottom: 2px solid var(--color-primary);
}
.is-mv-hide .l-header .header-logo__link {
  visibility: visible;
  opacity: 1;
}
.is-mv-hide .l-header .header-nav__pc {
  background-color: var(--color-primary);
}
.is-mv-hide .l-header .header-nav__pc .gnav__link {
  color: #fff;
}
.is-mv-hide .l-header .relation-link__pc .header-shop__link, .is-mv-hide .l-header .relation-link__pc .header-main__link {
  border-bottom: none;
}

.header-nav__pc {
  margin: 0 auto;
  padding: 0 1em;
  flex-grow: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: inherit;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s ease-in-out;
  transition-property: opacity, visibility;
  height: 96px;
}
.header-nav__pc .gnav {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 1.6rem;
  line-height: calc(23 / 20);
  font-weight: 700;
  gap: 0 1.5em;
}
.header-nav__pc .gnav__link {
  position: relative;
  padding: 0.25em 0;
  display: block;
  font-size: 1.6rem;
}
.header-nav__pc .gnav__link:hover, .header-nav__pc .gnav__link:focus {
  opacity: 0.8;
}
.header-shop__link {
  border-left: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  width: 152px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #FFF759;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 120%;
}
.header-shop__link span {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.header-shop__link span::before {
  margin-bottom: 0.25em;
  content: "";
  display: inline-block;
  width: 1.25em;
  height: 1.25em;
  background: url(../img/ico_bag.svg) no-repeat center/contain;
}
.header-shop__link:hover, .header-shop__link:focus {
  opacity: 0.8;
}

.header-main__link {
  border-left: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  width: 152px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  background: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 120%;
}
.header-main__link:hover, .header-main__link:focus {
  opacity: 0.8;
}

.relation-link__pc {
  display: flex;
  height: 100%;
}

@media (max-width: 1200px) {
  .header-nav__pc {
    display: none;
  }
  .relation-link__pc {
    display: none;
  }
}
/*****
* SP drawer
**********************/
.header-nav__sp {
  display: none;
}

.header-nav__sp {
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
@media (max-width: 1200px) {
  .header-nav__sp {
    display: flex;
  }
}
.header-nav__sp .gnav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 1em 2em;
}
.header-nav__sp .gnav__item {
  padding: 1em 0;
  width: 100%;
  display: flex;
  font-size: 1.8rem;
  font-style: normal;
  font-weight: 700;
  flex-direction: column;
  text-align: center;
}
.header-nav__sp .gnav__link {
  position: relative;
  display: block;
  padding: 0 1em 0 0;
  color: #fff;
}
.header-nav__sp .gnav__link span {
  position: relative;
}
.header-nav__sp .gnav__link:hover, .header-nav__sp .gnav__link:focus, .header-nav__sp .gnav__link:active {
  opacity: 0.6;
}

.header-nav__sp .relation-link__sp {
  margin-top: auto;
  width: 100%;
}
.header-nav__sp .header-shop__link {
  border: none;
  border-top: 2px solid var(--color-primary);
  width: 100%;
  height: 96px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
.header-nav__sp .header-shop__link span {
  flex-direction: row;
  gap: 0 0.5em;
}
.header-nav__sp .header-main__link {
  border: none;
  border-top: 2px solid var(--color-primary);
  width: 100%;
  height: 96px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

/* メニュー表示設定*/
.header-nav__sp {
  position: fixed;
  top: 82px;
  right: 0;
  background-color: var(--color-primary);
  width: 100%;
  max-width: 410px;
  height: calc(100vh - 82px);
  transition: 0.3s ease-out 0s;
  transition-property: opacity, visibility;
  z-index: 100;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .header-nav__sp {
    max-width: 100%;
  }
}

.is-drawerActive .header-nav__sp {
  opacity: 1;
  visibility: visible;
}

.is-drawerActive .l-header {
  background-color: #fff;
}

/* ハンバーガーメニュー*/
.hamburger {
  display: none;
}

@media (max-width: 1200px) {
  .hamburger {
    position: relative;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 101;
    outline: 0;
    border: 0;
    border-radius: 100%;
    width: 64px;
    height: 64px;
    background-color: #FFFCC4;
    border: 2px solid var(--color-primary);
    transition: background-color 0.3s cubic-bezier(0.23, 1, 0.58, 1);
  }
  .hamburger .icon {
    position: relative;
    top: -4px;
    display: block;
    width: 32px;
    height: 11px;
  }
  .hamburger::after {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%) scale(0.8);
    color: var(--color-primary);
    content: "メニュー";
    font-size: 10px;
    font-weight: 700;
    text-align: center;
    width: 100%;
  }
  .hamburger__line {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transition: background 0.2s cubic-bezier(0.23, 1, 0.58, 1);
    margin: auto;
    border-radius: 0.25em;
    background-color: transparent;
    height: 4px;
  }
  .hamburger__line:after,
.hamburger__line:before {
    display: block;
    position: absolute;
    content: "";
    transition: transform 0.2s cubic-bezier(0.23, 1, 0.58, 1), top 0.2s cubic-bezier(0.23, 1, 0.58, 1) 0.2s;
    border-radius: inherit;
    background-color: inherit;
    width: 100%;
    height: 100%;
    background-color: var(--color-primary);
  }
  .hamburger__line:before {
    top: -5px;
  }
  .hamburger__line:after {
    top: 5px;
  }
  .is-drawerActive .hamburger {
    border: none;
    background-color: transparent;
  }
  .is-drawerActive .hamburger::after {
    color: var(--color-primary);
    content: "閉じる";
  }
  .is-drawerActive .hamburger__line {
    background-color: transparent;
  }
  .is-drawerActive .hamburger__line:after,
.is-drawerActive .hamburger__line:before {
    top: 0;
    background-color: var(--color-primary);
    transition: transform 0.2s cubic-bezier(0.23, 1, 0.58, 1) 0.2s, top 0.2s cubic-bezier(0.23, 1, 0.58, 1);
  }
  .is-drawerActive .hamburger__line:before {
    transform: rotate(-45deg);
  }
  .is-drawerActive .hamburger__line:after {
    transform: rotate(45deg);
    width: 100%;
  }
}
/**********************
* footer
***********************/
.l-footer {
  position: relative;
  margin-top: auto;
  display: flex;
  height: 366px;
  border-top: 2px solid var(--color-primary);
}
@media (max-width: 960px) {
  .l-footer {
    height: auto;
  }
}

.lum-ten02 {
  position: absolute;
  right: 7%;
  top: -95%;
  z-index: 2;
  width: 300px;
  aspect-ratio: 346/545;
  pointer-events: none;
}
@media (max-width: 960px) {
  .lum-ten02 {
    right: 0;
    top: -61%;
    width: 248px;
  }
}
.lum-ten02 img {
  width: 100%;
  height: auto;
}

.footer-left {
  width: 50%;
  display: grid;
  place-items: center;
}
@media (max-width: 960px) {
  .footer-left {
    place-items: start center;
    padding: 130px 4% 0;
  }
}

.footer-logo {
  width: 38.3275261324%;
  max-width: 330px;
  aspect-ratio: 330/204;
}
@media (max-width: 960px) {
  .footer-logo {
    width: 60%;
  }
}
.footer-logo img {
  width: 100%;
  height: auto;
}

.footer-right {
  padding: 1em 4%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 50%;
  color: #fff;
  background-color: var(--color-primary);
}
@media (max-width: 960px) {
  .footer-right {
    padding: 130px 4% 0;
    justify-content: flex-start;
  }
}

.footer-gnav {
  display: flex;
  justify-items: center;
  align-items: flex-start;
  flex-wrap: wrap;
  font-size: 1.6rem;
  font-weight: 700;
  gap: 1em;
}
@media (max-width: 960px) {
  .footer-gnav {
    flex-direction: column;
    padding-bottom: 150px;
  }
}

.footer-button {
  margin-top: 50px;
  color: var(--text-black);
}
.footer-button > * {
  box-shadow: 4px 4px 0px #fff;
}
@media (max-width: 960px) {
  .footer-button > * {
    box-shadow: 4px 4px 0px #EEEBB2;
  }
}
@media (max-width: 960px) {
  .footer-button {
    margin: 0;
    position: absolute;
    left: 50%;
    bottom: 4em;
    transform: translateX(-50%);
    width: 100%;
  }
  .footer-button > * {
    margin: 0 auto;
  }
}

.footer-copy {
  position: absolute;
  text-align: right;
  right: 1em;
  bottom: 1em;
  z-index: 1;
  font-size: 1.4rem;
}
@media (max-width: 960px) {
  .footer-copy {
    font-size: 1rem;
  }
}

/**********************
* レイアウト共通
***********************/
.bg-wrapper {
  overflow: hidden;
}

/***********************
* マーカー
************************/
.u-marker-lb {
  background: linear-gradient(transparent 70%, #DEF3FF 30%);
}

/**********************
* mv
***********************/
.mv {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1728/950;
  background: linear-gradient(180deg, #FFFFFF 0%, #D1EAF7 100%);
}
@media (max-width: 767px) {
  .mv {
    place-items: start;
    aspect-ratio: 375/810;
  }
}

.mv-bg-wrapper {
  position: relative;
  display: grid;
  grid-template-areas: "stack";
  width: 100%;
  height: 100%;
}

.mv-border {
  position: relative;
  z-index: 2;
  grid-area: stack;
  align-self: center;
  margin: 0 auto 0;
  border: 4px solid var(--color-primary);
  background-color: #fff;
  padding: 14px;
  max-width: 1498px;
  width: 86.6898148148%;
  aspect-ratio: 1498/700;
}
@media (max-width: 767px) {
  .mv-border {
    margin-top: 42px;
    align-self: self-start;
    padding: 7px;
    aspect-ratio: 335/628;
    border-width: 2px;
  }
}
.mv-border::before {
  position: absolute;
  left: 14px;
  top: 14px;
  z-index: 1;
  content: "";
  display: block;
  width: calc(100% - 28px);
  height: calc(100% - 28px);
  border: 2px solid rgb(10, 14, 59);
}
@media (max-width: 767px) {
  .mv-border::before {
    left: 7px;
    top: 7px;
    border-width: 1px;
    width: calc(100% - 14px);
    height: calc(100% - 14px);
  }
}
.mv-border::after {
  position: absolute;
  left: 14px;
  top: 14px;
  z-index: 0;
  content: "";
  display: block;
  width: calc(100% - 28px);
  height: calc(100% - 28px);
  background: linear-gradient(270deg, rgb(10, 14, 59) 0%, rgb(10, 14, 59) 50%, rgb(255, 255, 255) 50%, rgb(255, 255, 255) 100%);
  pointer-events: none;
}
@media (max-width: 767px) {
  .mv-border::after {
    left: 7px;
    top: 7px;
    border-width: 1px;
    width: calc(100% - 14px);
    height: calc(100% - 14px);
  }
}

.mv-lum {
  position: relative;
  grid-area: stack;
  z-index: 3;
  margin-top: auto;
  margin-left: auto;
  aspect-ratio: 742/829;
  width: 42.9398148148%;
  pointer-events: none;
}
@media (max-width: 767px) {
  .mv-lum {
    right: -23%;
    width: 89.93%;
  }
}
.mv-lum img {
  width: 100%;
}

.mv-ten {
  position: absolute;
  right: 36%;
  top: 2%;
  z-index: 2;
  width: 18.2291666667%;
  pointer-events: none;
  animation: pukapuka 1.8s ease-in-out 0s infinite alternate-reverse;
}
@media (max-width: 767px) {
  .mv-ten {
    right: auto;
    top: auto;
    left: 10%;
    bottom: 24%;
    z-index: 2;
    width: 39%;
  }
}
.mv-ten img {
  width: 100%;
}

.mv-left {
  position: relative;
  z-index: 2;
  padding: 4% 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 50%;
}
@media (max-width: 767px) {
  .mv-left {
    width: 100%;
    z-index: 3;
  }
}

@media (max-width: 767px) {
  .mv-title {
    width: 100%;
  }
}

.mv-title-main {
  margin: 37px auto 0;
  width: 77.0288858322%;
  aspect-ratio: 560/353;
}
@media (max-width: 767px) {
  .mv-title-main {
    margin-top: 7%;
    width: 84.028886%;
  }
}

.mv-title-sub {
  text-align: center;
  font-size: 4.2rem;
  font-size: min(2.43vw,42px);
}
@media (max-width: 767px) {
  .mv-title-sub {
    margin: 7% auto 0;
    width: 90%;
    font-size: 5.86vw;
    text-align: center;
    z-index: 4;
    background: #272727;
    background: linear-gradient(90deg, rgb(39, 39, 39) 0%, rgb(39, 39, 39) 50%, rgb(255, 255, 255) 50%, rgb(255, 255, 255) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

.mv-period {
  margin-top: 42px;
  position: relative;
  padding: 0.25em 0.75em;
  background: #FFFFFF;
  max-width: 512px;
  font-size: 3.2rem;
  font-size: clamp(1.8rem,2.28vw,3.2rem);
  background: #FFFFFF;
  border: 2.77px solid #0A0E3B;
  box-shadow: 5.24231px 5.24231px 0px #1C1D63;
  border-radius: 76.2226px;
  text-align: center;
}
@media (max-width: 767px) {
  .mv-period {
    margin-top: 9%;
    padding: 0.5em 0.75em;
    width: 85%;
    font-size: 4.26vw;
    z-index: 4;
    box-shadow: 2.24231px 2.24231px 0px #1C1D63;
  }
}
.mv-period::before {
  position: absolute;
  left: 2px;
  top: 2px;
  content: "";
  display: block;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border: 1px solid #0A0E3B;
  border-radius: 76.2226px;
}

.mv-badge {
  position: absolute;
  right: 0;
  bottom: -4%;
  width: 17.7083333333%;
  aspect-ratio: 1/1;
  z-index: 3;
}
@media (max-width: 767px) {
  .mv-badge {
    width: 40%;
    left: 5%;
    right: auto;
    bottom: 2%;
  }
}

.mv-bg {
  background: #FFFFFF;
  border: 3px solid #0A0E3B;
  position: absolute;
}
.mv-bg::before {
  content: "";
  display: block;
  width: calc(100% - 6px);
  height: calc(100% - 6px);
  background: #FFFFFF;
  border: 2px solid #0A0E3B;
}

.mv .star01 {
  position: absolute;
  right: 0.5%;
  top: -2.5%;
  z-index: 2;
  width: 39px;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .mv .star01 {
    top: 29.5%;
    width: 26px;
  }
}
.mv .star01 > img {
  width: 100%;
}
.mv .star02 {
  position: absolute;
  width: 39px;
  right: 44.5%;
  bottom: 12%;
  z-index: 2;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .mv .star02 {
    display: none;
  }
}
.mv .star02 > img {
  width: 100%;
}
.mv .star03 {
  position: absolute;
  z-index: 1;
  width: 11%;
  max-width: 161px;
  bottom: 6%;
  left: 3%;
  aspect-ratio: 161/169;
}
@media (max-width: 767px) {
  .mv .star03 {
    width: 18%;
    bottom: 2px;
    left: 4%;
  }
}
.mv .star03 > img {
  width: 100%;
}
.mv .line01 {
  position: absolute;
  left: -2%;
  top: -7%;
  z-index: 2;
  max-width: 183px;
  width: 10.5902777778%;
  aspect-ratio: 183/104;
}
@media (max-width: 767px) {
  .mv .line01 {
    top: -3%;
    width: 24.5333333333%;
  }
}
.mv .line01 > img {
  width: 100%;
}
.mv .line2 {
  position: absolute;
  right: -11%;
  bottom: 17%;
  z-index: 2;
  max-width: 183px;
  width: 10.5902777778%;
  aspect-ratio: 183/104;
}
.mv .line2 > img {
  width: 100%;
}
.mv .cloud01 {
  position: absolute;
  left: -16%;
  bottom: 14%;
  z-index: 0;
  max-width: 682px;
  width: 39.4675925926%;
}
.mv .cloud02 {
  position: absolute;
  right: -11%;
  top: 28%;
  z-index: 2;
  max-width: 682px;
  width: 39.4675925926%;
}
@media (max-width: 767px) {
  .mv .cloud02 {
    display: none;
  }
}
.mv .cloud03 {
  display: none;
}
@media (max-width: 767px) {
  .mv .cloud03 {
    display: block;
    position: absolute;
    max-width: 682px;
    right: -37%;
    top: 99px;
    z-index: 2;
    width: 61.467593%;
  }
}

/**********************
* Special collaboration
***********************/
.sec-scb {
  position: relative;
  border-top: 4px solid #0A0E3B;
  border-bottom: 4px solid #0A0E3B;
  background: #304F9F;
}
.sec-scb::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: url(../img/noise.png);
  background-repeat: repeat;
  background-position: center, center;
  mix-blend-mode: soft-light;
}
.sec-scb .bg-wrapper {
  position: relative;
  padding: 200px 0;
}
@media (max-width: 960px) {
  .sec-scb .bg-wrapper {
    padding: 162px 0 342px;
  }
}

.scb-box {
  position: relative;
  z-index: 2;
  margin: 0 auto;
  padding: 60px 4%;
  max-width: 880px;
  border: 2px solid #0A0E3B;
  box-shadow: 6px 6px 0px #1C1D63;
}
@media (max-width: 960px) {
  .scb-box {
    padding: 100px 5.5%;
  }
}

.scb-title {
  position: absolute;
  z-index: 3;
  top: -13%;
  left: -14%;
  max-width: 700px;
  aspect-ratio: 700/215;
  width: 79.5454545455%;
}
@media (max-width: 960px) {
  .scb-title {
    top: -6%;
    left: -7%;
    width: 100%;
  }
}

.scb-subtitle {
  font-size: 3.6rem;
  text-align: center;
}
@media (max-width: 960px) {
  .scb-subtitle {
    font-size: 3.2rem;
  }
}
.scb-subtitle.sub02 {
  margin-top: 50px;
}
@media (max-width: 960px) {
  .scb-subtitle.sub02 {
    margin-top: 90px;
  }
}

.scb-text {
  margin-top: 1em;
  text-align: center;
  font-weight: 500;
}
@media (max-width: 960px) {
  .scb-text {
    margin-top: 2em;
    text-align: left;
  }
}
.scb-text p + p {
  margin-top: 1.25em;
}

.scb-thumb-sp {
  display: contents;
}
@media (max-width: 960px) {
  .scb-thumb-sp {
    display: block;
    position: relative;
    aspect-ratio: 360/207;
    max-width: 360px;
    margin: 0 auto;
  }
}

.scb-thumb01 {
  position: absolute;
  left: -19%;
  top: 38%;
  aspect-ratio: 247/168;
  max-width: 247px;
  width: 28.0681818182%;
  transform: rotate(-9deg);
}
@media (max-width: 960px) {
  .scb-thumb01 {
    width: 150%;
    z-index: 1;
    left: -8%;
    top: 19%;
    z-index: 1;
  }
}
.scb-thumb01 img {
  width: 100%;
  height: auto;
}

.scb-thumb02 {
  position: absolute;
  right: -4%;
  top: 25%;
  aspect-ratio: 105/120;
  max-width: 105px;
  width: 11.9318181818%;
  transform: rotate(15deg);
}
@media (max-width: 960px) {
  .scb-thumb02 {
    width: 33%;
    right: -10%;
    top: 60%;
    z-index: 2;
  }
}
.scb-thumb02 img {
  width: 100%;
  height: auto;
}

.sec-scb {
  position: relative;
}
.sec-scb .cloud01 {
  right: -2%;
  top: 11%;
  z-index: 1;
  width: 345px;
}
.sec-scb .cloud02 {
  left: -2.5%;
  bottom: 12.5%;
  z-index: 1;
  width: 345px;
}
.sec-scb .lum02 {
  position: absolute;
  right: 7.5%;
  bottom: -16.5%;
  z-index: 3;
  aspect-ratio: 490/688;
  max-width: 490px;
  width: 28.3564814815%;
  pointer-events: none;
}
.sec-scb .star01 {
  position: absolute;
  z-index: 1;
  left: 17%;
  top: 9%;
  aspect-ratio: 1/1;
}
.sec-scb .star02 {
  position: absolute;
  z-index: 1;
  width: 39px;
  right: 15.5%;
  top: 54%;
  aspect-ratio: 1/1;
}
.sec-scb .line01 {
  position: absolute;
  z-index: 1;
  width: 150px;
  left: 19%;
  bottom: 21.5%;
  aspect-ratio: 150/100;
}
.sec-scb .line02 {
  position: absolute;
  z-index: 1;
  width: 90px;
  right: 16.5%;
  top: 25%;
  aspect-ratio: 90/51;
}

@media (max-width: 960px) {
  .sec-scb .cloud01 {
    right: -4%;
    top: 2%;
    width: 183px;
  }
  .sec-scb .cloud02 {
    left: -25.5%;
    bottom: 2.5%;
    width: 240px;
  }
  .sec-scb .lum02 {
    position: absolute;
    left: 5.5%;
    bottom: -5%;
    z-index: 3;
    width: 120%;
    max-width: 400px;
  }
  .sec-scb .star01 {
    left: 14%;
    top: 2%;
    width: 30px;
  }
  .sec-scb .star02 {
    display: none;
  }
  .sec-scb .line01 {
    left: auto;
    right: -1%;
    bottom: 17.5%;
    width: 70px;
    z-index: 5;
  }
  .sec-scb .line02 {
    display: none;
  }
}
/**********************
* Special item
***********************/
/* 枠 */
.spi-grid {
  border-bottom: 2px solid var(--color-primary);
  display: grid;
  grid-template-columns: auto min(1118px, 64.69%) auto;
  grid-template-rows: auto auto auto;
  gap: 0px 0px;
  grid-template-areas: "g01 g01 g01" "g02 g03 g05" "g02 g04 g05";
}
.spi-grid .g01 {
  grid-area: g01;
}
.spi-grid .g02 {
  grid-area: g02;
}
.spi-grid .g03 {
  grid-area: g03;
}
.spi-grid .g04 {
  grid-area: g04;
}
.spi-grid .g05 {
  grid-area: g05;
}
@media (max-width: 1024px) {
  .spi-grid {
    grid-template-columns: auto 83% auto;
  }
}

.spi-left {
  position: relative;
  overflow: hidden;
  border-right: 2px solid var(--color-primary);
}
.spi-left .cloud01 {
  left: -95%;
  top: 25%;
  z-index: 1;
}
.spi-left .cloud02 {
  left: -95%;
  bottom: 18%;
  z-index: 2;
}

.spi-right {
  position: relative;
  overflow: hidden;
  border-left: 2px solid var(--color-primary);
}
.spi-right .cloud01 {
  left: -16%;
  bottom: 14%;
  z-index: 1;
}
.spi-right .cloud02 {
  right: -11%;
  top: 28%;
  z-index: 2;
}

@media (max-width: 960px) {
  .spi-left .cloud01, .spi-left .cloud02 {
    width: 147px;
  }
  .spi-right .cloud01, .spi-right .cloud02 {
    width: 147px;
  }
}
.spi-header {
  padding: 88px 0 60px;
  border-bottom: 2px solid var(--color-primary);
}

.spi-title {
  margin: 0 auto;
  max-width: 932px;
  width: 53.9351851852%;
}
@media (max-width: 960px) {
  .spi-title {
    max-width: 342px;
    width: 91.2%;
  }
}

.spi-title-sub {
  margin-top: -5%;
  font-size: 1.6rem;
  text-align: center;
  font-weight: 700;
}
@media (max-width: 960px) {
  .spi-title-sub {
    font-size: 2.2rem;
  }
}

/* コンテンツ */
.spc {
  max-width: 1118px;
  width: 100%;
}

.spc-wrap {
  padding-top: 64px;
  padding-right: 5%;
  display: grid;
  grid-template-columns: 50.2683363148% 1fr;
  grid-template-rows: auto auto auto auto 1fr;
  gap: 0px 8.3%;
  grid-template-areas: "spc-thumb spc-title" "spc-thumb spc-date" "spc-thumb spc-text" "spc-thumb spc-info" "spc-thumb spc-button";
}
.spc-wrap .spc-thumb {
  grid-area: spc-thumb;
}
.spc-wrap .spc-title {
  grid-area: spc-title;
}
.spc-wrap .spc-date {
  grid-area: spc-date;
}
.spc-wrap .spc-text {
  grid-area: spc-text;
}
.spc-wrap .spc-info {
  grid-area: spc-info;
}
.spc-wrap .spc-button {
  grid-area: spc-button;
}
.spc-wrap.reverse {
  padding-right: 0;
  padding-left: 5%;
  grid-template-columns: 1fr 51.83%;
  gap: 0px 8.0500894454%;
  grid-template-areas: "spc-title spc-thumb" "spc-date spc-thumb" "spc-text spc-thumb" "spc-info spc-thumb" "spc-button spc-thumb";
}
@media (max-width: 960px) {
  .spc-wrap {
    padding-right: 3%;
    padding-left: 3%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto auto auto;
    gap: 30px 0;
    grid-template-areas: "spc-title" "spc-date" "spc-thumb" "spc-text" "spc-info" "spc-button ";
  }
  .spc-wrap.reverse {
    padding-right: 3%;
    padding-left: 3%;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto auto auto;
    gap: 30px 0;
    grid-template-areas: "spc-title" "spc-date" "spc-thumb" "spc-text" "spc-info" "spc-button ";
  }
}

.spc-thumb01 {
  align-self: center;
  position: relative;
  left: -2px;
  aspect-ratio: 562/429;
}
@media (max-width: 960px) {
  .spc-thumb01 {
    left: calc(-3% - 2px);
  }
}
.spc-thumb01 img {
  width: 100%;
  pointer-events: none;
}

.spc-thumb02 {
  align-self: center;
  position: relative;
  right: 0;
  aspect-ratio: 918/906;
}
@media (max-width: 960px) {
  .spc-thumb02 {
    right: -3%;
  }
}
.spc-thumb02 img {
  width: 100%;
  pointer-events: none;
}

.spc-body {
  padding: 64px 55px;
}

.spc-title {
  font-size: 3.2rem;
  font-weight: 700;
}
@media (max-width: 960px) {
  .spc-title {
    font-size: 2.9rem;
  }
}

.spc-date {
  margin-top: 20px;
  padding: 0.25em 1em;
  border: 1px solid var(--color-primary);
  border-radius: 8px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.6rem;
  font-weight: 500;
}

.spc-text {
  margin-top: 1em;
}

.spc-info {
  margin-top: 20px;
}

.spc-button {
  margin-top: 24px;
}
.spc-button a + a {
  margin-top: 1em;
}
@media (max-width: 960px) {
  .spc-button > * {
    margin: 0 auto;
  }
}

.spc-price {
  margin-top: 30px;
  font-size: 2.6rem;
  font-weight: 500;
}
.spc-price .yen {
  font-size: 61.5384615385%;
}
.spc-price .taxin {
  font-size: 46.1538461538%;
}

/* セット商品 */
.set-wrap {
  margin: 50px auto 0;
  max-width: 880px;
}

.set-card-wrap {
  margin: 67px auto 0;
  width: 89%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 45px 9.0909090909%;
}
@media (max-width: 767px) {
  .set-card-wrap {
    grid-template-columns: repeat(1, 1fr);
  }
}

.set-card-thumb {
  align-self: center;
  position: relative;
  left: -2px;
  aspect-ratio: 562/429;
  width: 50.2683363148%;
}
.set-card-thumb img {
  width: 100%;
  pointer-events: none;
}

.set-card-thumb02 {
  position: relative;
  right: -2px;
  width: 54.8300536673%;
  aspect-ratio: 613/604;
}
.set-card-thumb02 img {
  width: 100%;
  pointer-events: none;
}

.set-thumb img {
  width: 100%;
  pointer-events: none;
}

.set-title {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 92%;
  margin: 0 auto;
}
.set-title span {
  flex-shrink: 0;
  display: block;
  padding: 0em 1em;
  border: 1px solid var(--color-primary);
  border-radius: 8px;
  background-color: #E9F7FF;
}
.set-title::before, .set-title:after {
  content: "";
  display: block;
  width: 50%;
  height: 2px;
  border-bottom: 3px dotted var(--color-primary);
}

.set-subtitle {
  font-weight: 500;
}
.set-subtitle + * {
  margin-top: 0.5em;
}

.spi-contents.g03 {
  padding-bottom: 80px;
}

.spi-contents.g04 {
  padding-bottom: 152px;
  border-top: 2px solid var(--color-primary);
}

/**********************
* behind the scenes
***********************/
.behind-contents {
  position: relative;
  background: linear-gradient(180deg, #4B83CD 0%, #AED1FF 20.67%, #F5E4FD 77.89%, #72A6EA 100%);
}
.behind-contents::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: url(../img/noise.png);
  background-repeat: repeat;
  background-position: center, center;
  mix-blend-mode: soft-light;
}

.behind-header {
  position: relative;
  border-bottom: 2px solid var(--color-primary);
}
@media (max-width: 960px) {
  .behind-header {
    display: flex;
    flex-direction: column;
  }
  .behind-header::before {
    content: "";
    display: block;
    width: 100%;
    aspect-ratio: 360/230;
    max-height: 230px;
  }
}

.behind-title-en {
  position: absolute;
  top: -57%;
  left: 0;
  width: 50%;
  max-width: 901px;
  z-index: 4;
}
@media (max-width: 960px) {
  .behind-title-en {
    top: -21%;
    left: 50%;
    transform: translateX(-50%);
    width: 96%;
  }
}
@media (max-width: 767px) {
  .behind-title-en {
    max-width: 360px;
  }
}
.behind-title-en img {
  width: 100%;
  pointer-events: none;
}

.behind-title {
  margin-left: auto;
  padding: 1.5% 2%;
  width: 50%;
}
@media (max-width: 960px) {
  .behind-title {
    width: 100%;
    margin: 0 auto;
    text-align: center;
  }
}
.behind-title .text01 {
  padding: 0.25em 0;
  display: block;
  font-size: 4.8rem;
  font-size: min(2.77vw,48px);
  letter-spacing: 0.05em;
  line-height: 160%;
}
@media (max-width: 960px) {
  .behind-title .text01 {
    font-size: 3.6rem;
  }
}
.behind-title .text01 .small {
  font-size: 3.6rem;
  font-size: min(2.08vw,36px);
}
@media (max-width: 960px) {
  .behind-title .text01 .small {
    font-size: 2.4rem;
  }
}
.behind-title .text02 {
  display: block;
  border-top: 2px dotted var(--color-primary);
  padding: 0.25em 0;
  font-size: 4.4rem;
  font-size: min(2.54vw,44px);
  letter-spacing: 0.05em;
  line-height: 160%;
}
@media (max-width: 960px) {
  .behind-title .text02 {
    font-size: 3.2rem;
  }
}
.behind-title .text02 .small {
  font-size: 3.6rem;
  font-size: min(2.08vw,36px);
}
@media (max-width: 960px) {
  .behind-title .text02 .small {
    font-size: 2.4rem;
  }
}
@media (max-width: 960px) {
  .behind-title .text02 .small02 {
    font-size: 3.2rem;
  }
}

.behind-contents {
  position: relative;
}
.behind-contents .vehicle {
  position: absolute;
  right: 0;
  top: -1%;
  z-index: 4;
  max-width: 243px;
  width: 14.0625%;
  aspect-ratio: 269/285;
  pointer-events: none;
}
.behind-contents .vehicle img {
  width: 100%;
}
.behind-contents .cloud01 {
  right: -10%;
  top: 12%;
  z-index: 1;
}
.behind-contents .cloud02 {
  left: -12.5%;
  top: 36.5%;
  z-index: 2;
}
.behind-contents .cloud03 {
  right: -9%;
  top: 51%;
  z-index: 1;
}
.behind-contents .cloud04 {
  left: -13%;
  top: 71%;
  z-index: 2;
}
.behind-contents .cloud05 {
  right: -10%;
  bottom: 9.5%;
  z-index: 1;
}
.behind-contents .star01 {
  position: absolute;
  z-index: 5;
  width: 87px;
  top: 63%;
  left: 8%;
  aspect-ratio: 161/169;
}
.behind-contents .line01 {
  position: absolute;
  z-index: 5;
  width: 150px;
  left: 5%;
  top: 17%;
  aspect-ratio: 150/100;
}
.behind-contents .line02 {
  position: absolute;
  z-index: 5;
  width: 150px;
  right: 3%;
  top: 51.5%;
  aspect-ratio: 150/100;
}

@media (max-width: 960px) {
  .behind-contents {
    position: relative;
  }
  .behind-contents .cloud01 {
    width: 185px;
    top: 21.5%;
  }
  .behind-contents .cloud02 {
    width: 185px;
    top: 47%;
  }
  .behind-contents .cloud03 {
    width: 185px;
    top: 70%;
    right: -11%;
    left: auto;
  }
  .behind-contents .cloud04 {
    width: 185px;
    left: -14%;
    right: auto;
    top: 85%;
  }
  .behind-contents .cloud05 {
    width: 185px;
    right: -10%;
    top: 88%;
    left: auto;
  }
  .behind-contents .star01 {
    position: absolute;
    z-index: 5;
    max-width: 87px;
    width: 5.0347222222%;
    top: 63%;
    left: 8%;
    aspect-ratio: 161/169;
  }
}
@media (max-width: 960px) and (max-width: 767px) {
  .behind-contents .star01 {
    display: none;
  }
}
@media (max-width: 960px) {
  .behind-contents .line01 {
    position: absolute;
    z-index: 5;
    max-width: 150px;
    width: 8.6805555556%;
    left: 5%;
    top: 17%;
    aspect-ratio: 150/100;
  }
}
@media (max-width: 960px) and (max-width: 767px) {
  .behind-contents .line01 {
    display: none;
  }
}
@media (max-width: 960px) {
  .behind-contents .line02 {
    position: absolute;
    z-index: 5;
    max-width: 150px;
    width: 8.6805555556%;
    right: 3%;
    top: 51.5%;
    aspect-ratio: 150/100;
  }
}
@media (max-width: 960px) and (max-width: 767px) {
  .behind-contents .line02 {
    display: none;
  }
}
.flow-wrapper {
  position: relative;
  z-index: 3;
  padding-top: 100px;
}

.flow:nth-child(n+2) {
  margin-top: 80px;
}
.flow.odd {
  position: relative;
  left: 0;
  width: calc(50% + 559px);
  border-left: none;
  border-width: 2px 2px 2px 0px;
  border-style: solid;
  border-color: #272727;
  box-shadow: 6px 6px 0px #1C1D63;
  border-radius: 0px 16px 16px 0px;
}
.flow.odd .flow-in {
  margin-left: auto;
  display: grid;
  grid-template-columns: 50% 47%;
  grid-template-rows: auto;
  gap: 0px 3%;
  grid-template-areas: "flow-thumb flow-body";
}
.flow.odd .flow-in .flow-thumb {
  grid-area: flow-thumb;
}
.flow.odd .flow-in .flow-body {
  grid-area: flow-body;
}
@media (max-width: 767px) {
  .flow.odd .flow-in {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 0 0;
    grid-template-areas: "flow-body" "flow-thumb";
  }
}
.flow.odd .flow-title {
  padding-left: 6.5%;
  border-right: none;
}
@media (max-width: 767px) {
  .flow.odd .flow-title {
    width: 103%;
    right: -6.5%;
  }
}
.flow.odd .flow-text {
  padding-left: 0;
  padding-right: 8%;
}
@media (max-width: 767px) {
  .flow.odd .flow-text {
    padding-right: 7%;
    padding-left: 7%;
  }
}
.flow.even {
  position: relative;
  left: calc(50% - 559px);
  width: calc(50% + 559px);
  border-right: none;
  border-width: 2px 0px 2px 2px;
  border-style: solid;
  border-color: #272727;
  box-shadow: 6px 6px 0px #1C1D63;
  border-radius: 16px 0px 0px 16px;
}
.flow.even .flow-in {
  margin-right: auto;
  display: grid;
  grid-template-columns: 47% 50%;
  grid-template-rows: auto;
  gap: 0px 3%;
  grid-template-areas: "flow-body flow-thumb";
}
.flow.even .flow-in .flow-thumb {
  grid-area: flow-thumb;
}
.flow.even .flow-in .flow-body {
  grid-area: flow-body;
}
@media (max-width: 767px) {
  .flow.even .flow-in {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 0 0;
    grid-template-areas: "flow-body" "flow-thumb";
  }
}
.flow.even .flow-title {
  padding-left: 25.5%;
  border-left: none;
}
@media (max-width: 767px) {
  .flow.even .flow-title {
    width: 103%;
    left: -9.5%;
  }
}
.flow.even .flow-text {
  padding-left: 25.5%;
}
@media (max-width: 767px) {
  .flow.even .flow-text {
    padding-right: 7%;
    padding-left: 7%;
  }
}

@media (max-width: 1224px) {
  .flow.odd {
    left: 0;
    width: 92%;
  }
  .flow.even {
    left: 8%;
    width: 92%;
  }
}
.flow-in {
  display: flex;
  gap: 0 6.5%;
  width: 100%;
  max-width: 1118px;
}

.flow-title {
  position: relative;
  padding: 0.25em;
  font-size: 2.8rem;
  background: linear-gradient(90deg, #FFF989 0%, #FFE9A0 100%);
  border: 2px solid #0A0E3B;
}
@media (max-width: 767px) {
  .flow-title {
    font-size: 2.4rem;
  }
}
.flow-title::before {
  position: absolute;
  left: auto;
  right: 0;
  top: -0.75em;
  content: "";
  display: block;
  font-size: clamp(7.6rem,8.57vw,12rem);
  width: 1em;
  height: 1em;
  position: absolute;
  background: url(../img/no1.svg) no-repeat center/contain;
}
@media (max-width: 767px) {
  .flow-title::before {
    font-size: min(27.2vw,102px);
  }
}
.flow-title[data-num="1"] {
  padding-right: 25.5%;
}
@media (max-width: 767px) {
  .flow-title[data-num="1"]::before {
    right: -1.5%;
  }
}
.flow-title[data-num="2"]::before {
  left: -6.5%;
  right: auto;
  background: url(../img/no2.svg) no-repeat center/contain;
}
@media (max-width: 767px) {
  .flow-title[data-num="2"]::before {
    left: -1.5%;
  }
}
.flow-title[data-num="3"] {
  padding-right: 25.5%;
}
.flow-title[data-num="3"]::before {
  left: auto;
  right: 0;
  background: url(../img/no3.svg) no-repeat center/contain;
}
@media (max-width: 767px) {
  .flow-title[data-num="3"]::before {
    right: -1.5%;
  }
}
.flow-title[data-num="4"]::before {
  left: -6.5%;
  right: auto;
  background: url(../img/no4.svg) no-repeat center/contain;
}
@media (max-width: 767px) {
  .flow-title[data-num="4"]::before {
    left: -1.5%;
  }
}

.flow-text {
  margin-top: 24px;
}

.btn-zoom {
  display: block;
}
.btn-zoom span {
  position: relative;
  padding-left: 1.5em;
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-decoration: underline;
}
.btn-zoom span::before {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 1.5em;
  height: 1.5em;
  background: url(../img/ico_zoom.svg) no-repeat center/contain;
}

.flow-body {
  padding: 64px 0 40px;
}
@media (max-width: 767px) {
  .flow-body {
    padding: 55px 0 0;
  }
}

.flow-thumb {
  align-self: center;
  padding: 40px 0;
}
@media (max-width: 767px) {
  .flow-thumb {
    padding: 40px 8%;
  }
}
.flow-thumb img {
  width: 100%;
  pointer-events: none;
}

.flow-senga {
  margin: 20px auto 0;
  padding-left: 25.5%;
  width: 100%;
  text-align: center;
}
@media (max-width: 767px) {
  .flow-senga {
    padding-left: 0;
    width: 92%;
  }
}
.flow-senga img {
  width: 100%;
  pointer-events: none;
}

.block02 .flow-thumb {
  position: relative;
  right: -15%;
  padding-bottom: 0;
  align-self: end;
}
@media (max-width: 767px) {
  .block02 .flow-thumb {
    padding-left: 0;
    padding-right: 0;
    right: 0;
  }
}
.block02 .flow-thumb::before {
  position: absolute;
  left: -14%;
  bottom: -15%;
  content: "";
  display: block;
  aspect-ratio: 323/453;
  width: 60%;
  background: url(../img/lum_2.png) no-repeat top center/contain;
  pointer-events: none;
}
@media (max-width: 767px) {
  .block02 .flow-thumb::before {
    width: 69.25%;
  }
}

.sec-behind .lum-ten-wrapper {
  position: relative;
  padding-bottom: 10.7060185185%;
}
@media (max-width: 767px) {
  .sec-behind .lum-ten-wrapper {
    padding-bottom: 40%;
  }
}
.sec-behind .lum-ten-wrapper::before {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 0;
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 1733/285;
  background: url(../img/be_circle.svg) no-repeat center/cover;
}
@media (max-width: 767px) {
  .sec-behind .lum-ten-wrapper::before {
    aspect-ratio: 375/230;
    background-image: url(../img/be_circle_sp.svg);
  }
}
.sec-behind .lum-ten {
  position: relative;
  z-index: 2;
  margin: 178px auto 0;
  width: 19.0972222222%;
  pointer-events: none;
}
@media (max-width: 767px) {
  .sec-behind .lum-ten {
    margin: 270px auto 0;
    width: 58.6666666667%;
  }
}
.sec-behind .lum-ten img {
  width: 100%;
}
.sec-behind .star02 {
  position: absolute;
  z-index: 1;
  width: 2.2569444444%;
  left: 27.5%;
  top: -11%;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .sec-behind .star02 {
    width: 6.256944%;
    left: 36.5%;
    top: -15%;
  }
}
.sec-behind .star02 > img {
  width: 100%;
}
.sec-behind .star03 {
  position: absolute;
  z-index: 1;
  left: 62%;
  top: 5%;
  width: 1.3888888889%;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .sec-behind .star03 {
    left: 22%;
    top: 11%;
    width: 4.38%;
  }
}
.sec-behind .star03 > img {
  width: 100%;
}
.sec-behind .star04 {
  position: absolute;
  z-index: 1;
  left: 31.5%;
  top: 13%;
  width: 1.2731481481%;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .sec-behind .star04 {
    left: auto;
    right: 8%;
    top: 34%;
    width: 6.2%;
  }
}
.sec-behind .star04 > img {
  width: 100%;
}
.sec-behind .star05 {
  position: absolute;
  z-index: 1;
  width: 1.7361111111%;
  right: 29.5%;
  top: 54%;
  aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .sec-behind .star05 {
    width: 3.736111%;
    left: 26.5%;
    right: auto;
    top: 66%;
  }
}
.sec-behind .star05 > img {
  width: 100%;
}
.sec-behind .star06 {
  position: absolute;
  z-index: 1;
  max-width: 86px;
  width: 4.9768518519%;
  bottom: 82%;
  right: 13%;
  aspect-ratio: 161/169;
}
@media (max-width: 767px) {
  .sec-behind .star06 {
    width: 11.976852%;
    bottom: 122%;
    right: 10%;
  }
}
.sec-behind .star06 > img {
  width: 100%;
}
.sec-behind .line03 {
  position: absolute;
  z-index: 1;
  width: 8.6805555556%;
  left: 19%;
  bottom: 44.5%;
  aspect-ratio: 150/100;
}
@media (max-width: 767px) {
  .sec-behind .line03 {
    width: 16.680556%;
    left: 7%;
    bottom: 68.5%;
  }
}
.sec-behind .line03 > img {
  width: 100%;
}
.sec-behind .line04 {
  position: absolute;
  z-index: 1;
  width: 3.6458333333%;
  right: 25.5%;
  top: 18%;
  aspect-ratio: 90/51;
}
@media (max-width: 767px) {
  .sec-behind .line04 {
    display: none;
  }
}
.sec-behind .line04 > img {
  width: 100%;
}

/**********************
* where to buy
***********************/
.sec-buy {
  position: relative;
  border-top: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
}
.sec-buy .l-inner {
  position: relative;
  padding: 177px 0 180px;
  max-width: 960px;
}
@media (max-width: 960px) {
  .sec-buy .l-inner {
    padding: 144px 4% 370px;
  }
}

.buy-title-en {
  position: absolute;
  right: 1.5%;
  top: -7%;
  z-index: 2;
  width: 674px;
  aspect-ratio: 674/300;
}
@media (max-width: 960px) {
  .buy-title-en {
    width: 387px;
    right: -3%;
    top: -2%;
  }
}
.buy-title-en img {
  width: 100%;
  height: auto;
}

.buy-title {
  font-size: 4.4rem;
  text-align: center;
}
@media (max-width: 960px) {
  .buy-title {
    font-size: 3.2rem;
  }
}

.buy-card-wrap {
  margin: 80px auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 10%;
  max-width: 960px;
}
@media (max-width: 960px) {
  .buy-card-wrap {
    margin-top: 248px;
    grid-template-columns: repeat(1, 1fr);
    gap: 114px 0;
  }
}

.buy-card {
  position: relative;
  background: #FFFFFF;
  border-width: 2px;
  border-style: solid;
  border-color: #272727;
  box-shadow: 6px 6px 0px #1C1D63;
  border-radius: 16px;
}

.buy-card-thumb {
  overflow: hidden;
  border-radius: 16px 16px 0 0;
}
.buy-card-thumb img {
  width: 100%;
  height: auto;
}

.buy-card-body {
  padding: 24px 7% 40px;
}

.buy-card-title {
  padding-bottom: 0.5em;
  font-size: 2.4rem;
  font-weight: 700;
  border-bottom: 1px solid var(--text-black);
}
@media (max-width: 960px) {
  .buy-card-title {
    font-size: 2rem;
  }
}

.buy-card-text01 {
  padding-top: 1em;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
}
@media (max-width: 960px) {
  .buy-card-text01 {
    font-size: 1.5rem;
  }
}
.buy-card-text01 span {
  font-size: 75%;
}

.buy-card-button {
  position: absolute;
  bottom: -1em;
  right: -3em;
}
@media (max-width: 960px) {
  .buy-card-button {
    right: -6.5%;
  }
}

/* 装飾 */
.sec-buy {
  position: relative;
}
.sec-buy .buy-lum {
  position: absolute;
  top: -2%;
  left: 0;
  aspect-ratio: 393/354;
  width: 393px;
  z-index: 2;
  pointer-events: none;
}
@media (min-width: 1300px) {
  .sec-buy .buy-lum {
    left: calc((100% - 960px) / 2 - 154px);
  }
}
@media (max-width: 1200px) {
  .sec-buy .buy-lum {
    left: -4%;
  }
}
@media (max-width: 1100px) {
  .sec-buy .buy-lum {
    left: -14%;
  }
}
.sec-buy .buy-lum img {
  width: 100%;
}
.sec-buy .buy-ten {
  position: absolute;
  right: -7.5%;
  top: 61%;
  aspect-ratio: 106/114;
  max-width: 106px;
  width: 11.0416666667%;
  z-index: 2;
  pointer-events: none;
}
.sec-buy .buy-ten img {
  width: 100%;
}
.sec-buy .buy-item01 {
  position: absolute;
  bottom: 11.5%;
  left: -32.5%;
  aspect-ratio: 180/205;
  max-width: 180px;
  width: 18.75%;
  z-index: 1;
  transform: rotate(18.67deg);
  pointer-events: none;
}
.sec-buy .buy-item01 img {
  width: 100%;
}
.sec-buy .buy-item02 {
  position: absolute;
  top: 33%;
  right: -33%;
  aspect-ratio: 180/206;
  width: 18.75%;
  max-width: 180px;
  z-index: 1;
  transform: rotate(-12.31deg);
  pointer-events: none;
}
.sec-buy .buy-item02 img {
  width: 100%;
}
.sec-buy .cloud01 {
  left: -63%;
  top: 50.5%;
  z-index: 0;
}
.sec-buy .cloud02 {
  right: -63%;
  top: 38%;
  z-index: 0;
}

@media (max-width: 960px) {
  .sec-buy .buy-lum {
    top: 15%;
    top: 264px;
    left: auto;
    right: -1%;
    aspect-ratio: 393/354;
    width: 268px;
  }
  .sec-buy .buy-ten {
    right: 4.5%;
    bottom: 192px;
    top: auto;
    width: 106px;
  }
  .sec-buy .buy-item01 {
    bottom: auto;
    left: auto;
    top: 15%;
    top: 293px;
    left: 12%;
    width: 25.3333333333%;
    max-width: 181px;
  }
  .sec-buy .buy-item02 {
    top: auto;
    right: auto;
    bottom: 4.5%;
    left: 17.5%;
    width: 24%;
    max-width: 181px;
  }
  .sec-buy .cloud01 {
    left: -24%;
    top: 16.5%;
    width: 62.4%;
  }
  .sec-buy .cloud02 {
    right: -14%;
    top: auto;
    bottom: 5%;
    width: 86.4%;
  }
}
/**********************
* points
***********************/
.sec-points {
  position: relative;
  background: linear-gradient(180deg, #D1EAF7 0%, #FFFFFF 100%);
}
.sec-points .bg-wrapper {
  padding: 150px 4% 120px;
}
@media (max-width: 960px) {
  .sec-points .bg-wrapper {
    padding-bottom: 252px;
  }
}
.sec-points [class^=cloud] {
  position: absolute;
  pointer-events: none;
  width: 525px;
  aspect-ratio: 525/240;
}
.sec-points [class^=cloud] img {
  width: 100%;
}
.sec-points .cloud01 {
  left: -13%;
  top: 50.5%;
  z-index: 0;
}
.sec-points .cloud02 {
  right: -13%;
  top: 38%;
  z-index: 0;
}

.points-box {
  margin: 0 auto 0;
  padding: 58px 4%;
  position: relative;
  background: #FFFFFF;
  border-width: 2px;
  border-style: solid;
  border-color: #272727;
  box-shadow: 6px 6px 0px #1C1D63;
  border-radius: 16px;
  max-width: 880px;
}
@media (max-width: 767px) {
  .points-box {
    padding: 74px 8%;
  }
}

.points-title {
  position: absolute;
  top: -7%;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.15em 1em;
  max-width: 8em;
  width: 100%;
  display: inline-block;
  font-size: 2.8rem;
  font-weight: 500;
  background: #FFF759;
  border: 1px solid #0A0E3B;
  box-shadow: 6px 6px 0px #1C1D63;
  text-align: center;
}

.points-list dt {
  position: relative;
  padding-left: 1em;
  color: var(--color-secondary);
  font-weight: 500;
}
.points-list dt::before {
  content: "■";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1.2rem;
  color: var(--color-primary);
}
@media (max-width: 767px) {
  .points-list dt::before {
    font-size: 1rem;
  }
}
.points-list dd {
  padding-left: 2em;
  padding-bottom: 1.75em;
}
@media (max-width: 767px) {
  .points-list dd {
    padding-left: 1.25em;
  }
}

.points-button {
  margin: 0 auto 0;
}
.points-button > * {
  margin: 0 auto 0;
}

/*************************
* animation
**************************/
.js-animation[data-type=fadeIn] {
  visibility: hidden;
  opacity: 0;
  transition: 0.9s ease-out;
  transition-property: opacity, visibility;
}

.js-animation[data-type=fadeIn].is-show {
  visibility: visible;
  opacity: 1;
}

/* テンちゃん用 */
.js-animation[data-type=pukapuka] {
  visibility: visible;
  opacity: 1;
  transition: 0.9s ease-out;
  transition-property: opacity, visibility;
}

.js-animation[data-type=pukapuka].is-show {
  visibility: visible;
  opacity: 1;
  animation: pukapuka 1.8s ease-in-out 0s infinite alternate-reverse;
}

@-webkit-keyframes pukapuka {
  0% {
    transform: translateY(-10%);
  }
  100% {
    transform: translateY(10%);
  }
}

@keyframes pukapuka {
  0% {
    transform: translateY(-10%);
  }
  100% {
    transform: translateY(10%);
  }
}
/*さけ・いくらの商品画像用 */
.buy-item01, .buy-item02 {
  transform-origin: 50% 100%; /* 底辺を支点に回転（必要に応じて調整） */
  will-change: transform;
}

@-webkit-keyframes vibe01 {
  0% {
    transform: rotate(-20deg);
  }
  25% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(20deg);
  }
  75% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-20deg);
  }
}

@keyframes vibe01 {
  0% {
    transform: rotate(-20deg);
  }
  25% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(20deg);
  }
  75% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-20deg);
  }
}
@-webkit-keyframes vibe02 {
  0% {
    transform: rotate(20deg);
  }
  25% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(-20deg);
  }
  75% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(20deg);
  }
}
@keyframes vibe02 {
  0% {
    transform: rotate(20deg);
  }
  25% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(-20deg);
  }
  75% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(20deg);
  }
}
.buy-item01, .buy-item02 {
  -webkit-animation-duration: 1.35s;
          animation-duration: 1.35s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

/* 要素ごとにアサイン */
.buy-item01 {
  -webkit-animation-name: vibe01;
          animation-name: vibe01;
}

.buy-item02 {
  -webkit-animation-name: vibe02;
          animation-name: vibe02;
}

/* 低減設定のユーザーに配慮（任意） */
@media (prefers-reduced-motion: reduce) {
  .buy-item01, .buy-item02 {
    -webkit-animation: none !important;
            animation: none !important;
  }
}
/*******************
* modal
*******************/
.is-modal-open {
  overflow: hidden;
}

.modal {
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif;
}

.modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3000;
  background: rgba(0, 0, 0, 0.86);
  display: flex;
  justify-content: center;
  align-items: center;
}

.micromodal-slide.data-modal .modal__container {
  position: relative;
  margin: 0 auto;
  padding: 0;
  width: 90%;
  max-width: 1200px;
}
.micromodal-slide.data-modal .modal__content {
  box-shadow: 0px 0px 250px rgba(0, 0, 0, 0.4);
  overflow: hidden;
  border-radius: 0;
}
.micromodal-slide.data-modal .modal__close {
  margin: 15px auto 0;
  display: flex;
  align-items: center;
  text-align: center;
  padding: 0.5em 1.5em;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-size: 14px;
  outline: #fff;
  border: 1px solid #fff;
  border-radius: 40px;
  color: #fff;
}
.micromodal-slide.data-modal .modal__close:before {
  margin-right: 0.5em;
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url(../img/ico_close.svg) no-repeat center/contain;
}
.micromodal-slide.data-modal .modal__content {
  line-height: 1.5;
  color: rgba(0, 0, 0, 0.8);
  width: 100%;
  height: auto;
}
.micromodal-slide.data-modal .modal-img img {
  pointer-events: none;
  width: 100%;
  height: auto;
}

.modal-title {
  font-size: 18px;
  font-weight: 700;
  border-bottom: 1px solid #000;
}
.modal-title + .modal-text {
  margin-top: 1em;
}

.modal-text {
  font-size: 16px;
  line-height: 1.75;
}
.modal-text > * + * {
  margin-top: 1em;
}

.micromodal-slide.prof-modal .modal__container {
  position: relative;
  margin: 0 auto;
  padding: 0;
  width: 90%;
  max-width: 966px;
  max-height: 100svh;
}
.micromodal-slide.prof-modal .modal__content {
  padding: calc(108 / 966 * 100%) 10px;
  overflow: hidden;
}
.micromodal-slide.prof-modal .modal__close {
  margin: 15px auto 0;
  display: block;
  text-align: center;
  padding: 0.5em 1.5em;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-size: 14px;
  outline: #fff;
  border: 1px solid #fff;
  border-radius: 40px;
  color: #fff;
}
.micromodal-slide.prof-modal .modal__close:before {
  margin-right: 0.5em;
  content: "✕";
}
/**************************\
  Demo Animation Style
\**************************/
@-webkit-keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes mmslideIn {
  from {
    transform: translateY(10%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes mmslideIn {
  from {
    transform: translateY(10%);
  }
  to {
    transform: translateY(0);
  }
}
@-webkit-keyframes mmslideOut {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-5%);
  }
}
@keyframes mmslideOut {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-5%);
  }
}
.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden=false] .modal__overlay {
  -webkit-animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=false] .modal__container {
  -webkit-animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=true] .modal__overlay {
  -webkit-animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden=true] .modal__container {
  -webkit-animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
  will-change: transform;
}

.no-js .js-animation {
  opacity: 1 !important;
  visibility: visible !important;
}