@charset "UTF-8";
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-01.woff2") format("woff2");
  unicode-range: U+4E00-531F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-02.woff2") format("woff2");
  unicode-range: U+5320-583F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-03.woff2") format("woff2");
  unicode-range: U+5840-5D5F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-04.woff2") format("woff2");
  unicode-range: U+5D60-627F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-05.woff2") format("woff2");
  unicode-range: U+6280-679F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-06.woff2") format("woff2");
  unicode-range: U+67A0-6CBF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-07.woff2") format("woff2");
  unicode-range: U+6CC0-71DF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-08.woff2") format("woff2");
  unicode-range: U+71E0-76FF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-09.woff2") format("woff2");
  unicode-range: U+7700-7C1F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-10.woff2") format("woff2");
  unicode-range: U+7C20-813F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-11.woff2") format("woff2");
  unicode-range: U+8140-865F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-12.woff2") format("woff2");
  unicode-range: U+8660-8B7F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-13.woff2") format("woff2");
  unicode-range: U+8B80-909F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-14.woff2") format("woff2");
  unicode-range: U+90A0-95BF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-15.woff2") format("woff2");
  unicode-range: U+95C0-9ADF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400-ext-16.woff2") format("woff2");
  unicode-range: U+9AE0-9FFF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-01.woff2") format("woff2");
  unicode-range: U+4E00-531F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-02.woff2") format("woff2");
  unicode-range: U+5320-583F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-03.woff2") format("woff2");
  unicode-range: U+5840-5D5F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-04.woff2") format("woff2");
  unicode-range: U+5D60-627F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-05.woff2") format("woff2");
  unicode-range: U+6280-679F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-06.woff2") format("woff2");
  unicode-range: U+67A0-6CBF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-07.woff2") format("woff2");
  unicode-range: U+6CC0-71DF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-08.woff2") format("woff2");
  unicode-range: U+71E0-76FF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-09.woff2") format("woff2");
  unicode-range: U+7700-7C1F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-10.woff2") format("woff2");
  unicode-range: U+7C20-813F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-11.woff2") format("woff2");
  unicode-range: U+8140-865F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-12.woff2") format("woff2");
  unicode-range: U+8660-8B7F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-13.woff2") format("woff2");
  unicode-range: U+8B80-909F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-14.woff2") format("woff2");
  unicode-range: U+90A0-95BF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-15.woff2") format("woff2");
  unicode-range: U+95C0-9ADF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500-ext-16.woff2") format("woff2");
  unicode-range: U+9AE0-9FFF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-01.woff2") format("woff2");
  unicode-range: U+4E00-531F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-02.woff2") format("woff2");
  unicode-range: U+5320-583F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-03.woff2") format("woff2");
  unicode-range: U+5840-5D5F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-04.woff2") format("woff2");
  unicode-range: U+5D60-627F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-05.woff2") format("woff2");
  unicode-range: U+6280-679F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-06.woff2") format("woff2");
  unicode-range: U+67A0-6CBF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-07.woff2") format("woff2");
  unicode-range: U+6CC0-71DF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-08.woff2") format("woff2");
  unicode-range: U+71E0-76FF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-09.woff2") format("woff2");
  unicode-range: U+7700-7C1F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-10.woff2") format("woff2");
  unicode-range: U+7C20-813F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-11.woff2") format("woff2");
  unicode-range: U+8140-865F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-12.woff2") format("woff2");
  unicode-range: U+8660-8B7F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-13.woff2") format("woff2");
  unicode-range: U+8B80-909F;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-14.woff2") format("woff2");
  unicode-range: U+90A0-95BF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-15.woff2") format("woff2");
  unicode-range: U+95C0-9ADF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700-ext-16.woff2") format("woff2");
  unicode-range: U+9AE0-9FFF;
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-400.woff2") format("woff2");
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-500.woff2") format("woff2");
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-700.woff2") format("woff2");
}
@font-face {
  font-family: "SubsetNotoSansJP";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/noto-sans-jp-900.woff2") format("woff2");
}
@font-face {
  font-family: "SubsetRubik";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/rubik-500.woff2") format("woff2");
}
@font-face {
  font-family: "SubsetRubik";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/rubik-700.woff2") format("woff2");
}
* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  line-height: 1;
  text-spacing-trim: space-all;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
  font-family: "SubsetNotoSansJP", "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #000000;
  background: #ffffff;
  overflow-x: hidden;
  container-type: inline-size;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

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

button {
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  cursor: pointer;
  appearance: none;
}

svg {
  vertical-align: bottom;
}

.pc-only {
  display: block;
}
@media screen and (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}

.sp-only {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .sp-only {
    display: block !important;
  }
}

:root {
  --u: min(1px, calc(100cqw / 1500));
  --u-pc: min(1px, calc(100cqw / 1500));
}
@media screen and (max-width: 768px) {
  :root {
    --u: calc(100cqw / 750);
  }
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 80px;
  padding: 0 40px;
  background: #000000;
}
@media screen and (max-width: 768px) {
  .header {
    height: 50px;
    padding: 0 20px 0 15px;
  }
}

.header__logo {
  flex-shrink: 0;
}
.header__logo a {
  display: block;
}
.header__logo img {
  display: block;
  width: 196px;
  max-width: none;
  height: auto;
}
@media screen and (max-width: 768px) {
  .header__logo img {
    width: 133px;
  }
}

.header__right {
  display: flex;
  align-items: center;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .header__right {
    gap: 8px;
  }
}

.header__nav-list {
  display: flex;
  align-items: center;
  gap: 44px;
}

.header__nav-item {
  position: relative;
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #ffffff;
  white-space: nowrap;
}
.header__nav-item + .header__nav-item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -22px;
  width: 1px;
  height: 20px;
  background: #cccccc;
  transform: translateY(-50%);
}
.header__nav-item > a {
  transition: opacity 0.3s;
}

.header__nav .header__nav-item > a,
.header__nav .header__nav-toggle {
  position: relative;
  display: inline-block;
  padding: 6px 0;
}
.header__nav .header__nav-item > a::after,
.header__nav .header__nav-toggle::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: #e60012;
  transition: scale 0.3s;
  scale: 0 1;
}
@media (hover: hover) {
  .header__nav .header__nav-item > a:hover::after,
  .header__nav .header__nav-toggle:hover::after {
    scale: 1 1;
  }
}
.header__nav .header__nav-item > a.is-current::after,
.header__nav .header__nav-toggle.is-current::after {
  scale: 1 1;
}

.btn-notify {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "SubsetNotoSansJP", "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: #ffffff;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 5px;
  transition: color 0.4s;
}
@media (hover: hover) {
  .btn-notify:hover {
    color: #e60012;
  }
}

.header__notify {
  gap: 4px;
  padding: 15px 22px;
  font-size: 16px;
  background: linear-gradient(90deg, #ff4452 0%, #e60012 25.48%, #e60012 75.96%, #ff4452 98.56%) padding-box, linear-gradient(180deg, #b7777d 0%, #ffa2a9 32.69%, #e60012 100%) border-box;
}
@media screen and (max-width: 768px) {
  .header__notify {
    display: none;
  }
}

.btn-notify__icon {
  width: 20px;
  height: 20px;
}
@media screen and (max-width: 768px) {
  .btn-notify__icon {
    width: 12px;
    height: 12px;
  }
}

.header__lang {
  display: flex;
  align-items: center;
}

.header__lang-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-size: 20px;
  font-weight: 500;
  color: #a2a2a2;
}
.header__lang-item.is-current {
  color: #ffffff;
}
.header__lang-item.is-current::after {
  content: "";
  position: absolute;
  top: 32.5px;
  left: 50%;
  width: 27.5px;
  height: 2px;
  background: #ffffff;
  transform: translateX(-50%);
}

a.header__lang-item {
  transition: opacity 0.3s;
}
@media (hover: hover) {
  a.header__lang-item:hover {
    opacity: 0.8;
  }
}

.header__hamburger {
  position: relative;
  display: none;
  width: 40px;
  height: 40px;
}
@media screen and (max-width: 768px) {
  .header__hamburger {
    margin-right: -5px;
  }
}
.header__hamburger span {
  position: absolute;
  left: 50%;
  width: 40px;
  margin-left: -20px;
  height: 2px;
  background: #ffffff;
  transition: transform 0.3s, top 0.3s;
}
@media screen and (max-width: 768px) {
  .header__hamburger span {
    width: 30px;
    margin-left: -15px;
  }
}
.header__hamburger span:nth-child(1) {
  top: 13px;
}
@media screen and (max-width: 768px) {
  .header__hamburger span:nth-child(1) {
    top: 14px;
  }
}
.header__hamburger span:nth-child(2) {
  top: 25px;
}
@media screen and (max-width: 768px) {
  .header__hamburger span:nth-child(2) {
    top: 24px;
  }
}
.header.is-active .header__hamburger span {
  top: 19px;
}
.header.is-active .header__hamburger span:nth-child(1) {
  transform: rotate(30deg);
}
.header.is-active .header__hamburger span:nth-child(2) {
  transform: rotate(-30deg);
}

.header__nav--sp {
  position: fixed;
  top: 80px;
  left: 0;
  display: none;
  width: 100%;
  height: calc(100% - 80px);
  padding: 32px 24px;
  overflow-y: auto;
  background: rgba(0, 0, 0, 0.95);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
@media screen and (max-width: 768px) {
  .header__nav--sp {
    top: 50px;
    height: calc(100% - 50px);
  }
}
.header.is-active .header__nav--sp {
  opacity: 1;
  visibility: visible;
}
.header__nav--sp .header__nav-list {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.header__nav--sp .header__nav-item {
  width: 100%;
  font-size: 16px;
  border-bottom: 1px solid rgba(204, 204, 204, 0.4);
}
.header__nav--sp .header__nav-item::before {
  display: none;
}
.header__nav--sp .header__nav-item > a {
  display: block;
  padding: 18px 0;
  text-decoration: underline 3px transparent;
  text-underline-offset: 8px;
  transition: text-decoration-color 0.3s;
}
.header__nav--sp .header__nav-item > a.is-current {
  text-decoration-color: #e60012;
}
.header__nav--sp .header__nav-toggle {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 18px 0;
}
.header__nav--sp .header__nav-toggle::before {
  position: static;
  translate: 0 -2px;
}
.header__nav--sp .has-sub.is-open .header__nav-toggle::before {
  translate: 0 2px;
}
.header__nav--sp .header__sub {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition: grid-template-rows 0.4s ease, visibility 0.4s;
}
.header__nav--sp .has-sub.is-open .header__sub {
  grid-template-rows: 1fr;
  visibility: visible;
}
.header__nav--sp .header__sub-list {
  min-height: 0;
  overflow: hidden;
}
.header__nav--sp .header__sub-item {
  position: relative;
  padding-left: 40px;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
}
@media screen and (max-width: 768px) {
  .header__nav--sp .header__sub-item {
    font-size: 13px;
    line-height: 15px;
  }
}
.header__nav--sp .header__sub-item + .header__sub-item {
  margin-top: 10px;
}
.header__nav--sp .header__sub-item:last-child {
  padding-bottom: 18px;
}
.header__nav--sp .header__sub-item::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 20px;
  width: 8px;
  height: 1px;
  background: #e60012;
}
.header__nav--sp .header__sub-item a {
  display: block;
}
.header__nav--sp .header__lang {
  display: flex;
  margin-top: 24px;
}
.header__nav--sp .header__lang-item {
  width: 38px;
  height: 38px;
  font-size: 20px;
}
.header__nav--sp .header__lang-item::after {
  top: 32px;
  width: 27px;
}

.header__nav-toggle {
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
}
.header__nav-toggle::before {
  content: "";
  position: absolute;
  top: 47%;
  right: 2px;
  width: 6px;
  height: 6px;
  pointer-events: none;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transition: rotate 0.3s, top 0.3s;
  translate: 0 -50%;
  rotate: 45deg;
}
.header__nav-item.is-open > .header__nav-toggle::before {
  top: 55%;
  rotate: 225deg;
}

.header__nav .header__nav-toggle {
  padding-right: 16px;
}

.header__nav .header__sub {
  position: absolute;
  top: 100%;
  left: -10px;
  z-index: 1;
  padding-top: 12px;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s, visibility 0.3s;
}

@media (hover: hover) {
  .header__nav .has-sub:hover .header__sub {
    visibility: visible;
    opacity: 1;
  }
  .header__nav .has-sub:hover .header__nav-toggle::before {
    top: 55%;
    rotate: 225deg;
  }
  .header__nav .has-sub:hover .header__nav-toggle::after {
    scale: 1 1;
  }
}
.header__nav .has-sub:focus-within .header__sub, .header__nav .has-sub.is-open .header__sub {
  visibility: visible;
  opacity: 1;
}
.header__nav .has-sub:focus-within .header__nav-toggle::after, .header__nav .has-sub.is-open .header__nav-toggle::after {
  scale: 1 1;
}

.header__nav .header__sub-list {
  width: 180px;
  padding: 15px;
  background: #ffffff;
  border-radius: 10px;
}

.header__nav .header__sub-item {
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1428;
  letter-spacing: 0.02em;
  color: #5b5b5b;
  white-space: normal;
}
.header__nav .header__sub-item + .header__sub-item {
  margin-top: 20px;
}
.header__nav .header__sub-item a {
  display: block;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .header__nav .header__sub-item a:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 1340px) {
  .header__nav,
  .header__right > .header__lang {
    display: none;
  }
  .header__hamburger {
    display: block;
  }
  .header__nav--sp {
    display: block;
  }
}
.kv {
  position: relative;
  padding-top: 80px;
  overflow: hidden;
  background: #000000;
}
@media screen and (max-width: 768px) {
  .kv {
    padding-top: max(0px, 50px - calc(var(--u) * 100));
  }
}

.kv__stage {
  position: relative;
  width: calc(var(--u) * 1500);
  height: calc(var(--u) * 720);
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .kv__stage {
    width: calc(var(--u) * 750);
    height: calc(var(--u) * 1340);
  }
}

.kv__bg {
  position: absolute;
  top: 0;
  left: calc(var(--u) * -400);
  width: calc(var(--u) * 2300);
  max-width: none;
  height: calc(var(--u) * 720);
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .kv__bg {
    left: 0;
    width: calc(var(--u) * 750);
    height: calc(var(--u) * 1340);
  }
}

.kv__logo {
  position: absolute;
  top: calc(var(--u) * 115);
  left: calc(var(--u) * 392);
  width: calc(var(--u) * 719);
  margin: 0;
}
@media screen and (max-width: 768px) {
  .kv__logo {
    top: calc(var(--u) * 281);
    left: calc(var(--u) * 47);
    width: calc(var(--u) * 653);
  }
}

.kv__logo-main {
  display: block;
  width: 100%;
}

.kv__logo-num {
  position: absolute;
  top: calc(var(--u) * 184.9);
  left: calc(var(--u) * 322.9);
  width: calc(var(--u) * 212.6);
  max-width: none;
}
@media screen and (max-width: 768px) {
  .kv__logo-num {
    top: calc(var(--u) * 168);
    left: calc(var(--u) * 293.2);
    width: calc(var(--u) * 193.1);
  }
}

.kv__info {
  position: absolute;
  top: calc(var(--u) * 542);
  left: calc(var(--u) * 662);
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .kv__info {
    top: calc(var(--u) * 791);
    left: calc(var(--u) * 40);
    width: calc(var(--u) * 670);
  }
}

.kv__info-title {
  margin: calc(var(--u) * -12) 0 calc(var(--u) * 26);
  font-family: "SubsetNotoSansJP", "Noto Sans JP", sans-serif;
  font-size: calc(var(--u) * 36);
  font-weight: 700;
  line-height: calc(var(--u) * 46);
  letter-spacing: -0.07em;
}
@media screen and (max-width: 768px) {
  .kv__info-title {
    margin: calc(var(--u) * -12.5) 0 calc(var(--u) * 17.5);
    font-family: "SubsetRubik", "Rubik", sans-serif, "SubsetNotoSansJP", "Noto Sans JP", sans-serif;
    line-height: calc(var(--u) * 50);
    letter-spacing: 0;
    text-align: center;
  }
  .kv__info-title br {
    display: none;
  }
}
.kv__info-title .sub {
  font-size: calc(var(--u) * 28);
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .kv__info-title .sub {
    font-size: calc(var(--u) * 30);
  }
}
.kv__info-title .line {
  letter-spacing: -0.015em;
}
@media screen and (max-width: 768px) {
  .kv__info-title .line {
    letter-spacing: inherit;
  }
}

.kv__dates {
  display: flex;
  gap: calc(var(--u) * 28);
}
@media screen and (max-width: 768px) {
  .kv__dates {
    gap: calc(var(--u) * 16);
    justify-content: space-between;
  }
}

.kv__date {
  height: calc(var(--u) * 66);
  padding: 0 0 0 calc(var(--u) * 16);
  border-left: 1px solid #ffffff;
}
@media screen and (max-width: 768px) {
  .kv__date {
    height: calc(var(--u) * 80);
    padding-left: calc(var(--u) * 15.5);
  }
}

.kv__date-label {
  font-family: "SubsetRubik", "Rubik", sans-serif, "SubsetNotoSansJP", "Noto Sans JP", sans-serif;
  font-size: calc(var(--u) * 18);
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .kv__date-label {
    font-size: calc(var(--u) * 22);
  }
}

.kv__date-value {
  display: flex;
  align-items: baseline;
  gap: calc(var(--u) * 3);
  margin-top: calc(var(--u) * 1);
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .kv__date-value {
    margin-top: calc(var(--u) * 1);
  }
}
@media screen and (max-width: 768px) {
  .kv__date-value {
    gap: calc(var(--u) * 1);
  }
  .kv__date:last-child .kv__date-value {
    gap: 0;
  }
}
.kv__date-value .num {
  font-size: calc(var(--u) * 40);
}
@media screen and (max-width: 768px) {
  .kv__date-value .num {
    font-size: calc(var(--u) * 44);
  }
}
.kv__date-value .num:first-child {
  font-size: calc(var(--u) * 30);
}
@media screen and (max-width: 768px) {
  .kv__date-value .num:first-child {
    font-size: calc(var(--u) * 36);
  }
}
.kv__date-value .sub {
  font-size: calc(var(--u) * 16);
  white-space: pre;
}
@media screen and (max-width: 768px) {
  .kv__date-value .sub {
    font-size: calc(var(--u) * 22);
  }
}
@media screen and (max-width: 768px) {
  .kv__date-value .sub.is-day {
    font-size: calc(var(--u) * 20);
  }
}
.kv__date-value .num:first-child + .sub {
  margin-right: calc(var(--u) * 2);
  margin-left: calc(var(--u) * -3);
}
@media screen and (max-width: 768px) {
  .kv__date-value .num:first-child + .sub {
    margin-left: 0;
  }
}
.kv__date-value .dot {
  display: inline-flex;
  justify-content: center;
  width: calc(var(--u) * 8);
}
@media screen and (max-width: 768px) {
  .kv__date-value .dot {
    width: calc(var(--u) * 11);
  }
}

.kv__notify {
  position: absolute;
  top: calc(var(--u) * 387);
  left: calc(var(--u) * 1090);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(var(--u) * 240);
  isolation: isolate;
}
@media screen and (max-width: 768px) {
  .kv__notify {
    top: calc(var(--u) * 525);
    left: calc(var(--u) * 427);
    width: calc(var(--u) * 291);
  }
}

.kv__notify-bg {
  position: absolute;
  top: calc(var(--u) * -37);
  left: calc(var(--u) * -59);
  z-index: -1;
  width: calc(var(--u) * 357);
  max-width: none;
  height: calc(var(--u) * 225);
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .kv__notify-bg {
    top: calc(var(--u) * -47);
    left: calc(var(--u) * -73);
    width: calc(var(--u) * 396);
    height: calc(var(--u) * 274);
  }
}

.kv__notify-icon {
  width: calc(var(--u) * 32);
  height: calc(var(--u) * 32);
}
@media screen and (max-width: 768px) {
  .kv__notify-icon {
    width: calc(var(--u) * 40);
    height: calc(var(--u) * 40);
  }
}

.kv__notify-title {
  position: relative;
  height: calc(var(--u) * 25);
  margin-top: calc(var(--u) * 6);
  font-size: calc(var(--u) * 22);
  font-weight: 700;
  line-height: calc(var(--u) * 16);
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .kv__notify-title {
    height: calc(var(--u) * 30);
    font-size: calc(var(--u) * 28);
    line-height: calc(var(--u) * 21);
  }
}
.kv__notify-title::after {
  content: "";
  position: absolute;
  top: calc(var(--u) * 23);
  left: 50%;
  width: calc(var(--u) * 214.5);
  height: calc(var(--u) * 4);
  background: #e60012;
  transform: translateX(-50%);
}
@media screen and (max-width: 768px) {
  .kv__notify-title::after {
    top: calc(var(--u) * 28);
    width: calc(var(--u) * 273);
  }
}

.kv__notify-btn {
  position: relative;
  flex-shrink: 0;
  width: calc(var(--u) * 252);
  height: calc(var(--u) * 62);
  margin-top: calc(var(--u) * 13);
  font-size: calc(var(--u) * 18);
  background: linear-gradient(90deg, #ff4452 0%, #e60012 50%, #ff4452 98.56%) padding-box, linear-gradient(180deg, #b7777d 0%, #ffa2a9 32.69%, #e60012 100%) border-box;
}
@media screen and (max-width: 768px) {
  .kv__notify-btn {
    width: calc(var(--u) * 282);
    height: calc(var(--u) * 82);
    font-size: calc(var(--u) * 28);
  }
}

.kv__notify-arrow {
  position: absolute;
  top: 50%;
  right: calc(var(--u) * 1);
  width: calc(var(--u) * 30);
  height: calc(var(--u) * 30);
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .kv__notify-arrow {
    right: calc(var(--u) * 8);
  }
}

.kv__register {
  position: absolute;
  top: calc(var(--u) * 509);
  left: calc(var(--u) * 52);
  width: calc(var(--u) * 480);
}
@media screen and (max-width: 768px) {
  .kv__register {
    top: calc(var(--u) * 1039);
    left: calc(var(--u) * 37.5);
    width: calc(var(--u) * 675);
  }
}

.kv__register-title {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: calc(var(--u) * 6);
  font-size: calc(var(--u) * 22);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 768px) {
  .kv__register-title {
    font-size: calc(var(--u) * 34);
  }
}
.kv__register-title::before, .kv__register-title::after {
  content: "";
  flex-shrink: 0;
  width: calc(var(--u) * 9);
  height: calc(var(--u) * 19);
  margin-bottom: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 19'%3E%3Cpath d='M1 1l7 17' stroke='%23000' stroke-width='2' stroke-linecap='round' fill='none' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
@media screen and (max-width: 768px) {
  .kv__register-title::before, .kv__register-title::after {
    width: calc(var(--u) * 15);
    height: calc(var(--u) * 32);
  }
}
.kv__register-title::after {
  transform: scaleX(-1);
}

.kv__register-list {
  display: flex;
  gap: calc(var(--u) * 15);
  margin-top: calc(var(--u) * 20);
}

.kv__register-list li {
  flex: 1;
}

.kv__card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: calc(var(--u) * 148);
  padding-top: calc(var(--u) * 14);
  overflow: hidden;
  text-align: center;
  background: #ffffff;
  border-radius: calc(var(--u) * 5);
  box-shadow: inset 0 0 0 calc(var(--u) * 2) #e60012, 0 calc(var(--u) * 4) calc(var(--u) * 10) rgba(0, 0, 0, 0.25);
  transition: color 0.4s;
  --hover-circle-color: #e60012;
}
@media (hover: hover) {
  .kv__card:hover {
    color: #ffffff;
  }
  .kv__card:hover .kv__card-en {
    color: #ffffff;
  }
  .kv__card:hover .kv__card-icon {
    filter: brightness(0) invert(1);
  }
}
@media screen and (max-width: 768px) {
  .kv__card {
    height: calc(var(--u) * 200);
  }
}

.kv__card-icon {
  transition: filter 0.4s;
  width: calc(var(--u) * 34);
  height: calc(var(--u) * 34);
}
@media screen and (max-width: 768px) {
  .kv__card-icon {
    width: calc(var(--u) * 42);
    height: calc(var(--u) * 42);
  }
}

.kv__card-en {
  margin-top: calc(var(--u) * 5);
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-size: calc(var(--u) * 14);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.06em;
  color: #e60012;
  transition: color 0.4s;
}
@media screen and (max-width: 768px) {
  .kv__card-en {
    font-size: calc(var(--u) * 20);
  }
}

.kv__card-ja {
  font-size: calc(var(--u) * 16);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .kv__card-ja {
    font-size: calc(var(--u) * 24);
  }
}

.kv__card-foot {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: calc(var(--u) * 26);
  background: #e60012;
}
@media screen and (max-width: 768px) {
  .kv__card-foot {
    height: calc(var(--u) * 38);
  }
}
.kv__card-foot img {
  width: calc(var(--u) * 18);
  height: calc(var(--u) * 18);
}
@media screen and (max-width: 768px) {
  .kv__card-foot img {
    width: calc(var(--u) * 33);
    height: calc(var(--u) * 33);
  }
}

@keyframes kv-fade-up {
  from {
    opacity: 0;
    translate: 0 24px;
  }
}
.kv__logo,
.kv__info,
.kv__notify,
.kv__register-title,
.kv__register-list li {
  animation: kv-fade-up 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.kv__logo {
  animation-delay: 0.2s;
}

.kv__info {
  animation-delay: 0.45s;
}

.kv__notify {
  animation-delay: 0.6s;
}

.kv__register-title {
  animation-delay: 0.75s;
}

.kv__register-list li:nth-child(1) {
  animation-delay: 0.85s;
}
.kv__register-list li:nth-child(2) {
  animation-delay: 0.95s;
}
.kv__register-list li:nth-child(3) {
  animation-delay: 1.05s;
}

.sec-wave {
  position: relative;
  height: calc(var(--u-pc) * 157);
}
.sec-wave img {
  position: absolute;
  top: 0;
  left: 50%;
  width: 153.3333333333cqw;
  max-width: none;
  height: calc(var(--u-pc) * 157);
  margin-left: -76.6666666667cqw;
}

.sec-head__title {
  margin: 0;
  font-size: min(90px, (100cqw - 80px) / 10);
  font-weight: 900;
  line-height: 0.7333;
  white-space: nowrap;
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .sec-head__title {
    font-size: min(34px, (100cqw - 40px) / 10);
    line-height: 0.88;
  }
}
.sec-head__title.is-large {
  font-size: 120px;
  line-height: 88px;
}
@media screen and (max-width: 768px) {
  .sec-head__title.is-large {
    font-size: 60px;
    line-height: 48px;
  }
}
.sec-head__title.is-grey {
  color: #494949;
}
.sec-head__title.is-light {
  color: #b3b3b3;
}

.sec-head__sub {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .sec-head__sub {
    gap: 8px;
    margin-top: 14px;
    font-size: 18px;
  }
}
.sec-head__sub::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 34px;
  margin-left: -2px;
  background: #e60012;
}
@media screen and (max-width: 768px) {
  .sec-head__sub::before {
    width: 3px;
    height: 22px;
    margin-left: 0;
  }
}

.sec-lead {
  margin-top: 50px;
  font-size: 18px;
  font-weight: 700;
  line-height: 33px;
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .sec-lead {
    margin-top: 28px;
    font-size: 15px;
    line-height: 1.9;
  }
}

.topic-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  align-items: start;
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .topic-list {
    grid-template-columns: 1fr;
    margin-top: 32px;
  }
}

.topic-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px;
  color: #ffffff;
  background: #1d1d1d;
}
@media screen and (max-width: 768px) {
  .topic-card {
    padding: 24px 20px;
  }
}
.topic-list.is-black .topic-card {
  background: #000000;
}

.topic-card__title {
  position: relative;
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 23px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .topic-card__title {
    font-size: 26px;
  }
}
.topic-card__title::after {
  content: "";
  position: absolute;
  top: 37px;
  left: 50%;
  width: 30px;
  height: 2px;
  background: #e60012;
  transform: translateX(-50%);
}

.topic-card__thumb {
  display: block;
  width: 100%;
  max-width: 412px;
  margin-top: 35px;
  overflow: hidden;
  border-radius: 6px;
}
.topic-card__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 412/200;
  object-fit: cover;
}

.topic-card__text {
  width: 100%;
  margin-top: 20px;
  font-size: 16px;
  line-height: 33px;
}
@media screen and (max-width: 768px) {
  .topic-card__text {
    font-size: 15px;
    line-height: 1.9;
  }
}

.link-btn {
  position: relative;
  display: flex;
  align-items: center;
  height: 60px;
  padding: 0 40px 0 16px;
  overflow: hidden;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
  color: #000000;
  background: #ffffff;
  border: 2px solid #e60012;
  border-radius: 5px;
  transition: color 0.4s;
  --hover-circle-color: #e60012;
}
@media (hover: hover) {
  .link-btn:hover {
    color: #ffffff;
  }
  .link-btn:hover .link-btn__en {
    color: #ffffff;
  }
  .link-btn:hover .link-btn__icon {
    filter: brightness(0) invert(1);
  }
}
.link-btn::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -2px;
  width: 30px;
  background: #e60012 url("../img/icon-arrow.svg") no-repeat center/30px 30px;
}

.link-btn.is-large {
  gap: 10px;
  height: 80px;
  padding-left: 10px;
}
@media screen and (max-width: 768px) {
  .link-btn.is-large {
    height: 70px;
  }
}

.link-btn__icon {
  flex-shrink: 0;
  transition: filter 0.4s;
  width: 40px;
  height: 40px;
}

.link-btn__text {
  display: flex;
  flex-direction: column;
}

.link-btn__en {
  font-family: "SubsetRubik", "Rubik", sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #e60012;
  transition: color 0.4s;
}

.link-btn__ja {
  font-size: 18px;
}
@media screen and (max-width: 768px) {
  .link-btn__ja {
    font-size: 16px;
  }
}

.split-char {
  display: inline-block;
}

.js-hover {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.hover-circle {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 0;
  height: 0;
  pointer-events: none;
  background: var(--hover-circle-color, #ffffff);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
}

@media (hover: hover) {
  .js-hover:hover .hover-circle {
    width: var(--hover-circle-size, 700px);
    height: var(--hover-circle-size, 700px);
  }
}
.mask-icon {
  display: inline-block;
  flex-shrink: 0;
  background-color: currentColor;
  mask: var(--mask-icon) no-repeat center/contain;
}
.mask-icon.is-bell {
  --mask-icon: url("../img/icon-bell.svg");
}
.mask-icon.is-arrow {
  --mask-icon: url("../img/icon-arrow.svg");
}

.news {
  position: relative;
  padding-bottom: 30px;
  overflow: hidden;
  background: #ffffff;
}
@media screen and (max-width: 768px) {
  .news {
    padding: 40px 0 30px;
  }
}

.news__wave {
  position: relative;
  height: calc(var(--u) * 132);
}
@media screen and (max-width: 768px) {
  .news__wave {
    display: none;
  }
}

.news__wave-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: calc(var(--u) * 132);
}

.news__wave-blob {
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(var(--u) * 2300);
  max-width: none;
  height: calc(var(--u) * 132);
  margin-left: calc(var(--u) * -1150);
}

.news__inner {
  max-width: calc(1020px + 80px);
  padding: 68px 40px 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .news__inner {
    padding: 0 20px;
  }
}
@container (max-width: 980px) {
  .news__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }
}

.news__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@container (max-width: 980px) {
  .news__head {
    display: contents;
  }
}

.news__title {
  display: flex;
  grid-row: 1;
  grid-column: 1;
  align-items: center;
  gap: 24px;
  margin: 0;
  font-size: 60px;
  font-weight: 900;
  line-height: 44px;
}
@media screen and (max-width: 768px) {
  .news__title {
    gap: 14px;
    font-size: min(27px, (100cqw - 142px) / 8.3);
    white-space: nowrap;
    line-height: 30px;
  }
}
.news__title::before {
  content: "";
  width: 10px;
  height: 44px;
  background: #e60012;
  opacity: var(--bar, 1);
  scale: 1 var(--bar, 1);
}
@media screen and (max-width: 768px) {
  .news__title::before {
    width: 6px;
    height: 30px;
  }
}

.news__head-right {
  display: flex;
  align-items: center;
  gap: 40px;
}
@container (max-width: 980px) {
  .news__head-right {
    display: contents;
  }
}

.news__more {
  flex-shrink: 0;
  width: 180px;
  height: 53px;
}
@container (max-width: 980px) {
  .news__more {
    grid-row: 3;
    grid-column: 1/-1;
    justify-self: center;
    width: 240px;
    height: 60px;
    margin-top: 40px;
  }
}
@media screen and (max-width: 768px) {
  .news__more {
    margin-top: 32px;
  }
}

.news__nav {
  display: flex;
  grid-row: 1;
  grid-column: 2;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .news__nav {
    gap: 10px;
  }
}

.news__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 53px;
  height: 53px;
  border: 1px solid #000000;
  border-radius: 50%;
  transition: scale 0.4s;
  --hover-circle-color: #000000;
  --hover-circle-size: 200px;
}
@media (hover: hover) {
  .news__nav-btn:hover {
    scale: 1.2;
  }
  .news__nav-btn:hover img {
    filter: invert(1);
  }
}
@media screen and (max-width: 768px) {
  .news__nav-btn {
    width: 36px;
    height: 36px;
  }
}
.news__nav-btn.is-prev img {
  transform: rotate(180deg);
}
.news__nav-btn img {
  width: 8px;
  height: 14px;
  transition: filter 0.4s;
}

.swiper {
  position: relative;
  z-index: 1;
  overflow: hidden;
  list-style: none;
}

.swiper-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  box-sizing: content-box;
  width: 100%;
  height: 100%;
  transition-property: transform;
}

.swiper-slide {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  transition-property: transform;
}

.news__slider {
  grid-row: 2;
  grid-column: 1/-1;
  min-width: 0;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .news__slider {
    margin-right: -20px;
    margin-top: 24px;
  }
}
.news__slider .swiper-wrapper {
  margin: 0;
  padding: 0;
}

.news__item {
  height: auto;
}

.news__link {
  display: flex;
  flex-direction: column;
}
@media (hover: hover) {
  .news__link:hover .news__thumb img {
    transform: scale(1.1);
  }
  .news__link:hover .news__text {
    text-decoration: underline;
  }
}

.news__thumb {
  display: block;
  aspect-ratio: 320/230;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid #DDDDDD;
}
.news__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.news__date {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}

.news__text {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 5px;
  font-size: 16px;
  font-weight: 500;
  line-height: 27px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 768px) {
  .news__text {
    font-size: 15px;
    line-height: 24px;
  }
}

.focuson {
  position: relative;
  padding-bottom: 120px;
  overflow: hidden;
  background: #000000;
}
@media screen and (max-width: 768px) {
  .focuson {
    padding-bottom: 60px;
  }
}

.focuson__lines {
  position: absolute;
  top: calc(var(--u) * 13);
  left: calc(50% - calc(var(--u) * 1010));
  width: calc(var(--u) * 1221);
  max-width: none;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .focuson__lines {
    top: calc(var(--u-pc) * 13);
    left: calc(50% - calc(var(--u-pc) * 1010));
    width: calc(var(--u-pc) * 1221);
  }
}

.focuson__inner {
  position: relative;
  max-width: calc(1020px + 80px);
  padding: 40px 40px 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .focuson__inner {
    padding: 24px 20px 0;
  }
}

.focuson__lead {
  position: relative;
  margin-top: 40px;
  padding: 20px 0;
}
@media screen and (max-width: 768px) {
  .focuson__lead {
    margin-top: 28px;
    padding: 0;
  }
}
.focuson__lead li {
  position: relative;
  padding-left: 1em;
}
.focuson__lead li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

.focuson__question {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 14px;
  min-height: 75px;
  margin: 40px 0 0;
  font-size: 48px;
  font-weight: 700;
  line-height: 33px;
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .focuson__question {
    gap: 0 7px;
    min-height: 38px;
    margin-top: 40px;
    font-size: 24px;
    line-height: 38px;
  }
}

.focuson__question-mark {
  flex-shrink: 0;
  font-size: 60px;
  color: #e60012;
}
@media screen and (max-width: 768px) {
  .focuson__question-mark {
    font-size: 30px;
  }
}

.focuson__cards {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 30px;
}
@media screen and (max-width: 1080px) {
  .focuson__cards {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-right: auto;
    margin-left: auto;
  }
}

.focuson__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding: 40px 24px;
  color: #ffffff;
  background: #1d1d1d;
}
@media screen and (max-width: 768px) {
  .focuson__card {
    padding: 32px 20px;
  }
}

.focuson__card-title {
  position: relative;
  margin: 0;
  padding-bottom: 20px;
  font-size: 28px;
  font-weight: 700;
  line-height: 21px;
  text-align: center;
}
.focuson__card-title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  width: 30px;
  height: 2px;
  background: #e60012;
  transform: translateX(-50%);
}

.focuson__card-body {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.focuson__card-label,
.focuson__etc {
  font-size: 14px;
  line-height: 10px;
}

.focuson__tags {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.focuson__tag {
  padding: 8px 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 15px;
  text-align: center;
  background: #e60012;
  border-radius: 4px;
}

.focuson__etc {
  margin-top: 10px;
  text-align: right;
}

.focuson__card-thumb {
  display: block;
  margin-top: 20px;
  overflow: hidden;
  border-radius: 6px;
}
.focuson__card-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 285/176;
  object-fit: cover;
}

.visitor {
  position: relative;
  padding: 90px 0 40px;
  overflow: hidden;
  background: #1a1a1a;
}
@media screen and (max-width: 768px) {
  .visitor {
    padding: 60px 0 40px;
  }
}

.visitor__lines {
  position: absolute;
  top: calc(var(--u) * 74);
  left: calc(50% + calc(var(--u) * 30));
  width: calc(var(--u) * 687);
  max-width: none;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .visitor__lines {
    top: calc(var(--u-pc) * 74);
    left: calc(50% + calc(var(--u-pc) * 30));
    width: calc(var(--u-pc) * 687);
  }
}

.visitor__inner {
  position: relative;
  max-width: calc(1020px + 80px);
  padding: 0 40px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .visitor__inner {
    padding: 0 20px;
  }
}

.highlight {
  position: relative;
  padding-bottom: 30px;
  overflow: hidden;
  background: #000000;
}

.highlight__lines {
  position: absolute;
  max-width: none;
  pointer-events: none;
}
.highlight__lines.is-left {
  top: calc(var(--u) * 245);
  left: calc(50% - calc(var(--u) * 750));
  width: calc(var(--u) * 643);
}
@media screen and (max-width: 768px) {
  .highlight__lines.is-left {
    top: auto;
    bottom: 0;
    left: calc(50% - calc(var(--u-pc) * 750));
    width: calc(var(--u-pc) * 643);
  }
}
.highlight__lines.is-right {
  top: calc(var(--u) * 118);
  left: calc(50% + calc(var(--u) * 356));
  width: calc(var(--u) * 524);
}
@media screen and (max-width: 768px) {
  .highlight__lines.is-right {
    top: calc(var(--u-pc) * 118);
    left: calc(50% + calc(var(--u-pc) * 356));
    width: calc(var(--u-pc) * 524);
  }
}

.highlight__inner {
  position: relative;
  max-width: calc(1020px + 80px);
  padding: 40px 40px 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .highlight__inner {
    padding: 24px 20px 0;
  }
}
.highlight__inner .sec-head__sub {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .highlight__inner .sec-head__sub {
    margin-top: 14px;
  }
}

.highlight__stats {
  display: flex;
  margin-top: 50px;
  padding: 20px 0;
  background: #1d1d1d;
  outline: 1px solid #ffffff;
}
@media screen and (max-width: 1080px) {
  .highlight__stats {
    display: grid;
    grid-template-columns: 1fr auto auto 1fr;
    max-width: 480px;
    margin-right: auto;
    margin-left: auto;
    padding: 0 20px;
  }
}
@media screen and (max-width: 768px) {
  .highlight__stats {
    margin-top: 32px;
  }
}

.highlight__stat {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 20px;
  height: 130px;
}
.highlight__stat + .highlight__stat {
  border-left: 1px solid #ffffff;
}
@media screen and (max-width: 1080px) {
  .highlight__stat + .highlight__stat {
    border-top: 1px solid #ffffff;
    border-left: none;
  }
}
@media screen and (max-width: 1080px) {
  .highlight__stat {
    display: grid;
    grid-column: 1/-1;
    grid-template-columns: subgrid;
    height: 110px;
  }
}

.highlight__stat-icon {
  flex-shrink: 0;
  width: auto;
  height: 60px;
}
.highlight__stat-icon[width="45"] {
  height: 52px;
}
@media screen and (max-width: 1080px) {
  .highlight__stat-icon {
    grid-column: 2;
    justify-self: center;
    margin-right: 20px;
  }
}

.highlight__stat-body {
  color: #ffffff;
}
@media screen and (max-width: 1080px) {
  .highlight__stat-body {
    grid-column: 3;
  }
}

.highlight__stat-label {
  font-size: 18px;
  font-weight: 700;
  line-height: 13px;
}
.highlight__stat-label::after {
  content: "";
  display: block;
  width: 25px;
  height: 1px;
  margin-top: 14.5px;
  background: #e60012;
}

.highlight__stat-value {
  display: flex;
  align-items: baseline;
  height: 29px;
  margin-top: 14.5px;
  font-weight: 700;
  line-height: 29px;
  white-space: nowrap;
}
.highlight__stat-value.is-black {
  font-weight: 900;
}
.highlight__stat-value .num {
  font-size: 40px;
}
.highlight__stat-value .comma {
  font-size: 26px;
}
.highlight__stat-value .unit {
  font-size: 18px;
  font-weight: 500;
}

.highlight__links {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-top: 50px;
}
@media screen and (max-width: 1080px) {
  .highlight__links {
    flex-direction: column;
    gap: 12px;
    max-width: 420px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media screen and (max-width: 768px) {
  .highlight__links {
    margin-top: 32px;
  }
}
.highlight__links li {
  width: 300px;
}
@media screen and (max-width: 1080px) {
  .highlight__links li {
    width: 100%;
  }
}

.information {
  position: relative;
  overflow: hidden;
  background: #1a1a1a;
}

.information__lines {
  position: absolute;
  top: calc(var(--u) * 185);
  left: calc(50% + calc(var(--u) * 55));
  width: calc(var(--u) * 666);
  max-width: none;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .information__lines {
    top: calc(var(--u-pc) * 185);
    left: calc(50% + calc(var(--u-pc) * 55));
    width: calc(var(--u-pc) * 666);
  }
}

.information__inner {
  position: relative;
  max-width: calc(1020px + 80px);
  padding: 40px 40px 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .information__inner {
    padding: 24px 20px 0;
  }
}
.information__inner .sec-head__sub {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .information__inner .sec-head__sub {
    margin-top: 14px;
  }
}

.information__table {
  margin: 39px 0 0;
  border-top: 1px solid #ffffff;
}
@media screen and (max-width: 768px) {
  .information__table {
    margin-top: 28px;
  }
}

.information__row {
  display: flex;
  gap: 40px;
  padding: 32px 0 31px;
  border-bottom: 1px solid #ffffff;
}
@media screen and (max-width: 768px) {
  .information__row {
    flex-direction: column;
    gap: 14px;
    padding: 24px 0;
  }
}

.information__label {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 32px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
  color: #1a1a1a;
  background: #ffffff;
}

.information__data {
  margin: -9px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
  color: #ffffff;
}
@media screen and (max-width: 768px) {
  .information__data {
    font-size: 14px;
    line-height: 26px;
  }
}
.information__data .dot {
  color: #e60012;
}

.information__btn-wrap {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.information__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 600px;
  max-width: 100%;
  height: 90px;
  padding: 0 32px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.06em;
  font-feature-settings: "palt";
  color: #ffffff;
  background: #e60012;
  border-radius: 5px;
  transition: color 0.4s;
}
@media (hover: hover) {
  .information__btn:hover {
    color: #e60012;
  }
}
@media screen and (max-width: 768px) {
  .information__btn {
    height: 70px;
    padding: 0 36px 0 12px;
    font-size: 14px;
    letter-spacing: 0;
  }
}

.information__btn-bell {
  width: 40px;
  height: 40px;
}
@media screen and (max-width: 768px) {
  .information__btn-bell {
    width: 26px;
    height: 26px;
  }
}

.information__btn-arrow {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 34px;
  height: 34px;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .information__btn-arrow {
    right: 4px;
    width: 28px;
    height: 28px;
  }
}

.cta {
  position: relative;
  padding-top: 80px;
  overflow: hidden;
  background: #1a1a1a;
}
@media screen and (max-width: 768px) {
  .cta {
    padding-top: 40px;
  }
}

.cta__lines {
  position: absolute;
  top: calc(var(--u) * 1);
  left: calc(50% - calc(var(--u) * 750));
  width: calc(var(--u) * 685);
  max-width: none;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .cta__lines {
    top: calc(var(--u-pc) * 1);
    left: calc(50% - calc(var(--u-pc) * 750));
    width: calc(var(--u-pc) * 685);
  }
}

.cta__inner {
  position: relative;
  max-width: 1258px;
  padding: 0 40px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cta__inner {
    padding: 0 20px;
  }
}

.cta__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 13px;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.cta__title::before, .cta__title::after {
  content: "";
  width: 9px;
  height: 13px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 13'%3E%3Cpath d='M1 1l7 11' stroke='%23fff' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
.cta__title::after {
  transform: scaleX(-1);
}

.cta__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 20px;
}
@media screen and (max-width: 1080px) {
  .cta__list {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-right: auto;
    margin-left: auto;
  }
}

.cta__wave {
  position: relative;
  height: calc(var(--u-pc) * 150);
  margin-top: 50px;
}
.cta__wave img {
  position: absolute;
  top: 0;
  left: 50%;
  width: 153.3333333333cqw;
  max-width: none;
  height: calc(var(--u-pc) * 150);
  margin-left: -76.6666666667cqw;
}

.footer {
  padding: 0 40px 30px;
  color: #ffffff;
  background: #e60012;
}
@media screen and (max-width: 768px) {
  .footer {
    padding: 10px 20px 24px;
  }
}

.footer__inner {
  max-width: 1300px;
  margin: 0 auto;
}

.footer__top {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
@media screen and (max-width: 1080px) {
  .footer__top {
    display: grid;
    grid-template-columns: 1fr min(300px, 30%);
    align-items: center;
    gap: 28px 40px;
  }
}
@media screen and (max-width: 768px) {
  .footer__top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
  }
}

@media screen and (max-width: 1080px) {
  .footer__main {
    display: contents;
  }
}

.footer__logo {
  display: block;
  grid-column: 1/-1;
  width: 633px;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .footer__logo {
    flex: 0 0 100%;
  }
}
.footer__logo img {
  display: block;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .footer__logo img {
    width: min(100%, 633px);
  }
}

.footer__sns {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: start;
  gap: 12px 20px;
  margin-top: 20px;
}
@media screen and (max-width: 1080px) {
  .footer__sns {
    margin-top: 0;
  }
}
@media screen and (max-width: 768px) {
  .footer__sns {
    grid-template-columns: repeat(2, auto);
    gap: 6px 20px;
  }
}

.footer__sns-link {
  display: flex;
  align-items: center;
  gap: 3px;
  height: 50px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  white-space: nowrap;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .footer__sns-link:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .footer__sns-link {
    height: 42px;
    font-size: 15px;
  }
}
.footer__sns-link.is-note {
  font-weight: 700;
}
.footer__sns-link img {
  width: 36px;
  height: 36px;
}
@media screen and (max-width: 768px) {
  .footer__sns-link img {
    width: 30px;
    height: 30px;
  }
}

.footer__tib {
  flex-shrink: 0;
  width: 300px;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .footer__tib:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1080px) {
  .footer__tib {
    width: auto;
  }
}
@media screen and (max-width: 768px) {
  .footer__tib {
    width: 200px;
  }
}
.footer__tib img {
  display: block;
  width: 100%;
}

.footer__bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin-top: 20px;
  padding-top: 19px;
  border-top: 1px solid #ffffff;
}
@container (max-width: 1094px) {
  .footer__bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.footer__links {
  display: flex;
  flex-wrap: wrap;
  grid-column: 2;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  letter-spacing: 0.06em;
}
.footer__links li {
  display: flex;
  align-items: center;
}
.footer__links li + li::before {
  content: "";
  width: 1px;
  height: 22px;
  margin: 0 30px;
  background: #ffffff;
}
@media screen and (max-width: 1080px) {
  .footer__links li + li::before {
    display: none;
  }
}
.footer__links a {
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .footer__links a:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1080px) {
  .footer__links {
    gap: 8px 20px;
  }
}
@media screen and (max-width: 768px) {
  .footer__links {
    font-size: 12px;
  }
}
@container (max-width: 490px) {
  .footer__links {
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin: -10px 0 0;
    font-size: 14px;
    line-height: 1.5;
  }
  .footer__links a {
    display: block;
    padding: 10px 0;
  }
}

.footer__copyright {
  justify-self: end;
  font-size: 12px;
  letter-spacing: 0.06em;
}
