@charset "utf-8";.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:flex;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}

/*****************************
* A Modern CSS Reset (https://github.com/hankchizljaw/modern-css-reset)
* 上記に、ul要素,ol要素,a要素への記述追加
*****************************/

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
ul,
li {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul,
ol {
  list-style: none;
  padding: 0;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100svh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

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

/* Make images easier to work with */
img,
picture,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

button {
  border: none;
  padding: 0;
  background-color: initial;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/*****************************
* 共通
*****************************/

:root {
  --font-base: "Noto Sans JP", sans-serif;
  --font-serif: "Klee One", serif;
  --font-en: "Sofia Sans", sans-serif;

  --color-base: #E6E6E6;
  --color-main: #C3A47F;
  --color-sub: #E9DED1;
  --color-white: #fff;
  --color-black: #4d4d4d;
  --color-gray: #666;
  --color-dark: #000;

  --transition-cubic: cubic-bezier(0.37, 0.88, 0.45, 0.97);

  --z-index-header: 100;

  --inner-sm: 120.0rem;
  --inner-md: 145.0rem;
  --inner-lg: 167.0rem;
}

html {
  font-family: var(--font-base);
  font-size: calc((1440 / 1920 * 10px));
  scroll-behavior: smooth;
}


body {
  font-size: 2rem;
  line-height: 1.75;
  color: var(--color-black);
  background-color: var(--color-base);
  position: relative;
}

body::before {
  content: '';
  position: absolute;
  inset: 0;
  /* background-image: url(../assets/images/bg_noise.jpg); */
  background-image: url(./images/bg_noise02.jpg);
  background-repeat: repeat;
  background-size: 1000px;
  background-blend-mode: difference;
  z-index: -1;
  opacity: 0.4;
}

a {
  transition: opacity 0.3s;
}

/* a:hover {
  opacity: 0.7;
} */

sup {
  font-size: 0.8em;
  vertical-align: super;
}


/*****************************
* 便利クラス utilities
*****************************/
.u-sp-only {
  display: none;
}

.u-uppercase {
  text-transform: uppercase;
}


/*****************************
* パーツ compornents
*****************************/

.c-button {
  display: inline-block;
  min-width: 23.0rem;
  padding: 1.4rem 2.4rem 1.0rem 2.4rem;
  background: var(--color-sub);
  border-radius: 999px;
  font-size: 2.4rem;
  line-height: 1;
  font-weight: normal;
  text-align: center;
  color: var(--color-black);
  font-family: var(--font-en);
  transition-duration: 0.3s;
  transition-property: color, background;
  transition-timing-function: var(--transition-cubic);
}

.c-button.c-button--bordered {
  border: 2px solid var(--color-sub);
}

.c-button.c-button--secondary {
  background: var(--color-black);
  border: 2px solid var(--color-sub);
  color: var(--color-sub);
}

.c-en-title {
  font-size: 8.8rem;
  font-weight: 600;
  font-family: var(--font-en);
  line-height: 1;
}

.c-lead {
  font-size: 3.6rem;
  font-weight: 600;
  font-family: var(--font-serif);
}

/* c-function-card
------------------------------*/
.c-function-card__media {
  aspect-ratio: 1 / 1;
  border-radius: 25px;
  overflow: hidden;
}

.c-function-card__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-function-card__title {
  margin-top: 2.4rem;
  padding: 0 1.8rem;
  font-size: 2.4rem;
  font-weight: bold;
}

.c-function-card__text {
  margin-top: 1.8rem;
  padding: 0 1.8rem;
  font-size: max(14px, 1.5rem);
  text-align: justify;
}

/* c-lineup-card
------------------------------*/
.c-lineup-card__slider {
  border-radius: 25px;
  overflow: hidden;
}

.c-lineup-card__thumbs {
  margin-top: 3.5rem;
}

.c-lineup-card .c-lineup-card__thumbs .splide__list {
  align-items: flex-start;
}

.c-lineup-card .c-lineup-card__thumbs .c-lineup-card__thumb {
  aspect-ratio: 1 / 1;
  border-radius: 2.0rem;
  overflow: hidden;
  border: 2px solid var(--color-white);
}


.c-lineup-card .c-lineup-card__thumbs .c-lineup-card__thumb.is-active {
  border: 2px solid var(--color-main);
}

.c-lineup-card__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* 矢印
------------------------------*/
.c-lineup-card__thumbs .splide__arrow {
  background: var(--color-sub);
}

.c-lineup-card__thumbs .splide__arrow--prev {
  left: -1em;
}

.c-lineup-card__thumbs .splide__arrow--next {
  right: -1em;
}

.c-lineup-card__info {
  margin-top: 4.0rem;
}

.c-lineup-card__name {
  font-size: 3.2rem;
  font-weight: bold;
  font-family: var(--font-en);
  line-height: 1.5;
}

.c-lineup-card__text {
  font-size: 2.0rem;
  font-weight: 500;
  font-family: var(--font-en);
  line-height: 1.5;
}

.c-lineup-card__buttons {
  margin-top: 2.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2.0rem;
}

.c-lineup-info__title {
  padding: 0 1em 0.25em;
  border-bottom: 1px solid currentColor;
  font-size: 3.2rem;
  font-weight: bold;
  font-family: var(--font-en);
  line-height: 1.5;
  text-transform: uppercase;
}

.c-lineup-info__detail {
  padding-top: 3.6rem;
  border-top: 1px solid var(--color-white);
}

.c-lineup-info__key {
  /* text-align: right; */
}

.c-lineup-info__key.--last,
.c-lineup-info__value.--last {
  padding-top: 1.5rem;
}


/* c-detail
------------------------------*/
.c-detail {
  padding-left: 3.6rem;
  padding-right: 3.6rem;
  display: grid;
  grid-template-columns: auto 1fr;
  -moz-column-gap: 3.6rem;
       column-gap: 3.6rem;
  font-size: 2.0rem;
  font-weight: 500;
  font-family: var(--font-en);
}

.c-detail dt.--last,
.c-detail dd.--last {
  padding-top: 1.5rem;
}


/* c-img-switch
------------------------------*/
.c-img-switch {
  position: relative;
  /* width: 100%; */
}

.c-img-switch__img {
  position: absolute;
  inset: 0;
  z-index: 0;
  /* width: 100%;
  height: 100%; */
  -o-object-fit: cover;
     object-fit: cover;
}

/* 2枚のとき */
.c-img-switch--2 .c-img-switch__img {
  animation: image-switch-animation-2 4s infinite;
}

.c-img-switch--2 .c-img-switch__img:nth-child(1) {
  animation-delay: 0s;
}

.c-img-switch--2 .c-img-switch__img:nth-child(2) {
  opacity: 0;
  animation-delay: 2s;
}

@keyframes image-switch-animation-2 {
  0% {
    opacity: 1;
  }

  50% {
    opacity: 1;
  }

  65% {
    opacity: 0;
    z-index: 1;
  }

  100% {
    opacity: 0;
  }
}

/* 3枚のとき */
.c-img-switch--3 .c-img-switch__img {
  animation: image-switch-animation-3 6s infinite;
}

.c-img-switch--3 .c-img-switch__img:nth-child(1) {
  animation-delay: 0s;
}

.c-img-switch--3 .c-img-switch__img:nth-child(2) {
  animation-delay: 2s;
  opacity: 0;
}

.c-img-switch--3 .c-img-switch__img:nth-child(3) {
  animation-delay: 4s;
  opacity: 0;
}

@keyframes image-switch-animation-3 {
  0% {
    opacity: 1;
  }

  33.33% {
    opacity: 1;
  }

  43.33% {
    opacity: 0;
    z-index: 1;
  }

  100% {
    opacity: 0;
    z-index: 0;
  }
}

/* 4枚のとき */
.c-img-switch--4 .c-img-switch__img {
  animation: image-switch-animation-4 8s infinite;
}

.c-img-switch--4 .c-img-switch__img:nth-child(1) {
  animation-delay: 0s;
}

.c-img-switch--4 .c-img-switch__img:nth-child(2) {
  animation-delay: 2s;
  opacity: 0;
}

.c-img-switch--4 .c-img-switch__img:nth-child(3) {
  animation-delay: 4s;
  opacity: 0;
}

.c-img-switch--4 .c-img-switch__img:nth-child(4) {
  animation-delay: 6s;
  opacity: 0;
}

@keyframes image-switch-animation-4 {
  0% {
    opacity: 1;
  }

  25% {
    opacity: 1;
  }

  37.5% {
    opacity: 0;
    z-index: 1;
  }

  100% {
    opacity: 0;
    z-index: 0;
  }
}


/*****************************
* アニメーション
*****************************/

/* 初期状態：透明 */
.header,
.fv__lead,
.fv__logo,
.fv__texts {
  opacity: 0;
  transform: translateY(2.0rem);
}

/* フェードインアニメーション */
.fade-in {
  animation: fadeIn 1s var(--transition-cubic) 0.3s forwards;
}

.fade-in-delay {
  animation: fadeIn 1s var(--transition-cubic) 1s forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(2.0rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* アニメーションの動きを制限する設定が適用されている場合の対応 */


.js-fade-up,
.js-fade-to-right,
.js-fade-to-left {
  opacity: 0;
  transition-duration: 1.2s;
  transition-property: opacity, translate;
  transition-timing-function: var(--transition-cubic);
}

.js-fade-up {
  translate: 0 5.0rem;
}

.js-fade-to-right {
  translate: -5.0rem 0;
}

.js-fade-to-left {
  translate: 5.0rem 0;
}

.js-fade-up.is-active,
.js-fade-to-right.is-active,
.js-fade-to-left.is-active {
  opacity: 1;
  translate: 0;
}

/*****************************
* inner
*****************************/

.inner-sm {
  max-width: calc(var(--inner-sm) + (2.0rem * 2));
  padding: 0 2.0rem;
  margin-right: auto;
  margin-left: auto;
}

.inner-md {
  max-width: calc(var(--inner-sm) + (4.0rem * 2));
  padding: 0 4.0rem;
  margin-right: auto;
  margin-left: auto;
}

.inner-lg {
  max-width: calc(var(--inner-lg) + (6.0rem * 2));
  padding: 0 6.0rem;
  margin-right: auto;
  margin-left: auto;
}


/*****************************
* Main
*****************************/
.main {
  overflow-x: clip;
}

/*****************************
* Header
*****************************/
.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--z-index-header);
}

.header__inner {
  padding: 3.3rem 4.0rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logo {
  width: 14.4rem;
}

.header__logo svg {
  width: 100%;
  aspect-ratio: 144 / 64;
  fill: var(--color-white);
}

.header__sns {
  width: calc(4.7rem + 2.0rem);
  padding: 1.0rem;
}


.header__sns svg {
  width: 100%;
  aspect-ratio: 47 / 47;
  fill: var(--color-white);
}

.header__logo a,
.header__sns a {
  transition-duration: 0.4s;
  transition-property: opacity;
  transition-timing-function: var(--transition-cubic);
}


/*****************************
* FV
*****************************/
.fv {
  position: relative;
  z-index: 0;
  min-height: 100lvh;
}

.fv__bg {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100lvh;
}

.fv__bg video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.fv__sound-btn {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: absolute;
  right: 4.0rem;
  bottom: 4.0rem;
  width: 50px;
  height: 50px;
  padding: 10px;
}

.fv__sound-btn::before {
  font-family: "Font Awesome 6 Free";
  content: "\f6a9";
  font-weight: 900;
  font-size: 24px;
  color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translate(0, -50%);
}

.fv__sound-btn.is-sound-on::before {
  content: "\f028";
}

.fv__sound-btn .text {
  position: absolute;
  opacity: 0;
  visibility: hidden;
}

.fv__contents {
  margin-top: -100lvh;
  padding: 31.0rem calc(193 / 1440 * 100%) 30.0rem;
  color: var(--color-white);
  pointer-events: none;
}

.fv__lead {
  font-size: 6.0rem;
  font-weight: 600;
  font-family: var(--font-serif);
}

.fv__logo {
  margin-top: 15.2rem;
  width: 100%;
  max-width: 60.6rem;
}

.fv__logo svg {
  width: 100%;
  aspect-ratio: 606.497 / 86.912;
}

.fv__texts {
  margin-top: 38.0rem;
}

.fv__text {
  font-size: 2.8rem;
  font-weight: 500;
  font-family: var(--font-serif);
}

.fv__text:nth-child(n+1) {
  margin-top: 1.75em;
}

/*****************************
* Info
*****************************/
.info {
  background: var(--color-main);
}

.info__inner {
  padding: 2.5rem 6rem;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 6.4rem;
}

.info__news {
  width: 100%;
}

.info__buttons {
  display: flex;
  align-items: center;
  gap: 3.4rem;
}


/*****************************
* News
*****************************/
.news__inner {
  background: var(--color-white);
  padding: 0.8rem 0;
  border-radius: 999px;
  overflow: hidden;
}

/*****************************
* Gallery
*****************************/
.gallery {
  width: 100%;
  aspect-ratio: 1920 / 2407;
  position: relative;
}

.gallery__item {
  position: absolute;
  width: 100%;
  aspect-ratio: 232 / 155;
  opacity: 0;
  transition-duration: 1.0s;
  transition-property: opacity, translate;
  transition-timing-function: var(--transition-cubic);
}

.gallery__item.is-active {
  opacity: 1;
  translate: 0 0;
}

.gallery__item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.gallery__item--01 {
  max-width: calc(464 / 1920 * 100%);
  top: calc(406 / 2407 * 100%);
  left: calc(117 / 1920 * 100%);
  translate: 7.3% -4.8%;
}

.gallery__item--02 {
  max-width: calc(465 / 1920 * 100%);
  top: calc(651 / 2407 * 100%);
  left: calc(432 / 1920 * 100%);
  translate: -8.6% 3.2%;
}

.gallery__item--03 {
  max-width: calc(693 / 1920 * 100%);
  top: calc(298 / 2407 * 100%);
  left: calc(1063 / 1920 * 100%);
  translate: 2.9% 9.1%;
}

.gallery__item--04 {
  max-width: calc(464 / 1920 * 100%);
  top: calc(1254 / 2407 * 100%);
  left: calc(30 / 1920 * 100%);
  translate: -5.7% -7.4%;
}

.gallery__item--05 {
  max-width: calc(416 / 1920 * 100%);
  top: calc(1097 / 2407 * 100%);
  left: calc(937 / 1920 * 100%);
  translate: 8.9% 1.6%;
}

.gallery__item--06 {
  max-width: calc(456 / 1920 * 100%);
  top: calc(1319 / 2407 * 100%);
  left: calc(631 / 1920 * 100%);
  translate: -3.4% 6.8%;
}

.gallery__item--07 {
  max-width: calc(394 / 1920 * 100%);
  top: calc(967 / 2407 * 100%);
  left: calc(1492 / 1920 * 100%);
  translate: 4.5% -9.3%;
}

.gallery__item--08 {
  max-width: calc(464 / 1920 * 100%);
  top: calc(1534 / 2407 * 100%);
  left: calc(1316 / 1920 * 100%);
  translate: -6.2% 8.7%;
}

.gallery__item--09 {
  max-width: calc(380 / 1920 * 100%);
  top: calc(1920 / 2407 * 100%);
  left: calc(720 / 1920 * 100%);
  translate: 1.8% -2.5%;
}

/*****************************
* Function
*****************************/
.function__head {
  margin: 0 6.25%;
}

.function__node {
  margin-top: 33.0rem;
}


.function-head {
  position: relative;
  z-index: 0;
  border-radius: 25px;
  overflow: hidden;
}

.function-head__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.function-head__bg video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.function-head__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.8;
  background: linear-gradient(to right,
      rgba(204, 169, 86, 1) 12.4%,
      rgba(159, 130, 68, 0.737) 25.2%,
      rgba(121, 98, 54, 0.51) 38.0%,
      rgba(90, 71, 42, 0.325) 50.8%,
      rgba(66, 50, 32, 0.184) 63.4%,
      rgba(48, 35, 26, 0.082) 75.9%,
      rgba(38, 26, 22, 0.02) 88.2%,
      rgba(35, 24, 21, 0) 100%);
}

.function-head__contents {
  padding: 6.2rem 10rem 7.4rem;
  color: var(--color-white);
}

.function-head__lead {
  margin-top: 8.0rem;
}

.function-head__links {
  margin-top: 19.0rem;
  display: flex;
  gap: 3.3rem;
}

.function-head__link {
  position: relative;
  z-index: 0;
}

.function-head__link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  translate: -50% 0;
  width: calc(24 / 265 * 100%);
  aspect-ratio: 24 / 14;
  background: var(--color-white);
  z-index: -1;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  transition-duration: 0.3s;
  transition-property: translate;
  transition-timing-function: var(--transition-cubic);
}

.function-head__link .img {
  display: block;
  width: 100%;
  max-width: 26.5rem;
  aspect-ratio: 265 / 150;
  border-radius: 2.5rem;
  overflow: hidden;
  position: relative;
  transition-duration: 0.3s;
  transition-property: translate;
  transition-timing-function: var(--transition-cubic);
}

.function-head__link .img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.function-head.is-video-start .function-head__link .img::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

/* アニメーション設定 */
.function-head.is-video-start .function-head__link .img::after {
  animation-name: functionBgHighlight;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: 9s;
}

.function-head.is-video-start .function-head__link:nth-child(1) .img::after {
  animation-delay: 0s;
}

.function-head.is-video-start .function-head__link:nth-child(2) .img::after {
  animation-delay: 3s;
}

.function-head.is-video-start .function-head__link:nth-child(3) .img::after {
  animation-delay: 6s;
}

@keyframes functionBgHighlight {
  0% {
    background-color: rgba(0, 0, 0, 0.0);
  }

  33.33% {
    background-color: rgba(0, 0, 0, 0.0);
  }

  33.34% {
    background-color: rgba(0, 0, 0, 0.5);
  }

  100% {
    background-color: rgba(0, 0, 0, 0.5);
  }
}

.function-head__link .text {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: 1;
}

.function-node__head {
  display: grid;
  grid-template-columns: 1fr 39%;
  width: calc(100% - 10.4%);
  margin-right: 10.4%;
  background: var(--color-white);
  border-radius: 0 2.5rem 2.5rem 0;
  overflow: hidden;
}

.function__node:nth-child(even) .function-node__head {
  grid-template-columns: 39% 1fr;
  width: calc(100% - 10.4%);
  margin-left: 10.4%;
  margin-right: 0;
  border-radius: 2.5rem 0 0 2.5rem;
}


.function-node__body {
  margin-top: 13.0rem;
  display: flex;
  justify-content: flex-end;
  gap: 5.0rem;
  width: 75.5%;
  margin-left: 19%;
}


.function-node:nth-child(even) .function-node__body {
  margin-left: auto;
  margin-right: 19%;
}

.function-node__card {
  width: calc((100% - 10.0rem) / 3);
}


.function-node__slider {
  margin-top: 22.0rem;
}

.function-node__slider .splide__slide {
  width: 45.0rem;
}

.function-node__contents {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.0rem 1.0rem 1.0rem 20%;
}

.function-node:nth-child(even) .function-node__contents {
  padding: 1.0rem 1.0rem 1.0rem 16%;
  order: 2;
}

.function-node__text {
  margin-top: 10.0rem;
  font-size: 2.6rem;
  font-weight: 500;
  font-family: var(--font-serif);
}

.function-node__media {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
}

.function-node__media video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.function-node:nth-child(even) .function-node__media {
  order: 1;
}


/*****************************
* Other Function
*****************************/
.other-function {
  padding: 24.0rem 0;
}

.other-function__inner {
  /* max-width: var(--inner-sm);
  margin-right: auto;
  margin-left: auto; */
}

.other-function__title {
  text-align: center;
}

.other-function__list {
  margin-top: 24.0rem;
  display: flex;
  flex-direction: column;
  gap: 13.0rem;
}


.other-node {
  display: flex;
  gap: 5.2rem;
}


.other-function__node:nth-child(even).other-node {
  flex-direction: row-reverse;
}

.other-node__media {
  width: 100%;
  max-width: 45.0rem;
  aspect-ratio: 1 / 1;
  flex-shrink: 0;
}

.other-node__contents {
  padding-top: 10.0rem;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}


.other-function__node:nth-child(even) .other-node__contents {
  align-items: flex-end;
}

.other-node__title {
  font-size: 2.4rem;
  font-weight: bold;
}

.other-node__text {
  font-size: max(14px, 1.5rem);
  max-width: 42.0rem;
  text-align: justify;
}

.other-node__icons {
  display: flex;
}

.other-node__icons svg {
  width: 9.0rem;
  aspect-ratio: 1 / 1;
  fill: var(--color-black);
}


/*****************************
* Line up
*****************************/
.lineup {
  background: var(--color-black);
  color: var(--color-white);
  padding: 23.0rem 0;
}

.lineup__inner {
  /* max-width: min(1087px, var(--inner-md));
  margin-right: auto;
  margin-left: auto; */
}

.lineup__title {
  text-align: center;
}

.lineup__lead {
  margin-top: 17rem;
  text-align: center;
}


.lineup__list {
  margin-top: 22rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 7.8rem;
       column-gap: 7.8rem;
  row-gap: 14.0rem;
}

.lineup__node--spec {
  grid-column: span 2;
}


/*****************************
* Option
*****************************/
.option {
  padding: 24.0rem 0 0;
}


.option__inner {
  max-width: var(--inner-md);
  margin-right: auto;
  margin-left: auto;
}


.option__title {
  text-align: center;
}

.option__list {
  margin-top: 17.0rem;
  display: flex;
  flex-direction: column;
  gap: 24.0rem;
}


.option-node__head {
  max-width: var(--inner-sm);
  margin-right: auto;
  margin-left: auto;
}

.option-node__title {
  font-size: 3.2rem;
  font-weight: bold;
  font-family: var(--font-en);
}

.option-node__lead {
  margin-top: 1.6rem;
  padding: 0 3.6rem 0.5em;
  border-bottom: 2px solid currentColor;
  font-size: 2.2rem;
  font-weight: 500;
}

.option-node__text {
  margin-top: 1.0rem;
  font-size: max(14px, 1.5rem);
  padding: 0 3.6rem;
}

.option-node__info {
  margin-top: 5.0rem;
}

.option-node__buttons {
  max-width: var(--inner-sm);
  margin-right: auto;
  margin-left: auto;
  margin-top: 8.0rem;
  padding: 0 3.6rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.0rem;
}

.option-node__medias {
  margin-top: 6.0rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5.0rem;
}


.option-node__media {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.option-node__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.option-node__attention {
  margin-top: 12.0rem;
  font-size: max(12px, 1.2rem);
}

/*****************************
* Footer
*****************************/
.footer {
  padding-top: 40.0rem;
  padding-bottom: 3.0rem;
}


.footer__inner {
  max-width: var(--inner-md);
  margin-right: auto;
  margin-left: auto;
}

.footer__logo {
  width: 14.4rem;
  margin-right: auto;
  margin-left: auto;
}

.footer__logo svg {
  width: 100%;
  aspect-ratio: 144 / 64;
  fill: var(--color-dark);
}

.footer__copy {
  margin-top: 17.0rem;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  font-family: var(--font-en);
}

@media screen and (max-width:798px) {
  html {
    font-size: 10px;
  }
  body {
    font-size: 1.5rem;
  }
  .u-pc-only {
    display: none;
  }

  .u-sp-only {
    display: block;
  }
  .c-button {
    width: 100%;
    padding: 1.0rem 1.2rem 0.6rem 1.2rem;
    max-width: 20.0rem;
    min-width: initial;
    font-size: 1.8rem;
  }
  .c-en-title {
    font-size: 4.0rem;
  }
  .c-lead {
    font-size: 1.8rem;
  }
  .c-function-card__media {
    border-radius: 2.0rem;
  }
  .c-function-card__title {
    font-size: clamp(1.7rem, calc(17 / 375 * 100vw), 1.8rem);
    padding: 0;
  }
  .c-function-card__text {
    padding: 0;
  }
  .c-lineup-card__slider {
    border-radius: 2.0rem;
  }
  .c-lineup-card__thumbs {
    margin-top: 2.0rem;
  }
  .c-lineup-card .c-lineup-card__thumbs .c-lineup-card__thumb {
    border-radius: 1.5rem;
  }
  .c-lineup-card__info {
    margin-top: 2.4rem;
  }
  .c-lineup-card__name {
    font-size: 2.2rem;
  }
  .c-lineup-card__text {
    font-size: 1.6rem;
  }
  .c-lineup-card__buttons {
    margin-top: 2.2rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
  .c-lineup-info__title {
    font-size: 2.2rem;
  }
  .c-lineup-info__detail {
    padding-top: 2.0rem;
  }
  .c-detail {
    padding-left: 1.6rem;
    padding-right: 1.6rem;
    font-size: 1.5rem;
    display: block;
  }

  .c-detail dt:not(:first-child) {
    margin-top: 1.5rem;
  }

  .c-detail dt {
    font-weight: bold;
  }

  .c-detail dt.--last,
  .c-detail dd.--last {
    padding-top: initial;
  }
  .inner-sm {
    padding: 0;
  }

  .inner-md {
    padding: 0;
  }

  .inner-lg {
    padding: 0;
  }
  .header__inner {
    padding: 2.0rem 1.6rem 0;
  }
  .header__logo {
    width: 10.0rem;
  }
  .header__sns {
    width: calc(3.0rem + 2.0rem);
  }
  .fv__sound-btn {
    width: 40px;
    height: 40px;
    padding: 5px;
    right: 2.0rem;
    top: calc(100dvh - 40px - 2.0rem);
    bottom: initial;
  }
  .fv__sound-btn::before {
    font-size: 20px;
    left: 5px;
  }
  .fv__contents {
    padding: 30lvh min(4.0rem, calc(20 / 375 * 100%)) 20.0rem;
  }
  .fv__lead {
    font-size: 3.2rem;
  }
  .fv__logo {
    margin-top: 12.0rem;
    max-width: 26.0rem;
  }
  .fv__texts {
    margin-top: 24.0rem;
  }
  .fv__text {
    font-size: min(2.0rem, calc(17.5 / 375 * 100vw));
  }
  .info__inner {
    padding: 2.0rem 1.0rem;
    grid-template-columns: 1fr;
    gap: 2.0rem;
  }
  .info__news {
    overflow: hidden;
  }
  .info__buttons {
    justify-content: center;
    gap: 1.2rem;
  }
  .gallery {
    width: 100%;
    aspect-ratio: 375 / 2279;
    position: relative;
  }

  .gallery__item--01 {
    max-width: calc(324 / 375 * 100%);
    top: calc(124 / 2279 * 100%);
    left: calc(12 / 375 * 100%);
  }

  .gallery__item--02 {
    max-width: calc(232 / 375 * 100%);
    top: calc(295 / 2279 * 100%);
    left: calc(133 / 375 * 100%);
  }

  .gallery__item--03 {
    max-width: calc(339 / 375 * 100%);
    top: calc(543 / 2279 * 100%);
    left: calc(18 / 375 * 100%);
  }

  .gallery__item--04 {
    max-width: calc(218 / 375 * 100%);
    top: calc(863 / 2279 * 100%);
    left: calc(18 / 375 * 100%);
  }

  .gallery__item--05 {
    max-width: calc(339 / 375 * 100%);
    top: calc(1083 / 2279 * 100%);
    left: calc(18 / 375 * 100%);
  }

  .gallery__item--06 {
    max-width: calc(214 / 375 * 100%);
    top: calc(1343 / 2279 * 100%);
    left: calc(151 / 375 * 100%);
  }

  .gallery__item--07 {
    max-width: calc(244 / 375 * 100%);
    top: calc(1579 / 2279 * 100%);
    left: calc(111 / 375 * 100%);
  }

  .gallery__item--08 {
    max-width: calc(247 / 375 * 100%);
    top: calc(1787 / 2279 * 100%);
    left: calc(11 / 375 * 100%);
  }

  .gallery__item--09 {
    max-width: calc(233 / 375 * 100%);
    top: calc(1998 / 2279 * 100%);
    left: calc(71 / 375 * 100%);
  }
  .function__head {
    margin: 0 1.0rem;
  }
  .function__node {
    margin-top: 12.0rem;
  }
  .function-head {
    display: grid;
    grid-template-areas:
      "title"
      "lead"
      "bg"
      "links";
    border-radius: initial;
    overflow: initial;
  }
  .function-head__bg {
    position: relative;
    margin-top: 4.0rem;
    grid-area: bg;
    aspect-ratio: 1 / 0.8;
    border-radius: 2.0rem;
    overflow: hidden;
  }
  .function-head__bg::after {
    display: none;
  }
  .function-head__contents {
    display: contents;
    color: initial;
  }
  .function-head__title {
    grid-area: title;
    text-align: center;
  }
  .function-head__lead {
    margin-top: 2.0rem;
    text-align: center;
    grid-area: lead;
  }
  .function-head__links {
    margin-top: 2.0rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
  }
  .function-head__link::after {
    width: calc(32 / 265 * 100%);
    background: var(--color-black);
  }
  .function-head__link .img {
    border-radius: 1.5rem;
  }
  .function-head.is-video-start .function-head__link .img::after {
    border-radius: 1.5rem;
  }
  .function-head__link .text {
    font-size: 1.5rem;
  }
  .function-node__head {
    grid-template-columns: 1fr;
    border-radius: 0 2.0rem 2.0rem 0;
  }

  .function__node:nth-child(even) .function-node__head {
    grid-template-columns: 1fr;
  }
  .function-node:nth-child(even) .function-node__head {
    border-radius: 2.0rem 0 0 2.0rem;
  }
  .function-node__body {
    margin-top: 4.0rem;
    flex-direction: column;
    gap: 6.0rem;
    width: calc(100% - (10.4% * 2));
    max-width: 40.0rem;
    margin-right: auto;
    margin-left: auto;
  }

  .function-node:nth-child(even) .function-node__body {
    margin-right: auto;
    margin-left: auto;
  }
  .function-node__card {
    width: 100%;
  }
  .function-node__slider {
    margin-top: 8.0rem;
  }

  .function-node__slider .splide__slide {
    width: 24.0rem;
  }
  .function-node__contents {
    padding: 4.0rem 2.4rem;
    order: 1;
  }

  .function-node:nth-child(even) .function-node__contents {
    padding: 4.0rem 2.4rem;
    order: 1;
  }
  .function-node__text {
    margin-top: 2.0rem;
    font-size: 1.5rem;
  }
  .function-node__media {
    height: initial;
    max-height: 40.0rem;
  }
  .function-node:nth-child(even) .function-node__media {
    order: initial;
  }
  .other-function {
    padding: 12.0rem 0;
  }
  .other-function__inner {
    max-width: 90%;
  }
  .other-function__list {
    margin-top: 8.0rem;
    gap: 6.0rem;
  }
  .other-node {
    flex-direction: column;
    width: 80%;
    gap: 2.0rem;
  }

  .other-function__node:nth-child(even).other-node {
    flex-direction: column;
    margin-left: auto;
  }
  .other-node__contents {
    padding-top: initial;
    gap: 1.6rem;
  }
  .other-node__title {
    font-size: 1.8rem;
  }
  .other-node__text {
    /* text-align: initial; */
  }
  .other-node__icons svg {
    width: 7.0rem;
  }
  .lineup {
    padding: 12.0rem 0;
  }
  .lineup__lead {
    margin-top: 2.0rem;
  }
  .lineup__list {
    margin-top: 4.0rem;
    grid-template-columns: 100%;
    row-gap: 8.0rem;
    width: 90%;
    max-width: 40.0rem;
    margin-right: auto;
    margin-left: auto;
  }
  .lineup__node--spec {
    grid-column: initial;
  }
  .option {
    padding: 12.0rem 0 0;
  }
  .option__inner {
    width: 90%;
    max-width: 40.0rem;
  }
  .option__list {
    margin-top: 10.0rem;
    gap: 10.0rem;
  }
  .option-node__title {
    font-size: 2.2rem;
  }
  .option-node__lead {
    margin-top: 2.0rem;
    font-size: 1.6rem;
    padding: 0 1.6rem 0.5em;
  }
  .option-node__text {
    padding: 0 1.6rem;
  }
  .option-node__info {
    margin-top: 3.2rem;
  }
  .option-node__buttons {
    margin-top: 3.2rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
    padding: 0;
  }
  .option-node__medias {
    margin-top: 2.0rem;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.0rem;
  }
  .footer {
    padding-top: 30.0rem;
    padding-bottom: 2.0rem;
  }
  .footer__logo {
    width: 12.0rem;
  }
  .footer__copy {
    margin-top: 10.0rem;
    font-size: 1.2rem;
  }
}

@media (hover:hover) {
  .c-button:hover {
    background: var(--color-black);
    color: var(--color-sub);
  }

  .c-button.c-button--secondary:hover {
    background: var(--color-sub);
    color: var(--color-black);
  }

  .header__logo:hover a,
  .header__sns:hover a {
    opacity: 0.6;
  }
  .news__splide a:hover {
    text-decoration: underline;
  }
  .function-head__link:hover .img {
    translate: 0 -10%;
  }

  .function-head__link:hover::after {
    translate: -50% 90%;
  }
}

@media (prefers-reduced-motion: reduce) {

  .fade-in,
  .fade-in-delay {
    animation: none;
    opacity: 1;
    transform: none;
  }
}