@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&family=Noto+Sans+JP:wght@100..900&display=swap);/*! destyle.css v3.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  margin: 0;
  overflow: visible; /* 2 */
  clear: both;
  color: inherit;
  border-top-width: 1px;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  text-align: inherit;
  text-transform: inherit; /* 2 */
  vertical-align: middle;
  background: transparent;
  border-radius: 0;
  -webkit-appearance: none; /* 1 */
  -moz-appearance: none !important;
       appearance: none !important;
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
       appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  -moz-appearance: radio;
       appearance: radio;
}

/**
 * Correct cursors for clickable elements.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table {
  border-collapse: collapse;
  border-color: inherit; /* 1 */
}

caption {
  text-align: left;
}

td,
th {
  padding: 0;
  vertical-align: top;
}

th {
  font-weight: bold;
  text-align: left;
}

/* stylelint-disable no-empty-source */
* {
  box-sizing: border-box;
}
*:before, *:after {
  box-sizing: inherit;
}

html,
body {
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

html {
  font-size: 62.5%;
}

body {
  font-family: "Noto Sans JP", "Montserrat", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  color: #333;
  word-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

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

a {
  display: block;
}

html {
  scrollbar-gutter: stable;
  overscroll-behavior: none;
}
html.-noScroll {
  overflow: clip;
}
html:has(body.-noScroll) {
  overscroll-behavior: none;
}

body.-noScroll {
  position: fixed;
  top: calc(var(--scroll-y) * -1);
  left: 0;
  width: 100%;
  height: 100vh;
}

@media (max-width: 768px) {
  .-isPc {
    display: none;
  }
}

.-isSP {
  display: none;
}
@media (max-width: 768px) {
  .-isSP {
    display: block;
  }
}

.section {
  padding-top: 140px;
  padding-bottom: 140px;
}
@media (max-width: 768px) {
  .section {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

.container {
  max-width: 1208px;
  padding-right: 20px;
  padding-left: 20px;
  margin-right: auto;
  margin-left: auto;
}

.-isFadeIn {
  opacity: 0;
  transition: opacity 1.5s cubic-bezier(0.13, 0.38, 0.12, 1);
}
.-isFadeIn.-isAnimation {
  opacity: 1;
}

.-isSlideUp {
  opacity: 0;
  transition: opacity 1.5s cubic-bezier(0.13, 0.38, 0.12, 1), transform 1.5s cubic-bezier(0.13, 0.38, 0.12, 1);
  transform: translateY(30px);
}
.-isSlideUp.-isAnimation {
  opacity: 1;
  transform: none;
}

/**
 * Swiper 12.0.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: October 21, 2025
 */
:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}

:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}

.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}

.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}

.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-horizontal {
  touch-action: pan-y;
}

.swiper-vertical {
  touch-action: pan-x;
}

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

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}

.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}

.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}

.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}

.swiper-3d {
  perspective: 1200px;
  .swiper-slide,
  .swiper-cube-shadow {
    transform-style: preserve-3d;
  }
}

/* CSS Mode */
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none; /* For Firefox */
    -ms-overflow-style: none; /* For Internet Explorer and Edge */
    &::-webkit-scrollbar {
      display: none;
    }
  }
  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }
  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
  }
  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
  }
  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }
  &.swiper-centered {
    > .swiper-wrapper::before {
      content: "";
      flex-shrink: 0;
      order: 9999;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }
  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }
  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      width: 100%;
      min-width: 1px;
      height: var(--swiper-centered-offset-after);
    }
  }
}

/* Slide styles start */
/* 3D Shadows */
.swiper-3d {
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom,
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
  }
  .swiper-slide-shadow {
    background: rgba(0, 0, 0, 0.15);
  }
  .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
}

.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}

.swiper:not(.swiper-watch-progress),
.swiper-watch-progress .swiper-slide-visible {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear;
  }
}

.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}

.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}

@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */
:root {
  --swiper-navigation-size: 44px;
  /*
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 4px;
  --swiper-navigation-color: var(--swiper-theme-color);
  */
}

.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  width: var(--swiper-navigation-size);
  height: var(--swiper-navigation-size);
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
  &.swiper-button-disabled {
    opacity: 0.35;
    cursor: auto;
    pointer-events: none;
  }
  &.swiper-button-hidden {
    opacity: 0;
    cursor: auto;
    pointer-events: none;
  }
  .swiper-navigation-disabled & {
    display: none !important;
  }
  svg {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    transform-origin: center;
    fill: currentColor;
    pointer-events: none;
  }
}

.swiper-button-lock {
  display: none;
}

.swiper-button-prev,
.swiper-button-next {
  top: var(--swiper-navigation-top-offset, 50%);
  margin-top: calc(0px - var(--swiper-navigation-size) / 2);
}

.swiper-button-prev {
  left: var(--swiper-navigation-sides-offset, 4px);
  right: auto;
  .swiper-navigation-icon {
    transform: rotate(180deg);
  }
}

.swiper-button-next {
  right: var(--swiper-navigation-sides-offset, 4px);
  left: auto;
}

.swiper-horizontal {
  .swiper-button-prev,
  .swiper-button-next,
  ~ .swiper-button-prev,
  ~ .swiper-button-next {
    top: var(--swiper-navigation-top-offset, 50%);
    margin-top: calc(0px - var(--swiper-navigation-size) / 2);
    margin-left: 0;
  }
  .swiper-button-prev,
  & ~ .swiper-button-prev,
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next {
    left: var(--swiper-navigation-sides-offset, 4px);
    right: auto;
  }
  .swiper-button-next,
  & ~ .swiper-button-next,
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 4px);
    left: auto;
  }
  .swiper-button-prev,
  & ~ .swiper-button-prev,
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next {
    .swiper-navigation-icon {
      transform: rotate(180deg);
    }
  }
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    .swiper-navigation-icon {
      transform: rotate(0deg);
    }
  }
}

.swiper-vertical {
  .swiper-button-prev,
  .swiper-button-next,
  ~ .swiper-button-prev,
  ~ .swiper-button-next {
    left: var(--swiper-navigation-top-offset, 50%);
    right: auto;
    margin-left: calc(0px - var(--swiper-navigation-size) / 2);
    margin-top: 0;
  }
  .swiper-button-prev,
  ~ .swiper-button-prev {
    top: var(--swiper-navigation-sides-offset, 4px);
    bottom: auto;
    .swiper-navigation-icon {
      transform: rotate(-90deg);
    }
  }
  .swiper-button-next,
  ~ .swiper-button-next {
    bottom: var(--swiper-navigation-sides-offset, 4px);
    top: auto;
    .swiper-navigation-icon {
      transform: rotate(90deg);
    }
  }
}

.c-title {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .c-title {
    font-size: 2.4rem;
  }
}
.c-title__label {
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 120%;
  color: #008996;
  letter-spacing: 0.02em;
  overflow-wrap: anywhere;
}
@media (max-width: 768px) {
  .c-title__label {
    font-size: 1.2rem;
  }
}
.c-title__label span {
  display: inline-block;
}
.c-title__label span::before {
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 8px;
  content: "";
  background: linear-gradient(90deg, #90e96d 4.67%, #008996 64.53%, #ffffff 94.24%);
}
.c-title__label.-white {
  color: white;
}

.c-card a {
  display: flex;
  flex-direction: column;
  gap: 20px 0;
  color: #333;
  text-decoration: none;
  transition: color 0.3s ease-out;
}
@media (max-width: 768px) {
  .c-card a {
    gap: 12px 0;
  }
}
.c-card a[target=_blank] .c-card__image::before {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  content: "";
  background: url(/brand/assets/images/icon_blank_hover.svg) no-repeat center center/cover;
}
.c-card a[target=_blank] .c-card__image::after {
  background-image: url(/brand/assets/images/icon_blank.svg);
}
@media (hover: hover) {
  .c-card a:hover {
    color: #008996;
  }
  .c-card a:hover .c-card__image {
    border-color: #83c6cf;
  }
  .c-card a:hover .c-card__image::after {
    background-image: url(/brand/assets/images/icon_link_hover.svg);
  }
  .c-card a:hover .c-card__image img {
    transform: scale(1.1);
  }
  .c-card a:hover[target=_blank] .c-card__image::after {
    background-image: url(/brand/assets/images/icon_blank_hover.svg);
  }
}
.c-card__image {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 1px solid #008996;
  border-radius: 4px;
  transition: border-color 0.3s ease-out;
}
.c-card__image img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  transition: transform 0.3s ease-out;
  transform-origin: center center;
}
.c-card__image::before {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  content: "";
  background: url(/brand/assets/images/icon_link_hover.svg) no-repeat center center/cover;
}
.c-card__image::after {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 2;
  display: block;
  width: 34px;
  aspect-ratio: 1/1;
  content: "";
  background: url(/brand/assets/images/icon_link.svg) no-repeat center center/cover;
  transition: background 0.3s ease-out;
}
@media (max-width: 768px) {
  .c-card__image::after {
    right: 16px;
    bottom: 16px;
  }
}
.c-card__text {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 120%;
  letter-spacing: 0.02em;
}

.c-button__arrow .st0,
.c-button__arrow .st1 {
  fill: none;
  stroke: #008996;
  stroke-width: 1.2px;
  transition: stroke 0.3s ease-out, fill 0.3s ease-out;
}
.c-button__arrow .st1 {
  stroke-miterlimit: 10;
}
@media (hover: hover) {
  .c-button__arrow:hover .st0,
  .c-button__arrow:hover .st1 {
    stroke: #83c6cf;
  }
}

.c-link {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 64px;
  padding: 15px 74px 15px 20px;
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  color: black;
  text-decoration: none;
  border: 1px solid #008996;
  border-radius: 4px;
  transition: color 0.3s ease-out, border-color 0.3s ease-out;
}
@media (max-width: 768px) {
  .c-link {
    min-height: 61px;
    padding: 15px 70px 15px 20px;
    font-size: 1.8rem;
  }
}
.c-link span {
  font-size: 1.6rem;
}
@media (max-width: 768px) {
  .c-link span {
    font-size: 1.4rem;
  }
}
@media (max-width: 768px) {
  .c-link.-isTop {
    padding-right: 60px;
    font-size: 1.3rem;
  }
}
.c-link::before {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: 34px;
  aspect-ratio: 1/1;
  content: "";
  background: url(/brand/assets/images/arrow_next.svg) no-repeat center center/cover;
  transition: opacity 0.3s ease-out;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .c-link::before {
    width: 30px;
  }
}
.c-link::after {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: 34px;
  aspect-ratio: 1/1;
  content: "";
  background: url(/brand/assets/images/arrow_next_hover.svg) no-repeat center center/cover;
  opacity: 0;
  transition: opacity 0.3s ease-out;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .c-link::after {
    width: 30px;
  }
}
.c-link[target=_blank]::before {
  background-image: url(/brand/assets/images/icon_blank.svg);
}
.c-link[target=_blank]::after {
  background-image: url(/brand/assets/images/icon_blank_hover.svg);
}
@media (hover: hover) {
  .c-link:hover {
    color: #008996;
    border-color: #83c6cf;
  }
  .c-link:hover::before {
    opacity: 0;
  }
  .c-link:hover::after {
    opacity: 1;
  }
}

.c-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.c-modal__contents {
  position: relative;
  width: 100%;
  max-width: 1030px;
}
.c-modal__contents iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
}
.c-modal__contents video {
  width: 100%;
}
.c-modal__close {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  transform: translate(calc(100% + 4px), calc(-1 * (100% + 9px)));
}
@media (max-width: 1140px) {
  .c-modal__close {
    right: 20px;
    width: 32px;
    transform: translateY(calc(-1 * (100% + 20px)));
  }
}
.c-modal__close-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
  cursor: pointer;
}
.c-modal.-isView {
  pointer-events: all;
  opacity: 1;
}

.c-page-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 5;
  transition: opacity 0.3s ease-out;
}
@media (max-width: 768px) {
  .c-page-top {
    right: 10px;
    bottom: 10px;
  }
}
.c-page-top a {
  width: 60px;
  aspect-ratio: 1/1;
  background: #008996;
  border: 1px solid white;
  border-radius: 100%;
  transition: background 0.3s ease-out;
}
@media (max-width: 768px) {
  .c-page-top a {
    width: 50px;
  }
}
@media (hover: hover) {
  .c-page-top a:hover {
    background: #064a4f;
  }
}
.c-page-top.-isAbsolute {
  position: absolute;
  top: 20px;
  bottom: auto;
}
@media (max-width: 768px) {
  .c-page-top.-isAbsolute {
    top: 10px;
  }
}
.c-page-top.-isHide {
  pointer-events: none;
  opacity: 0;
}

.c-scroll {
  height: 112px;
  opacity: 0;
  transition: opacity 0.8s 0.8s ease-out;
}
.c-scroll a {
  display: flex;
  gap: 0 3px;
  height: 100%;
  text-decoration: none;
}
.c-scroll p {
  font-family: "Montserrat", sans-serif;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 170%;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.05em;
  writing-mode: vertical-rl;
}
@media (max-width: 768px) {
  .c-scroll p {
    font-size: 1rem;
  }
}
.c-scroll-line {
  position: relative;
  display: block;
  width: 1px;
  height: 100%;
  background: #008996;
}
.c-scroll-line span {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #e1eaeb;
  transform: scaleY(0);
  transform-origin: center top;
}
.c-scroll.-isView {
  opacity: 1;
}
.c-scroll.-isView .c-scroll-line span {
  animation: scrollLine 2.5s 1s infinite;
}

@keyframes scrollLine {
  0% {
    transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
    transform: scaleY(0);
    transform-origin: center top;
  }
  30% {
    transform: scaleY(1);
    transform-origin: center top;
  }
  45% {
    transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
    transform: scaleY(1);
    transform-origin: center bottom;
  }
  75% {
    transform: scaleY(0);
    transform-origin: center bottom;
  }
  90% {
    transform: scaleY(0);
    transform-origin: center top;
  }
  100% {
    transform: scaleY(0);
    transform-origin: center top;
  }
}
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 16px 100px;
  opacity: 0;
}
@media (max-width: 768px) {
  .l-header {
    padding: 16px 20px;
  }
}
.l-header__logo {
  max-width: 164px;
}
@media (max-width: 768px) {
  .l-header__logo {
    max-width: 132px;
  }
}
.l-header__logo a {
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-header__logo a:hover {
    opacity: 0.7;
  }
}
.l-header__logo + .l-header__menu-button {
  margin-left: auto;
}
.l-header__language {
  display: flex;
  gap: 0 10px;
  margin-right: 16px;
  margin-left: auto;
}
@media (max-width: 768px) {
  .l-header__language {
    gap: 0 8px;
    margin-right: 10px;
  }
}
.l-header__language li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  aspect-ratio: 1/1;
  font-family: "Montserrat", sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  color: white;
  text-decoration: none;
  border: 1px solid white;
  border-radius: 100%;
  opacity: 0.6;
  transition: opacity 0.3s ease-out, color 0.3s ease-out, background 0.3s ease-out;
}
@media (hover: hover) {
  .l-header__language li a:hover {
    opacity: 0.7;
  }
}
.l-header__language li a.-isActive {
  color: #008996;
  background: white;
  opacity: 1;
}
@media (hover: hover) {
  .l-header__language li a.-isActive:hover {
    opacity: 0.7;
  }
}
.l-header__menu-button {
  display: flex;
  flex-direction: column;
  gap: 4px 0;
  align-items: flex-end;
  justify-content: center;
  width: 48px;
  aspect-ratio: 1/1;
  padding-right: 11px;
  padding-left: 11px;
  transition: opacity 0.3s ease-out;
}
.l-header__menu-button span {
  display: block;
  height: 2px;
  background: white;
  transition: background 0.3s ease-out;
  transform-origin: center center;
}
.l-header__menu-button span:nth-of-type(1) {
  width: 26px;
  animation: reverseMenuButtonLineTop 0.3s ease-out forwards;
}
.l-header__menu-button span:nth-of-type(2) {
  width: 16px;
  animation: reverseMenuButtonLineBottom 0.3s ease-out forwards;
}
.l-header__menu-button.-isOpen {
  gap: 0;
}
.l-header__menu-button.-isOpen span:nth-of-type(1) {
  animation: menuButtonLineTop 0.3s ease-out forwards;
}
.l-header__menu-button.-isOpen span:nth-of-type(2) {
  animation: menuButtonLineBottom 0.3s ease-out forwards;
}
@media (hover: hover) {
  .l-header__menu-button:hover {
    opacity: 0.7;
  }
}
.l-header__menu {
  position: fixed;
  inset: 0;
  z-index: 9;
  pointer-events: none;
  background: white;
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.l-header__menu-body {
  height: calc(100% - 80px);
  padding: 40px;
  margin-top: 80px;
  overflow: scroll;
  opacity: 0;
  transition: opacity 0.2s ease-out;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.l-header__menu-body::-webkit-scrollbar {
  display: none;
}
@media (max-width: 768px) {
  .l-header__menu-body {
    height: calc(100% - 64px);
    padding: 56px 20px 48px;
  }
}
.l-header__menu-body_inner {
  display: flex;
  justify-content: space-between;
  max-width: 1160px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 768px) {
  .l-header__menu-body_inner {
    flex-direction: column-reverse;
    gap: 64px 0;
    justify-content: flex-end;
  }
}
.l-header__menu-body_logo {
  max-width: 402px;
  padding: 21px 28px;
}
@media (max-width: 768px) {
  .l-header__menu-body_logo {
    max-width: none;
    padding: 22px 23px 18px;
  }
}
.l-header__menu-body_contents {
  width: 100%;
  max-width: 460px;
}
@media (max-width: 768px) {
  .l-header__menu-body_contents {
    max-width: none;
  }
}
.l-header__menu-body nav ul {
  display: flex;
  flex-direction: column;
  gap: 24px 0;
}
.l-header__menu-body nav ul li a {
  display: flex;
  flex-direction: column;
  gap: 6px 0;
  color: #333333;
  text-decoration: none;
  transition: color 0.3s ease-out;
}
.l-header__menu-body nav ul li a p {
  font-size: 1.2rem;
}
@media (max-width: 768px) {
  .l-header__menu-body nav ul li a p {
    font-size: 1.1rem;
    line-height: 120%;
  }
}
.l-header__menu-body nav ul li a p:not(.-en) {
  opacity: 0.8;
}
.l-header__menu-body nav ul li a p.-en {
  overflow: hidden;
  font-family: "Montserrat", sans-serif;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 120%;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .l-header__menu-body nav ul li a p.-en {
    font-size: 2.4rem;
  }
}
.l-header__menu-body nav ul li a p.-en span {
  display: inline-block;
  padding-left: 20px;
  background: url(/brand/assets/images/arrow_nav_hover.svg) no-repeat left 2px center/9px 14px;
  transition: transform 0.2s ease-out;
  transform: translateX(-20px);
}
@media (hover: hover) {
  .l-header__menu-body nav ul li a:hover {
    color: #008996;
  }
  .l-header__menu-body nav ul li a:hover .-en span {
    transform: none;
  }
}
.l-header__menu-sns {
  margin-top: 40px;
}
.l-header__menu-sns p {
  font-size: 1.2rem;
  line-height: 120%;
  opacity: 0.8;
}
.l-header__menu-sns ul {
  display: flex;
  gap: 0 20px;
  margin-top: 16px;
}
.l-header__menu-sns ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-header__menu-sns ul li a:hover {
    opacity: 0.7;
  }
}
.l-header__menu-sns ul li img {
  width: 48px;
}
.l-header__menu.-isView {
  pointer-events: all;
  opacity: 1;
}
.l-header__menu.-isView .l-header__menu-body {
  opacity: 1;
  transition: opacity 0.3s 0.2s ease-out;
}
.l-header.-isView {
  opacity: 1;
  transition: opacity 0.8s 0.8s ease-out;
}
.l-header.-isView.-isHide {
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.l-header.-isBg {
  background: white;
  opacity: 1;
  transition: opacity 0.3s ease-out;
}
.l-header.-isBg .l-header__language li a, .l-header.-isMenuOpen .l-header__language li a {
  color: #999999;
  border-color: #999;
}
@media (hover: hover) {
  .l-header.-isBg .l-header__language li a:hover, .l-header.-isMenuOpen .l-header__language li a:hover {
    opacity: 0.7;
  }
}
.l-header.-isBg .l-header__language li a.-isActive, .l-header.-isMenuOpen .l-header__language li a.-isActive {
  color: #008996;
  border-color: #008996;
  opacity: 1;
}
@media (hover: hover) {
  .l-header.-isBg .l-header__language li a.-isActive:hover, .l-header.-isMenuOpen .l-header__language li a.-isActive:hover {
    opacity: 0.7;
  }
}
.l-header.-isBg .l-header__menu-button span, .l-header.-isMenuOpen .l-header__menu-button span {
  background: #008996;
}
@media (hover: hover) {
  .l-header.-isBg .l-header__menu-button:hover, .l-header.-isMenuOpen .l-header__menu-button:hover {
    opacity: 1;
  }
  .l-header.-isBg .l-header__menu-button:hover span, .l-header.-isMenuOpen .l-header__menu-button:hover span {
    background: #83c6cf;
  }
}

@keyframes menuButtonLineTop {
  0% {
    transform: none;
  }
  50% {
    transform: translateY(1px);
  }
  100% {
    transform: translateY(1px) rotate(45deg);
  }
}
@keyframes menuButtonLineBottom {
  0% {
    width: 16px;
    transform: none;
  }
  50% {
    width: 26px;
    transform: translateY(-1px);
  }
  100% {
    width: 26px;
    transform: translateY(-1px) rotate(-45deg);
  }
}
@keyframes reverseMenuButtonLineTop {
  0% {
    transform: translateY(1px) rotate(45deg);
  }
  50% {
    transform: translateY(1px);
  }
  100% {
    transform: none;
  }
}
@keyframes reverseMenuButtonLineBottom {
  0% {
    width: 26px;
    transform: translateY(-1px) rotate(-45deg);
  }
  50% {
    width: 26px;
    transform: translateY(-1px);
  }
  100% {
    width: 16px;
    transform: none;
  }
}
.intro-wrap {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
}
.intro-wrap.-isHide {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.intro__logo-view {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  transform-origin: center center;
}
.intro__logo-view_overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  pointer-events: none;
  background: white;
  transition: 0.7s 1s ease;
}
.intro__logo-view::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  pointer-events: none;
  content: "";
  background: radial-gradient(circle 64px at 50% 50%, transparent 0, transparent 64px, white 65px, white 100%);
}
@media (max-width: 768px) {
  .intro__logo-view::after {
    background: radial-gradient(circle 64px at 50% 50%, transparent 0 100%, white 101% 100%);
  }
}
.intro__logo-view_logo {
  position: relative;
  max-width: 135px;
}
.intro__logo-view_logo::after {
  position: absolute;
  inset: 0;
  display: block;
  clip-path: path("M68.0078 0.506775C30.7302 0.506775 0.507812 30.7233 0.507812 68.0067C0.507812 105.29 30.7302 135.507 68.0078 135.507C105.285 135.507 135.508 105.279 135.508 68.0067C135.508 30.735 105.285 0.506775 68.0078 0.506775ZM61.6805 68.0067H93.6578L63.635 128.757V111.213H52.7176C46.7541 111.213 41.9176 106.376 41.9176 100.413C41.9176 99.4735 42.035 98.5578 42.2639 97.6891L61.8565 24.5661C63.1361 20.0348 67.3035 16.7126 72.2457 16.7126H93.6578L82.0831 59.9126H61.6805C59.4441 59.9126 57.6305 61.7263 57.6305 63.9626C57.6305 66.1989 59.4441 68.0126 61.6805 68.0126V68.0067Z");
  content: "";
  background: white;
  border: 1px solid #008996;
  border-radius: 100%;
  opacity: 0;
  transition: opacity 0.2s 1s ease;
}
@media (max-width: 768px) {
  .intro__logo-view_logo::after {
    transition: opacity 0.3s 1s ease;
  }
}
.intro__logo-view svg {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1/1;
  image-rendering: high-quality;
  text-rendering: optimizeLegibility;
  shape-rendering: geometricPrecision;
  transition: opacity 0.2s 1s ease;
}
@media (max-width: 768px) {
  .intro__logo-view svg {
    max-width: 135px;
    transition: opacity 0.3s 1s ease;
  }
}
.intro__logo-view_item {
  stroke-dasharray: 763.0465698242px;
  stroke-dashoffset: 763.0465698242px;
  transition: stroke-dashoffset 0s linear 0s;
}
.intro__logo-view_item.-isView {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.8s linear 0s;
}
.intro__logo-view.-isView {
  animation: LogoViewHide 0.3s 1.7s ease forwards;
}
.intro__logo-view.-isView .intro__logo-view_logo::before, .intro__logo-view.-isView .intro__logo-view_logo::after {
  opacity: 1;
  animation: LogoZoom 2s 1.05s ease forwards;
}
.intro__logo-view.-isView svg {
  opacity: 0;
  animation: LogoZoom 2s 1.05s ease forwards;
}
.intro__logo-view.-isView::after {
  animation: LogoZoom 2s 1.05s ease forwards;
}
.intro__logo-view.-isView .intro__logo-view_overlay {
  opacity: 0;
}

@keyframes LogoZoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(20);
  }
}
@keyframes LogoViewHide {
  0% {
    opacity: 1;
  }
  100% {
    pointer-events: none;
    opacity: 0;
  }
}
@keyframes BgHole {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(10);
  }
}
.kv {
  position: fixed;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
  transition: opacity 0.6s ease-out;
}
.kv.-isHide {
  pointer-events: none;
  opacity: 0;
}
.kv__space {
  position: relative;
  width: 100%;
  height: 80dvh;
}
@media (max-width: 768px) {
  .kv__space {
    height: 100vh;
  }
}
.kv__bg-logo {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.8s 0.8s ease-out;
}
@media (max-width: 768px) {
  .kv__bg-logo {
    top: 50%;
    left: 50%;
    width: 150%;
    transform: translate(-50%, -50%);
  }
}
.kv__bg-logo img {
  width: 100%;
  max-width: 677px;
}
@media (max-width: 768px) {
  .kv__bg-logo img {
    max-width: 562px;
  }
}
.kv__bg-logo.-isView {
  opacity: 1;
}
.kv__contents {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
  align-items: center;
  justify-content: center;
  padding-top: 60px;
}
@media (max-width: 768px) {
  .kv__contents {
    gap: 8px 0;
    padding-top: 66px;
  }
}
.kv__contents-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.kv__contents-inner .lead {
  position: absolute;
  top: 0;
  left: 50%;
  width: 280px;
  opacity: 0;
  transition: opacity 1s 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 1s 0.6s cubic-bezier(0.33, 1, 0.68, 1);
  transform: translateX(-50%) translateY(calc(-1 * (100% + 10px - 20px)));
}
@media (max-width: 768px) {
  .kv__contents-inner .lead {
    width: 215px;
    transform: translateX(-50%) translateY(calc(-1 * (100% + 4px - 20px)));
  }
}
.kv__contents h1 {
  width: 100%;
  max-width: 695px;
  opacity: 0;
  transition: opacity 1s 0.1s cubic-bezier(0.33, 1, 0.68, 1), transform 1s 0.1s cubic-bezier(0.33, 1, 0.68, 1);
  transform: translateY(20px);
}
@media (max-width: 768px) {
  .kv__contents h1 {
    width: calc(100% - 16px);
  }
}
.kv__contents .copy {
  margin-top: -8px;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 170%;
  color: white;
  text-align: center;
  letter-spacing: 0.02em;
  opacity: 0;
  transition: opacity 1s 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 1s 0.6s cubic-bezier(0.33, 1, 0.68, 1);
  transform: translateY(20px);
}
@media (max-width: 768px) {
  .kv__contents .copy {
    margin-top: 0;
    font-size: 1.7rem;
  }
}
.kv__contents.-isView h1,
.kv__contents.-isView .copy {
  opacity: 1;
  transform: none;
}
.kv__contents.-isView .lead {
  opacity: 1;
  transform: translateX(-50%) translateY(calc(-1 * (100% + 4px)));
}
@media (max-width: 768px) {
  .kv__contents.-isView .lead {
    transform: translateX(-50%) translateY(calc(-1 * (100% + 10px)));
  }
}
.kv__contents.-isView.-isHide h1 {
  opacity: 0;
  transition: opacity 0.5s 0.15s ease-out, transform 0.5s 0.15s ease-out;
  transform: translateY(-40px);
}
.kv__contents.-isView.-isHide .copy {
  opacity: 0;
  transition: opacity 0.3s 0.1s ease-out, transform 0.3s 0.1s ease-out;
  transform: translateY(-40px);
}
.kv__contents.-isView.-isHide .lead {
  opacity: 0;
  transition: opacity 0.3s 0.1s ease-out, transform 0.3s 0.1s ease-out;
  transform: translateX(-50%) translateY(calc(-1 * (100% + 40px)));
}
.kv__news {
  position: absolute;
  right: 0;
  bottom: 24px;
  z-index: 2;
  width: 100%;
  max-width: 475px;
  background: rgba(0, 0, 0, 0.07);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-top: 1px dashed rgba(255, 255, 255, 0.6);
  opacity: 0;
  transition: opacity 0.8s 0.8s ease-out;
}
@media (max-width: 768px) {
  .kv__news {
    bottom: 24px;
    width: 60.27%;
  }
}
.kv__news.-isView {
  opacity: 1;
}
.kv__news.-isView.-isHide {
  opacity: 0;
  transition: opacity 0.4s 0.1s ease-out, transform 0.4s 0.1s ease-out;
  transform: translateY(-20px);
}
.kv__news ul li a,
.kv__news ul li span {
  display: block;
  display: flex;
  gap: 0 12px;
  align-items: baseline;
  padding: 12px 10px;
  font-size: 1.2rem;
  line-height: 170%;
  color: white;
  text-decoration: none;
}
@media (max-width: 768px) {
  .kv__news ul li a,
  .kv__news ul li span {
    flex-direction: column;
  }
}
.kv__news ul li a time,
.kv__news ul li span time {
  font-family: "Montserrat", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  opacity: 0.7;
}
@media (max-width: 768px) {
  .kv__news ul li a time,
  .kv__news ul li span time {
    font-size: 1.1rem;
  }
}
.kv__news ul li a time.-isNew,
.kv__news ul li span time.-isNew {
  display: flex;
  gap: 0 12px;
  align-items: center;
}
@media (max-width: 768px) {
  .kv__news ul li a time.-isNew,
  .kv__news ul li span time.-isNew {
    gap: 0 8px;
  }
}
.kv__news ul li a time.-isNew::after,
.kv__news ul li span time.-isNew::after {
  display: flex;
  justify-content: center;
  width: 42px;
  height: 17px;
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 17px;
  content: "NEW";
  background: rgba(255, 255, 255, 0.3);
}
@media (max-width: 768px) {
  .kv__news ul li a time.-isNew::after,
  .kv__news ul li span time.-isNew::after {
    width: 38px;
    height: 14px;
    line-height: 15px;
  }
}
.kv__news ul li a {
  padding-right: 44px;
  background: url(/brand/assets/images/arrow_news.svg) no-repeat right 10px center/24px 24px;
  transition: opacity 0.3s ease-out;
}
.kv__news ul li a p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
}
@media (hover: hover) {
  .kv__news ul li a:hover {
    opacity: 0.7;
  }
}
.kv__scroll {
  position: absolute;
  right: 20px;
  bottom: 113px;
  z-index: 2;
}
@media (max-width: 768px) {
  .kv__scroll {
    right: 16px;
    bottom: 130px;
  }
}
.kv__scroll.-isView.-isHide {
  opacity: 0;
  transition: opacity 0.3s 0.1s ease-out, transform 0.3s 0.1s ease-out;
  transform: translateY(-30px);
}
.kv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.kv__bg canvas {
  display: block;
  width: 100%;
  height: 100vh;
}
.kv__bg.-isHide {
  opacity: 0;
  transition: opacity 0.8s 0.4s ease-out;
}

.l-footer {
  position: relative;
  z-index: 2;
  padding-top: 46px;
  padding-bottom: 46px;
  background: #333;
}
.l-footer__sns {
  position: relative;
  z-index: 2;
  padding-top: 60px;
  padding-bottom: 40px;
  background: #333;
}
.l-footer__sns p {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  color: white;
  text-align: center;
}
@media (max-width: 768px) {
  .l-footer__sns p {
    font-style: 1.2rem;
  }
}
.l-footer__sns ul {
  display: flex;
  gap: 0 18px;
  justify-content: center;
  margin-top: 20px;
}
.l-footer__sns ul li {
  max-width: 50px;
}
.l-footer__sns ul li a {
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-footer__sns ul li a:hover {
    opacity: 0.7;
  }
}
.l-footer__inner {
  display: flex;
  align-items: center;
  max-width: 1172px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 768px) {
  .l-footer__inner {
    flex-direction: column;
    gap: 27px 0;
    padding-right: 20px;
    padding-left: 20px;
  }
}
.l-footer__logo {
  max-width: 142px;
}
.l-footer__logo a {
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-footer__logo a:hover {
    opacity: 0.7;
  }
}
.l-footer__nav {
  margin-left: 39px;
}
@media (max-width: 768px) {
  .l-footer__nav {
    margin-left: 0;
  }
}
.l-footer__nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 30px;
  max-width: 532px;
}
@media (max-width: 768px) {
  .l-footer__nav ul {
    gap: 20px;
    max-width: 100%;
  }
}
.l-footer__nav ul li a {
  font-size: 1.2rem;
  line-height: 170%;
  color: white;
  text-decoration: none;
  opacity: 0.6;
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-footer__nav ul li a:hover {
    text-decoration: underline;
    opacity: 0.7;
  }
}
.l-footer__sns-copy {
  display: flex;
  gap: 0 27px;
  align-items: flex-end;
  margin-left: auto;
}
@media (max-width: 768px) {
  .l-footer__sns-copy {
    flex-direction: column;
    gap: 27px;
    align-items: center;
    margin-left: 0;
  }
}
.l-footer__sns-copy .sns {
  display: flex;
  gap: 0 10px;
}
.l-footer__sns-copy .sns li {
  max-width: 37px;
}
.l-footer__sns-copy .sns li a {
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) {
  .l-footer__sns-copy .sns li a:hover {
    opacity: 0.7;
  }
}
.l-footer__sns-copy .copyright {
  margin-bottom: 7px;
  font-size: 1.2rem;
  color: white;
  letter-spacing: 0.02em;
  opacity: 0.6;
}
@media (max-width: 768px) {
  .l-footer__sns-copy .copyright {
    margin-bottom: 0;
    text-align: center;
  }
}

.l-landscape {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.l-landscape.-isView {
  pointer-events: all;
  opacity: 1;
}
.l-landscape__contents {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px 0;
  align-items: center;
  justify-content: center;
}
.l-landscape__button {
  position: absolute;
  top: 32px;
  right: 32px;
  width: 32px;
}
.l-landscape__icon {
  width: 112px;
}
.l-landscape__text {
  font-size: 1.8rem;
  line-height: 170%;
  color: white;
}

.vision {
  position: relative;
  z-index: 0;
  height: 180dvh;
}
@media (max-width: 768px) {
  .vision {
    height: 200vh;
  }
}
.vision__bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: url(/brand/assets/images/bg_vision.webp) no-repeat center center/cover;
  opacity: 0;
}
@media (max-width: 768px) {
  .vision__bg {
    background-image: url(/brand/assets/images/bg_vision_sp.webp) no-repeat center center/cover;
  }
}
.vision__contents {
  position: fixed;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-right: 20px;
  padding-left: 20px;
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.vision__contents .c-title__label {
  transition-delay: 0.6s;
}
.vision__contents h2 {
  width: 100%;
  max-width: 894px;
  margin-top: 60px;
  transition-delay: 0.3s;
}
.vision__contents h2 img {
  width: 100%;
}
.vision__contents.-isShow {
  opacity: 1;
}
.vision__contents.-isShow .-isSlideUp,
.vision__contents.-isShow .-isFadeIn {
  opacity: 1;
  transform: none;
}
.vision__lead {
  max-width: 518px;
  margin-top: 40px;
  font-size: 1.4rem;
  line-height: 260%;
  color: white;
  text-align: center;
  letter-spacing: 0.02em;
  transition-delay: 0.8s;
}
@media (max-width: 768px) {
  .vision__lead {
    width: 100%;
    line-height: 240%;
    text-align: left;
  }
}
.vision__scroll {
  position: fixed;
  right: 20px;
  bottom: 40px;
  z-index: 2;
}
@media (max-width: 768px) {
  .vision__scroll {
    right: 16px;
    bottom: 24px;
  }
}

.group {
  position: relative;
  z-index: 2;
  margin-top: 2vw;
  background: white;
}
@media (max-width: 768px) {
  .group {
    margin-top: 6vw;
  }
}
.group::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 2vw;
  pointer-events: none;
  content: "";
  background: url(/brand/assets/images/line_group.webp) no-repeat center top/100% auto;
  transform: translateY(calc(-1 * (100% - 2px)));
}
@media (max-width: 768px) {
  .group::before {
    height: 6vw;
    background-image: url(/brand/assets/images/line_group_sp.webp);
  }
}
.group__lead {
  display: flex;
  gap: 0 40px;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .group__lead {
    flex-direction: column;
    gap: 40px 0;
    align-items: flex-start;
    margin-top: 60px;
  }
}
.group__lead p {
  flex: 1;
  max-width: 571px;
  line-height: 170%;
}
.group__company {
  display: grid;
  grid-template-rows: auto auto;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 26px;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .group__company {
    display: flex;
    flex-direction: column;
    gap: 26px 0;
    margin-top: 40px;
  }
}
.group__company .c-card:nth-of-type(1) {
  grid-column: span 3/span 3;
}
.group__company .c-card:nth-of-type(2) {
  grid-row-start: 2;
}
.group__company .c-card:nth-of-type(3) {
  grid-row-start: 2;
}
.group__company .c-card:nth-of-type(4) {
  grid-row-start: 2;
}

.message {
  position: relative;
  z-index: 2;
  color: white;
  background: #008996;
}
.message__inner {
  display: flex;
  gap: 0 200px;
}
@media (max-width: 1024px) {
  .message__inner {
    flex-direction: column;
    gap: 90px 0;
  }
}
.message__text {
  flex: 1;
  max-width: 50%;
}
@media (max-width: 1024px) {
  .message__text {
    max-width: 100%;
  }
}
.message__text .c-title {
  margin-top: 60px;
}
.message__text-lead {
  display: flex;
  flex-direction: column;
  gap: 1.5em 0;
  margin-top: 40px;
  line-height: 200%;
}
.message__text-lead .name {
  margin-top: 20px;
  font-size: 1.8rem;
  line-height: 170%;
  text-align: right;
}
.message__image {
  flex: 1;
  max-width: 50%;
  text-align: center;
}
@media (max-width: 1024px) {
  .message__image {
    max-width: 100%;
    padding-right: 40px;
    padding-left: 40px;
  }
}

.contents {
  position: relative;
  z-index: 2;
  background: white;
}
.contents__slider {
  margin-top: 60px;
  overflow: hidden;
  /* stylelint-disable-next-line no-duplicate-selectors */
}
.contents__slider-wrap {
  padding-right: 439px;
  padding-left: max(20px, (100% - 1168px) / 2);
}
@media (max-width: 768px) {
  .contents__slider-wrap {
    padding-right: 61px;
    padding-left: 20px;
  }
}
.contents__slider-item {
  display: flex;
  flex-direction: column;
  gap: 20px 0;
  width: 100%;
}
@media (max-width: 768px) {
  .contents__slider-item {
    gap: 10px 0;
  }
}
.contents__slider button.contents__slider-item .contents__slider-thumb::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  pointer-events: none;
  content: "";
  background: rgba(0, 0, 0, 0.3);
}
.contents__slider button.contents__slider-item .contents__slider-thumb::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: block;
  width: 110px;
  aspect-ratio: 1/1;
  content: "";
  background: url(/brand/assets/images/icon_play.svg) no-repeat center center/cover, rgba(255, 255, 255, 0.2);
  border-radius: 100%;
  transition: background 0.3s ease-out;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
  .contents__slider button.contents__slider-item .contents__slider-thumb::after {
    width: 40px;
  }
}
@media (hover: hover) {
  .contents__slider button.contents__slider-item:hover .contents__slider-thumb img {
    transform: scale(1.1);
  }
  .contents__slider button.contents__slider-item:hover .contents__slider-thumb::after {
    background-color: rgba(255, 255, 255, 0.4);
  }
  .contents__slider button.contents__slider-item:hover .contents__slider-caption {
    color: #008996;
  }
}
.contents__slider button.contents__slider-item.-isImage .contents__slider-thumb::after {
  background-image: url(/brand/assets/images/icon_plus.svg);
}
.contents__slider-thumb {
  position: relative;
  z-index: 1;
  width: 100%;
  overflow: hidden;
}
.contents__slider-thumb img {
  position: relative;
  z-index: 0;
  width: 100%;
  transition: transform 0.3s ease-out;
  transform-origin: center center;
}
.contents__slider-caption {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 120%;
  letter-spacing: 0.02em;
  transition: color 0.3s ease-out;
}
@media (max-width: 768px) {
  .contents__slider-caption {
    font-size: 1.2rem;
  }
}
.contents__slider-button.-isStop .play-button {
  display: none;
}
.contents__slider-button.-isPlay .stop-button {
  display: none;
}
.contents__slider-progress {
  display: flex;
  gap: 0 60px;
  align-items: center;
  padding-bottom: 5px;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .contents__slider-progress {
    gap: 0 20px;
    margin-top: 40px;
  }
}
.contents__slider-progress_line {
  position: relative;
  width: 100%;
  height: 1px;
  background: #e1eaeb;
}
.contents__slider-progress_line span {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: #008996;
  transition: width 0.3s ease-out;
}
.contents__slider-progress_button {
  display: flex;
  gap: 0 20px;
}
@media (max-width: 768px) {
  .contents__slider-progress_button {
    gap: 0 12px;
  }
}
.contents__slider-button {
  width: 40px;
  aspect-ratio: 1/1;
}

.anniversary {
  position: relative;
  z-index: 2;
  padding-top: 100px;
  padding-bottom: 100px;
  background: url(/brand/assets/images/bg_anniversary.webp) no-repeat center center/cover;
}
@media (max-width: 1024px) {
  .anniversary {
    padding-top: 80px;
    padding-bottom: 80px;
    background-image: url(/brand/assets/images/bg_anniversary_sp.webp);
  }
}
.anniversary__inner {
  padding: 100px;
  background: white;
}
@media (max-width: 1024px) {
  .anniversary__inner {
    padding: 80px 20px;
  }
}
.anniversary__contents {
  display: grid;
  grid-template-rows: repeat(4, auto);
  grid-template-columns: 1fr 534px;
  gap: 40px 60px;
}
@media (max-width: 1024px) {
  .anniversary__contents {
    grid-template-columns: 1fr 55%;
  }
}
@media (max-width: 1024px) {
  .anniversary__contents {
    display: flex;
    flex-direction: column;
  }
}
.anniversary__title {
  grid-row-start: 2;
  grid-column-start: 1;
  margin-top: 20px;
}
.anniversary__image {
  grid-row: 1/span 4;
  grid-column-start: 2;
}
.anniversary__image img {
  box-sizing: border-box;
  border: 1px solid #dedede;
}
.anniversary__text {
  grid-row-start: 3;
  line-height: 170%;
}
.anniversary__button {
  grid-row-start: 4;
}

.links {
  position: relative;
  z-index: 2;
  padding-top: 100px;
  padding-bottom: 100px;
  background: url(/brand/assets/images/bg_links.webp) no-repeat center center/cover;
}
@media (max-width: 768px) {
  .links {
    padding-top: 80px;
    padding-bottom: 80px;
    background-image: url(/brand/assets/images/bg_links_sp.webp);
  }
}
.links__inner {
  padding: 100px;
  background: white;
}
@media (max-width: 768px) {
  .links__inner {
    padding: 80px 20px;
  }
}
.links__contents {
  display: flex;
  gap: 40px 20px;
  justify-content: space-between;
  width: 100%;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .links__contents {
    flex-direction: column;
  }
}
.links__contents nav {
  flex: 1;
  width: 100%;
  max-width: 574px;
}
@media (max-width: 768px) {
  .links__contents nav {
    max-width: 100%;
  }
}
.links__contents nav ul {
  display: flex;
  flex-direction: column;
  gap: 10px 0;
}

.contact {
  position: relative;
  z-index: 2;
  padding-top: 100px;
  padding-bottom: 100px;
  background: white;
}
@media (max-width: 768px) {
  .contact {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
.contact__link a {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px 0;
  padding: 70px 60px;
  overflow: hidden;
  color: white;
  text-decoration: none;
  border-radius: 4px;
}
@media (max-width: 768px) {
  .contact__link a {
    gap: 10px 0;
    padding: 55px 20px;
  }
}
.contact__link a p {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.02em;
  transition: opacity 0.3s ease-out;
}
@media (max-width: 768px) {
  .contact__link a p {
    font-size: 2.4rem;
  }
}
.contact__link a p.-en {
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
}
@media (max-width: 768px) {
  .contact__link a p.-en {
    font-size: 1.2rem;
  }
}
.contact__link a::before {
  position: absolute;
  top: 50%;
  right: 60px;
  display: block;
  width: 40px;
  aspect-ratio: 1/1;
  content: "";
  background: url(/brand/assets/images/arrow_next_white.svg) no-repeat center center/cover;
  transition: opacity 0.3s ease-out;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .contact__link a::before {
    right: 20px;
    width: 30px;
  }
}
.contact__link a::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  content: "";
  background: url(/brand/assets/images/bg_contact.webp) no-repeat center center/cover;
  transition: transform 0.3s ease-out;
  transform-origin: center center;
}
@media (max-width: 768px) {
  .contact__link a::after {
    background-image: url(/brand/assets/images/bg_contact_sp.webp);
  }
}
@media (hover: hover) {
  .contact__link a:hover p, .contact__link a:hover::before {
    opacity: 0.7;
  }
  .contact__link a:hover::after {
    transform: scale(1.1);
  }
}