/* ------------------------
  reset
------------------------ */
:where(.root-container) *,
:where(.root-container) *::after,
:where(.root-container) *::before {
  box-sizing: border-box;
}
:where(.root-container) * {
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
}
:where(.root-container) pre,
:where(.root-container) textarea {
  overflow: auto;
}
:where(.root-container) template {
  display: none;
}
:where(.root-container) details,
:where(.root-container) main,
:where(.root-container) summary {
  display: block;
}
:where(.root-container) input[type=number] {
  width: auto;
}
:where(.root-container) input[type=search] {
  -webkit-appearance: textfield;
}
:where(.root-container) input[type=search]::-webkit-search-cancel-button,
:where(.root-container) input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
:where(.root-container) progress {
  display: inline-block;
}
:where(.root-container) small {
  font-size: 75%;
}
:where(.root-container) sub,
:where(.root-container) sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}
:where(.root-container) sup {
  top: -0.5em;
}
:where(.root-container) sub {
  bottom: -0.25em;
}
:where(.root-container) textarea {
  resize: vertical;
}
:where(.root-container) audio,
:where(.root-container) canvas,
:where(.root-container) iframe,
:where(.root-container) img,
:where(.root-container) svg,
:where(.root-container) video {
  vertical-align: middle;
}
:where(.root-container) audio:not([controls]) {
  display: none;
}
:where(.root-container) img {
  border: 0;
  width: 100%;
  max-width: 100%;
  height: auto;
}
:where(.root-container) img[src$=".svg"] {
  width: 100%;
}
:where(.root-container) button,
:where(.root-container) input,
:where(.root-container) select,
:where(.root-container) textarea {
  min-height: 1.5em;
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
}
:where(.root-container) button {
  overflow: visible;
}
:where(.root-container) button,
:where(.root-container) select {
  text-transform: none;
}
:where(.root-container) input {
  line-height: normal;
}
:where(.root-container) button,
:where(.root-container) html input[type=button],
:where(.root-container) input[type=reset],
:where(.root-container) input[type=submit] {
  border-style: none;
  cursor: pointer;
  background-color: transparent;

  -webkit-appearance: button;
}
:where(.root-container) button[disabled],
:where(.root-container) html input[disabled] {
  cursor: default;
}
:where(.root-container) button::-moz-focus-inner,
:where(.root-container) input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
:where(.root-container) code,
:where(.root-container) kbd,
:where(.root-container) pre,
:where(.root-container) samp {
  font-family: monospace;
}
:where(.root-container) ol,
:where(.root-container) ul {
  list-style: none;
}
:where(.root-container) select {
     -moz-appearance: none;
  -webkit-appearance: none;
}
:where(.root-container) table {
  border-spacing: 0;
  border-collapse: collapse;
}
:where(.root-container) fieldset {
  border: 0;
}
:where(.root-container) header {
  all: revert;
}
:where(.root-container) legend {
  color: inherit;
}

/* ------------------------
  Base Settings
------------------------ */
body {
  overflow: visible !important;
  height: auto !important;
}

:where(.root-container) {
  background-color: var(--color-white);
  word-wrap: break-word;
  color: var(--color-midnight-blue);
  font-family: "Noto Sans JP", sans-serif;
  font-size: inherit;
  line-height: 1.6875;

  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
:where(.root-container) a {
  text-decoration: none;
  color: inherit;
}
:where(.root-container) a:visited {
  color: inherit;
}
:where(.root-container) a:hover {
  text-decoration: none;
  color: inherit;
}
:where(.root-container) a:active {
  text-decoration: none;
  color: inherit;
}
:where(.root-container) a[href^="tel:"]:hover {
  color: inherit;
}
@media (min-width: 768px) {
  :where(.root-container) a[href^="tel:"] {
    cursor: text;
    text-decoration: none;
  }
}

/* ------------------------
  utilities Classes
------------------------ */
.u-hidden- {
  display: none !important;
  visibility: hidden;
}

@media (max-width: 767.98px) {
  .u-hidden-sm {
    display: none !important;
    visibility: hidden;
  }
}

.u-hidden-up-sm {
  display: none !important;
  visibility: hidden;
}

@media (max-width: 767.98px) {
  .u-hidden-down-sm {
    display: none !important;
    visibility: hidden;
  }
}

@media (min-width: 768px) and (max-width: 1279.98px) {
  .u-hidden-md {
    display: none !important;
    visibility: hidden;
  }
}

@media (min-width: 768px) {
  .u-hidden-up-md {
    display: none !important;
    visibility: hidden;
  }
}

@media (max-width: 1279.98px) {
  .u-hidden-down-md {
    display: none !important;
    visibility: hidden;
  }
}

@media (min-width: 1280px) {
  .u-hidden-lg {
    display: none !important;
    visibility: hidden;
  }
}

@media (min-width: 1280px) {
  .u-hidden-up-lg {
    display: none !important;
    visibility: hidden;
  }
}

.u-hidden-down-lg {
  display: none !important;
  visibility: hidden;
}

.u-visuallyhidden {
  overflow: hidden;
  clip: rect(0 0 0 0);
  position: absolute;
  margin: -1px;
  padding: 0;
  border: 0;
  width: 1px;
  height: 1px;
}

.u-visuallyhidden.focusable:active,
.u-visuallyhidden.focusable:focus {
  overflow: visible;
  clip: auto;
  position: static;
  margin: 0;
  width: auto;
  height: auto;
}

.u-invisible {
  visibility: hidden;
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* ------------------------
  Variables
------------------------ */
.root-container {
  --color-white: #fff;
  --color-gray: #f6f6f6;
  --color-midnight-blue: #191465;
  --font-source-sans-3: "Source Sans 3", sans-serif;
  --font-zen-kaku-gothic-new: "Zen Kaku Gothic New", sans-serif;
  --common-gradient: linear-gradient(90deg, #e01e2f 0%, #c71e72 27%, #5c33ab 100%);
}

.module-btn {
  display: grid;
  position: relative;
  padding: 4.5333333333vw 11.6vw 4.2666666667vw;
  border-radius: 17.1426666667vw;
  width: 100%;
  background: linear-gradient(90deg, #2528d0, #10104d);
}
@media (min-width: 768px) {
  .module-btn {
    padding: clamp(13.015625px, 1.328125vw, 17px) clamp(38.28125px, 3.90625vw, 50px);
    border-radius: clamp(68.90625px, 7.03125vw, 90px);
  }
}
.module-btn > .txt {
  text-align: center;
  letter-spacing: 0.05em;
  color: var(--color-white);
  font-size: 4.8vw;
  font-weight: 700;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .module-btn > .txt {
    font-size: clamp(18.375px, 1.875vw, 24px);
  }
}
.module-btn > .arrow {
  position: absolute;
  margin: auto;
  width: 2.4vw;
  height: -moz-fit-content;
  height: fit-content;
  font-size: 0;

  inset: 0 6.1333333333vw 0 auto;
}
@media (min-width: 768px) {
  .module-btn > .arrow {
    right: clamp(22.203125px, 2.265625vw, 29px);
    width: clamp(5.359375px, 0.546875vw, 7px);
  }
}
.module-btn > .arrow.-down {
  transform: rotate(90deg);
}
.module-btn:disabled {
  opacity: 0.4;
  background: #606060;
}
@media (any-hover: hover) {
  .module-btn {
    transition: opacity 0.15s cubic-bezier(0.42, 0, 1, 1);
  }
  .module-btn > .arrow {
    transition: transform 0.15s cubic-bezier(0.42, 0, 1, 1);
  }
  .module-btn:hover:not(:disabled) {
    opacity: 0.8;
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.2s;
  }
  .module-btn:hover:not(:disabled) > .arrow {
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.2s;
  }
  .module-btn:hover:not(:disabled) > .arrow.-right {
    transform: translateX(50%);
  }
  .module-btn:hover:not(:disabled) > .arrow.-down {
    transform: translateY(40%) rotate(90deg);
  }
}

.module-bg {
  position: relative;
  height: 40.1333333333vw;
}
@media (min-width: 768px) {
  .module-bg {
    height: clamp(284.046875px, 28.984375vw, 371px);
  }
}
.module-bg > .circle {
  opacity: 0.2;
  position: absolute;
}
.module-bg > .circle.-circle01 {
  bottom: 0;
  left: -49.7333333333vw;
  width: 77.8666666667vw;
  height: 77.8666666667vw;
  background: radial-gradient(closest-side, rgba(92, 51, 171, 0.91) 0%, rgba(92, 51, 171, 0.35) 54%, rgba(92, 51, 171, 0) 100%);
}
@media (min-width: 768px) {
  .module-bg > .circle.-circle01 {
    left: clamp(-484px, -37.8125vw, -370.5625px);
    width: clamp(509.90625px, 52.03125vw, 666px);
    height: clamp(509.90625px, 52.03125vw, 666px);
  }
}
.module-bg > .circle.-circle02 {
  bottom: 11.7333333333vw;
  left: -27.0666666667vw;
  width: 96.1333333333vw;
  height: 96.1333333333vw;
  background: radial-gradient(closest-side, #c71e72 0%, rgba(199, 30, 114, 0.35) 54%, rgba(199, 30, 114, 0) 100%);
}
@media (min-width: 768px) {
  .module-bg > .circle.-circle02 {
    bottom: clamp(91.875px, 9.375vw, 120px);
    left: clamp(-234px, -18.28125vw, -179.15625px);
    width: clamp(630.875px, 64.375vw, 824px);
    height: clamp(630.875px, 64.375vw, 824px);
  }
}
.module-bg > .circle.-circle03 {
  right: -54.1333333333vw;
  bottom: 9.8666666667vw;
  width: 91.7333333333vw;
  height: 82.1333333333vw;
  background: radial-gradient(closest-side, #e01e2f 0%, rgba(224, 30, 47, 0.35) 54%, rgba(224, 30, 47, 0) 100%);
}
@media (min-width: 768px) {
  .module-bg > .circle.-circle03 {
    right: clamp(-394px, -30.78125vw, -301.65625px);
    bottom: clamp(113.3125px, 11.5625vw, 148px);
    width: clamp(666.09375px, 67.96875vw, 870px);
    height: clamp(542.0625px, 55.3125vw, 708px);
  }
}

.module-cta {
  /* ------------------------
    Variables
  ------------------------ */
}
@media (min-width: 768px) {
  .module-cta > .cta-btn {
    margin: 0 auto;
    width: clamp(405.78125px, 41.40625vw, 530px);
  }
}
.module-cta > .note {
  margin-top: 5.6vw;
  letter-spacing: 0;
  font-size: 3.4666666667vw;
  font-weight: 500;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .module-cta > .note {
    margin-top: clamp(16.84375px, 1.71875vw, 22px);
    text-align: center;
    font-size: clamp(10.71875px, 1.09375vw, 14px);
    line-height: 1.5;
  }
}
.module-cta .root-container {
  --color-white: #fff;
  --color-gray: #f6f6f6;
  --color-midnight-blue: #191465;
  --font-source-sans-3: "Source Sans 3", sans-serif;
  --font-zen-kaku-gothic-new: "Zen Kaku Gothic New", sans-serif;
  --common-gradient: linear-gradient(90deg, #e01e2f 0%, #c71e72 27%, #5c33ab 100%);
}
.module-cta .cta-btn {
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
  padding: 1.8666666667vw 0 1.6vw;
  border-radius: 999px;
  background: linear-gradient(90deg, #2528d0, #10104d);
}
@media (min-width: 768px) {
  .module-cta .cta-btn {
    padding: clamp(9.953125px, 1.015625vw, 13px) 0 clamp(9.953125px, 1.015625vw, 13px) clamp(7.65625px, 0.78125vw, 10px);
  }
}
.module-cta .cta-btn > .main {
  position: relative;
  text-align: center;
  letter-spacing: 0.05em;
  color: var(--color-white);
  font-size: 2.9333333333vw;
  font-weight: 700;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .main {
    font-size: clamp(11.484375px, 1.171875vw, 15px);
  }
}
.module-cta .cta-btn > .main > .deco {
  position: absolute;
  bottom: 0;
  width: 1.9853333333vw;
  height: 3.3293333333vw;
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .main > .deco {
    width: clamp(8.4065625px, 0.8578125vw, 10.98px);
    height: clamp(13.91140625px, 1.41953125vw, 18.17px);
  }
}
.module-cta .cta-btn > .main :nth-child(1 of .deco) {
  left: -1.6vw;
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .main :nth-child(1 of .deco) {
    left: clamp(-16px, -1.25vw, -12.25px);
  }
}
.module-cta .cta-btn > .main :nth-child(2 of .deco) {
  right: -2.6666666667vw;
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .main :nth-child(2 of .deco) {
    right: clamp(-12px, -0.9375vw, -9.1875px);
  }
}
.module-cta .cta-btn > .main :nth-child(1 of span) {
  letter-spacing: -0.15em;
}
.module-cta .cta-btn > .main :nth-child(2 of span) {
  letter-spacing: -0.22em;
}
.module-cta .cta-btn > .sub {
  position: relative;
  margin-top: -0.4vw;
  text-align: center;
  letter-spacing: 0.05em;
  color: var(--color-white);
  font-size: 4.2666666667vw;
  font-weight: 700;
  line-height: 1.5;
}
@media (max-width: 767.98px) {
  .module-cta .cta-btn > .sub {
    margin-left: 2.2666666667vw;
  }
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .sub {
    margin-top: clamp(-1px, -0.078125vw, -0.765625px);
    font-size: clamp(18.375px, 1.875vw, 24px);
  }
}
.module-cta .cta-btn > .arrow {
  position: absolute;
  margin: auto;
  width: 1.8666666667vw;
  height: -moz-fit-content;
  height: fit-content;
  font-size: 0;

  inset: 0 4.0066666667vw 0 auto;
}
@media (min-width: 768px) {
  .module-cta .cta-btn > .arrow {
    right: clamp(16.84375px, 1.71875vw, 22px);
    width: clamp(5.359375px, 0.546875vw, 7px);
  }
}
.module-cta .cta-btn:disabled {
  opacity: 0.4;
  background: #606060;
}
@media (any-hover: hover) {
  .module-cta .cta-btn {
    transition: opacity 0.15s cubic-bezier(0.42, 0, 1, 1);
  }
  .module-cta .cta-btn > .arrow {
    transition: transform 0.15s cubic-bezier(0.42, 0, 1, 1);
  }
  .module-cta .cta-btn:hover:not(:disabled) {
    opacity: 0.8;
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.2s;
  }
  .module-cta .cta-btn:hover:not(:disabled) > .arrow {
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.2s;
    transform: translateX(50%);
  }
}

/* --------------------------------
  keyframes
-------------------------------- */
.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  z-index: 1000;
  top: 0;
  right: 0;
  left: 0;
  padding: 0 4.9333333333vw 0 8.5986666667vw;
  height: 12vw;
  background-color: var(--color-white);
  box-shadow: 0 0.5333333333vw 1.8666666667vw rgba(0, 0, 0, 0.1);
}
.header-container .nav-box {
  position: relative;
}
@media (max-width: 767.98px) {
  .header-container .nav-box {
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.15s;
    transition-property: visibility, opacity;
    background-color: rgba(25, 20, 101, 0.8);
  }
}
@media (max-width: 767.98px) {
  .header-container .nav-box:not(.-expanded) {
    visibility: hidden;
    opacity: 0;
  }
}
.header-container .nav-btn {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .header-container .nav-btn {
    display: none;
  }
}
.header-container .nav-btn > .line {
  border-radius: 999px;
  width: 100%;
  height: 0.5333333333vw;
  transition: transform 0.15s cubic-bezier(0, 0, 0.58, 1), opacity 0.15s cubic-bezier(0, 0, 0.58, 1);
  background-color: var(--color-midnight-blue);
}
.header-container .nav-btn[aria-expanded=true] > .line:nth-child(1) {
  transform: translate(0, 2.5333333333vw) scale(1.06) rotate(42.14deg);
}
.header-container .nav-btn[aria-expanded=true] > .line:nth-child(2) {
  opacity: 0;
}
.header-container .nav-btn[aria-expanded=true] > .line:nth-child(3) {
  transform: translate(0, -2.5333333333vw) scale(1.06) rotate(137.86deg);
}
.header-container .nav-item {
  position: relative;
}
@media (min-width: 768px) {
  .header-container .nav-item {
    padding: 0 clamp(16.84375px, 1.71875vw, 22px);
  }
}
@media (max-width: 767.98px) {
  .header-container .nav-item::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, #e01e2f, #c71e72 27%, #5c33ab);
  }
}
@media (min-width: 768px) {
  .header-container .nav-item:not(:first-child)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    background: linear-gradient(to top, #e01e2f, #c71e72 27%, #5c33ab);
  }
}
.header-container .nav-item > .link {
  display: block;
  text-align: center;
  letter-spacing: 0.05em;
  color: var(--color-midnight-blue);
  font-size: 4.8vw;
  font-weight: 700;
  line-height: 2;
}
@media (max-width: 767.98px) {
  .header-container .nav-item > .link {
    margin: 0 -10.8vw;
    padding: 2.1333333333vw 0 2.6666666667vw;
  }
}
@media (min-width: 768px) {
  .header-container .nav-item > .link {
    font-size: clamp(12.25px, 1.25vw, 16px);
  }
}
.header-container .nav-item > .link.-en {
  letter-spacing: 0;
}
@media (max-width: 767.98px) {
  .header-container .nav-item > .link.-en {
    padding-bottom: 1.0666666667vw;
    font-size: 5.0666666667vw;
  }
}
@media (any-hover: hover) {
  .header-container .nav-item {
    transition: opacity 0.15s cubic-bezier(0.42, 0, 1, 1);
  }
  .header-container .nav-item:hover {
    opacity: 0.6;
    transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
    transition-duration: 0.2s;
  }
}
.header-container .nav-items {
  background-color: var(--color-white);
}
@media (max-width: 767.98px) {
  .header-container .nav-items {
    padding: 18.1333333333vw 10.8vw 10.1333333333vw;
  }
}
@media (min-width: 768px) {
  .header-container .nav-items {
    display: flex;
  }
}
@media (min-width: 768px) {
  .header-container {
    padding: 0 clamp(32.921875px, 3.359375vw, 43px) 0 clamp(23.734375px, 2.421875vw, 31px);
    height: clamp(45.9375px, 4.6875vw, 60px);
    box-shadow: 0 clamp(3.0625px, 0.3125vw, 4px) clamp(10.71875px, 1.09375vw, 14px) rgba(0, 0, 0, 0.1);
  }
}
.header-container > .logo {
  z-index: 1;
  width: 11.636vw;
  font-size: 0;
}
@media (min-width: 768px) {
  .header-container > .logo {
    width: clamp(56.63328125px, 5.77890625vw, 73.97px);
  }
}
.header-container > .nav-btn {
  z-index: 1;
  width: 7.6vw;
  height: 5.6vw;
}
@media (max-width: 767.98px) {
  .header-container > .nav-box {
    position: fixed;

    inset: 0;
  }
}

.footer-container {
  background-color: #aaa;
}
.promomats-container {
  background-color: var(--color-gray);
}
.promomats-container > .promomats-box {
  padding: 8vw;
}
@media (min-width: 768px) {
  .promomats-container > .promomats-box {
    margin: 0 auto;
    padding: clamp(19.90625px, 2.03125vw, 26px) clamp(137.8125px, 14.0625vw, 180px);
    width: clamp(980px, 100vw, 1280px);
  }
}
.promomats-container .promomats-box > .num {
  text-align: center;
  letter-spacing: 0.01em;
  font-size: 3.0666666667vw;
  line-height: 1;
}
@media (max-width: 767.98px) {
  .promomats-container .promomats-box > .num {
    margin-right: -4vw;
  }
}
@media (min-width: 768px) {
  .promomats-container .promomats-box > .num {
    text-align: right;
    letter-spacing: 0.08em;
    font-size: clamp(11.484375px, 1.171875vw, 15px);
  }
}

.modal-container {
  display: flex;
  position: fixed;
  z-index: 10000;
  transition: visibility 0.3s cubic-bezier(0, 0, 0.58, 1), opacity 0.3s cubic-bezier(0, 0, 0.58, 1);
  background-color: rgba(25, 20, 101, 0.8);

  inset: 0;
}
.modal-container.-hidden {
  visibility: hidden;
  opacity: 0;
  transition-timing-function: cubic-bezier(0.42, 0, 1, 1);
  transition-duration: 0.15s;
}

/* ------------------------
  Print Styles
------------------------ */
@media print {
  :where(.root-container) *,
  :where(.root-container) *::before,
  :where(.root-container) *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  :where(.root-container) a,
  :where(.root-container) a:visited {
    text-decoration: underline;
  }
  :where(.root-container) tr,
  :where(.root-container) img {
    page-break-inside: avoid;
  }
  :where(.root-container) img {
    max-width: 100% !important;
  }
  :where(.root-container) p,
  :where(.root-container) h2,
  :where(.root-container) h3 {
    orphans: 3;
    widows: 3;
  }
  :where(.root-container) h2,
  :where(.root-container) h3 {
    page-break-after: avoid;
  }
}

/*
* global.css
*
*/