*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden="until-found"])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
  color-scheme: dark light;
  tab-size: 2;
  scrollbar-gutter: stable;
}

:where(html:has(dialog:modal[open])) {
  overflow: clip;
}

:where(body) {
  line-height: 1.5;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

:where(button) {
  all: unset;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role="button"], [role="option"]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(a) {
  color: inherit;
  text-underline-offset: 0.2ex;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg, video) {
  max-inline-size: 100%;
  block-size: auto;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(h1, h2, h3) {
  line-height: calc(1em + 0.5rem);
}

:where(hr) {
  border: none;
  border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(dialog) {
  border: none;
  background: none;
  inset: unset;
  max-width: unset;
  max-height: unset;
}

:where(dialog:not([open])) {
  display: none !important;
}

:where(:focus) {
  outline: none;
}

:where(:focus-visible) {
  outline: none;
}

:where(:focus-visible):is(button, a, input, textarea, [tabindex="0"]) {
  outline: 2px solid CanvasText;
  box-shadow: 0 0 0 2px Canvas;
  outline-offset: 2px;
}

:where(:focus-visible, :target) {
  scroll-margin-block: 8vh;
}

:where(.visually-hidden:not(:focus-within, :active)) {
  clip-path: inset(50%) !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  border: 0 !important;
}

:root {
  --vh: 1vh;
  --vw: 1vw;
  --white: #ffffff;
  --navy: #0e0e31;
  --primary: #74d3ff;
  --font-size-base: 1rem;
  --line-height-base: 1.5;
  --font-family-base: "Noto Sans JP", sans-serif;
  --font-family-serif: "Noto Serif JP", serif;
  --container-width: 1200px;
  --container-width--lg: 1380px;
  --side-padding: 20px;
}

html,
body {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  font-family: var(--font-family-base);
  color: var(--navy);
}

body.is-gnavOpen {
  overflow: hidden;
}

.layout-loading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #000;
  z-index: 100;
  padding: var(--side-padding);
  display: flex;
  transition:
    opacity 1s linear,
    visibility 1s;
}
.is-loadEnd .layout-loading {
  opacity: 0;
  visibility: hidden;
}
.layout-loading__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  clip-path: polygon(0 50%, 100% 50%, 100% 50%, 0 50%);
  transition: clip-path 1s cubic-bezier(0.32, 0, 1, 0.37) 0.1s;
}
.is-stated .layout-loading__inner {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.layout-loading__text {
  width: fit-content;
  position: relative;
  z-index: 0;
}
.layout-loading__text img {
  animation: blinkPattern 2s infinite;
}
.layout-loading__text::after {
  content: "";
  display: block;
  position: absolute;
  background: url(../images/loading_deco.png) no-repeat center center/contain;
  aspect-ratio: 516/257;
  width: 516px;
  z-index: -2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: randomBlink 3s infinite;
}
.layout-loading__bar {
  max-width: var(--container-width);
  width: 100%;
  margin: 0 auto;
  height: 2px;
  background: #fff;
  box-shadow: 0 0 20px 4px rgba(175, 205, 234, 0.5);
  transform: scaleX(0);
  transform-origin: left top;
}
.is-stated .layout-loading__bar {
  transition: transform 0.5s ease-in-out 0.5s;
  transform: scaleX(1);
}
.layout-loading__bar::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #3dcff3;
  box-shadow: 0 0 10px 1px rgba(175, 205, 234, 0.5);
  transform: scaleX(0);
  transform-origin: left top;
}
.is-stated .layout-loading__bar::before {
  transition: transform 2.5s ease-in-out 1s;
  transform: scaleX(1);
}

@keyframes randomBlink {
  0% {
    opacity: 1;
    transition-timing-function: ease-in;
  }
  15% {
    opacity: 0.2;
    transition-timing-function: ease-out;
  }
  30% {
    opacity: 0.8;
    transition-timing-function: ease-in-out;
  }
  50% {
    opacity: 0.4;
    transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
  }
  65% {
    opacity: 1;
    transition-timing-function: ease-in;
  }
  80% {
    opacity: 0.6;
    transition-timing-function: ease-out;
  }
  100% {
    opacity: 1;
    transition-timing-function: linear;
  }
}
@keyframes blinkPattern {
  0%,
  100% {
    opacity: 1;
  }
  25% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.7;
  }
  75% {
    opacity: 0.3;
  }
}
.layout-header {
  position: sticky;
  top: 0;
  z-index: 20;
}
.layout-header-inner {
  min-height: 108px;
  padding: 0 40px 0 20px;
  display: grid;
  grid-template-columns: clamp(180px, 11.7708333333vw, 226px) 1fr;
  background: #000;
}
.layout-header-logo {
  align-self: center;
}
.layout-header-hamburger {
  position: absolute;
  width: 65px;
  height: 65px;
  right: 0;
  top: 0;
}
.layout-header-hamburger::before,
.layout-header-hamburger::after {
  content: "";
  display: block;
  position: absolute;
  width: 32px;
  height: 2px;
  background: #fff;
  left: 14px;
  top: calc(50% - 1px);
  transition: opacity 0.3s;
}
.layout-header-hamburger::before {
  top: calc(50% - 10px);
}
.is-gnavOpen .layout-header-hamburger::before {
  opacity: 0;
}
.layout-header-hamburger::after {
  top: calc(50% + 10px);
}
.is-gnavOpen .layout-header-hamburger::after {
  opacity: 0;
}
.layout-header-hamburger span::before,
.layout-header-hamburger span::after {
  content: "";
  display: block;
  position: absolute;
  width: 32px;
  height: 2px;
  background: #fff;
  left: 14px;
  top: 50%;
  transition: transform 0.3s;
}
.is-gnavOpen .layout-header-hamburger span::before {
  transform: rotate(30deg);
}
.is-gnavOpen .layout-header-hamburger span::after {
  transform: rotate(-30deg);
}
.layout-header-list {
  display: flex;
  font-weight: bold;
  gap: 0 clamp(40px, 4.1666666667vw, 80px);
}
.layout-header-list-item {
  display: flex;
  position: relative;
}
.layout-header-list-item:has(a[href="#top"]) {
  height: 0;
  width: 0;
}
.layout-header-list-link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #fff;
  text-decoration: none;
  position: relative;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: var(--font-family-serif);
}
.layout-header-list-link .en {
  color: #74d3ff;
  font-weight: bold;
  text-transform: uppercase;
}
.layout-header-list-link .ja {
  font-size: clamp(1.25rem, 1.25vw, 1.5rem);
  letter-spacing: -0.05em;
}
.layout-header-list-link::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: calc(50% - 10px);
  background: #fff;
  opacity: 0;
  height: 15px;
  width: 20px;
  transition: opacity 0.3s;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
.layout-header-list-link--current::after {
  opacity: 1;
}
.layout-header-list-link[href="#top"] {
  visibility: hidden;
  width: 0;
  height: 0;
}
.layout-header-line {
  min-height: 40px;
  background: #535353;
  display: flex;
  align-items: center;
  position: relative;
}
.layout-header-line-title {
  font-size: 1rem;
  font-weight: 400;
  color: #dedede;
  padding-left: 110px;
}
.layout-header-line-title::before {
  content: "";
  display: block;
  position: absolute;
  width: 102px;
  height: 40px;
  background: url(../images/header_line.svg) no-repeat center right;
  top: 0;
  left: 0;
}

#wrapper {
  background: #012674;
  min-height: 100dvh;
}
.is-loading #wrapper {
  height: 100dvh;
  overflow: hidden;
}

#main {
  min-height: 100lvh;
  display: flex;
  flex-direction: column;
  filter: blur(15px);
  transform: scale(1.05);
  transition:
    filter 1s,
    transform 1s;
}
.is-loadEnd #main {
  filter: blur(0);
  transform: scale(1);
}

.mv {
  display: flex;
  width: 100%;
  height: 100vh;
  min-height: 800px;
  position: relative;
  overflow: hidden;
  padding-bottom: 5.7291666667vw;
  margin-bottom: -5.7291666667vw;
}
.mv__inner {
  padding: 0 var(--side-padding) 0;
  width: 100%;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
}
.mv__contents {
  max-width: var(--container-width--lg);
  margin: 0 auto;
  width: 100%;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mv__logo {
  align-self: flex-end;
  margin-bottom: 80px;
  aspect-ratio: 813/262;
  width: clamp(660px, 42.34375vw, 813px);
  opacity: 0;
  transition:
    filter 0.75s linear 1.8s,
    opacity 0.75s linear 1.8s;
}
.is-loadEnd .mv__logo {
  filter: blur(0);
  opacity: 1;
}
.mv__chara {
  aspect-ratio: 1132/971;
  width: 58.9583333333vw;
  max-width: 940px;
  min-width: 600px;
  left: calc(var(--side-padding) * -1);
  pointer-events: none;
  bottom: 0;
  position: absolute;
  z-index: -1;
  opacity: 0;
  filter: blur(10px);
  transition:
    filter 1s linear 1s,
    opacity 1s linear 1s;
}
.is-loadEnd .mv__chara {
  filter: blur(0);
  opacity: 1;
}
.mv__chara img {
  object-fit: cover;
  object-position: bottom left;
  width: 100%;
  height: 100%;
}
.mv__button {
  width: fit-content;
  margin: 0 auto 0;
  position: relative;
  aspect-ratio: 572/170;
  width: clamp(400px, 29.7916666667vw, 572px);
  opacity: 0;
  transform: translateY(40px);
  transition:
    transform 0.75s ease-out 2.5s,
    opacity 0.75s linear 2.5s;
}
.is-loadEnd .mv__button {
  opacity: 1;
  transform: translateY(0);
}
.mv__button-text {
  position: absolute;
  top: 0;
  left: 12%;
  right: 12%;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.mv__button:hover .mv__button-bg {
  filter: brightness(1.2) contrast(0.9);
  transition: filter 0.3s ease-out;
}
.mv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: filter 0.1s ease-out;
}
.mv__bg img {
  object-fit: cover;
  object-position: top center;
  width: 100%;
  height: 100%;
}

.concept {
  color: #fff;
  position: relative;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
  background-color: #000;
}
.concept::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  height: 8px;
  background: linear-gradient(
    90deg,
    rgb(0, 0, 0) 0%,
    rgb(22, 98, 125) 10%,
    rgb(116, 211, 255) 20%,
    rgb(116, 211, 255) 50%,
    rgb(116, 211, 255) 80%,
    rgb(22, 98, 125) 90%,
    rgb(0, 0, 0) 100%
  );
  left: 0;
  right: 0;
  z-index: 1;
}
.concept .container {
  padding-top: 80px;
  padding-bottom: 120px;
  position: relative;
}
.concept .container::before {
  content: "";
  left: 0;
  right: 0;
  width: 100%;
  max-width: 1200px;
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%);
  pointer-events: none;
}
.concept .section-heading {
  margin-bottom: 42px;
}
.concept__heading {
  width: fit-content;
  margin: 0 auto 20px;
  text-align: center;
  color: var(--primary);
  font-family: var(--font-family-serif);
  font-weight: 900;
}
.concept__desc {
  text-align: center;
  font-size: clamp(0.75rem, 1.814516129vw, 1.125rem);
  line-height: 2;
  text-shadow:
    0 0 12px rgba(0, 0, 0, 0.6),
    2px 2px 6px rgba(0, 0, 0, 0.8),
    -2px 2px 6px rgba(0, 0, 0, 0.8),
    2px -2px 6px rgba(0, 0, 0, 0.8),
    -2px -2px 6px rgba(0, 0, 0, 0.8);
  font-feature-settings: "palt";
}
.concept__desc.jsScroll {
  opacity: 0;
  transition: opacity 0.5s;
}
.concept__desc.jsScroll.is-animated {
  opacity: 1;
}
.concept__desc + .concept__desc {
  margin-top: 36px;
}
.concept__desc sup {
  font-size: 60%;
}
.is-loadEnd .concept {
  transition:
    transform 0.75s ease-out 2.5s,
    opacity 0.75s linear 2.5s,
    visibility 0.75s ease-out 2.5s;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

.concept.jsScroll::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: #000;
  visibility: visible;
  transition:
    opacity 1s,
    visibility 1s;
}
.concept.jsScroll.is-animated::after {
  opacity: 0;
  visibility: hidden;
}

.modal {
  display: none;
}
.modal[aria-hidden="true"] .modal-overlay {
  animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal[aria-hidden="false"] .modal-overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal.is-open {
  display: block;
}
.modal-overlay {
  align-items: center;
  background: rgba(0, 0, 0, 0.8);
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 999;
}
.modal-dialog {
  max-width: 1280px;
  padding: 40px;
  margin-inline: auto;
}
.modal-contents {
  max-width: 1200px;
  width: 100vw;
  aspect-ratio: 16/9;
  position: relative;
}
.modal-contents iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.modal-close {
  position: absolute;
  width: 62px;
  height: 62px;
  top: 10px;
  right: 10px;
}
.modal-close::before,
.modal-close::after {
  content: "";
  display: block;
  position: absolute;
  width: 32px;
  height: 2px;
  background: #cabe8a;
  left: 14px;
  top: 50%;
  transform: rotate(45deg);
}
.modal-close::after {
  transform: rotate(-45deg);
}

@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.layout-footer {
  background: var(--navy);
  padding: 40px 0 24px;
  color: #fff;
  position: relative;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
}
.is-loadEnd .layout-footer {
  transition:
    transform 0.75s ease-out 2.5s,
    opacity 0.75s linear 2.5s,
    visibility 0.75s ease-out 2.5s;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}
.layout-footer::before {
  content: "";
  display: block;
  height: 4px;
  left: 0;
  right: 0;
  background: linear-gradient(
    90deg,
    rgb(143, 166, 180) 0%,
    rgb(255, 255, 255) 100%
  );
  position: absolute;
  top: 0;
}
.layout-footer__inner {
  overflow: hidden;
  padding: 0 var(--side-padding);
}
.layout-footer__label {
  width: fit-content;
  margin: 0 auto 8px;
}
.layout-footer__copy {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  margin-bottom: 24px;
}
.layout-footer__copy > li {
  margin: 0 8px;
}
.layout-footer__copy > li.--fileds {
  margin-bottom: 10px;
}
.layout-footer__caution {
  width: fit-content;
  position: relative;
  font-size: 1.125rem;
  margin: 0 auto;
  text-align: center;
}
.layout-footer__caution::before {
  content: "";
  display: block;
  position: absolute;
  right: calc(100% + 24px);
  width: 50vw;
  height: 35px;
  background: url(../images/footer_line.svg) repeat right center/auto 100%;
  top: calc(50% - 18px);
  pointer-events: none;
}
.layout-footer__caution::after {
  content: "";
  display: block;
  position: absolute;
  left: calc(100% + 24px);
  width: 50vw;
  height: 35px;
  background: url(../images/footer_line.svg) no-repeat left center/auto 100%;
  top: calc(50% - 18px);
  pointer-events: none;
}
.layout-footer__logos {
  display: flex;
  align-items: center;
  position: absolute;
  gap: 0 16px;
  top: -24px;
  right: 24px;
  transform: translateY(-100%);
}
.layout-footer__logo {
  width: 80px;
}

.container {
  max-width: calc(var(--container-width) + var(--side-padding) * 2);
  padding: 0 var(--side-padding);
  margin-inline: auto;
}

.section-heading {
  aspect-ratio: 1834/256;
  width: 100%;
  max-width: 917px;
  margin: 0 auto 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: url(../images/h2_line.png) no-repeat center center/cover;
  font-weight: 900;
  font-family: var(--font-family-serif);
  text-shadow: 0 0 12px rgba(0, 78, 162, 0.6);
  color: #fff;
}
.section-heading__main {
  font-size: 3rem;
  letter-spacing: -0.1em;
}
.section-heading__sub {
  font-size: 1.5rem;
  color: var(--primary);
}
.jsScroll .section-heading {
  clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%);
  transition: clip-path 1s ease-in-out;
}
.is-animated .section-heading {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.section-heading--black {
  color: #000;
  text-shadow: none;
  background-image: url(../images/h2_line_black.png);
}

.section {
  background: #000;
  position: relative;
  overflow: hidden;
}
.section::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  height: 8px;
  background: linear-gradient(
    90deg,
    rgb(0, 0, 0) 0%,
    rgb(22, 98, 125) 10%,
    rgb(116, 211, 255) 20%,
    rgb(116, 211, 255) 50%,
    rgb(116, 211, 255) 80%,
    rgb(22, 98, 125) 90%,
    rgb(0, 0, 0) 100%
  );
  left: 0;
  right: 0;
  z-index: 2;
}
.section::after {
  width: 100%;
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  aspect-ratio: 1920/870;
  background: url(../images/section_bg.jpg) no-repeat center bottom/contain;
}
.section .container {
  padding-top: 80px;
  padding-bottom: 120px;
  position: relative;
  z-index: 1;
}
.section .container::before {
  content: "";
  left: 0;
  right: 0;
  width: 100%;
  max-width: 1200px;
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%);
  pointer-events: none;
}
.section--spec {
  background-color: #fff;
  background-image: url(../images/spec_bg.png);
  background-position: left top;
}
.section--spec::before {
  background: linear-gradient(
    90deg,
    rgb(255, 255, 255) 0%,
    rgb(116, 211, 255) 20%,
    rgb(116, 211, 255) 50%,
    rgb(116, 211, 255) 80%,
    rgb(255, 255, 255) 100%
  );
}
.section--spec::after {
  display: none;
}
.section--spec .container::before {
  display: none;
}
.section.jsScroll::before {
  opacity: 0;
  transition: opacity 0.75s;
}
.section.jsScroll .container::before {
  opacity: 0;
  transition:
    opacity 0.75s,
    top 0.75s ease-in-out;
  top: -20px;
}
.section.jsScroll.is-animated::before {
  opacity: 1;
}
.section.jsScroll.is-animated .container::before {
  opacity: 1;
  top: 0;
}

.jsScroll.jsScroll--fadeIn {
  opacity: 0;
  transform: translateY(40px);
  transition:
    transform 0.75s ease-out,
    opacity 0.75s linear;
}
.jsScroll.jsScroll--fadeIn.is-animated {
  transform: translateY(0);
  opacity: 1;
}

.section:nth-child(2):has(.flow-grid) {
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
}
.is-loadEnd .section:nth-child(2):has(.flow-grid) {
  transition:
    transform 0.75s ease-out 2.5s,
    opacity 0.75s linear 2.5s,
    visibility 0.75s ease-out 2.5s;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

.point-grid {
  display: grid;
  gap: 46px 0;
}
.point-grid__image:first-child {
  position: relative;
  z-index: 0;
}
.point-grid__image:first-child::before {
  content: "";
  display: block;
  position: absolute;
  width: 960px;
  aspect-ratio: 960/670;
  background: url(../images/point_deco.png) no-repeat center center/cover;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translateY(-50%);
}
.point-grid__image img {
  margin-inline: auto;
}

.bonus-grid {
  position: relative;
  z-index: 0;
  display: grid;
  gap: 50px 0;
}
.bonus-grid img {
  margin-inline: auto;
}
.bonus-grid__image {
  position: relative;
}
.bonus-grid__image:first-child::after {
  content: "";
  display: block;
  position: absolute;
  width: 325px;
  aspect-ratio: 325/695;
  background: url(../images/bonus_deco.png) no-repeat center center/cover;
  z-index: -1;
  bottom: -50px;
  right: -200px;
}
.bonus-grid__image:first-child:last-child::after {
  bottom: -90px;
}

.spec-grid {
  position: relative;
  z-index: 0;
  display: grid;
  gap: 60px 0;
}
.spec-grid img {
  margin-inline: auto;
}
.out-grid img {
  margin-inline: auto;
}
.flash-grid img {
  margin-inline: auto;
}
.staging-grid img {
  margin-inline: auto;
}

.rounded-0 {
  border-radius: 0 !important;
}
.rounded-sm {
  border-radius: 8px !important;
}
.rounded-md {
  border-radius: 16px !important;
}
.rounded-lg {
  border-radius: 32px !important;
}
.rounded-full {
  border-radius: 100vmax !important;
}
.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-block {
  display: block !important;
}
.d-grid {
  display: grid !important;
}
.d-inline-grid {
  display: inline-grid !important;
}
.d-flex {
  display: flex !important;
}
.d-inline-flex {
  display: inline-flex !important;
}
.d-none {
  display: none !important;
}
.flex-fill {
  flex: 1 1 auto !important;
}
.flex-row {
  flex-direction: row !important;
}
.flex-column {
  flex-direction: column !important;
}
.flex-row-reverse {
  flex-direction: row-reverse !important;
}
.flex-column-reverse {
  flex-direction: column-reverse !important;
}
.flex-grow-0 {
  flex-grow: 0 !important;
}
.flex-grow-1 {
  flex-grow: 1 !important;
}
.flex-shrink-0 {
  flex-shrink: 0 !important;
}
.flex-shrink-1 {
  flex-shrink: 1 !important;
}
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
.justify-content-start {
  justify-content: flex-start !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-around {
  justify-content: space-around !important;
}
.justify-content-evenly {
  justify-content: space-evenly !important;
}
.align-items-start {
  align-items: flex-start !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-stretch {
  align-items: stretch !important;
}
.align-content-start {
  align-content: flex-start !important;
}
.align-content-end {
  align-content: flex-end !important;
}
.align-content-center {
  align-content: center !important;
}
.align-content-between {
  align-content: space-between !important;
}
.align-content-around {
  align-content: space-around !important;
}
.align-content-stretch {
  align-content: stretch !important;
}
.align-self-auto {
  align-self: auto !important;
}
.align-self-start {
  align-self: flex-start !important;
}
.align-self-end {
  align-self: flex-end !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-baseline {
  align-self: baseline !important;
}
.align-self-stretch {
  align-self: stretch !important;
}
.fz-sm {
  font-size: 0.875rem !important;
}
.fz-base {
  font-size: 1rem !important;
}
.fz-lg {
  font-size: 1.125rem !important;
}

.fw-bold {
  font-weight: bold !important;
}
.lh-1 {
  line-height: 1 !important;
}
.lh-sm {
  line-height: 1.3 !important;
}
.lh-md {
  line-height: 1.5 !important;
}
.lh-base {
  line-height: 2 !important;
}
.text-start {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
.text-center {
  text-align: center !important;
}
.text-nowrap {
  white-space: nowrap !important;
}
.grid {
  display: grid !important;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}
.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}
.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}
.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}
.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.gap-0 {
  gap: 0 !important;
}
.gap-xs {
  gap: 0.25rem !important;
}
.gap-sm {
  gap: 0.5rem !important;
}
.gap-md {
  gap: 1rem !important;
}
.gap-lg {
  gap: 1.5rem !important;
}
.gap-xl {
  gap: 2.5rem !important;
}
.gap-xxl {
  gap: 4rem !important;
}
.gap-xxxl {
  gap: 9rem !important;
}
.gap-x-0 {
  column-gap: 0;
}
.gap-x-xs {
  column-gap: 0.25rem;
}
.gap-x-sm {
  column-gap: 0.5rem;
}
.gap-x-md {
  column-gap: 1rem;
}
.gap-x-lg {
  column-gap: 1.5rem;
}
.gap-x-xl {
  column-gap: 2.5rem;
}
.gap-x-xxl {
  column-gap: 4rem;
}
.gap-x-xxxl {
  column-gap: 9rem;
}
.gap-y-0 {
  row-gap: 0;
}
.gap-y-xs {
  row-gap: 0.25rem;
}
.gap-y-sm {
  row-gap: 0.5rem;
}
.gap-y-md {
  row-gap: 1rem;
}
.gap-y-lg {
  row-gap: 1.5rem;
}
.gap-y-xl {
  row-gap: 2.5rem;
}
.gap-y-xxl {
  row-gap: 4rem;
}
.gap-y-xxxl {
  row-gap: 9rem;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.h-auto {
  height: auto !important;
}
.mh-100 {
  max-height: 100% !important;
}
.mb-0 {
  margin-bottom: 0 !important;
}

.mt-0 {
  margin-top: 0 !important;
}
.mb-xs {
  margin-bottom: 0.25rem !important;
}

.mt-xs {
  margin-top: 0.25rem !important;
}
.mb-sm {
  margin-bottom: 0.5rem !important;
}

.mt-sm {
  margin-top: 0.5rem !important;
}
.mb-md {
  margin-bottom: 1rem !important;
}

.mt-md {
  margin-top: 1rem !important;
}
.mb-lg {
  margin-bottom: 1.5rem !important;
}

.mt-lg {
  margin-top: 1.5rem !important;
}
.mb-xl {
  margin-bottom: 2.5rem !important;
}

.mt-xl {
  margin-top: 2.5rem !important;
}
.mb-xxl {
  margin-bottom: 4rem !important;
}

.mt-xxl {
  margin-top: 4rem !important;
}
.mb-xxxl {
  margin-bottom: 9rem !important;
}

.mt-xxxl {
  margin-top: 9rem !important;
}
.m-inline-auto {
  margin-inline: auto !important;
}

.m-inline-inherit {
  margin-inline: inherit !important;
}
.position-static {
  position: static !important;
}
.position-relative {
  position: relative !important;
}
.position-absolute {
  position: absolute !important;
}
.position-fixed {
  position: fixed !important;
}
.position-sticky {
  position: sticky !important;
}
.visible {
  visibility: visible !important;
}
.invisible {
  visibility: hidden !important;
}
.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
.w-auto {
  width: auto !important;
}
.mw-100 {
  max-width: 100% !important;
}
@media (min-width: 768px) {
  .concept {
    background: url(../images/concept_bg.jpg) no-repeat left center/cover;
  }
  .concept .container::before {
    background: url(../images/section_top_deco.png) no-repeat center
      center/cover;
    aspect-ratio: 2400/396;
  }
  .section .container::before {
    background: url(../images/section_top_deco.png) no-repeat center
      center/cover;
    aspect-ratio: 2400/396;
  }
  .point-grid__image:nth-child(odd) {
    padding-right: 80px;
  }
  .point-grid__image:nth-child(even) {
    padding-left: 80px;
  }
  .spec-grid__image:nth-child(2) {
    margin-left: -12px;
    margin-right: -75px;
  }
  .section:has(.staging-grid) .container {
    padding-bottom: 0;
  }
  .section:has(.staging-grid) .section-heading {
    margin-bottom: 0;
  }
  .staging-grid {
    margin-left: -29px;
    margin-right: -29px;
  }
  .rounded-md-0 {
    border-radius: 0 !important;
  }
  .rounded-md-sm {
    border-radius: 8px !important;
  }
  .rounded-md-md {
    border-radius: 16px !important;
  }
  .rounded-md-lg {
    border-radius: 32px !important;
  }
  .rounded-md-full {
    border-radius: 100vmax !important;
  }
  .d-md-inline {
    display: inline !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-grid {
    display: grid !important;
  }
  .d-md-inline-grid {
    display: inline-grid !important;
  }
  .d-md-flex {
    display: flex !important;
  }
  .d-md-inline-flex {
    display: inline-flex !important;
  }
  .d-md-none {
    display: none !important;
  }
  .flex-md-fill {
    flex: 1 1 auto !important;
  }
  .flex-md-row {
    flex-direction: row !important;
  }
  .flex-md-column {
    flex-direction: column !important;
  }
  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-grow-md-1 {
    flex-grow: 1 !important;
  }
  .flex-shrinkmd--0 {
    flex-shrink: 0 !important;
  }
  .flex-shrink-md-1 {
    flex-shrink: 1 !important;
  }
  .flex-md-wrap {
    flex-wrap: wrap !important;
  }
  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-md-start {
    justify-content: flex-start !important;
  }
  .justify-content-md-end {
    justify-content: flex-end !important;
  }
  .justify-content-md-center {
    justify-content: center !important;
  }
  .justify-content-md-between {
    justify-content: space-between !important;
  }
  .justify-content-md-around {
    justify-content: space-around !important;
  }
  .justify-content-md-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-md-start {
    align-items: flex-start !important;
  }
  .align-items-md-end {
    align-items: flex-end !important;
  }
  .align-items-md-center {
    align-items: center !important;
  }
  .align-items-md-baseline {
    align-items: baseline !important;
  }
  .align-items-md-stretch {
    align-items: stretch !important;
  }
  .align-content-md-start {
    align-content: flex-start !important;
  }
  .align-content-md-end {
    align-content: flex-end !important;
  }
  .align-content-md-center {
    align-content: center !important;
  }
  .align-content-md-between {
    align-content: space-between !important;
  }
  .align-content-md-around {
    align-content: space-around !important;
  }
  .align-content-md-stretch {
    align-content: stretch !important;
  }
  .align-self-md-auto {
    align-self: auto !important;
  }
  .align-self-md-start {
    align-self: flex-start !important;
  }
  .align-self-md-end {
    align-self: flex-end !important;
  }
  .align-self-md-center {
    align-self: center !important;
  }
  .align-self-md-baseline {
    align-self: baseline !important;
  }
  .align-self-md-stretch {
    align-self: stretch !important;
  }
  .fz-md-sm {
    font-size: 0.875rem !important;
  }
  .fz-md-base {
    font-size: 1rem !important;
  }
  .fz-md-lg {
    font-size: 1.125rem !important;
  }
  .fw-md-bold {
    font-weight: bold !important;
  }
  .lh-md-1 {
    line-height: 1 !important;
  }
  .lh-md-sm {
    line-height: 1.3 !important;
  }
  .lh-md-md {
    line-height: 1.5 !important;
  }
  .lh-md-base {
    line-height: 2 !important;
  }
  .text-md-start {
    text-align: left !important;
  }
  .text-md-right {
    text-align: right !important;
  }
  .text-md-center {
    text-align: center !important;
  }
  .text-md-nowrap {
    white-space: nowrap !important;
  }
  .grid .grid-md {
    display: grid !important;
  }
  .grid-cols-md-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-md-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-md-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-md-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-md-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-md-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-md-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .grid-cols-md-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .grid-cols-md-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .grid-cols-md-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .grid-cols-md-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .grid-cols-md-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .gap-md-0 {
    gap: 0 !important;
  }
  .gap-md-xs {
    gap: 0.25rem !important;
  }
  .gap-md-sm {
    gap: 0.5rem !important;
  }
  .gap-md-md {
    gap: 1rem !important;
  }
  .gap-md-lg {
    gap: 1.5rem !important;
  }
  .gap-md-xl {
    gap: 2.5rem !important;
  }
  .gap-md-xxl {
    gap: 4rem !important;
  }
  .gap-md-xxxl {
    gap: 9rem !important;
  }
  .gap-x-md-0 {
    column-gap: 0 !important;
  }
  .gap-x-md-xs {
    column-gap: 0.25rem !important;
  }
  .gap-x-md-sm {
    column-gap: 0.5rem !important;
  }
  .gap-x-md-md {
    column-gap: 1rem !important;
  }
  .gap-x-md-lg {
    column-gap: 1.5rem !important;
  }
  .gap-x-md-xl {
    column-gap: 2.5rem !important;
  }
  .gap-x-md-xxl {
    column-gap: 4rem !important;
  }
  .gap-x-md-xxxl {
    column-gap: 9rem !important;
  }
  .gap-y-md-0 {
    row-gap: 0 !important;
  }
  .gap-y-md-xs {
    row-gap: 0.25rem !important;
  }
  .gap-y-md-sm {
    row-gap: 0.5rem !important;
  }
  .gap-y-md-md {
    row-gap: 1rem !important;
  }
  .gap-y-md-lg {
    row-gap: 1.5rem !important;
  }
  .gap-y-md-xl {
    row-gap: 2.5rem !important;
  }
  .gap-y-md-xxl {
    row-gap: 4rem !important;
  }
  .gap-y-md-xxxl {
    row-gap: 9rem !important;
  }
  .h-md-25 {
    height: 25% !important;
  }
  .h-md-50 {
    height: 50% !important;
  }
  .h-md-75 {
    height: 75% !important;
  }
  .h-md-100 {
    height: 100% !important;
  }
  .h-md-auto {
    height: auto !important;
  }
  .mh-md-100 {
    max-height: 100% !important;
  }
  .mb-md-0 {
    margin-bottom: 0 !important;
  }
  .mt-md-0 {
    margin-top: 0 !important;
  }
  .mb-md-xs {
    margin-bottom: 0.25rem !important;
  }
  .mt-md-xs {
    margin-top: 0.25rem !important;
  }
  .mb-md-sm {
    margin-bottom: 0.5rem !important;
  }
  .mt-md-sm {
    margin-top: 0.5rem !important;
  }
  .mb-md-md {
    margin-bottom: 1rem !important;
  }
  .mt-md-md {
    margin-top: 1rem !important;
  }
  .mb-md-lg {
    margin-bottom: 1.5rem !important;
  }
  .mt-md-lg {
    margin-top: 1.5rem !important;
  }
  .mb-md-xl {
    margin-bottom: 2.5rem !important;
  }
  .mt-md-xl {
    margin-top: 2.5rem !important;
  }
  .mb-md-xxl {
    margin-bottom: 4rem !important;
  }
  .mt-md-xxl {
    margin-top: 4rem !important;
  }
  .mb-md-xxxl {
    margin-bottom: 9rem !important;
  }
  .mt-md-xxxl {
    margin-top: 9rem !important;
  }
  .m-inline-md-auto {
    margin-inline: auto !important;
  }
  .m-inline-md-inherit {
    margin-inline: inherit !important;
  }
  .position-md-static {
    position: static !important;
  }
  .position-md-relative {
    position: relative !important;
  }
  .position-md-absolute {
    position: absolute !important;
  }
  .position-md-fixed {
    position: fixed !important;
  }
  .position-md-sticky {
    position: sticky !important;
  }
  .md-visible {
    visibility: visible !important;
  }
  .md-invisible {
    visibility: hidden !important;
  }
  .w-md-25 {
    width: 25% !important;
  }
  .w-md-50 {
    width: 50% !important;
  }
  .w-md-75 {
    width: 75% !important;
  }
  .w-md-100 {
    width: 100% !important;
  }
  .w-md-auto {
    width: auto !important;
  }
  .mw-md-100 {
    max-width: 100% !important;
  }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .spec-grid__image:nth-child(2) {
    margin-left: -1vw;
    margin-right: -6.25vw;
  }
}
@media (min-width: 992px) {
  .layout-header-hamburger {
    display: none;
  }
  .layout-header-navi {
    display: flex !important;
    justify-content: flex-end;
  }
  .rounded-lg-0 {
    border-radius: 0 !important;
  }
  .rounded-lg-sm {
    border-radius: 8px !important;
  }
  .rounded-lg-md {
    border-radius: 16px !important;
  }
  .rounded-lg-lg {
    border-radius: 32px !important;
  }
  .rounded-lg-full {
    border-radius: 100vmax !important;
  }
  .d-lg-inline {
    display: inline !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-grid {
    display: grid !important;
  }
  .d-lg-inline-grid {
    display: inline-grid !important;
  }
  .d-lg-flex {
    display: flex !important;
  }
  .d-lg-inline-flex {
    display: inline-flex !important;
  }
  .d-lg-none {
    display: none !important;
  }
  .flex-lg-fill {
    flex: 1 1 auto !important;
  }
  .flex-lg-row {
    flex-direction: row !important;
  }
  .flex-lg-column {
    flex-direction: column !important;
  }
  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-grow-lg-1 {
    flex-grow: 1 !important;
  }
  .flex-shrinklg--0 {
    flex-shrink: 0 !important;
  }
  .flex-shrink-lg-1 {
    flex-shrink: 1 !important;
  }
  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }
  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-lg-start {
    justify-content: flex-start !important;
  }
  .justify-content-lg-end {
    justify-content: flex-end !important;
  }
  .justify-content-lg-center {
    justify-content: center !important;
  }
  .justify-content-lg-between {
    justify-content: space-between !important;
  }
  .justify-content-lg-around {
    justify-content: space-around !important;
  }
  .justify-content-lg-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-lg-start {
    align-items: flex-start !important;
  }
  .align-items-lg-end {
    align-items: flex-end !important;
  }
  .align-items-lg-center {
    align-items: center !important;
  }
  .align-items-lg-baseline {
    align-items: baseline !important;
  }
  .align-items-lg-stretch {
    align-items: stretch !important;
  }
  .align-content-lg-start {
    align-content: flex-start !important;
  }
  .align-content-lg-end {
    align-content: flex-end !important;
  }
  .align-content-lg-center {
    align-content: center !important;
  }
  .align-content-lg-between {
    align-content: space-between !important;
  }
  .align-content-lg-around {
    align-content: space-around !important;
  }
  .align-content-lg-stretch {
    align-content: stretch !important;
  }
  .align-self-lg-auto {
    align-self: auto !important;
  }
  .align-self-lg-start {
    align-self: flex-start !important;
  }
  .align-self-lg-end {
    align-self: flex-end !important;
  }
  .align-self-lg-center {
    align-self: center !important;
  }
  .align-self-lg-baseline {
    align-self: baseline !important;
  }
  .align-self-lg-stretch {
    align-self: stretch !important;
  }
  .fz-lg-sm {
    font-size: 0.875rem !important;
  }
  .fz-lg-base {
    font-size: 1rem !important;
  }
  .fz-lg-lg {
    font-size: 1.125rem !important;
  }
  .fw-lg-bold {
    font-weight: bold !important;
  }
  .lh-lg-1 {
    line-height: 1 !important;
  }
  .lh-lg-sm {
    line-height: 1.3 !important;
  }
  .lh-lg-md {
    line-height: 1.5 !important;
  }
  .lh-lg-base {
    line-height: 2 !important;
  }
  .text-lg-start {
    text-align: left !important;
  }
  .text-lg-right {
    text-align: right !important;
  }
  .text-lg-center {
    text-align: center !important;
  }
  .text-lg-nowrap {
    white-space: nowrap !important;
  }
  .grid .grid-lg {
    display: grid !important;
  }
  .grid-cols-lg-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-lg-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-lg-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-lg-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-lg-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-lg-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-lg-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .grid-cols-lg-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .grid-cols-lg-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .grid-cols-lg-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .grid-cols-lg-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .grid-cols-lg-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .gap-lg-0 {
    gap: 0 !important;
  }
  .gap-lg-xs {
    gap: 0.25rem !important;
  }
  .gap-lg-sm {
    gap: 0.5rem !important;
  }
  .gap-lg-md {
    gap: 1rem !important;
  }
  .gap-lg-lg {
    gap: 1.5rem !important;
  }
  .gap-lg-xl {
    gap: 2.5rem !important;
  }
  .gap-lg-xxl {
    gap: 4rem !important;
  }
  .gap-lg-xxxl {
    gap: 9rem !important;
  }
  .gap-x-lg-0 {
    column-gap: 0 !important;
  }
  .gap-x-lg-xs {
    column-gap: 0.25rem !important;
  }
  .gap-x-lg-sm {
    column-gap: 0.5rem !important;
  }
  .gap-x-lg-md {
    column-gap: 1rem !important;
  }
  .gap-x-lg-lg {
    column-gap: 1.5rem !important;
  }
  .gap-x-lg-xl {
    column-gap: 2.5rem !important;
  }
  .gap-x-lg-xxl {
    column-gap: 4rem !important;
  }
  .gap-x-lg-xxxl {
    column-gap: 9rem !important;
  }
  .gap-y-lg-0 {
    row-gap: 0 !important;
  }
  .gap-y-lg-xs {
    row-gap: 0.25rem !important;
  }
  .gap-y-lg-sm {
    row-gap: 0.5rem !important;
  }
  .gap-y-lg-md {
    row-gap: 1rem !important;
  }
  .gap-y-lg-lg {
    row-gap: 1.5rem !important;
  }
  .gap-y-lg-xl {
    row-gap: 2.5rem !important;
  }
  .gap-y-lg-xxl {
    row-gap: 4rem !important;
  }
  .gap-y-lg-xxxl {
    row-gap: 9rem !important;
  }
  .h-lg-25 {
    height: 25% !important;
  }
  .h-lg-50 {
    height: 50% !important;
  }
  .h-lg-75 {
    height: 75% !important;
  }
  .h-lg-100 {
    height: 100% !important;
  }
  .h-lg-auto {
    height: auto !important;
  }
  .mh-lg-100 {
    max-height: 100% !important;
  }
  .mb-lg-0 {
    margin-bottom: 0 !important;
  }
  .mt-lg-0 {
    margin-top: 0 !important;
  }
  .mb-lg-xs {
    margin-bottom: 0.25rem !important;
  }
  .mt-lg-xs {
    margin-top: 0.25rem !important;
  }
  .mb-lg-sm {
    margin-bottom: 0.5rem !important;
  }
  .mt-lg-sm {
    margin-top: 0.5rem !important;
  }
  .mb-lg-md {
    margin-bottom: 1rem !important;
  }
  .mt-lg-md {
    margin-top: 1rem !important;
  }
  .mb-lg-lg {
    margin-bottom: 1.5rem !important;
  }
  .mt-lg-lg {
    margin-top: 1.5rem !important;
  }
  .mb-lg-xl {
    margin-bottom: 2.5rem !important;
  }
  .mt-lg-xl {
    margin-top: 2.5rem !important;
  }
  .mb-lg-xxl {
    margin-bottom: 4rem !important;
  }
  .mt-lg-xxl {
    margin-top: 4rem !important;
  }
  .mb-lg-xxxl {
    margin-bottom: 9rem !important;
  }
  .mt-lg-xxxl {
    margin-top: 9rem !important;
  }
  .m-inline-lg-auto {
    margin-inline: auto !important;
  }
  .m-inline-lg-inherit {
    margin-inline: inherit !important;
  }
  .position-lg-static {
    position: static !important;
  }
  .position-lg-relative {
    position: relative !important;
  }
  .position-lg-absolute {
    position: absolute !important;
  }
  .position-lg-fixed {
    position: fixed !important;
  }
  .position-lg-sticky {
    position: sticky !important;
  }
  .lg-visible {
    visibility: visible !important;
  }
  .lg-invisible {
    visibility: hidden !important;
  }
  .w-lg-25 {
    width: 25% !important;
  }
  .w-lg-50 {
    width: 50% !important;
  }
  .w-lg-75 {
    width: 75% !important;
  }
  .w-lg-100 {
    width: 100% !important;
  }
  .w-lg-auto {
    width: auto !important;
  }
  .mw-lg-100 {
    max-width: 100% !important;
  }
}
@media (min-width: 1200px) {
  .layout-header-hamburger {
    display: none;
  }
  .layout-footer__caution .xl-brake {
    display: none;
  }
}
@media (max-width: 1399.98px) and (min-width: 768px) {
  .concept .container {
    margin-inline: auto 0;
    width: calc(100% - 100px);
    max-width: 800px;
  }
}
@media (max-width: 1199.98px) {
  .mv__inner {
    padding: 0;
  }
  .mv__contents {
    margin: auto 0 auto auto;
    align-items: flex-end;
    width: auto;
    flex-grow: unset;
  }
  .concept {
    background-position: -140px center;
  }
  .point-grid__image:first-child::before {
    display: none;
  }
  .bonus-grid__image:first-child::after {
    display: none;
  }
}
@media (max-width: 1199.98px) and (min-width: 768px) {
  .concept .container::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    width: 100%;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 100%);
    top: 0;
    bottom: 0;
    z-index: -1;
    pointer-events: none;
  }
}
@media (max-width: 991.98px) {
  .layout-loading__text {
    margin-bottom: 2.0833333333vw;
  }
  .layout-loading__text img {
    width: 50.1041666667vw;
  }
  .layout-loading__text::after {
    background: url(../images/loading_deco_sp.png) no-repeat center
      center/contain;
    aspect-ratio: 572/285;
    width: 59.5833333333vw;
  }
  .layout-loading__bar {
    box-shadow: 0 0 20px 2px rgba(175, 205, 234, 0.5);
  }
  .layout-header-inner {
    grid-template-columns: 1fr clamp(125px, 17.3958333333vw, 334px) 1fr;
    min-height: 65px;
    padding: 0 20px;
  }
  .layout-header-inner::before {
    content: "";
    display: block;
  }
  .layout-header-navi {
    display: none;
    position: absolute;
    top: 65px;
    left: 0;
    right: 0;
    background: #000;
    z-index: 1;
    height: calc(100svh - 65px);
    overflow: auto;
    overscroll-behavior: none;
  }
  .layout-header-list {
    padding: 0 15px 8.3333333333vw;
    flex-direction: column;
    width: 100%;
  }
  .layout-header-list-link {
    font-size: 1.125rem;
    width: 100%;
    padding: 8.3333333333vw 0 0;
    position: relative;
  }
  .layout-header-list-link::after {
    top: 5.2083333333vw;
    height: 1.5625vw;
    width: 2.0833333333vw;
    left: calc(50% - 1.0416666667vw);
  }
  .layout-header-line-title {
    font-size: 1.6129032258vw;
    padding-left: 11.0887096774vw;
  }
  .layout-header-line-title::before {
    width: 10.2822580645vw;
  }
  #main {
    min-height: unset;
  }
  .mv {
    height: unset;
    min-height: unset;
  }
  .mv__contents {
    margin: 0 auto;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    padding-bottom: 12.5vw;
  }
  .mv__logo {
    margin-bottom: 5.2083333333vw;
    width: 79.2708333333vw;
  }
  .mv__chara {
    position: relative;
    width: 100%;
    aspect-ratio: unset;
    margin-bottom: -12.5vw;
    max-width: inherit;
    min-width: inherit;
  }
  .mv__button {
    width: 59.5833333333vw;
  }
  .layout-footer {
    padding: 4.1666666667vw 0 2.5vw;
  }
  .layout-footer__label {
    width: 39.8958333333vw;
  }
  .layout-footer__copy {
    font-size: 3.125vw;
  }
  .layout-footer__copy > li.--fileds {
    width: 19.375vw;
  }
  .layout-footer__copy > li.--bisty {
    width: 14.7916666667vw;
  }
  .layout-footer__caution {
    width: auto;
    font-size: 3.3333333333vw;
  }
  .layout-footer__caution::before {
    position: relative;
    right: auto;
    left: calc(var(--side-padding) * -1);
    width: 100vw;
    background-size: cover;
    background-position: center center;
    margin-bottom: 4.1666666667vw;
    height: 3.8541666667vw;
  }
  .layout-footer__caution::after {
    position: relative;
    right: auto;
    left: calc(var(--side-padding) * -1);
    width: 100vw;
    background-size: cover;
    background-position: center center;
    margin-top: 4.1666666667vw;
    height: 3.8541666667vw;
  }
  .section-heading__main {
    font-size: 5.8333333333vw;
  }
  .section-heading__sub {
    font-size: 3.3333333333vw;
  }
}
@media (max-width: 767.98px) {
  .layout-header-inner {
    min-height: 65px;
    grid-template-columns: 1fr 102px 1fr;
  }
  .layout-header-hamburger::before,
  .layout-header-hamburger::after {
    left: 12px;
  }
  .layout-header-hamburger span::before,
  .layout-header-hamburger span::after {
    left: 12px;
  }
  .layout-header-line-title {
    font-size: 0.9375rem;
    padding-left: 20px;
  }
  .layout-header-line-title::before {
    display: none;
  }
  #wrapper {
    display: flex;
    flex-direction: column;
  }
  #wrapper .layout-footer {
    flex-grow: 1;
  }
  .concept {
    background-image: url(../images/concept_bg_top.jpg),
      url(../images/concept_bg_sp.jpg);
    background-repeat: no-repeat, no-repeat;
    background-position:
      center top,
      center bottom;
    background-size:
      100% auto,
      100% auto;
  }
  .concept::before {
    height: 4px;
  }
  .concept .container {
    padding-top: 9.375vw;
    padding-bottom: 17.7083333333vw;
  }
  .concept .container::before {
    background: url(../images/section_top_deco_sp.png) no-repeat center
      center/cover;
    aspect-ratio: 960/198;
  }
  .concept__heading {
    margin-top: 45.8333333333vw;
    width: 71.7708333333vw;
  }
  .concept__desc {
    font-size: 3.3333333333vw;
  }
  .modal-dialog {
    padding: 0;
  }
  .layout-footer__logos {
    top: -8px;
    right: 8px;
    gap: 0 8px;
  }
  .layout-footer__logo {
    width: 10.6666666667vw;
  }
  .section-heading {
    margin-bottom: 40px;
    aspect-ratio: 917/128;
    background-image: url(../images/h2_line_sp.png);
    background-size: contain;
    margin-left: -10px;
    margin-right: -10px;
    width: calc(100% + 20px);
  }
  .section-heading--black {
    background-image: url(../images/h2_line_black_sp.png);
  }
  .section::before {
    height: 4px;
  }
  .section .container {
    padding-top: 9.375vw;
    padding-bottom: 17.7083333333vw;
  }
  .section .container::before {
    background: url(../images/section_top_deco_sp.png) no-repeat center
      center/cover;
    aspect-ratio: 960/198;
  }
  .point-grid {
    gap: 7.2916666667vw 0;
  }
  .bonus-grid {
    gap: 6.25vw;
  }
  .spec-grid {
    gap: 9.375vw;
  }
  .spec-grid__image:nth-child(2) {
    margin-left: -1.25vw;
    margin-right: -20px;
  }
  .out-grid {
    margin: -20px;
    margin-right: -20px;
  }
  .flash-grid {
    margin-left: -20px;
    margin-right: -20px;
  }
  .section:has(.staging-grid) .container {
    padding-bottom: 6.25vw;
  }
  .section:has(.staging-grid) .section-heading {
    margin-bottom: 5.2083333333vw;
  }
  .staging-grid {
    margin-right: -2.7083333333vw;
  }
  .fz-sm {
    font-size: 0.625rem !important;
  }
}
