@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&family=Quicksand&family=Roboto+Condensed&display=swap");
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

ul[role=list],
ol[role=list] {
  list-style: none;
}

html:focus-within {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

img,
picture {
  max-width: 100%;
  /* display: block */
}

input,
button,
textarea,
select {
  font: inherit;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
html {
  font-size: 16px;
}

body, h1, h2, h3, h4, h5, h6, p, ol, ul, dl, table {
  margin: 0;
}

body {
  background-color: #e4e8e5;
  line-height: 1.8;
  color: #000;
  font-family: "Noto Sans JP" , "ヒラギノ角ゴシック Pro" , "Hiragino Kaku Gothic Pro" , メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック" , "MS PGothic" , sans-serif;
  font-weight: 400;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

a {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
}
a:hover {
  color: inherit;
  text-decoration: none;
}
a:active {
  color: inherit;
  text-decoration: none;
}
a:visited {
  color: inherit;
  text-decoration: none;
}

b, strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

audio, canvas, iframe, img, svg, video {
  vertical-align: top;
}

iframe {
  border-style: none;
}

img {
  border-style: none;
  max-width: 100%;
  height: auto;
}

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

dd {
  margin-left: 0;
}

table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1;
}
.site-header a {
  display: block;
}
@media (max-width: 767px) {
  .site-header__logo a {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    padding-left: 1.25rem;
  }
  .site-header__logo img {
    width: 9.375rem;
  }
}
@media (min-width: 768px) {
  .site-header__logo a {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    padding-left: 1.25rem;
  }
  .site-header__logo img {
    width: 12.8125rem;
  }
}

.site-footer__lower {
  border-top: 1px solid #000;
}
.site-footer__logo {
  text-align: center;
}
.site-footer__menu {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1;
  letter-spacing: 0.1em;
}
.site-footer__menu a {
  display: block;
}
.site-footer__sns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-column-gap: 1.25rem;
     -moz-column-gap: 1.25rem;
          column-gap: 1.25rem;
}
.site-footer__sns li {
  width: 1.875rem;
}
.site-footer__sns li img {
  width: 100%;
}
.site-footer__copyright {
  text-align: center;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .site-footer__lower {
    padding-top: 1.25rem;
  }
  .site-footer__logo {
    margin-bottom: 1.625rem;
  }
  .site-footer__logo img {
    width: 7.5rem;
  }
  .site-footer__menu {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    margin-bottom: 1.25rem;
    font-size: 0.75rem;
  }
  .site-footer__menu a {
    padding: 0.5em 1em;
  }
  .site-footer__sns {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .site-footer__copyright {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    font-size: 0.625rem;
  }
}
@media (min-width: 768px) {
  .site-footer__lower {
    position: relative;
  }
  .site-footer__logo {
    margin-bottom: 1.625rem;
  }
  .site-footer__logo img {
    width: 9.375rem;
  }
  .site-footer__menu {
    font-size: 1rem;
  }
  .site-footer__menu a {
    padding: 1.5em;
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .site-footer__menu a:hover {
    opacity: 0.5;
  }
  .site-footer__sns {
    position: absolute;
    top: 1.25rem;
    right: 1.875rem;
  }
  .site-footer__sns a {
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  .site-footer__sns a:hover {
    opacity: 0.7;
  }
  .site-footer__copyright {
    padding-top: 1.375rem;
    padding-bottom: 2.5rem;
    line-height: 1;
    font-size: 0.75rem;
  }
}

.opening-animation {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #000;
  width: 100%;
  height: 100vh;
}
.opening-animation__logo {
  position: relative;
  aspect-ratio: 495.8501/382.3085;
  background: url("../img/home-opening-bg.svg") 0 0 no-repeat;
  background-size: 100% 100%;
}
.opening-animation__number {
  position: absolute;
  left: 53.533860334%;
  overflow: hidden;
  width: 32.0063%;
  height: 79.7599%;
}
.opening-animation__number img {
  -webkit-transform: translateY(15.0854937564%);
          transform: translateY(15.0854937564%);
  width: 100%;
}
@media (max-width: 767px) {
  .opening-animation__logo {
    width: min(60vw, 18.75rem);
  }
  .opening-animation__number {
    top: -6px;
    padding-top: 6px;
  }
}
@media (min-width: 768px) {
  .opening-animation__logo {
    width: 36.3103953148vw;
  }
  .opening-animation__number {
    top: -10px;
    padding-top: 10px;
  }
}
.opening-animation.is-active img {
  -webkit-animation: 1.5s ease-in forwards easeInOutElasticFromStart;
          animation: 1.5s ease-in forwards easeInOutElasticFromStart;
}

@-webkit-keyframes easeInOutElasticFromStart {
  0% {
    -webkit-transform: translateY(15.0854937564%);
            transform: translateY(15.0854937564%);
  }
  4% {
    -webkit-transform: translateY(15.0734253614%);
            transform: translateY(15.0734253614%);
  }
  8% {
    -webkit-transform: translateY(15.0704082626%);
            transform: translateY(15.0704082626%);
  }
  18% {
    -webkit-transform: translateY(15.1639383239%);
            transform: translateY(15.1639383239%);
  }
  20% {
    -webkit-transform: translateY(15.144327182%);
            transform: translateY(15.144327182%);
  }
  28% {
    -webkit-transform: translateY(14.7309846531%);
            transform: translateY(14.7309846531%);
  }
  30% {
    -webkit-transform: translateY(14.7249504556%);
            transform: translateY(14.7249504556%);
  }
  38% {
    -webkit-transform: translateY(16.4839190276%);
            transform: translateY(16.4839190276%);
  }
  40% {
    -webkit-transform: translateY(16.8580392728%);
            transform: translateY(16.8580392728%);
  }
  60% {
    -webkit-transform: translateY(-1.7725455164%);
            transform: translateY(-1.7725455164%);
  }
  62% {
    -webkit-transform: translateY(-1.3984252712%);
            transform: translateY(-1.3984252712%);
  }
  70% {
    -webkit-transform: translateY(0.3605433008%);
            transform: translateY(0.3605433008%);
  }
  72% {
    -webkit-transform: translateY(0.3545091033%);
            transform: translateY(0.3545091033%);
  }
  80% {
    -webkit-transform: translateY(-0.0588334256%);
            transform: translateY(-0.0588334256%);
  }
  82% {
    -webkit-transform: translateY(-0.0784445675%);
            transform: translateY(-0.0784445675%);
  }
  90% {
    -webkit-transform: translateY(0.0045256481%);
            transform: translateY(0.0045256481%);
  }
  92% {
    -webkit-transform: translateY(0.0150854938%);
            transform: translateY(0.0150854938%);
  }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
}

@keyframes easeInOutElasticFromStart {
  0% {
    -webkit-transform: translateY(15.0854937564%);
            transform: translateY(15.0854937564%);
  }
  4% {
    -webkit-transform: translateY(15.0734253614%);
            transform: translateY(15.0734253614%);
  }
  8% {
    -webkit-transform: translateY(15.0704082626%);
            transform: translateY(15.0704082626%);
  }
  18% {
    -webkit-transform: translateY(15.1639383239%);
            transform: translateY(15.1639383239%);
  }
  20% {
    -webkit-transform: translateY(15.144327182%);
            transform: translateY(15.144327182%);
  }
  28% {
    -webkit-transform: translateY(14.7309846531%);
            transform: translateY(14.7309846531%);
  }
  30% {
    -webkit-transform: translateY(14.7249504556%);
            transform: translateY(14.7249504556%);
  }
  38% {
    -webkit-transform: translateY(16.4839190276%);
            transform: translateY(16.4839190276%);
  }
  40% {
    -webkit-transform: translateY(16.8580392728%);
            transform: translateY(16.8580392728%);
  }
  60% {
    -webkit-transform: translateY(-1.7725455164%);
            transform: translateY(-1.7725455164%);
  }
  62% {
    -webkit-transform: translateY(-1.3984252712%);
            transform: translateY(-1.3984252712%);
  }
  70% {
    -webkit-transform: translateY(0.3605433008%);
            transform: translateY(0.3605433008%);
  }
  72% {
    -webkit-transform: translateY(0.3545091033%);
            transform: translateY(0.3545091033%);
  }
  80% {
    -webkit-transform: translateY(-0.0588334256%);
            transform: translateY(-0.0588334256%);
  }
  82% {
    -webkit-transform: translateY(-0.0784445675%);
            transform: translateY(-0.0784445675%);
  }
  90% {
    -webkit-transform: translateY(0.0045256481%);
            transform: translateY(0.0045256481%);
  }
  92% {
    -webkit-transform: translateY(0.0150854938%);
            transform: translateY(0.0150854938%);
  }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
}
@-webkit-keyframes flashLogo {
  0% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  50% {
    opacity: 0.1;
    -webkit-filter: blur(5px);
            filter: blur(5px);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@keyframes flashLogo {
  0% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  50% {
    opacity: 0.1;
    -webkit-filter: blur(5px);
            filter: blur(5px);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@-webkit-keyframes flashBg {
  0% {
    background-color: #000;
  }
  50% {
    background-color: #fff;
  }
  100% {
    background-color: #000;
  }
}
@keyframes flashBg {
  0% {
    background-color: #000;
  }
  50% {
    background-color: #fff;
  }
  100% {
    background-color: #000;
  }
}
.home-mv {
  background-color: #000;
}
.home-mv__container {
  position: relative;
}
.home-mv__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  aspect-ratio: 495.8501/382.3085;
}
.home-mv__logo img {
  width: 100%;
  height: 100%;
}
.home-mv__main {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  height: 100vh;
}
.home-mv__main-photo {
  position: relative;
  overflow: hidden;
}
.home-mv__main-photo:nth-child(1), .home-mv__main-photo:nth-child(2), .home-mv__main-photo:nth-child(3), .home-mv__main-photo:nth-child(4), .home-mv__main-photo:nth-child(5) {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 20%;
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
  height: 54.75%;
}
.home-mv__main-photo:nth-child(6), .home-mv__main-photo:nth-child(7), .home-mv__main-photo:nth-child(8), .home-mv__main-photo:nth-child(9), .home-mv__main-photo:nth-child(10), .home-mv__main-photo:nth-child(11) {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 16.6666666667%;
      -ms-flex: 0 0 16.6666666667%;
          flex: 0 0 16.6666666667%;
  height: 45.25%;
}
.home-mv__main-photo img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  width: 100%;
  height: 100%;
}
.home-mv__main-photo::before, .home-mv__main-photo::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transition: all 1s;
  transition: all 1s;
}
.home-mv__main-photo::before {
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
}
.is-loaded .home-mv__main-photo::before {
  opacity: 1;
}
.home-mv__main-photo::after {
  background-color: #e4e8e5;
}
.is-loaded .home-mv__main-photo::after {
  -webkit-transform: translateX(-110%);
          transform: translateX(-110%);
}
@media (max-width: 767px) {
  .home-mv__logo {
    width: min(60vw, 18.75rem);
  }
}
@media (min-width: 768px) {
  .home-mv__logo {
    width: 36.3103953148vw;
  }
}

.home-content__year {
  position: relative;
}
.home-content__year.-before::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  display: block;
  background-color: #000;
  width: 1px;
}
.home-content__year.-after::before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  display: block;
  background-color: #000;
  width: 1px;
}
.home-content__main {
  background: url("../img/home-bg-content.jpg") center center no-repeat;
  background-size: cover;
  color: #fff;
}
.home-content__main::before {
  content: "";
  position: absolute;
  top: 0;
  display: block;
  background-color: #fff;
  width: 1px;
  height: 100%;
}
.home-content__heading {
  font-weight: normal;
}
@media (max-width: 767px) {
  .home-content {
    margin: 3.75rem 1.25rem;
  }
  .home-content__year {
    font-size: 0.75rem;
  }
  .home-content__year.-before {
    margin-bottom: 3.4375rem;
  }
  .home-content__year.-before::after {
    bottom: -3.4375rem;
    left: 0.9375rem;
    height: 2.5rem;
  }
  .home-content__year.-after {
    margin-top: 3.4375rem;
  }
  .home-content__year.-after::before {
    top: -3.4375rem;
    left: 0.9375rem;
    height: 2.5rem;
  }
  .home-content__main {
    position: relative;
    padding: 4.375rem 1.25rem 4.375rem 2.1875rem;
    letter-spacing: 0.125em;
  }
  .home-content__main::before {
    left: 0.9375rem;
  }
  .home-content__main p + p {
    margin-top: 5em;
  }
  .home-content__heading {
    margin-bottom: 3.75rem;
    line-height: 1.3;
    font-size: 1.875rem;
    letter-spacing: 0.01em;
  }
  .home-content__en {
    margin-bottom: 3.75rem;
    line-height: 2.25;
    font-size: 0.84375rem;
  }
  .home-content__ja {
    line-height: 2.5714;
    font-size: 0.75rem;
  }
}
@media (min-width: 768px) {
  .home-content {
    margin: 7.8125rem 3.75rem;
  }
  .home-content__year {
    text-align: center;
    font-size: 1rem;
  }
  .home-content__year.-before {
    margin-bottom: 3.4375rem;
  }
  .home-content__year.-before::after {
    bottom: -3.4375rem;
    height: 2.5rem;
  }
  .home-content__year.-after {
    margin-top: 3.4375rem;
  }
  .home-content__year.-after::before {
    top: -3.4375rem;
    height: 2.5rem;
  }
  .home-content__main {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    min-height: 93.75rem;
    letter-spacing: 0.17em;
  }
  .home-content__main::before {
    left: 50%;
  }
  .home-content__main p + p {
    margin-top: 5em;
  }
  .home-content__heading {
    margin-bottom: 22.5rem;
    line-height: 1.3;
    font-size: 3rem;
    letter-spacing: 0.01em;
  }
  .home-content__en {
    padding-top: 11.25rem;
    padding-right: 1.25rem;
    line-height: 2.25;
    text-align: right;
    font-size: 1rem;
  }
  .home-content__ja {
    padding-top: 23.75rem;
    padding-left: 1.25rem;
    line-height: 2.5714;
    text-align: left;
    font-size: 0.875rem;
  }
}

.home-banners__banner {
  position: relative;
  overflow: hidden;
  display: block;
  aspect-ratio: 5/4;
}
.home-banners__banner::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
  -webkit-transform-origin: center center;
          transform-origin: center center;
}
.home-banners__banner.-bg01::before {
  background-image: url("../img/home-bg-ban-01.jpg");
}
.webp .home-banners__banner.-bg01::before {
  background-image: url("../img/home-bg-ban-01.webp");
}
.home-banners__banner.-bg02::before {
  background-image: url("../img/home-bg-ban-02.jpg");
}
.webp .home-banners__banner.-bg02::before {
  background-image: url("../img/home-bg-ban-02.webp");
}
.home-banners__banner[href] {
  cursor: pointer;
  -webkit-transition: -webkit-filter 0.3s;
  transition: -webkit-filter 0.3s;
  transition: filter 0.3s;
  transition: filter 0.3s, -webkit-filter 0.3s;
}
.home-banners__banner[href]:hover, .home-banners__banner[href]:focus {
  -webkit-filter: brightness(0.65);
          filter: brightness(0.65);
  outline: none;
}
.home-banners__banner[href]:hover::before, .home-banners__banner[href]:focus::before {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
.home-banners__banner:not([href]) {
  cursor: default;
  pointer-events: none;
}
.home-banners__text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 68.4%;
}
@media (max-width: 767px) {
  .home-banners {
    padding: 0 1.25rem;
  }
  .home-banners__items {
    margin-bottom: 3.75rem;
  }
  .home-banners__item + .home-banners__item {
    margin-top: 0.1875rem;
  }
}
@media (min-width: 768px) {
  .home-banners__items {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: 0.1875rem;
       -moz-column-gap: 0.1875rem;
            column-gap: 0.1875rem;
    margin-bottom: 10.4375rem;
  }
  .home-banners__item {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 31.25rem;
        -ms-flex: 0 0 31.25rem;
            flex: 0 0 31.25rem;
  }
}

.u-d-none {
  display: none !important;
}

.u-d-inline {
  display: inline !important;
}

.u-d-block {
  display: block !important;
}

@media (min-width: 576px) {
  .u-d-sm-none {
    display: none !important;
  }
  .u-d-sm-inline {
    display: inline !important;
  }
  .u-d-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) {
  .u-d-md-none {
    display: none !important;
  }
  .u-d-md-inline {
    display: inline !important;
  }
  .u-d-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) {
  .u-d-lg-none {
    display: none !important;
  }
  .u-d-lg-inline {
    display: inline !important;
  }
  .u-d-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .u-d-xl-none {
    display: none !important;
  }
  .u-d-xl-inline {
    display: inline !important;
  }
  .u-d-xl-block {
    display: block !important;
  }
}
@media (min-width: 1400px) {
  .u-d-xxl-none {
    display: none !important;
  }
  .u-d-xxl-inline {
    display: inline !important;
  }
  .u-d-xxl-block {
    display: block !important;
  }
}
.u-text-left {
  text-align: left !important;
}

.u-text-right {
  text-align: right !important;
}

.u-text-center {
  text-align: center !important;
}

@media (min-width: 576px) {
  .u-text-sm-left {
    text-align: left !important;
  }
  .u-text-sm-right {
    text-align: right !important;
  }
  .u-text-sm-center {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .u-text-md-left {
    text-align: left !important;
  }
  .u-text-md-right {
    text-align: right !important;
  }
  .u-text-md-center {
    text-align: center !important;
  }
}
@media (min-width: 992px) {
  .u-text-lg-left {
    text-align: left !important;
  }
  .u-text-lg-right {
    text-align: right !important;
  }
  .u-text-lg-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .u-text-xl-left {
    text-align: left !important;
  }
  .u-text-xl-right {
    text-align: right !important;
  }
  .u-text-xl-center {
    text-align: center !important;
  }
}
@media (min-width: 1400px) {
  .u-text-xxl-left {
    text-align: left !important;
  }
  .u-text-xxl-right {
    text-align: right !important;
  }
  .u-text-xxl-center {
    text-align: center !important;
  }
}