@charset "UTF-8";
/************** 全体のラッパー **************/
.l-wrap--top {
  padding-top: 0;
}
.l-wrap--top:has(.l-header.is-active) {
  padding-top: var(--SIZE_HEADER_HEIGHT, 60px);
}
@media (width >= 1000px) {
  .l-wrap--top:has(.l-header.is-active) {
    padding-top: var(--SIZE_HEADER_HEIGHT, 140px);
  }
}

.l-content--top {
  padding-top: 0;
}

/************** ヘッダー **************/
@media (width >= 1000px) {
  .l-header--top.js-top-fadein {
    box-shadow: none;
  }
}
.l-header--top.js-top-fadein .l-header__titleLogoLink path {
  fill: var(--COLOR_FOREGROUND_2);
  transition: var(--TRANSITION);
}
.l-header--top.js-top-fadein .l-header__menuPcLogoMedia path {
  fill: var(--COLOR_FOREGROUND_2);
  transition: var(--TRANSITION);
}
.l-header--top.js-top-fadein,
.l-header--top.js-top-fadein .l-navigationGlobal,
.l-header--top.js-top-fadein .l-header__hamburgerButton {
  background: transparent;
}
.l-header--top.js-top-fadein .l-header__hamburgerButton {
  border-left: 0;
  transition: var(--TRANSITION);
}
.l-header--top.js-top-fadein .l-header__hamburgerButton::before, .l-header--top.js-top-fadein .l-header__hamburgerButton::after {
  background: var(--COLOR_FOREGROUND_2);
  transition: var(--TRANSITION);
}
.l-header--top.js-top-fadein,
.l-header--top.js-top-fadein a {
  color: var(--COLOR_FOREGROUND_2);
}
.l-header--top.js-top-fadein .l-header__head {
  box-shadow: none;
}
@media (width >= 1000px) {
  .l-header--top.js-top-fadein .l-header__head {
    box-shadow: none !important;
  }
}
@media (hover: hover) {
  .l-header--top.js-top-fadein.is-active .l-navigationGlobal__button:where(:any-link, :enabled, summary):hover {
    color: var(--COLOR_BRAND_PRIMARY);
  }
}
.l-header--top.js-top-fadein .l-header__menuPcButtonLink {
  border-color: var(--COLOR_BASE_LIGHT);
}
.l-header--top.js-top-fadein .l-header__menuPcButtonLink::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%207%209%22%3e%3cpath%20d%3d%22M0,0%2e395L5,4%2e281%200,8%2e395%22%20fill%3d%22none%22%20stroke%3d%22%23fff%22%20stroke%2dwidth%3d%221%22%2f%3e%3c%2fsvg%3e");
}
.l-header--top.js-top-fadein .l-navigationGlobal__button[href^="#"]::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%209%207%22%20fill%3d%22%23fff%22%3e%3cpath%20d%3d%22M4%2e391,6%2e112l%2d4%2e387%2d5%2e492%200%2e781%2d0%2e624L4%2e391,4%2e512%208,0l0%2e781,0%2e625Z%22%2f%3e%3c%2fsvg%3e");
}
.l-header--top.js-top-fadein .l-navigationGlobal__button:not([href^="#"]):any-link::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%207%209%22%3e%3cpath%20d%3d%22M0,0%2e395L5,4%2e281%200,8%2e395%22%20fill%3d%22none%22%20stroke%3d%22%23fff%22%20stroke%2dwidth%3d%221%22%2f%3e%3c%2fsvg%3e");
}
@media (width >= 1000px) {
  .l-header--top.js-top-fadein.is-active {
    box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
  }
}
.l-header--top.js-top-fadein.is-active .l-header__titleLogoLink path:not(:last-child) {
  fill: #009b63;
}
.l-header--top.js-top-fadein.is-active .l-header__titleLogoLink path:last-child {
  fill: #231815;
}
.l-header--top.js-top-fadein.is-active .l-header__menuPcLogoMedia path:nth-child(2), .l-header--top.js-top-fadein.is-active .l-header__menuPcLogoMedia path:nth-child(3), .l-header--top.js-top-fadein.is-active .l-header__menuPcLogoMedia path:nth-child(5), .l-header--top.js-top-fadein.is-active .l-header__menuPcLogoMedia path:nth-child(6) {
  fill: #231815;
}
.l-header--top.js-top-fadein.is-active .l-header__menuPcLogoMedia path:nth-child(4) {
  fill: #009b63;
}
.l-header--top.js-top-fadein.is-active,
.l-header--top.js-top-fadein.is-active .l-navigationGlobal {
  background: var(--COLOR_BASE_LIGHT);
}
.l-header--top.js-top-fadein.is-active .l-header__hamburgerButton {
  border-left-width: 1px;
}
.l-header--top.js-top-fadein.is-active .l-header__hamburgerButton::before, .l-header--top.js-top-fadein.is-active .l-header__hamburgerButton::after {
  background: var(--COLOR_BRAND_PRIMARY);
}
.l-header--top.js-top-fadein.is-active,
.l-header--top.js-top-fadein.is-active a {
  color: var(--COLOR_FOREGROUND);
}
.l-header--top.js-top-fadein.is-active .l-header__head {
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
}
.l-header--top.js-top-fadein.is-active .l-header__menuPcButtonLink {
  border-color: var(--COLOR_BRAND_PRIMARY);
}
.l-header--top.js-top-fadein.is-active .l-header__menuPcButtonLink:focus-visible {
  color: var(--COLOR_FOREGROUND_2);
}
@media (hover: hover) {
  .l-header--top.js-top-fadein.is-active .l-header__menuPcInformationLink:where(:any-link, :enabled, summary):hover {
    color: var(--COLOR_BRAND_PRIMARY);
  }
  .l-header--top.js-top-fadein.is-active .l-header__menuPcButtonLink:where(:any-link, :enabled, summary):hover {
    color: var(--COLOR_FOREGROUND_2);
  }
}
.l-header--top.js-top-fadein.is-active .l-header__menuPcButtonLink::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%207%209%22%3e%3cpath%20d%3d%22M0,0%2e395L5,4%2e281%200,8%2e395%22%20fill%3d%22none%22%20stroke%3d%22%2300664b%22%20stroke%2dwidth%3d%221%22%2f%3e%3c%2fsvg%3e");
}
.l-header--top.js-top-fadein.is-active .l-navigationGlobal__button[href^="#"]::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%209%207%22%20fill%3d%22%2300664b%22%3e%3cpath%20d%3d%22M4%2e391,6%2e112l%2d4%2e387%2d5%2e492%200%2e781%2d0%2e624L4%2e391,4%2e512%208,0l0%2e781,0%2e625Z%22%2f%3e%3c%2fsvg%3e");
}
.l-header--top.js-top-fadein.is-active .l-navigationGlobal__button:not([href^="#"]):any-link::after {
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%207%209%22%3e%3cpath%20d%3d%22M0,0%2e395L5,4%2e281%200,8%2e395%22%20fill%3d%22none%22%20stroke%3d%22%2300664b%22%20stroke%2dwidth%3d%221%22%2f%3e%3c%2fsvg%3e");
}
@media (width >= 1000px) {
  .l-header--top.js-top-fadein.is-active .l-navigationGlobal__content {
    top: 135px;
  }
}

/************** 右側コンバージョン **************/
.u-button-cv.js-top-fadein {
  opacity: 0;
  transition: opacity var(--TRANSITION), visibility var(--TRANSITION);
  visibility: hidden;
}
.u-button-cv.js-top-fadein.is-active {
  opacity: 1;
  visibility: visible;
}

/************** TOP **************/
#top {
  --DESIGN_WIDTH: 1536;
  --TRANSITION_TOP_EFFECT: 0.7s ease-out;
  --SIZE_HEADER_HEIGHT_TOP: var(--SIZE_HEADER_HEIGHT, 140px);
}
@media (width < 1000px) {
  #top {
    --SIZE_HEADER_HEIGHT_TOP: var(--SIZE_HEADER_HEIGHT, 60px);
  }
}

/************** TOP メインビジュアル **************/
.u-top-mainVisual {
  margin-inline: calc(50% - 50vw);
  height: 100dvh;
  clip-path: inset(0);
}
.l-wrap--top:has(.l-header.is-active) .u-top-mainVisual {
  height: calc(100dvh - var(--SIZE_HEADER_HEIGHT_TOP));
}
.u-top-mainVisual__inner {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  inset: 0;
  color: #fff;
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-property: opacity, visibility, top;
  transition-duration: 0.7s, 0.7s, 0.2s;
}
.u-top-mainVisual.is-loaded .u-top-mainVisual__inner {
  opacity: 1;
  visibility: visible;
}
.l-wrap--top:has(.l-header.is-active) .u-top-mainVisual__inner {
  top: var(--SIZE_HEADER_HEIGHT_TOP);
}
.u-top-mainVisual__copy {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  right: calc(218 / var(--DESIGN_WIDTH) * 100%);
  top: 50%;
  z-index: 1;
  translate: 0 -50%;
  margin: 0;
  font-family: var(--FONT_FAMILY_ZEN);
  font-size: 4.2rem;
  font-weight: 500;
  letter-spacing: 0.33em;
  writing-mode: vertical-rl;
  white-space: nowrap;
  text-shadow: 0 0 15px #000;
  filter: drop-shadow(0 0 15px #000);
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-property: opacity, visibility;
}
.u-top-mainVisual__copy b {
  display: grid;
  font-weight: inherit;
}
.u-top-mainVisual__copy span:nth-child(2) {
  translate: 0 1.35em;
}
.u-top-mainVisual[data-video-state="ended"] .u-top-mainVisual__copy {
  opacity: 1;
  visibility: visible;
}
@media (width < 768px) {
  .u-top-mainVisual__copy {
    right: 50%;
    translate: 50% -50%;
    margin-top: -5px;
    font-size: 3rem;
  }
}
@keyframes scroll-line {
  0% {
    transform-origin: top;
    transform: scaleY(0);
  }
  39% {
    transform-origin: top;
    transform: scaleY(1);
  }
  40% {
    transform-origin: bottom;
    transform: scaleY(1);
  }
  100% {
    transform-origin: bottom;
    transform: scaleY(0);
  }
}
.u-top-mainVisual__scrollDown {
  display: grid;
  gap: 4px;
  justify-items: center;
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 1;
  translate: -50%;
  font-family: var(--FONT_FAMILY_ZEN);
  font-size: 1.6rem;
  text-shadow: 0 2px 20px color-mix(in srgb, #000 70%, transparent);
}
.u-top-mainVisual__scrollDown > span {
  position: relative;
  width: 2px;
  height: 40px;
  background-color: color-mix(in srgb, #fff 60%, transparent);
}
.u-top-mainVisual__scrollDown > span::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #fff;
  animation: scroll-line 3s infinite both;
}
.u-top-mainVisual__bg {
  position: absolute;
  inset: 0;
}
.u-top-mainVisual__bg video {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.u-top-mainVisual__bg .vjs-title-bar,
.u-top-mainVisual__bg .vjs-control-bar {
  display: none;
}
.u-top-mainVisual__bg .vjs-loading-spinner {
  color: transparent;
}
.u-top-mainVisual__videoWrapper {
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-property: opacity, visibility;
}
.u-top-mainVisual[data-video-state="ended"] .u-top-mainVisual__videoWrapper {
  opacity: 0;
  visibility: hidden;
}
@media (width < 768px) {
  .u-top-mainVisual__video {
    display: none;
  }
}
@media (width >= 768px) {
  .u-top-mainVisual__spVideo {
    display: none;
  }
}
.u-top-mainVisual__videoCtrlBtn {
  display: grid;
  place-items: center;
  position: absolute;
  right: 50px;
  bottom: 40px;
  z-index: 1;
  border: 1px solid;
  width: 40px;
  aspect-ratio: 1;
  background: transparent;
  border-radius: 50%;
  color: inherit;
  font-size: 0;
  cursor: pointer;
  transition: var(--TRANSITION);
  transition-property: opacity;
}
.u-top-mainVisual__videoCtrlBtn > span:nth-child(1) {
  position: relative;
  width: 10px;
  height: 16px;
}
.u-top-mainVisual__videoCtrlBtn > span:nth-child(1)::before,
.u-top-mainVisual__videoCtrlBtn > span:nth-child(1)::after {
  content: "";
  position: absolute;
  top: 0;
  width: 2px;
  height: 100%;
  background-color: #fff;
}
.u-top-mainVisual__videoCtrlBtn > span:nth-child(1)::before {
  left: 0;
}
.u-top-mainVisual__videoCtrlBtn > span:nth-child(1)::after {
  right: 0;
}
.u-top-mainVisual__videoCtrlBtn > span:nth-child(2) {
  translate: 15%;
  width: 10px;
  aspect-ratio: 10/16;
  background-color: #fff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.u-top-mainVisual[data-video-state="playing"] .u-top-mainVisual__videoCtrlBtn > span:nth-child(1) {
  display: block;
}
.u-top-mainVisual[data-video-state="playing"] .u-top-mainVisual__videoCtrlBtn > span:nth-child(2) {
  display: none;
}
.u-top-mainVisual:not([data-video-state="playing"]) .u-top-mainVisual__videoCtrlBtn > span:nth-child(1) {
  display: none;
}
.u-top-mainVisual:not([data-video-state="playing"]) .u-top-mainVisual__videoCtrlBtn > span:nth-child(2) {
  display: block;
}
@media (width < 768px) {
  .u-top-mainVisual__videoCtrlBtn {
    right: 20px;
    bottom: 24px;
  }
}
@media (any-hover: hover) {
  .u-top-mainVisual__videoCtrlBtn:hover {
    opacity: 0.8;
  }
}
.u-top-mainVisual__img {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  inset: 0;
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-property: opacity, visibility;
}
.u-top-mainVisual__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u-top-mainVisual[data-video-state="ended"] .u-top-mainVisual__img {
  opacity: 1;
  visibility: visible;
}

/************** TOP ブランドメッセージ **************/
.u-top-brandMessage {
  margin-inline: calc(50% - 50vw);
}
.u-top-brandMessage p {
  margin: 0;
}

.u-top-brandMessage__sect {
  --_sectH: 175lvh;
  position: relative;
  height: calc(var(--_sectH) - var(--SIZE_HEADER_HEIGHT_TOP));
  font-family: var(--FONT_FAMILY_ZEN);
  clip-path: inset(0);
}
.u-top-brandMessage__sect[data-sect="2"] {
  --_sectH: 200lvh;
}
.u-top-brandMessage__sectInner {
  position: sticky;
  top: var(--SIZE_HEADER_HEIGHT_TOP);
  height: calc(100lvh - var(--SIZE_HEADER_HEIGHT_TOP));
}
.u-top-brandMessage__sectInner.is-fixed {
  position: fixed;
  inset: var(--SIZE_HEADER_HEIGHT_TOP) 0 0;
}
.u-top-brandMessage__sectTrigger {
  position: absolute;
  inset: calc(100lvh - var(--SIZE_HEADER_HEIGHT_TOP)) 0 auto;
}
.u-top-brandMessage__sectTxtWrapper {
  display: grid;
  align-items: center;
  justify-content: end;
  position: absolute;
  inset: 0;
  z-index: 1;
  margin: auto;
  padding-inline: 64px;
  max-width: 1280px;
  box-sizing: content-box;
}
@media (width < 1000px) {
  .u-top-brandMessage__sectTxtWrapper {
    justify-content: unset;
  }
}
@media (width < 768px) {
  .u-top-brandMessage__sectTxtWrapper {
    padding-inline: 20px;
  }
}
.u-top-brandMessage__sectTxt {
  --_shadowVal: 0 0 20px #000;
  opacity: 0;
  display: grid;
  min-width: 582px;
  color: #fff;
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  line-height: 2.3;
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-property: opacity;
  will-change: opacity;
}
.u-top-brandMessage__sectTxt > span.blankLine {
  height: 0.725lh;
}
.u-top-brandMessage__sectTxt.is-visible {
  opacity: 1;
}
@media (width < 768px) {
  .u-top-brandMessage__sectTxt {
    min-width: 0;
    font-size: 1.8rem;
  }
  .u-top-brandMessage__sectTxt > span {
    display: grid;
  }
  .u-top-brandMessage__sectTxt > span.blankLine {
    height: 0.625lh;
  }
}
.u-top-brandMessage__sect[data-sect="2"] .u-top-brandMessage__sectTxt {
  --_shadowVal: 0 0 20px #fff;
  color: #000;
  text-shadow: var(--_shadowVal);
  filter: drop-shadow(var(--_shadowVal));
}
.u-top-brandMessage__sectTxt > span > span {
  text-shadow: var(--_shadowVal);
}
.u-top-brandMessage__sectBg {
  position: absolute;
  inset: 0;
}
.u-top-brandMessage__sectBg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u-top-brandMessage__sectIndicator {
  opacity: 0;
  display: grid;
  row-gap: 8px;
  position: fixed;
  left: 64px;
  bottom: 80px;
  pointer-events: none;
  transition: var(--TRANSITION_TOP_EFFECT);
  transition-duration: 0.5s;
  transition-property: opacity;
}
.u-top-brandMessage__sectIndicator li {
  display: grid;
  place-items: center;
  position: relative;
  width: 20px;
  aspect-ratio: 1;
}
.u-top-brandMessage__sectIndicator li::before,
.u-top-brandMessage__sectIndicator li::after {
  transition: var(--TRANSITION);
  transition-property: opacity;
}
.u-top-brandMessage__sectIndicator li::before {
  content: "";
  border: 1px solid #AEAEAE;
  width: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
}
.u-top-brandMessage__sectIndicator li::after {
  content: "";
  opacity: 0;
  position: absolute;
  inset: 0;
  background: url(../../img/img_index_leaf.svg) no-repeat;
}
.u-top-brandMessage__sectIndicator li.is-current::before {
  opacity: 0;
}
.u-top-brandMessage__sectIndicator li.is-current::after {
  opacity: 1;
}
.u-top-brandMessage__sectIndicator.is-visible {
  opacity: 1;
}
@media (width < 768px) {
  .u-top-brandMessage__sectIndicator {
    left: 20px;
    bottom: 48px;
  }
}
.u-top-brandMessage__footer {
  opacity: 0;
  display: grid;
  row-gap: 105px;
  padding-block: 195px 190px;
  padding-inline: 20px;
  text-align: center;
  font-family: var(--FONT_FAMILY_ZEN);
}
.u-top-brandMessage__footer.is-visible {
  opacity: 1;
}
@media (width < 768px) {
  .u-top-brandMessage__footer {
    row-gap: 62px;
    padding-block: 110px 105px;
  }
}
.u-top-brandMessage__footerCopy {
  display: grid;
  padding-left: 0.5em;
  color: var(--COLOR_BRAND_PRIMARY);
  font-size: 4.2rem;
  letter-spacing: 0.1em;
}
.u-top-brandMessage__footerCopy .comma {
  margin-right: -0.35em;
}
@media (width < 768px) {
  .u-top-brandMessage__footerCopy {
    font-size: 3rem;
    line-height: 2.15;
  }
  .u-top-brandMessage__footerCopy > span {
    display: grid;
  }
  .u-top-brandMessage__footerCopy .comma {
    margin-right: -0.4em;
  }
}
.u-top-brandMessage__footerTxt {
  display: grid;
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  line-height: 2.2;
}
@media (width < 768px) {
  .u-top-brandMessage__footerTxt {
    font-size: 1.8rem;
    line-height: 2.35;
  }
  .u-top-brandMessage__footerTxt > span {
    display: grid;
  }
}
