@charset "UTF-8";
/* 初期設定 */
/* ============================================ */
@import url("https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700&family=Cormorant+Garamond:wght@300..700&family=Zen+Kaku+Gothic+Antique:wght@300;400;500;700&family=Zen+Old+Mincho:wght@400;500;700&display=swap");
html {
  overflow-x: hidden;
  font-size: 62.5%;
  line-height: 1;
}

body {
  color: #333333;
  font-size: 1.6rem;
  font-family: "Zen Kaku Gothic Antique", "Noto Sans JP", "Yu Gothic Medium", "游ゴシック体", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

html.is-scroll-locked,
body.is-scroll-locked {
  overflow: hidden;
}

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

section {
  position: relative;
}

.container {
  max-width: 1280px;
  width: 100%;
  margin-inline: auto;
  padding-inline: 40px;
}

@media screen and (max-width: 767px) {
  .container {
    padding-inline: 20px;
  }
}
.pc {
  display: block;
}

.sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
/* アニメーション */
/* ============================================ */
.fadein {
  opacity: 0;
  transition: opacity 2.5s;
}

.fadein.is-animated {
  opacity: 1;
}

.fadeup {
  opacity: 0;
  transition: opacity 1s, transform 1s;
  transform: translateY(30px);
}

.fadeup.is-animated {
  opacity: 1;
  transform: inherit;
}

.fadescale {
  opacity: 0;
  overflow: hidden;
  transition: opacity 2.5s;
}
.fadescale img {
  transform: scale(1.1);
  transform-origin: center;
  transition: transform 2s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.fadescale.is-animated {
  opacity: 1;
}
.fadescale.is-animated img {
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .fadescale {
    transition: opacity 0.4s;
  }
  .fadescale img {
    transform: none;
    transition: none;
  }
}
@keyframes fade-scale-in {
  0% {
    opacity: 0;
    transform: scale(1.1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes slidetoggle {
  0% {
    height: 0;
  }
  100% {
    height: auto;
  }
}
@keyframes hero-bg-fade-scale {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  45% {
    opacity: 1;
    transform: scale(1.1);
  }
  55% {
    opacity: 0;
    transform: scale(1.1);
  }
  95% {
    opacity: 0;
    transform: scale(1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes hero-scroll-dot {
  0% {
    opacity: 0;
    transform: translateY(0);
  }
  12% {
    opacity: 1;
    transform: translateY(0);
  }
  70% {
    opacity: 1;
    transform: translateY(15px);
  }
  88% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 0;
    transform: translateY(0);
  }
}
@keyframes about-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-33.333%);
  }
}
@keyframes about-marquee-reverse {
  0% {
    transform: translateX(-33.333%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes news-insta-marquee {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes news-typo-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* Component start */
.c-primary-btn {
  --c-primary-btn-line-width: 244px;
  --c-primary-btn-active-line-width: var(--c-primary-btn-line-width);
  --c-primary-btn-column-gap: 4px;
  --c-primary-btn-row-gap: 12px;
  --c-primary-btn-font-size: 1.5rem;
  --c-primary-btn-icon-size: 16px;
  --c-primary-btn-icon-move: 120%;
  --c-primary-btn-icon-easing: cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: flex-start;
  justify-content: center;
  column-gap: var(--c-primary-btn-column-gap);
  row-gap: var(--c-primary-btn-row-gap);
  min-width: var(--c-primary-btn-line-width);
  width: fit-content;
  color: #333333;
  font-family: "Zen Old Mincho", serif;
  font-size: var(--c-primary-btn-font-size);
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
}
.c-primary-btn.en {
  font-family: "Cormorant Garamond", serif;
}
.c-primary-btn::after {
  content: "";
  grid-column: 1/-1;
  justify-self: center;
  width: var(--c-primary-btn-line-width);
  height: 1px;
  background-color: #A3A3A3;
}
.c-primary-btn::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 1;
  width: var(--c-primary-btn-active-line-width);
  height: 1px;
  background-color: #333333;
  transform: translateX(-50%) scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s;
}
.c-primary-btn:hover::before, .c-primary-btn:focus-visible::before {
  transform: translateX(-50%) scaleX(1);
}
.c-primary-btn:hover .c-primary-btn__icon-default, .c-primary-btn:focus-visible .c-primary-btn__icon-default {
  transform: translate(var(--c-primary-btn-icon-move), calc(var(--c-primary-btn-icon-move) * -1));
}
.c-primary-btn:hover .c-primary-btn__icon-next, .c-primary-btn:focus-visible .c-primary-btn__icon-next {
  transform: translate(0, 0);
}

.c-primary-btn__text {
  display: block;
  text-align: right;
}

.c-primary-btn__icon {
  position: relative;
  display: block;
  width: var(--c-primary-btn-icon-size);
  height: var(--c-primary-btn-icon-size);
  overflow: hidden;
}
.c-primary-btn__icon img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  transition: transform 0.45s var(--c-primary-btn-icon-easing);
}

.c-primary-btn__icon-default {
  transform: translate(0, 0);
}

.c-primary-btn__icon-next {
  transform: translate(calc(var(--c-primary-btn-icon-move) * -1), var(--c-primary-btn-icon-move));
}

/* Component end */
/* Header start */
.c-header {
  position: fixed;
  top: 24px;
  right: 24px;
  left: 24px;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 45px;
  transition: opacity 0.22s ease;
}

.c-header__logo {
  width: 158px;
  height: 45px;
}
.c-header__logo a,
.c-header__logo img {
  display: block;
  width: 100%;
  height: 100%;
}
.c-header__logo .c-header__logo-mark {
  display: none;
}

.c-header__nav {
  display: flex;
  align-items: center;
  gap: 24px;
}

.c-float-header__actions {
  display: flex;
  align-items: center;
  pointer-events: auto;
}

.c-header__nav-list {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.c-header__nav-link,
.c-header__contact-button,
.c-float-header__contact-button {
  color: #FFFFFF;
  text-decoration: none;
}

.c-header__nav-link {
  --roll-height: 16px;
  --roll-gap: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  line-height: 1;
  white-space: nowrap;
  transition: color 0.35s ease, background 0.35s ease, border-color 0.35s ease;
}

.c-header__contact-button,
.c-float-header__contact-button {
  --roll-height: 16px;
  --roll-gap: 3px;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  width: 128px;
  height: 44px;
  border-radius: 56px;
  line-height: 1;
  white-space: nowrap;
  transition: color 0.35s ease, background 0.35s ease, border-color 0.35s ease;
}

.c-header__roll-text,
.c-float-header__roll-text {
  display: block;
  overflow: hidden;
  height: var(--roll-height);
}

.c-header__roll-text-inner,
.c-float-header__roll-text-inner {
  display: flex;
  flex-direction: column;
  gap: var(--roll-gap);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-header__nav-link:hover .c-header__roll-text-inner,
.c-header__nav-link:focus-visible .c-header__roll-text-inner,
.c-header__contact-button:hover .c-header__roll-text-inner,
.c-header__contact-button:focus-visible .c-header__roll-text-inner,
.c-float-header__contact-button:hover .c-float-header__roll-text-inner,
.c-float-header__contact-button:focus-visible .c-float-header__roll-text-inner {
  transform: translateY(calc((var(--roll-height) + var(--roll-gap)) * -1));
}

.c-header__roll-text-en,
.c-float-header__roll-text-en {
  flex: 0 0 var(--roll-height);
  font-weight: 500;
  font-size: 1.7rem;
  font-family: "Cormorant Garamond", serif;
  line-height: var(--roll-height);
  letter-spacing: 1px;
  text-align: center;
}

.c-header__roll-text-ja,
.c-float-header__roll-text-ja {
  flex: 0 0 var(--roll-height);
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Zen Old Mincho", serif;
  line-height: var(--roll-height);
  text-align: center;
}

.c-header__roll-text-ja.en,
.c-float-header__roll-text-ja.en {
  font-size: 1.7rem;
}

.c-header__contact-button--dark {
  border: 1px solid rgba(255, 255, 255, 0.5);
}
.c-header__contact-button--dark:hover, .c-header__contact-button--dark:focus-visible {
  border-color: #FFFFFF;
  background: #FFFFFF;
  color: #333333;
}

.c-float-header__contact-button--light {
  background: linear-gradient(239.32deg, #0075B4 23.22%, #3DA570 73.91%);
}
.c-float-header__contact-button--light:hover, .c-float-header__contact-button--light:focus-visible {
  background: linear-gradient(239.32deg, #039DF0 23.22%, #4CD690 73.91%);
}

.c-header__language-button,
.c-float-header__language-button {
  display: none;
}

.c-sns-links {
  position: fixed;
  bottom: 32px;
  left: 32px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  mix-blend-mode: exclusion;
}

.c-sns-links__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  transition: opacity 0.35s ease;
}
.c-sns-links__link:hover, .c-sns-links__link:focus-visible {
  opacity: 0.72;
}
.c-sns-links__link img {
  display: block;
  width: 16px;
  height: 16px;
}

.c-language-switcher {
  position: fixed;
  right: 32px;
  bottom: 32px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 45px;
  mix-blend-mode: exclusion;
}

.c-language-switcher__current,
.c-language-switcher__link {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 25px;
  padding: 0 8px;
  color: #FFFFFF;
  font-weight: 500;
  font-size: 1.7rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  white-space: nowrap;
}

.c-language-switcher__current {
  min-width: 32px;
  opacity: 0.4;
}

.c-language-switcher__divider {
  display: block;
  width: 12px;
  height: 0.8px;
  background: #FFFFFF;
  opacity: 0.4;
}

.c-language-switcher__link {
  min-width: 39px;
  border: 1px solid transparent;
  border-radius: 16px;
  text-decoration: none;
  transition: border-color 0.35s ease, opacity 0.35s ease;
}
.c-language-switcher__link:hover, .c-language-switcher__link:focus-visible {
  border-color: #FFFFFF;
}

.c-menu-trigger {
  position: fixed;
  top: 50%;
  right: 32px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  width: 32px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  mix-blend-mode: exclusion;
  transform: translateY(-50%);
  --trigger-draw-duration: 0.3s;
  --trigger-draw-stagger: 0.06s;
}
.c-menu-trigger span {
  --trigger-draw-delay: 0s;
  position: relative;
  display: block;
  overflow: hidden;
  height: 2px;
  background: transparent;
}
.c-menu-trigger span::before, .c-menu-trigger span::after {
  position: absolute;
  inset: 0;
  background: #FFFFFF;
  transition: transform var(--trigger-draw-duration) ease;
  content: "";
}
.c-menu-trigger span::before {
  transform: scaleX(1);
  transform-origin: right center;
  transition-delay: calc(var(--trigger-draw-duration) + var(--trigger-draw-delay));
}
.c-menu-trigger span::after {
  transform: scaleX(0);
  transform-origin: left center;
  transition-delay: var(--trigger-draw-delay);
}
.c-menu-trigger span:first-child {
  width: 32px;
}
.c-menu-trigger span:last-child {
  width: 24px;
}
.c-menu-trigger:hover span::before, .c-menu-trigger:focus-visible span::before {
  transform: scaleX(0);
  transition-delay: var(--trigger-draw-delay);
}
.c-menu-trigger:hover span::after, .c-menu-trigger:focus-visible span::after {
  transform: scaleX(1);
  transition-delay: calc(var(--trigger-draw-duration) + var(--trigger-draw-delay));
}

.c-header__menu-trigger,
.c-float-header__menu-trigger {
  display: none;
}

.c-float-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 32px 32px 0;
  pointer-events: none;
}
.c-float-header a {
  pointer-events: auto;
}

.c-float-header--blend {
  mix-blend-mode: exclusion;
}

.c-float-header--blend .c-float-header__logo img,
.c-float-header--blend .c-float-header__language-button,
.c-float-header--blend .c-float-header__menu-trigger {
  mix-blend-mode: normal;
}

.c-float-header__contact-placeholder {
  display: block;
  flex: 0 0 128px;
  width: 128px;
  height: 44px;
  pointer-events: none;
}

.c-float-header__contact-button--sticky {
  position: sticky;
  top: 32px;
  z-index: 11;
  margin: -44px 32px 0 auto;
  pointer-events: auto;
  mix-blend-mode: normal;
}

.c-float-header__logo,
.c-float-header__language-button,
.c-float-header__menu-trigger {
  color: #FFFFFF;
}

.c-float-header__logo img,
.c-float-header__language-button,
.c-float-header__menu-trigger {
  position: relative;
  mix-blend-mode: exclusion;
}

.c-float-header__logo {
  display: block;
  width: 35px;
  height: 29px;
}
.c-float-header__logo img {
  display: block;
  width: 100%;
  height: 100%;
}

.c-float-header__logo .c-float-header__logo-full {
  display: none;
}

/* Header scrolled state (c-header adopts the former c-float-header layout) */
.c-header__contact-placeholder {
  display: block;
  flex: 0 0 128px;
  width: 128px;
  height: 44px;
  pointer-events: none;
}

.c-header__contact-button--sticky {
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 999;
  box-sizing: border-box;
  mix-blend-mode: normal;
  transition: opacity 0.22s ease, color 0.35s ease, background 0.35s ease, border-color 0.35s ease;
}

/* mix-blend-mode is a discrete property, so it cannot be transitioned. The blend
   flip (plus the layout/logo swap that rides along with it) is therefore hidden
   behind a short opacity dip driven from script.js — see HEADER_FADE_MS there,
   which must stay in sync with the transition durations above. */
.is-header-switching .c-header,
.is-header-switching .c-header__contact-button--sticky {
  opacity: 0;
}

.c-header.is-scrolled {
  box-sizing: border-box;
  align-items: flex-start;
  height: auto;
  mix-blend-mode: exclusion;
  pointer-events: none;
}
.c-header.is-scrolled a,
.c-header.is-scrolled button {
  pointer-events: auto;
}
.c-header.is-scrolled .c-header__nav-list {
  display: none;
}
.c-header.is-scrolled .c-header__logo {
  width: 35px;
  height: 29px;
}
.c-header.is-scrolled .c-header__logo .c-header__logo-mark {
  display: block;
}
.c-header.is-scrolled .c-header__logo .c-header__logo-full {
  display: none;
}

.c-header.is-scrolled ~ .c-header__contact-button--sticky {
  top: 24px;
  right: 24px;
  border: none;
  background: linear-gradient(239.32deg, #0075B4 23.22%, #3DA570 73.91%);
  color: #FFFFFF;
}
.c-header.is-scrolled ~ .c-header__contact-button--sticky:hover, .c-header.is-scrolled ~ .c-header__contact-button--sticky:focus-visible {
  border-color: transparent;
  background: linear-gradient(239.32deg, #039DF0 23.22%, #4CD690 73.91%);
  color: #FFFFFF;
}

.c-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  justify-content: flex-end;
  background-color: rgba(0, 0, 0, 0.6);
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.is-menu-open .c-menu-overlay {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.c-menu-overlay__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 32px;
  box-sizing: border-box;
  width: min(400px, 100vw);
  min-height: 100dvh;
  padding: 72px 64px 0;
  overflow-y: auto;
  background: #F7F3EC;
  transform: translateX(100%);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.is-menu-open .c-menu-overlay__inner {
  transform: translateX(0);
}

.c-menu-overlay__header {
  display: none;
}

.c-menu-overlay__logo {
  display: block;
  width: 134.116px;
  height: 38px;
  mix-blend-mode: exclusion;
}
.c-menu-overlay__logo img {
  display: block;
  width: 100%;
  height: 100%;
}

.c-menu-overlay__header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.c-menu-overlay__header-language {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 45px;
  height: 33px;
  border: 1px solid #FFFFFF;
  border-radius: 16px;
  color: #FFFFFF;
  font-weight: 500;
  font-size: 1.5rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  text-decoration: none;
  mix-blend-mode: exclusion;
}

.c-menu-overlay__header-contact {
  --roll-height: 15px;
  --roll-gap: 3px;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 82px;
  height: 33px;
  padding: 0;
  border-radius: 56px;
  background: linear-gradient(239.32deg, #0075B4 23.22%, #3DA570 73.91%);
  color: #FFFFFF;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  transition: color 0.35s ease, background 0.35s ease;
}
.c-menu-overlay__header-contact:hover .c-menu-overlay__header-contact-text-inner, .c-menu-overlay__header-contact:focus-visible .c-menu-overlay__header-contact-text-inner {
  transform: translateY(calc((var(--roll-height) + var(--roll-gap)) * -1));
}

.c-menu-overlay__header-contact-text {
  display: block;
  overflow: hidden;
  height: var(--roll-height);
  width: 100%;
  white-space: nowrap;
}

.c-menu-overlay__header-contact-text-inner {
  display: flex;
  flex-direction: column;
  gap: var(--roll-gap);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-menu-overlay__header-contact-text-en,
.c-menu-overlay__header-contact-text-ja {
  flex: 0 0 var(--roll-height);
  font-weight: 500;
  font-size: 1.5rem;
  line-height: var(--roll-height);
  text-align: center;
  white-space: nowrap;
}

.c-menu-overlay__header-contact-text-en {
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 1px;
}

.c-menu-overlay__header-contact-text-ja {
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 0;
}

.c-menu-overlay__header-close {
  display: flex;
  flex: 0 0 27px;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  margin-left: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  mix-blend-mode: exclusion;
}
.c-menu-overlay__header-close span {
  position: absolute;
  display: block;
  width: 27px;
  height: 1px;
  background: #FFFFFF;
}
.c-menu-overlay__header-close span:first-child {
  transform: rotate(25deg);
}
.c-menu-overlay__header-close span:last-child {
  transform: rotate(-25deg);
}

.c-menu-overlay__nav {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 100%;
}

.c-menu-overlay__nav-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.c-menu-overlay__nav-link {
  display: flex;
  align-items: center;
  gap: 14px;
  width: fit-content;
  color: #333333;
  line-height: 1.5;
  text-decoration: none;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.c-menu-overlay__nav-en {
  font-weight: 500;
  font-size: 1.8rem;
  font-family: "Cormorant Garamond", serif;
}

.c-menu-overlay__nav-ja {
  color: #A3A3A3;
  font-weight: 400;
  font-size: 1.1rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
}

.c-menu-overlay__contact {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  border: 1px solid rgba(51, 51, 51, 0.15);
  color: #333333;
  font-weight: 500;
  font-size: 1.4rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.35s ease, background 0.35s ease, border-color 0.35s ease;
}
.c-menu-overlay__contact:hover, .c-menu-overlay__contact:focus-visible {
  border-color: #FFFFFF;
  background: #FFFFFF;
  color: #333333;
}
.c-menu-overlay__contact:hover .c-menu-overlay__contact-arrow, .c-menu-overlay__contact:focus-visible .c-menu-overlay__contact-arrow {
  transform: translate(8px, -50%);
}

.c-menu-overlay__contact-arrow {
  position: absolute;
  top: 50%;
  right: 35px;
  display: block;
  width: 11px;
  height: 5px;
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}

.c-menu-overlay__language {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #333333;
  font-weight: 500;
  font-size: 1.6rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
}
.c-menu-overlay__language a {
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 16px;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.35s ease;
}
.c-menu-overlay__language a:hover, .c-menu-overlay__language a:focus-visible {
  border-color: #333333;
}

.c-menu-overlay__language-current,
.c-menu-overlay__language-divider {
  opacity: 0.2;
}

.c-menu-overlay__language-current,
.c-menu-overlay__language a {
  padding: 4px 8px;
}

.c-menu-overlay__language-divider {
  width: 1px;
  height: 12px;
  background: #333333;
}

.c-menu-overlay__footer {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
  margin-top: auto;
  padding-top: 32px;
  border-top: 1px solid rgba(51, 51, 51, 0.08);
}

.c-menu-overlay__footer-top {
  display: flex;
  align-items: center;
  gap: 24px;
}

.c-menu-overlay__social-list {
  display: flex;
  align-items: center;
  gap: 16px;
}
.c-menu-overlay__social-list a,
.c-menu-overlay__social-list span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: #333333;
  font-size: 1.4rem;
  line-height: 1;
  text-decoration: none;
}
.c-menu-overlay__social-list a img,
.c-menu-overlay__social-list span img {
  display: block;
  width: 16px;
  height: 16px;
}

.c-menu-overlay__privacy {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 16px;
  padding-left: 24px;
  border-left: 1px solid rgba(51, 51, 51, 0.08);
  color: #333333;
  font-weight: 500;
  font-size: 1.2rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
}
.c-menu-overlay__privacy::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 24px;
  height: 1px;
  background: #A3A3A3;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.35s ease;
  content: "";
}
.c-menu-overlay__privacy:hover::after, .c-menu-overlay__privacy:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.c-menu-overlay__copyright {
  margin: 0;
  padding: 40px 0;
  border-top: 1px solid rgba(51, 51, 51, 0.08);
  color: #333333;
  font-weight: 400;
  font-size: 1.1rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
}

.c-menu-overlay__close {
  position: absolute;
  top: 50%;
  right: 32px;
  display: block;
  width: 32px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
}
.c-menu-overlay__close span {
  position: absolute;
  top: 11px;
  left: 0;
  display: block;
  width: 32px;
  height: 2px;
  background: #333333;
}
.c-menu-overlay__close span:first-child {
  transform: rotate(22deg);
}
.c-menu-overlay__close span:last-child {
  transform: rotate(-22deg);
}

@media screen and (max-width: 1280px) {
  .c-header__nav {
    gap: 12px;
  }
  .c-header__nav-list {
    gap: 12px;
  }
  .c-header__contact-button,
  .c-float-header__contact-button {
    width: 100px;
  }
  .c-header__contact-placeholder {
    flex-basis: 100px;
    width: 100px;
  }
  .c-header__roll-text-en,
  .c-float-header__roll-text-en {
    font-size: 1.5rem;
  }
  .c-header__roll-text-ja,
  .c-float-header__roll-text-ja {
    font-size: 1.2rem;
  }
  .c-header__roll-text-ja.en,
  .c-float-header__roll-text-ja.en {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1024px) {
  .c-header__nav-list {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .c-header,
  .c-float-header {
    right: 0;
    left: 0;
    box-sizing: border-box;
    align-items: center;
    height: 64px;
    padding: 0 20px;
  }
  .c-header {
    top: 0;
  }
  .c-header__logo,
  .c-float-header__logo {
    width: 134px;
    height: 38px;
  }
  .c-header__nav,
  .c-float-header__actions {
    gap: 8px;
  }
  .c-float-header {
    top: 0;
  }
  .c-float-header__contact-placeholder {
    flex-basis: 82px;
    width: 82px;
    height: 33px;
  }
  .c-float-header__contact-button--sticky {
    top: 15.5px;
    margin-top: -48.5px;
    margin-right: 67px;
    margin-bottom: 15.5px;
  }
  .c-float-header__logo-mark {
    display: none !important;
  }
  .c-float-header__logo .c-float-header__logo-full {
    display: block;
  }
  /* Header scrolled state keeps the mobile header layout, only blend + button change */
  .c-header__contact-placeholder {
    flex-basis: 82px;
    width: 82px;
    height: 33px;
  }
  .c-header__contact-button--sticky,
  .c-header.is-scrolled ~ .c-header__contact-button--sticky {
    top: 15.5px;
    right: 67px;
  }
  .c-header.is-scrolled {
    align-items: center;
    height: 64px;
    padding: 0 20px;
  }
  .c-header.is-scrolled .c-header__logo {
    width: 134px;
    height: 38px;
  }
  .c-header.is-scrolled .c-header__logo .c-header__logo-mark {
    display: none;
  }
  .c-header.is-scrolled .c-header__logo .c-header__logo-full {
    display: block;
  }
  .c-header__language-button,
  .c-float-header__language-button {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 45px;
    height: 33px;
    border: 1px solid #FFFFFF;
    border-radius: 16px;
    color: #FFFFFF;
    text-decoration: none;
  }
  .c-header__language-button span,
  .c-float-header__language-button span {
    font-weight: 500;
    font-size: 1.5rem;
    font-family: "Cormorant Garamond", serif;
    line-height: 1;
    letter-spacing: 1px;
  }
  .c-header__contact-button,
  .c-float-header__contact-button {
    --roll-height: 15px;
    width: 82px;
    height: 33px;
  }
  .c-header__roll-text-en,
  .c-header__roll-text-ja,
  .c-float-header__roll-text-en,
  .c-float-header__roll-text-ja {
    font-size: 1.5rem;
    line-height: var(--roll-height);
  }
  .c-header__menu-trigger,
  .c-float-header__menu-trigger {
    display: flex;
    position: static;
    flex: 0 0 27px;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    width: 27px;
    height: 27px;
    margin-left: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transform: none;
  }
  .c-header__menu-trigger span,
  .c-float-header__menu-trigger span {
    display: block;
    height: 1px;
    background: transparent;
  }
  .c-header__menu-trigger span:first-child,
  .c-float-header__menu-trigger span:first-child {
    width: 27px;
  }
  .c-header__menu-trigger span:last-child,
  .c-float-header__menu-trigger span:last-child {
    width: 19px;
  }
  .c-header__menu-trigger {
    mix-blend-mode: normal;
  }
  .c-float-header .c-float-header__logo img,
  .c-float-header .c-float-header__language-button,
  .c-float-header .c-float-header__menu-trigger {
    mix-blend-mode: exclusion;
  }
  .c-float-header--blend .c-float-header__logo img,
  .c-float-header--blend .c-float-header__language-button,
  .c-float-header--blend .c-float-header__menu-trigger {
    mix-blend-mode: normal;
  }
  .c-float-header__contact-button--light,
  .c-menu-overlay__header-contact {
    width: 82px;
  }
  .c-float-header__contact-button--light:hover, .c-float-header__contact-button--light:focus-visible,
  .c-menu-overlay__header-contact:hover,
  .c-menu-overlay__header-contact:focus-visible {
    background: #FFFFFF;
    color: #333333;
  }
  .c-menu-trigger--desktop {
    display: none;
  }
  .c-sns-links {
    display: none;
  }
  .c-language-switcher {
    display: none;
  }
  .c-menu-overlay {
    justify-content: stretch;
  }
  .c-menu-overlay__inner {
    width: 100%;
    padding: 0 64px;
  }
  .c-menu-overlay__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    width: calc(100% + 128px);
    height: 64px;
    margin: 0 -64px;
    padding: 0 20px;
    flex: 0 0 64px;
    background-color: #F7F3EC;
  }
  .c-menu-overlay__nav {
    padding-top: 40px;
  }
  .c-menu-overlay__contact {
    max-width: 262px;
  }
  .c-menu-overlay__contact:hover .c-menu-overlay__contact-arrow, .c-menu-overlay__contact:focus-visible .c-menu-overlay__contact-arrow {
    transform: translate(0%, -50%);
  }
  .c-menu-overlay__contact-arrow {
    right: 15px;
  }
  .c-menu-overlay__close--desktop {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-header__roll-text-inner,
  .c-float-header__roll-text-inner,
  .c-menu-overlay__header-contact-text-inner {
    transition: none;
  }
  /* Skip the dip rather than letting it flash: the blend simply snaps, which
     is the behaviour this state had before the fade was introduced. */
  .is-header-switching .c-header,
  .is-header-switching .c-header__contact-button--sticky {
    opacity: 1;
  }
}
/* Header end */
/* Footer start */
.c-footer {
  position: relative;
  padding: 160px 0 48px;
  background: #FFFFFF;
}

.c-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 112px;
}

.c-footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.c-footer__statement {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 2.3rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2.8;
  letter-spacing: 20px;
}
.c-footer__statement.en {
  margin-top: -30px;
  font-family: "Cormorant Garamond", serif;
  line-height: 1.5;
  letter-spacing: 1px;
}

.c-footer__top-actions {
  display: flex;
  align-items: flex-start;
  gap: 64px;
}

.c-footer__nav-list {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
  column-gap: 48px;
  row-gap: 18px;
}

.c-footer__nav-link {
  position: relative;
  display: flex;
  width: fit-content;
  color: #333333;
  font-weight: 400;
  font-size: 1.4rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1.5;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
}
.c-footer__nav-link::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 1px;
  background: #A3A3A3;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.35s ease;
  content: "";
}
.c-footer__nav-link:hover::after, .c-footer__nav-link:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.c-footer__nav-en {
  flex-shrink: 0;
}

.c-footer__nav-ja {
  display: none;
}

.c-footer__contact {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 240px;
  height: 64px;
  border: 1px solid rgba(163, 163, 163, 0.5);
  color: #333333;
  font-weight: 400;
  font-size: 1.4rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  transition: border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), color 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.c-footer__contact:hover, .c-footer__contact:focus-visible {
  border-color: #F0F0F0;
  background-color: #F0F0F0;
}
.c-footer__contact:hover .c-footer__contact-arrow, .c-footer__contact:focus-visible .c-footer__contact-arrow {
  transform: translate(8px, -50%);
}

.c-footer__contact-arrow {
  position: absolute;
  top: 50%;
  right: 24px;
  display: block;
  width: 11px;
  height: 5px;
  transform: translateY(-50%);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-top: 56px;
  border-top: 1px solid rgba(163, 163, 163, 0.25);
}

.c-footer__brand {
  display: flex;
  align-items: center;
  gap: 40px;
}

.c-footer__logo {
  display: block;
  flex: 0 0 147px;
  width: 147px;
  height: auto;
}
.c-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.c-footer__address {
  margin: 0;
  color: #333333;
  font-weight: 400;
  font-size: 1.3rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 1.5;
}
.c-footer__address.en {
  font-family: "Cormorant Garamond", serif;
}

.c-footer__language,
.c-footer__social-list {
  display: none;
}

.c-footer__meta {
  display: flex;
  align-items: flex-end;
  gap: 48px;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 1px;
  white-space: nowrap;
}

.c-footer__meta-row {
  display: contents;
}

.c-footer__privacy {
  position: relative;
  display: inline-flex;
  color: #333333;
  font-weight: 400;
  font-size: 1.2rem;
  text-decoration: none;
  text-transform: uppercase;
}
.c-footer__privacy::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 1px;
  background: #A3A3A3;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.35s ease;
  content: "";
}
.c-footer__privacy:hover::after, .c-footer__privacy:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.c-footer__copyright {
  margin: 0;
  color: #A3A3A3;
  font-weight: 400;
  font-size: 1.1rem;
}

@media screen and (max-width: 1024px) {
  .c-footer__top {
    flex-direction: column;
    gap: 64px;
  }
  .c-footer__top-actions {
    gap: 40px;
  }
  .c-footer__statement {
    letter-spacing: 14px;
  }
  .c-footer__contact {
    width: 200px;
  }
  .c-footer__bottom {
    flex-direction: column;
  }
  .c-footer__meta {
    flex-direction: column;
    align-items: center;
  }
}
@media screen and (max-width: 767px) {
  .c-footer {
    padding: 120px 0 0;
  }
  .c-footer__inner {
    gap: 72px;
    max-width: 278px;
    margin-inline: auto;
  }
  .c-footer__top {
    flex-direction: column;
    align-items: stretch;
    gap: 72px;
  }
  .c-footer__statement {
    align-items: start;
    gap: 0;
    width: calc(100% + 20px);
    font-size: 1.8rem;
    line-height: 2.4;
    letter-spacing: 15px;
  }
  .c-footer__statement::after {
    display: block;
    width: 32px;
    height: 1px;
    margin-top: 32px;
    margin-right: auto;
    background: rgba(163, 163, 163, 0.25);
    content: "";
  }
  .c-footer__statement.en {
    margin-top: unset;
    font-size: 2rem;
  }
  .c-footer__top-actions {
    flex-direction: column;
    gap: 48px;
  }
  .c-footer__nav-list {
    display: flex;
    flex-direction: column;
    gap: 23px;
  }
  .c-footer__nav-link {
    align-items: center;
    gap: 14px;
    font-weight: 500;
    font-size: 1.6rem;
  }
  .c-footer__nav-ja {
    display: block;
    color: #A3A3A3;
    font-weight: 400;
    font-size: 1.1rem;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    letter-spacing: 1px;
    text-transform: none;
  }
  .c-footer__contact {
    width: 100%;
    height: 48px;
    border-color: rgba(51, 51, 51, 0.15);
    font-weight: 500;
  }
  .c-footer__contact:hover, .c-footer__contact:focus-visible {
    border-color: #FFFFFF;
    background-color: #FFFFFF;
  }
  .c-footer__contact-arrow {
    right: 30px;
  }
  .c-footer__bottom {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding-top: 0;
    border-top: 0;
  }
  .c-footer__brand {
    flex-direction: column;
    gap: 24px;
  }
  .c-footer__logo {
    flex-basis: auto;
    width: 235px;
  }
  .c-footer__address {
    font-size: 1.2rem;
    line-height: 1.75;
    text-align: center;
  }
  .c-footer__language {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #333333;
    font-weight: 500;
    font-size: 1.6rem;
    font-family: "Cormorant Garamond", serif;
    line-height: 1;
    letter-spacing: 1px;
  }
  .c-footer__language-current,
  .c-footer__language-divider {
    opacity: 0.2;
  }
  .c-footer__language-current,
  .c-footer__language-link {
    padding: 4px 8px;
  }
  .c-footer__language-divider {
    width: 1px;
    height: 12px;
    background: #333333;
  }
  .c-footer__language-link {
    box-sizing: border-box;
    border: 1px solid transparent;
    border-radius: 16px;
    color: #333333;
    text-decoration: none;
    transition: border-color 0.35s ease;
  }
  .c-footer__language-link:hover, .c-footer__language-link:focus-visible {
    border-color: #333333;
  }
  .c-footer__meta {
    flex-direction: column;
    align-items: center;
    gap: 0;
    width: 100%;
    font-weight: 500;
  }
  .c-footer__meta-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    width: 100%;
    padding: 24px 0;
    border-top: 1px solid rgba(163, 163, 163, 0.25);
    border-bottom: 1px solid rgba(163, 163, 163, 0.25);
  }
  .c-footer__social-list {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .c-footer__social-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
  }
  .c-footer__social-list img {
    display: block;
    width: 16px;
    height: 16px;
  }
  .c-footer__privacy {
    display: flex;
    align-items: center;
    min-height: 16px;
    padding-left: 24px;
    border-left: 1px solid rgba(163, 163, 163, 0.25);
    font-weight: 500;
  }
  .c-footer__privacy::after {
    left: 24px;
  }
  .c-footer__copyright {
    width: 100%;
    padding: 40px 0;
    font-size: 1rem;
    text-align: center;
  }
}
/* Footer end */
/* Top page start */
.p-top {
  position: relative;
  background-color: #333333;
}

.p-top__bg,
.p-top__hero-bg,
.p-top__bg-slide,
.p-top__hero-bg-slide {
  position: absolute;
  inset: 0;
}

.p-top__bg {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: calc(100svh + 73px);
  overflow: hidden;
  pointer-events: none;
}

.p-top__hero {
  position: relative;
  z-index: 1;
  overflow: hidden;
  width: 100%;
  height: calc(100svh + 73px);
  color: #FFFFFF;
}

.p-top__hero-bg {
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.p-top__bg-slide,
.p-top__hero-bg-slide {
  animation: hero-bg-fade-scale 12s linear infinite;
  transform-origin: center;
}
.p-top__bg-slide img,
.p-top__hero-bg-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-top__bg-slide--second,
.p-top__hero-bg-slide--second {
  animation-delay: -6s;
}

.p-top__hero-copy {
  position: absolute;
  top: 50%;
  left: clamp(40px, 7.64vw, 110px);
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 39px;
  color: #FFFFFF;
}

.p-top__hero-heading {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-weight: 500;
  font-size: 2.6rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 1.5;
  letter-spacing: 45px;
}
.p-top__hero-heading.en {
  font-size: 3.3rem;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 1px;
  gap: 0;
}
.p-top__hero-heading p {
  margin: 0;
}

.p-top__hero-sub {
  margin: 0;
  font-weight: 500;
  font-size: 1.2rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1.55;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.p-top__hero-divider {
  position: relative;
  display: block;
  width: 40px;
  height: 1px;
  background: rgba(255, 255, 255, 0.3);
}
.p-top__hero-divider::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 12px;
  height: 1px;
  background: #FFFFFF;
  content: "";
}

.p-top__hero-scroll {
  position: absolute;
  bottom: 131px;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 11px;
  color: #FFFFFF;
  transform: translateX(-50%);
}

.p-top__hero-scroll-mark {
  position: relative;
  display: block;
  width: 5px;
  height: 20px;
}
.p-top__hero-scroll-mark::before, .p-top__hero-scroll-mark::after {
  position: absolute;
  left: 0;
  background: #FFFFFF;
  content: "";
}
.p-top__hero-scroll-mark::before {
  top: 0;
  width: 5px;
  height: 5px;
  animation: hero-scroll-dot 2.5s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}
.p-top__hero-scroll-mark::after {
  top: 0;
  left: 2px;
  width: 1px;
  height: 20px;
  opacity: 0.15;
}

.p-top__hero-scroll-text {
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 2px;
  white-space: nowrap;
}

.p-top__hero-overlay {
  display: none;
}

@media screen and (max-width: 767px) {
  .p-top__bg {
    height: calc(100svh + 25px);
  }
  .p-top__hero {
    height: calc(100svh + 25px);
  }
  .p-top__hero-copy {
    top: 57%;
    left: 40px;
    gap: 40px;
  }
  .p-top__hero-heading {
    gap: 16px;
    font-size: 2rem;
    letter-spacing: 21px;
  }
  .p-top__hero-heading.en {
    font-size: 2.6rem;
    letter-spacing: 0px;
    line-height: 1.1;
  }
  .p-top__hero-sub {
    font-size: 1rem;
    letter-spacing: 2px;
  }
  .p-top__hero-scroll {
    bottom: 79px;
  }
  .p-top__hero-overlay {
    position: absolute;
    top: 0;
    right: 40px;
    left: unset;
    z-index: 2;
    display: block;
    width: 16px;
    height: calc(100svh + 25px);
    pointer-events: none;
    mix-blend-mode: exclusion;
  }
  .p-top__hero-overlay .c-sns-links {
    position: absolute;
    bottom: 80px;
    right: auto;
    left: auto;
    display: flex;
    gap: 16px;
    pointer-events: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-top__bg-slide,
  .p-top__hero-bg-slide {
    animation: none;
  }
  .p-top__bg-slide--second,
  .p-top__hero-bg-slide--second {
    opacity: 0;
  }
  .p-top__hero-scroll-mark::before {
    animation: none;
  }
}
.p-top__sticky-scope {
  position: relative;
  z-index: 1;
  background-color: #F7F3EC;
}

.p-top__about {
  position: relative;
  background-color: #F7F3EC;
}

.p-top__about__content {
  position: relative;
  padding-top: 10px;
}
.p-top__about__content::before {
  position: absolute;
  bottom: 100%;
  left: 0;
  content: "";
  width: 100%;
  height: 73px;
  background-image: url(../img/home/about-wave-decoration.png);
  background-size: cover;
  background-repeat: no-repeat;
}

.p-top__about-marquee {
  display: flex;
  align-items: center;
  width: 100%;
  height: 109px;
  overflow: hidden;
  pointer-events: none;
}

.p-top__about-marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: about-marquee 60s linear infinite;
  will-change: transform;
}

.p-top__about-marquee-text {
  flex: 0 0 auto;
  padding-right: 120px;
  color: #e8e5de;
  font-weight: 400;
  font-size: 10.936rem;
  font-family: "Cinzel Decorative", serif;
  line-height: 1;
  letter-spacing: 12px;
  text-align: center;
  text-transform: capitalize;
  white-space: nowrap;
}

.p-top__about-stage {
  position: relative;
  z-index: 1;
}

.p-top__about-part {
  position: relative;
}

.p-top__about-part--intro {
  padding-block: 120px 186px;
}
.p-top__about-part--intro.en {
  padding-block: 120px 240px;
}

.p-top__about-intro-text {
  position: relative;
  z-index: 2;
  max-width: 912px;
  margin-inline: auto;
  padding-inline: 60px;
}

.p-top__about-image {
  margin: 0;
}
.p-top__about-image picture,
.p-top__about-image img {
  display: block;
  width: 100%;
}

.p-top__about-image--left {
  position: absolute;
  top: 12px;
  left: 0;
  width: clamp(200px, 19.72vw, 284px);
}

.p-top__about-image--right {
  position: absolute;
  bottom: 35px;
  right: 0;
  width: clamp(360px, 39.17vw, 564px);
}

.p-top__about-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  color: #333333;
  font-weight: 500;
  font-size: clamp(2.4rem, 2.014vw, 2.9rem);
  font-family: "Zen Old Mincho", serif;
  line-height: 1.1;
  letter-spacing: 6px;
  text-align: center;
}
.p-top__about-copy.en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.8rem, 3vw, 4rem);
  font-weight: 400;
  letter-spacing: 0;
  gap: 16px;
}
.p-top__about-copy span {
  display: block;
  margin: 0;
}

.p-top__about-text {
  color: #333333;
  font-weight: 400;
  font-size: 1.5rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 2.4;
  letter-spacing: 2px;
}
.p-top__about-text.en {
  max-width: 400px;
  font-size: 1.5rem;
  line-height: 1.5;
  letter-spacing: 0;
}
.p-top__about-text.en p + p {
  margin-top: 26px;
}
.p-top__about-text p {
  margin: 0;
}
.p-top__about-text p + p {
  margin-top: 36px;
}

.p-top__about-text--detail {
  margin: 170px auto 0;
}
.p-top__about-text--detail.en {
  margin: 200px 0 0;
}

.p-top__about-part--closing {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(40px, 7.64vw, 110px);
  box-sizing: border-box;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(32px, 6.8vw, 98px) 112px;
}
.p-top__about-part--closing.en {
  padding-bottom: 74px;
}

.p-top__about-image--bottom {
  flex: 0 1 655px;
  width: clamp(560px, 45.45vw, 655px);
}

.p-top__about-text--second {
  margin-right: clamp(40px, 8.9vw, 128px);
  transform: translateY(-33%);
}
.p-top__about-text--second.en {
  margin-right: 80px;
  margin-bottom: 28px;
}

@media screen and (max-width: 1024px) {
  .p-top__about-intro-text {
    padding-inline: 30px;
  }
  .p-top__about-image--left {
    left: 30px;
  }
  .p-top__about-image--right {
    bottom: 160px;
    right: 30px;
  }
  .p-top__about-part--closing {
    padding: 0 30px 100px;
    gap: 20px;
  }
  .p-top__about-part--closing.en {
    padding-bottom: 100px;
  }
  .p-top__about-text.en {
    max-width: 380px;
  }
  .p-top__about-text--second {
    margin-right: 0;
    transform: unset;
  }
  .p-top__about-text--second.en {
    margin-right: 0px;
  }
}
@media screen and (max-width: 900px) {
  .p-top__about-image--right {
    bottom: 50px;
  }
  .p-top__about-part--intro {
    padding-block: 100px;
  }
  .p-top__about-part--intro.en {
    padding-block: 100px;
  }
  .p-top__about-text--second {
    max-width: 380px;
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-top__about__content {
    padding-top: 30px;
  }
  .p-top__about__content::before {
    height: 25px;
    background-image: url(../img/home/about-wave-decoration-sp.png);
  }
  .p-top__about-marquee {
    height: 53px;
  }
  .p-top__about-marquee-text {
    padding-right: 72px;
    font-size: 5.3rem;
    letter-spacing: 5.82px;
  }
  .p-top__about-stage {
    padding-inline: 20px;
  }
  .p-top__about-part--intro {
    padding-block: 76px 90px;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 0;
  }
  .p-top__about-part--intro.en {
    padding-block: 76px 88px;
  }
  .p-top__about-intro-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: unset;
  }
  .p-top__about-image--left,
  .p-top__about-image--right {
    position: static;
  }
  .p-top__about-image--left {
    width: 250px;
    margin-left: 20px;
  }
  .p-top__about-copy {
    width: 100%;
    gap: 32px;
    margin-top: 44px;
    font-size: 2rem;
    line-height: 1.1;
    letter-spacing: 4.7386px;
  }
  .p-top__about-copy.en {
    font-size: 2.6rem;
    font-weight: 500;
    gap: 14px;
  }
  .p-top__about-text {
    width: 100%;
    font-size: 1.4rem;
    line-height: 2.4;
    letter-spacing: 2px;
    text-align: center;
    white-space: normal;
  }
  .p-top__about-text.en {
    font-size: 1.4rem;
  }
  .p-top__about-text.en p + p {
    margin-top: 21px;
  }
  .p-top__about-text p + p {
    margin-top: 34px;
  }
  .p-top__about-text--detail {
    margin-top: 56px;
  }
  .p-top__about-text--detail.en {
    margin-top: 52px;
  }
  .p-top__about-image--right {
    width: 324px;
    margin-top: 90px;
  }
  .p-top__about-part--closing {
    flex-direction: column-reverse;
    gap: 88px;
    max-width: none;
    padding: 0 0 152px;
  }
  .p-top__about-part--closing.en {
    padding-bottom: 150px;
    gap: 54px;
  }
  .p-top__about-image--bottom {
    flex: none;
    width: 330px;
  }
  .p-top__about-text--second {
    flex: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-top__about-marquee-track,
  .p-top__service-bg-text-track {
    animation: none;
  }
  .p-top__service-bg-layer {
    transition: none;
  }
}
.p-top__service {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  --service-frame-padding-x: clamp(30px, 7.5vw, 108px);
  background-color: #333333;
}

.p-top__service-bg,
.p-top__service-content {
  grid-area: 1/1;
}

.p-top__service-bg {
  position: sticky;
  top: 0;
  align-self: start;
  z-index: 0;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  pointer-events: none;
}

.p-top__service-bg-layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.5s ease;
}
.p-top__service-bg-layer.is-active {
  opacity: 1;
}

.p-top__service-bg img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.p-top__service-content {
  position: relative;
  z-index: 1;
  width: min(960px, 100% - 40px);
  margin-inline: auto;
  padding-top: 50vh;
  padding-bottom: 200px;
}

.p-top__service-frame {
  background: #FFFFFF;
}

.p-top__service-frame--intro {
  display: flex;
  flex-direction: column;
}

.p-top__service-frame--map {
  display: flex;
  align-items: center;
  background: #F7F3EC;
}

.p-top__service-map-layout {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.p-top__service-map-media {
  width: 59%;
  margin: 0;
}
.p-top__service-map-media img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}

.p-top__service-map-copy {
  position: relative;
  padding-block: 45px 20px;
  right: 72px;
  max-width: 364px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.p-top__service-map-copy.en {
  padding-block: 20px 48px;
}

.p-top__service-map-title-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-top__service-map-heading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 2.2rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2;
  letter-spacing: 2px;
}
.p-top__service-map-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.6rem;
  letter-spacing: 0px;
}

.p-top__service-map-label {
  margin: 0;
  color: #A3A3A3;
  font-weight: 500;
  font-size: 1.1rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 1;
}

.p-top__service-map-text {
  margin: 0;
  color: #6B6B6B;
  font-weight: 400;
  font-size: 1.5rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 2.2;
}
.p-top__service-map-text.en {
  line-height: 1.5;
  letter-spacing: 0px;
}

.p-top__service-frame--bottom {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0 var(--service-frame-padding-x) 144px;
}

.p-top__service-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 87px;
  padding: 160px var(--service-frame-padding-x) 158px;
  overflow: hidden;
}
.p-top__service-intro.en {
  gap: 160px;
}

.p-top__service-section-label {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 2px;
}
.p-top__service-section-label::before {
  display: block;
  width: 5px;
  height: 5px;
  background: #333333;
  content: "";
}

.p-top__service-lead {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 88px;
  width: 100%;
}
.p-top__service-lead.en {
  gap: 110px;
}

.p-top__service-bg-text {
  position: absolute;
  top: 88px;
  left: calc(var(--service-frame-padding-x) * -1);
  z-index: 0;
  display: flex;
  flex-direction: column;
  width: calc(100% + var(--service-frame-padding-x) * 2);
  margin: 0;
  color: #FFFFFF;
  font-weight: 400;
  font-size: 10.936rem;
  font-family: "Cinzel Decorative", serif;
  line-height: 0.8;
  mix-blend-mode: exclusion;
  opacity: 0.04;
  pointer-events: none;
}
.p-top__service-bg-text.en {
  top: -44px;
}

.p-top__service-bg-text-row {
  display: flex;
  align-items: center;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}

.p-top__service-bg-text-row--bottom {
  margin-top: -2px;
}

.p-top__service-bg-text-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}

.p-top__service-bg-text-row--top .p-top__service-bg-text-track {
  animation: about-marquee 60s linear infinite;
}

.p-top__service-bg-text-row--bottom .p-top__service-bg-text-track {
  animation: about-marquee-reverse 60s linear infinite;
}

.p-top__service-bg-text-item {
  flex: 0 0 auto;
  padding-right: 120px;
  white-space: nowrap;
}

.p-top__service-lead-heading {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 3rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 1;
}
.p-top__service-lead-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 5.2rem;
  letter-spacing: 6px;
}
.p-top__service-lead-heading span {
  display: block;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0px;
  white-space: nowrap;
}
.p-top__service-lead-heading span:nth-child(2) {
  padding-top: 24px;
}

.p-top__service-lead-text,
.p-top__service-card-text,
.p-top__service-quality-text {
  margin: 0;
  color: #6B6B6B;
  font-weight: 400;
  font-size: 1.5rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 2.2;
}
.p-top__service-lead-text.en,
.p-top__service-card-text.en,
.p-top__service-quality-text.en {
  line-height: 1.5;
  font-size: 1.5rem;
}

.p-top__service-quality-text {
  font-size: 1.4rem;
}

.p-top__service-lead-text {
  position: relative;
  z-index: 1;
  text-align: center;
}
.p-top__service-lead-text.en {
  max-width: 472px;
}
.p-top__service-lead-text.en p + p {
  margin-top: 26px;
}

.p-top__service-feature-list,
.p-top__service-quality-list {
  display: flex;
  flex-direction: column;
}

.p-top__service-feature-list {
  padding: 0 var(--service-frame-padding-x) 72px;
}

.p-top__service-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 4.45vw, 64px);
  padding: 144px 0;
  border-top: 1px solid rgba(163, 163, 163, 0.25);
}

.p-top__service-card-copy {
  display: flex;
  flex: 1 1 39%;
  flex-direction: column;
  max-width: 291px;
  min-width: 0;
  gap: 40px;
}

.p-top__service-card-title-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-top__service-card-heading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 2.4rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2;
  letter-spacing: 2px;
}
.p-top__service-card-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.6rem;
  line-height: 1.5;
  letter-spacing: 0px;
  white-space: nowrap;
}

.p-top__service-card-label {
  margin: 0;
  color: #9B9B97;
  font-weight: 500;
  font-size: 1.1rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 1;
}

.p-top__service-card-media {
  flex: 1 1 50%;
  width: auto;
  max-width: 372px;
  margin: 0;
  overflow: hidden;
}
.p-top__service-card-media img {
  display: block;
  width: 100%;
  height: auto;
}

.p-top__service-quality-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  padding: 144px 0;
  text-align: center;
}
.p-top__service-quality-card:not(:first-child) {
  border-top: 1px solid rgba(163, 163, 163, 0.25);
}

.p-top__service-quality-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 25px;
}

.p-top__service-quality-title-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
}

.p-top__service-quality-label {
  margin: 0;
  color: #A3A3A3;
  font-weight: 500;
  font-size: 1.1rem;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 1;
}

.p-top__service-quality-heading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 2.2rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2;
  letter-spacing: 2px;
}
.p-top__service-quality-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.6rem;
  line-height: 1.5;
  letter-spacing: 0px;
}

.p-top__service-quality-media {
  width: 100%;
  margin: 0;
  overflow: hidden;
}
.p-top__service-quality-media img {
  display: block;
  width: 100%;
  height: auto;
}

.p-top__service-contact-copy {
  color: #333333;
  font-weight: 500;
  font-size: 1.8rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2;
  letter-spacing: 1px;
  text-align: center;
}
.p-top__service-contact-copy.en {
  font-family: "Cormorant Garamond", serif;
  line-height: 1.75;
  letter-spacing: 0px;
}

.p-top__service-contact-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 96px;
  margin-top: 56px;
  padding: 16px 48px;
  background: #333333;
  color: #FFFFFF;
  font-weight: 500;
  font-size: 1.6rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 2px;
  text-decoration: none;
  transition: background-color 0.35s ease;
}
.p-top__service-contact-button img {
  position: absolute;
  top: 50%;
  right: 40px;
  width: 11px;
  height: 5px;
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}
.p-top__service-contact-button:hover, .p-top__service-contact-button:focus-visible {
  background-color: #6B6B6B;
}
.p-top__service-contact-button:hover img, .p-top__service-contact-button:focus-visible img {
  transform: translate(8px, -50%);
}

@media screen and (max-width: 1024px) {
  .p-top__service {
    --service-frame-padding-x: 30px;
  }
  .p-top__service-intro {
    padding: 100px var(--service-frame-padding-x);
  }
  .p-top__service-card,
  .p-top__service-quality-card {
    padding: 100px 0;
  }
  .p-top__service-content {
    padding-bottom: 100px;
  }
  .p-top__service-frame--bottom {
    padding: 0 var(--service-frame-padding-x) 100px;
  }
  .p-top__service-map-copy {
    right: 30px;
  }
  .p-top__service-feature-list {
    padding: 0 var(--service-frame-padding-x);
  }
}
@media screen and (max-width: 900px) {
  .p-top__service-content {
    padding-top: 200px;
  }
  .p-top__service-map-layout {
    flex-direction: column;
  }
  .p-top__service-map-media {
    flex: none;
    width: 100%;
    max-width: none;
  }
  .p-top__service-map-copy {
    position: unset;
    transform: unset;
    align-items: center;
    max-width: unset;
    width: 100%;
    padding: 0 20px 80px;
    gap: 48px;
    text-align: center;
  }
  .p-top__service-map-copy.en {
    padding-block: 0 80px;
  }
  .p-top__service-lead-heading {
    font-size: 2.8rem;
  }
  .p-top__service-lead-heading.en {
    font-size: 2.8rem;
    letter-spacing: 3px;
  }
  .p-top__service-bg-text {
    font-size: 8rem;
  }
  .p-top__service-card-heading {
    font-size: 2.2rem;
  }
  .p-top__service-map-title-group {
    align-items: center;
  }
  .p-top__service-map-heading {
    font-size: 2rem;
  }
  .p-top__service-map-heading.en {
    font-size: 2rem;
    line-height: 1.5;
  }
  .p-top__service-map-text {
    font-size: 1.4rem;
    text-align: left;
  }
  .p-top__service-map-text.en {
    text-align: center;
  }
}
@media screen and (max-width: 767px) {
  .p-top__service-content {
    width: calc(100% - 60px);
    padding-top: 50vh;
    padding-bottom: 160px;
  }
  .p-top__service-intro {
    gap: 40px;
    padding: 120px 20px 80px;
  }
  .p-top__service-intro.en {
    gap: 60px;
  }
  .p-top__service-section-label {
    gap: 13px;
    font-size: 1.1rem;
    text-align: center;
  }
  .p-top__service-lead {
    gap: 90px;
  }
  .p-top__service-lead.en {
    gap: 78px;
  }
  .p-top__service-bg-text {
    top: 78px;
    left: -20px;
    width: calc(100% + 40px);
    height: 132px;
    font-size: 5rem;
  }
  .p-top__service-bg-text.en {
    top: -18px;
  }
  .p-top__service-bg-text-item {
    padding-right: 72px;
  }
  .p-top__service-lead-heading {
    gap: 12px;
    font-size: 2.5rem;
  }
  .p-top__service-lead-text {
    font-size: 1.4rem;
    text-align: center;
  }
  .p-top__service-lead-text.en p + p {
    margin-top: 21px;
  }
  .p-top__service-card-text {
    font-size: 1.4rem;
    text-align: left;
  }
  .p-top__service-frame--bottom {
    padding: 0 20px 120px;
  }
  .p-top__service-feature-list {
    padding: 0 20px;
  }
  .p-top__service-card {
    gap: 80px;
    padding: 80px 0;
    text-align: center;
    flex-direction: column-reverse;
  }
  .p-top__service-card-copy {
    flex: none;
    align-items: center;
    width: 100%;
    max-width: none;
  }
  .p-top__service-card-title-group {
    align-items: center;
    gap: 14px;
  }
  .p-top__service-card-heading {
    font-size: 2rem;
  }
  .p-top__service-card-heading.en {
    font-size: 2rem;
  }
  .p-top__service-card-media {
    flex: none;
    width: 100%;
    max-width: none;
    aspect-ratio: 1;
  }
  .p-top__service-card-media img {
    height: 100%;
    object-fit: cover;
  }
  .p-top__service-quality-card {
    gap: 80px;
    padding: 80px 0;
  }
  .p-top__service-quality-copy {
    max-width: none;
    gap: 40px;
  }
  .p-top__service-quality-title-group {
    gap: 26px;
  }
  .p-top__service-quality-heading {
    font-size: 2rem;
  }
  .p-top__service-quality-heading.en {
    font-size: 2rem;
    letter-spacing: 1px;
  }
  .p-top__service-lead-text.en,
  .p-top__service-card-text.en,
  .p-top__service-quality-text.en {
    line-height: 1.5;
    font-size: 1.4rem;
  }
  .p-top__service-quality-text {
    font-size: 1.4rem;
    text-align: center;
  }
  .p-top__service-quality-media {
    max-width: none;
    aspect-ratio: 1;
  }
  .p-top__service-quality-media img {
    height: 100%;
    object-fit: cover;
  }
  .p-top__service-contact-copy {
    margin-top: 0;
    padding-inline: 16px;
    font-size: 1.4rem;
  }
  .p-top__service-contact-copy.en {
    padding-inline: 0px;
    font-family: "Zen Old Mincho", serif;
  }
  .p-top__service-contact-button {
    height: 72px;
    margin-top: 40px;
    font-size: 1.4rem;
  }
  .p-top__service-contact-button img {
    right: 25px;
  }
}
.p-top__products {
  width: 100%;
  padding: 160px 0 200px;
  background-color: #F7F3EC;
}

.p-top__products-section-label {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #333333;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.p-top__products-section-label::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  background-color: currentColor;
}

.p-top__products-main {
  display: flex;
  align-items: center;
  width: min(1440px, 100%);
  margin: 80px auto 0;
}

.p-top__products-gallery {
  flex: 0 0 47.22%;
  min-width: 0;
}

.p-top__products-slider {
  width: 100%;
}

.p-top__products-image {
  width: 100%;
  aspect-ratio: 680/854;
  margin: 0;
  overflow: hidden;
  background-color: #DFE1E3;
}
.p-top__products-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.p-top__products-thumbs {
  width: fit-content;
  max-width: 100%;
  margin: 32px auto 0;
}
.p-top__products-thumbs .swiper-wrapper {
  align-items: flex-start;
}

.p-top__products-thumb {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 83px;
  padding: 0;
  border: 1px solid transparent;
  overflow: hidden;
  background-color: transparent;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.3s, border-color 0.3s;
}

.p-top__products-thumb:not(.swiper-slide-thumb-active):hover {
  border-color: #333333;
}

.p-top__products-thumb.swiper-slide-thumb-active {
  opacity: 1;
}

.p-top__products-thumb-image {
  display: block;
  width: 100%;
  height: 100%;
}
.p-top__products-thumb-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.p-top__products-copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  gap: 56px;
  min-width: 0;
  padding-inline: clamp(40px, 8.33vw, 120px);
}

.p-top__products-heading-group {
  display: flex;
  flex-direction: column;
}

.p-top__products-heading {
  display: flex;
  flex-direction: column;
  color: #333333;
  font-family: "Cormorant Garamond", serif;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.p-top__products-subheading {
  color: #333333;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 4px;
}

.p-top__products-lead {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  color: #6B6B6B;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
}
.p-top__products-lead.en {
  line-height: 1.5;
  letter-spacing: 0px;
}

.p-top__products-spec-list {
  width: 100%;
  border-top: 1px solid #E5E5E5;
}

.p-top__products-spec-item {
  padding-block: 8px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  column-gap: 56px;
  min-height: 62px;
  align-items: center;
  border-bottom: 1px solid #E5E5E5;
  color: #333333;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 2px;
}
.p-top__products-spec-item dt,
.p-top__products-spec-item dd {
  margin: 0;
  font-weight: inherit;
  word-break: break-all;
}

.p-top__products-sub {
  width: min(1040px, 100%);
  margin: 160px auto 0;
  padding-inline: 40px;
}

.p-top__products-sub-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42.92%;
  align-items: center;
  min-height: 403px;
  background-color: #FFFFFF;
}

.p-top__products-sub-copy {
  display: flex;
  flex-direction: column;
  gap: 54px;
  min-width: 0;
  padding-inline: clamp(60px, 8.33vw, 120px);
  padding-block: 40px;
}
.p-top__products-sub-copy.en {
  gap: 32px;
}

.p-top__products-heading--sub {
  display: block;
}

.p-top__products-sub-body {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.p-top__products-sub-text {
  display: flex;
  flex-direction: column;
  color: #6B6B6B;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
}
.p-top__products-sub-text.en {
  line-height: 1.5;
  letter-spacing: 0px;
}

.p-top__products-sub-image {
  width: 100%;
  height: 100%;
  min-height: 403px;
  margin: 0;
  overflow: hidden;
  background-color: #D1D1D1;
}
.p-top__products-sub-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

@media screen and (max-width: 1024px) {
  .p-top__products {
    padding: 100px 0;
  }
  .p-top__products-sub {
    margin: 100px auto 0;
  }
  .p-top__products-heading {
    font-size: 3rem;
  }
}
@media screen and (max-width: 900px) {
  .p-top__products-gallery {
    flex: 0 0 50%;
  }
  .p-top__products-copy {
    padding-inline: 30px;
  }
  .p-top__products-sub-copy {
    padding-inline: 40px;
  }
}
@media screen and (max-width: 767px) {
  .p-top__products {
    padding: 160px 0;
  }
  .p-top__products-section-label {
    gap: 14px;
    font-size: 1.1rem;
  }
  .p-top__products-section-label::before {
    width: 4px;
    height: 4px;
  }
  .p-top__products-main {
    flex-direction: column;
    align-items: stretch;
    gap: 56px;
    width: 100%;
    margin-top: 32px;
  }
  .p-top__products-gallery {
    flex: none;
    width: 100%;
  }
  .p-top__products-image {
    aspect-ratio: 390/320;
  }
  .p-top__products-thumbs {
    width: 100%;
    margin: 40px 0 0;
    padding-inline: 20px;
  }
  .p-top__products-thumbs .swiper-wrapper {
    width: max-content;
    margin-inline: auto;
  }
  .p-top__products-thumb {
    width: 64px;
    height: 64px;
  }
  .p-top__products-copy {
    gap: 32px;
    width: 100%;
    padding-inline: 60px;
  }
  .p-top__products-heading-group {
    gap: 12px;
  }
  .p-top__products-heading {
    font-size: 2.8rem;
    line-height: 1.4;
    letter-spacing: 2px;
  }
  .p-top__products-subheading {
    line-height: normal;
    letter-spacing: 2px;
  }
  .p-top__products-lead {
    margin-top: unset;
    display: block;
    line-height: 1.8;
  }
  .p-top__products-lead.en {
    line-height: 1.8;
  }
  .p-top__products-spec-item {
    grid-template-columns: 58px minmax(0, 1fr);
    column-gap: 55px;
    min-height: 62px;
  }
  .p-top__products-sub {
    width: 100%;
    margin-top: 120px;
    padding-inline: 0;
  }
  .p-top__products-sub-inner {
    display: flex;
    flex-direction: column-reverse;
    align-items: stretch;
    min-height: 0;
    background-color: transparent;
  }
  .p-top__products-sub-copy {
    gap: 32px;
    padding: 56px 60px 0;
  }
  .p-top__products-sub-body {
    gap: 32px;
  }
  .p-top__products-sub-text {
    display: block;
    line-height: 1.8;
  }
  .p-top__products-sub-image {
    aspect-ratio: 390/320;
    min-height: 0;
    height: auto;
  }
}
.p-top__column {
  width: 100%;
  padding: 200px 0 160px;
  background-color: #F7F3EC;
}

.p-top__column-wrapper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 80px;
  max-width: 1100px;
  margin-inline: auto;
}

.p-top__column-heading {
  display: flex;
  flex: 0 0 101px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
  width: 101px;
  color: #333333;
  line-height: 1;
}

.p-top__column-heading-en {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1;
}

.p-top__column-heading-ja {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 3px;
}

.p-top__column-content {
  display: flex;
  flex: 0 1 888px;
  flex-direction: column;
  align-items: flex-end;
  gap: 64px;
  max-width: 888px;
  width: 100%;
}

.p-top__column-list {
  width: 100%;
  border-bottom: 1px solid #E5E5E5;
}

.p-top__column-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  width: 100%;
  padding: 48px 0;
  overflow: hidden;
  color: #333333;
  text-decoration: none;
}
.p-top__column-item::before, .p-top__column-item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
}
.p-top__column-item::before {
  background-color: #E5E5E5;
}
.p-top__column-item::after {
  background-color: #333333;
  transform: translateX(-100%);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.p-top__column-item:hover::after, .p-top__column-item:focus-visible::after {
  transform: translateX(0);
}
.p-top__column-item:hover .p-top__column-item-icon-default, .p-top__column-item:focus-visible .p-top__column-item-icon-default {
  transform: translateX(120%);
}
.p-top__column-item:hover .p-top__column-item-icon-next, .p-top__column-item:focus-visible .p-top__column-item-icon-next {
  transform: translateX(0);
}

.p-top__column-item-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
}

.p-top__column-item-title {
  display: block;
  color: #333333;
  font-size: 1.5rem;
  line-height: 1.75;
  letter-spacing: 0;
  word-break: break-word;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.p-top__column-item-date {
  display: block;
  color: #A3A3A3;
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: 0;
}

.p-top__column-item-icon {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 20px;
  border-radius: 16px;
  background-color: #333333;
}

.p-top__column-item-icon-inner {
  position: relative;
  display: block;
  width: 11px;
  height: 5px;
  overflow: hidden;
}
.p-top__column-item-icon-inner img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-top__column-item-icon-default {
  transform: translateX(0);
}

.p-top__column-item-icon-next {
  transform: translateX(-120%);
}

.p-top__column-button {
  --c-primary-btn-line-width: 139.56px;
  --c-primary-btn-active-line-width: 139.56px;
}

@media screen and (max-width: 1024px) {
  .p-top__column {
    padding: 100px 0;
  }
}
@media screen and (max-width: 767px) {
  .p-top__column {
    padding: 160px 0;
  }
  .p-top__column-wrapper {
    flex-direction: column;
    align-items: center;
    gap: 80px;
    max-width: 100%;
  }
  .p-top__column-heading {
    flex-basis: auto;
    align-items: center;
  }
  .p-top__column-heading-en {
    font-size: 2.8rem;
  }
  .p-top__column-heading-ja {
    font-size: 1.2rem;
  }
  .p-top__column-content {
    flex-basis: auto;
    align-items: center;
    gap: 72px;
    max-width: 100%;
  }
  .p-top__column-item {
    gap: 24px;
    padding: 32px 0;
  }
  .p-top__column-item-title {
    font-size: 1.4rem;
  }
  .p-top__column-item-date {
    font-size: 1.3rem;
  }
  .p-top__column-button {
    --c-primary-btn-line-width: 130px;
    --c-primary-btn-active-line-width: 130px;
    --c-primary-btn-column-gap: 2px;
    --c-primary-btn-row-gap: 8px;
    --c-primary-btn-font-size: 1.4rem;
  }
}
.p-top__news {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  padding: 120px 0 0;
  overflow: hidden;
  background-color: #FFFFFF;
}

.p-top__news-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  width: 100%;
}

.p-top__news-title {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  color: #333333;
  line-height: 1;
  white-space: nowrap;
}

.p-top__news-title-en {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1;
}

.p-top__news-title-ja {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 3px;
}

.p-top__news-button {
  --c-primary-btn-line-width: 139.56px;
  --c-primary-btn-active-line-width: 139.56px;
}

.p-top__news-insta {
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
}

.p-top__news-insta-feed {
  width: 100%;
}

.p-top__news-insta-feed.is-fallback {
  width: max-content;
}

.p-top__news-insta-track {
  display: flex;
  width: max-content;
  animation: news-insta-marquee 50s linear infinite;
}

.p-top__news-insta-thumb {
  flex: 0 0 auto;
  width: 376px;
  height: 376px;
  margin: 0;
  overflow: hidden;
  background-color: #DFE1E3;
}
.p-top__news-insta-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.p-top__news-bg-typo {
  position: absolute;
  bottom: -20px;
  left: 0;
  z-index: 2;
  width: 100vw;
  overflow: hidden;
  mix-blend-mode: exclusion;
  pointer-events: none;
}

.p-top__news-bg-typo-track {
  display: flex;
  width: max-content;
  animation: news-typo-marquee 50s linear infinite;
}
.p-top__news-bg-typo-track span {
  display: block;
  flex: 0 0 auto;
  color: #FFFFFF;
  font-family: "Cinzel Decorative", serif;
  font-size: 10.8092rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 21.2052px;
  text-align: center;
  text-transform: capitalize;
  white-space: nowrap;
}

@media screen and (max-width: 1024px) {
  .p-top__news {
    padding: 100px 0 0;
  }
}
@media screen and (max-width: 767px) {
  .p-top__news {
    gap: 40px;
    padding: 80px 0 0;
  }
  .p-top__news-header {
    padding-inline: 10px;
    align-items: center;
    gap: 20px;
  }
  .p-top__news-title {
    gap: 12px;
  }
  .p-top__news-title-en {
    font-size: 2.8rem;
  }
  .p-top__news-title-ja {
    font-size: 1.2rem;
  }
  .p-top__news-button {
    --c-primary-btn-line-width: 108px;
    --c-primary-btn-active-line-width: 108px;
    --c-primary-btn-column-gap: 2px;
    --c-primary-btn-row-gap: 8px;
    --c-primary-btn-font-size: 1.4rem;
  }
  .p-top__news-button.en {
    --c-primary-btn-line-width: 73px;
    --c-primary-btn-active-line-width: 73px;
  }
  .p-top__news-insta-thumb {
    width: 224px;
    height: 224px;
  }
  .p-top__news-bg-typo {
    bottom: -10px;
    left: -4px;
  }
  .p-top__news-bg-typo-track span {
    font-size: 5.605rem;
  }
}
.p-top__flow {
  width: 100%;
  padding: 200px 0;
  overflow: hidden;
  color: #FFFFFF;
  background-image: url("../img/home/flow-bg.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.p-top__flow-section-label {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #FFFFFF;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.p-top__flow-section-label::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  background-color: currentColor;
}

.p-top__flow-content {
  display: flex;
  flex-direction: column;
  gap: 96px;
  width: 100%;
  margin-top: 96px;
}

.p-top__flow-body {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 100%;
}

.p-top__flow-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  width: 100%;
}

.p-top__flow-heading {
  flex: 0 0 auto;
  margin: 0;
  color: #FFFFFF;
  font-family: "Zen Old Mincho", serif;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 4px;
}
.p-top__flow-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 3.4rem;
  letter-spacing: 0px;
}

.p-top__flow-controls {
  display: flex;
  align-items: center;
  gap: 56px;
  flex: 0 1 auto;
}

.p-top__flow-progress.swiper-pagination-progressbar {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  width: min(600px, 42vw);
  height: 1px;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.25);
}

.p-top__flow-progress.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #FFFFFF;
  transform-origin: left center;
}

.p-top__flow-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-top__flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 33px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 17px;
  background-color: transparent;
  cursor: pointer;
  transition: border-color 0.3s, background-color 0.3s, opacity 0.3s;
}
.p-top__flow-arrow img {
  display: block;
  width: 11px;
  height: 5px;
  max-width: none;
}
.p-top__flow-arrow:hover {
  border-color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.08);
}
.p-top__flow-arrow.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
}

.p-top__flow-arrow--prev img {
  transform: rotate(180deg);
}

.p-top__flow-slider {
  width: 100%;
  overflow: visible;
}

.p-top__flow-list {
  align-items: stretch;
}

.p-top__flow-card {
  display: flex;
  flex-direction: column;
  gap: 68px;
  width: 416px;
  height: auto;
  min-height: 320px;
  padding: 56px;
  color: #FFFFFF;
  background-color: rgba(250, 248, 245, 0.21);
}
.p-top__flow-card.en {
  padding: 56px 56px 48px;
}

.p-top__flow-card-number {
  width: 40px;
  margin: 0;
  color: #FFFFFF;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 2px;
  text-align: center;
}

.p-top__flow-card-content {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
}

.p-top__flow-card-title {
  margin: 0;
  color: #FFFFFF;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.9rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
}
.p-top__flow-card-title.en {
  font-family: "Cormorant Garamond", serif;
}

.p-top__flow-card-text {
  color: #FFFFFF;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0;
}
.p-top__flow-card-text.en {
  line-height: 1.5;
}
.p-top__flow-card-text p {
  margin: 0;
}

.p-top__flow-contact {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 104px;
  padding: 16px 48px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: #FFFFFF;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 2px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.3s, border-color 0.3s;
}
.p-top__flow-contact img {
  position: absolute;
  top: 50%;
  right: 48px;
  display: block;
  width: 11px;
  height: 5px;
  max-width: none;
  transform: translateY(-50%);
  transition: right 0.3s;
}
.p-top__flow-contact:hover {
  border-color: #6B6B6B;
  background-color: #6B6B6B;
}
.p-top__flow-contact:hover img {
  right: 40px;
}

@media screen and (max-width: 1024px) {
  .p-top__flow {
    padding: 100px 0;
  }
}
@media screen and (max-width: 900px) {
  .p-top__flow-progress.swiper-pagination-progressbar {
    width: 250px;
  }
  .p-top__flow-progress.swiper-pagination-progressbar.en {
    width: 175px;
  }
}
@media screen and (max-width: 767px) {
  .p-top__flow {
    padding: 160px 0;
    background-image: url("../img/home/flow-bg-sp.jpg");
  }
  .p-top__flow-section-label {
    gap: 14px;
    font-size: 1.1rem;
  }
  .p-top__flow-section-label::before {
    width: 4px;
    height: 4px;
  }
  .p-top__flow-content {
    gap: 80px;
    margin-top: 48px;
  }
  .p-top__flow-body {
    gap: 48px;
  }
  .p-top__flow-header {
    display: block;
  }
  .p-top__flow-heading {
    font-size: 2rem;
    letter-spacing: 4px;
  }
  .p-top__flow-heading.en {
    font-size: 2.4rem;
  }
  .p-top__flow-controls {
    display: none;
  }
  .p-top__flow-slider {
    width: 100%;
    overflow: visible;
  }
  .p-top__flow-list {
    flex-direction: column;
    gap: 8px;
    transform: none !important;
  }
  .p-top__flow-card {
    width: 100% !important;
    height: auto;
    min-height: 0;
    padding: 40px;
    gap: 28px;
  }
  .p-top__flow-card.en {
    padding: 40px;
    min-height: 240px;
  }
  .p-top__flow-card-number {
    font-size: 1.3rem;
  }
  .p-top__flow-card-content {
    gap: 12px;
  }
  .p-top__flow-card-title {
    font-size: 1.8rem;
  }
  .p-top__flow-card-text {
    font-size: 1.3rem;
  }
  .p-top__flow-contact {
    height: 80px;
    font-size: 1.5rem;
  }
  .p-top__flow-contact img {
    right: 30px;
  }
  .p-top__flow-contact:hover img {
    right: 22px;
  }
}
.p-top__company {
  padding: 200px 0 240px;
  background-color: #FFFFFF;
}

.p-top__company-inner {
  width: min(100%, 1100px);
  margin-inline: auto;
}

.p-top__company-layout {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  width: 100%;
}

.p-top__company-left {
  display: flex;
  flex: 0 1 31.73%;
  flex-direction: column;
  justify-content: space-between;
  gap: 80px;
}

.p-top__company-title {
  display: flex;
  flex-direction: column;
  gap: 24px;
  color: #333333;
}

.p-top__company-title-en,
.p-top__company-title-ja {
  margin: 0;
  line-height: 1;
}

.p-top__company-title-en {
  font-weight: 500;
  font-size: 3rem;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 0;
}

.p-top__company-title-ja {
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 3px;
}

.p-top__company-image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 349/482;
}
.p-top__company-image picture,
.p-top__company-image img {
  display: block;
  width: 100%;
  height: 100%;
}
.p-top__company-image img {
  object-fit: cover;
}

.p-top__company-info-list {
  display: flex;
  flex: 0 1 51.27%;
  flex-direction: column;
  margin: 0;
  padding: 1px 0;
}

.p-top__company-info-row {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 40px 0;
  border-bottom: 1px solid rgba(163, 163, 163, 0.25);
  word-break: break-word;
}

.p-top__company-info-label,
.p-top__company-info-value {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
}

.p-top__company-info-label {
  flex: 0 0 140px;
  color: #A3A3A3;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.5;
}

.p-top__company-info-value {
  flex: 1 1 auto;
  min-width: 0;
  color: #333333;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.75;
}

@media screen and (max-width: 1024px) {
  .p-top__company {
    padding: 100px 0;
  }
  .p-top__company-left {
    flex: 0 1 35%;
  }
  .p-top__company-info-list {
    flex: 0 1 56%;
  }
}
@media screen and (max-width: 900px) {
  .p-top__company {
    padding: 160px 0;
  }
  .p-top__company-inner {
    width: 100%;
  }
  .p-top__company-layout {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 48px;
  }
  .p-top__company-left {
    flex: none;
    align-items: center;
    justify-content: flex-start;
    gap: 48px;
    width: 100%;
  }
  .p-top__company-title {
    align-items: center;
    gap: 16px;
  }
  .p-top__company-title-en {
    font-size: 2.8rem;
  }
  .p-top__company-title-ja {
    font-size: 1.2rem;
  }
  .p-top__company-image {
    max-width: 420px;
    width: 100%;
    aspect-ratio: auto;
  }
  .p-top__company-info-list {
    flex: none;
    width: 100%;
    padding: 0;
    border-top: 1px solid rgba(163, 163, 163, 0.25);
  }
  .p-top__company-info-row {
    gap: 16px;
    padding: 28px 0;
  }
  .p-top__company-info-label {
    flex-basis: 92px;
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .p-top__company-info-value {
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
@media screen and (max-width: 767px) {
  .p-top__company-image {
    height: 260px;
  }
}
.p-top__mission {
  position: relative;
  padding: 200px 0;
  background-color: #F7F3EC;
}
.p-top__mission::before {
  position: absolute;
  bottom: 100%;
  left: 0;
  width: 100%;
  height: 70px;
  background-image: url("../img/home/about-wave-decoration.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% 100%;
  content: "";
}

.p-top__mission-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 120px;
  width: 100%;
}

.p-top__mission-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
  width: 100%;
}

.p-top__mission-copy {
  display: flex;
  align-items: flex-start;
  gap: 96px;
  width: 53%;
}

.p-top__mission-section-label {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 125px;
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: nowrap;
}
.p-top__mission-section-label span {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  transform: rotate(90deg);
}
.p-top__mission-section-label span::before {
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  background-color: currentColor;
  content: "";
}

.p-top__mission-text-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 48px;
  min-width: 0;
  color: #333333;
}

.p-top__mission-heading {
  margin: 0;
  font-weight: 500;
  font-size: 2.9rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2.4;
  letter-spacing: 6px;
  white-space: nowrap;
}
.p-top__mission-heading.en {
  font-family: "Cormorant Garamond", serif;
  font-size: 3.2rem;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: unset;
}

.p-top__mission-body {
  color: #333333;
  font-weight: 400;
  font-size: 1.5rem;
  font-family: "Zen Old Mincho", serif;
  line-height: 2.4;
  letter-spacing: 2px;
  white-space: nowrap;
}
.p-top__mission-body.en {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: unset;
}
.p-top__mission-body.en p + p {
  margin-top: 23px;
}
.p-top__mission-body p {
  margin: 0;
}
.p-top__mission-body p + p {
  margin-top: 36px;
}

.p-top__mission-logo {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding-inline: 80px;
}
.p-top__mission-logo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}

.p-top__mission-partners {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  width: 100%;
}

.p-top__mission-partner-title {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding-bottom: 33px;
  color: #333333;
}
.p-top__mission-partner-title::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 32px;
  height: 1px;
  background-color: rgba(51, 51, 51, 0.15);
  content: "";
  transform: translateX(-50%);
}

.p-top__mission-partner-label,
.p-top__mission-partner-heading {
  margin: 0;
  line-height: 1;
  text-align: center;
  word-break: break-all;
}

.p-top__mission-partner-label {
  font-weight: 500;
  font-size: 1.3rem;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 2px;
}
.p-top__mission-partner-label.en {
  font-size: 2rem;
  letter-spacing: 6px;
}

.p-top__mission-partner-heading {
  font-weight: 500;
  font-size: 2rem;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 6px;
}

.p-top__mission-partner-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 48px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-top__mission-partner-item {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin: 0;
  mix-blend-mode: multiply;
}
.p-top__mission-partner-item img {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
}
.p-top__mission-partner-item:nth-child(1) img {
  width: 228px;
}
.p-top__mission-partner-item:nth-child(2) img {
  width: 213px;
}
.p-top__mission-partner-item:nth-child(3) img {
  width: 163px;
}
.p-top__mission-partner-item:nth-child(4) img {
  width: 73px;
}

@media screen and (max-width: 1024px) {
  .p-top__mission {
    padding: 100px 0;
  }
  .p-top__mission-intro {
    gap: 40px;
  }
  .p-top__mission-copy {
    width: 60%;
    gap: 56px;
  }
  .p-top__mission-logo {
    padding-inline: 40px 0;
  }
  .p-top__mission-heading {
    font-size: 2.8rem;
  }
}
@media screen and (max-width: 900px) {
  .p-top__mission-intro {
    flex-direction: column;
  }
  .p-top__mission-copy {
    width: 100%;
  }
  .p-top__mission-logo {
    padding-inline: 0;
  }
}
@media screen and (max-width: 767px) {
  .p-top__mission {
    padding: 160px 0;
  }
  .p-top__mission::before {
    height: 40px;
    background-image: url("../img/home/about-wave-decoration-sp.png");
    background-size: cover;
  }
  .p-top__mission .container {
    padding-inline: 24px;
  }
  .p-top__mission-content {
    gap: 80px;
  }
  .p-top__mission-intro {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 80px;
  }
  .p-top__mission-copy {
    flex-direction: column;
    gap: 48px;
    width: 100%;
  }
  .p-top__mission-section-label {
    justify-content: flex-start;
    width: auto;
    height: auto;
    font-size: 1.1rem;
  }
  .p-top__mission-section-label span {
    gap: 14px;
    transform: none;
  }
  .p-top__mission-section-label span::before {
    width: 4px;
    height: 4px;
  }
  .p-top__mission-text-group {
    gap: 32px;
    width: 100%;
  }
  .p-top__mission-heading {
    width: 100%;
    font-size: 2.2rem;
    line-height: 2;
    letter-spacing: 6px;
    white-space: normal;
  }
  .p-top__mission-heading.en {
    font-size: 3rem;
  }
  .p-top__mission-body {
    width: 100%;
    font-size: 1.5rem;
    line-height: 2.4;
    letter-spacing: 1px;
    white-space: normal;
  }
  .p-top__mission-body p + p {
    margin-top: 36px;
  }
  .p-top__mission-body.en {
    line-height: 1.53;
  }
  .p-top__mission-logo {
    flex: none;
    width: 279px;
    max-width: 100%;
    padding-inline: 44px;
  }
  .p-top__mission-logo img {
    width: 190px;
  }
  .p-top__mission-partners {
    gap: 40px;
  }
  .p-top__mission-partner-title {
    gap: 16px;
    padding-bottom: 41px;
  }
  .p-top__mission-partner-label {
    font-size: 1.1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
  }
  .p-top__mission-partner-label.en {
    font-size: 1.1rem;
  }
  .p-top__mission-partner-heading {
    font-size: 1.8rem;
    letter-spacing: 4px;
  }
  .p-top__mission-partner-list {
    gap: 16px;
  }
  .p-top__mission-partner-item {
    width: 141.258px;
    height: 45.567px;
  }
  .p-top__mission-partner-item:nth-child(1) img {
    width: 141.258px;
  }
  .p-top__mission-partner-item:nth-child(2) img {
    width: 141.258px;
  }
  .p-top__mission-partner-item:nth-child(3) img {
    width: 109.361px;
  }
  .p-top__mission-partner-item:nth-child(4) img {
    width: 45.567px;
  }
}
/* Top page end */
/* 固定ページ */
/* ============================================ */
.page .box-mv {
  width: 100%;
  height: 240px;
  background-image: url("../img/singleseed/img-mv.jpg");
  background-position: 50% 50%;
  background-size: cover;
}
.page .sec-page {
  padding: 100px min(5%, 50px);
  background: linear-gradient(0deg, rgb(0, 117, 186) 80%, rgb(61, 171, 112) 100%);
}
.page .sec-page .box-inner {
  margin: 0 auto;
  padding: 50px 0;
  max-width: 1134px;
  border-radius: 15px;
  background: #fff;
}
.page .sec-page .box-inner h1 {
  text-align: center;
  font-weight: bold;
  font-size: 4rem;
  line-height: 1.5;
}
.page .sec-page .box-inner h2 {
  padding: 40px min(10%, 50px);
  text-align: center;
  font-weight: bold;
  font-size: 2.6rem;
  line-height: 1.5;
}
.page .sec-page .box-inner h3 {
  text-align: center;
  font-weight: bold;
  font-size: 2.1rem;
  line-height: 1.5;
}
.page .sec-page .box-inner p {
  margin: 0 auto;
  padding: 10px min(10%, 60px) 100px;
  max-width: 876px;
  text-align: left;
  font-size: 1.6rem;
  line-height: 1.75;
}
.page .sec-page .box-inner span {
  color: rgb(153, 153, 153);
  font-size: 1.3rem;
  line-height: 1.5;
}
.page .sec-page .box-inner div {
  text-align: center;
}
.page .sec-page .box-inner img {
  padding: 30px 0;
}
.page .sec-page .box-inner hr {
  margin: 50px auto;
  max-width: 1008px;
  border-top-width: 3px;
  color: #d0d0d0;
}

@media screen and (max-width: 896px) {
  .page .sec-page,
  .page .sec-conts {
    padding: 42px 5%;
  }
  .page .sec-page .box-inner,
  .page .sec-conts .box-inner {
    padding: 30px 5%;
  }
  .page .sec-page .box-inner h2,
  .page .sec-conts .box-inner h2 {
    padding: 40px 0 8px;
    font-size: 2.2rem;
  }
  .page .sec-page .box-inner p,
  .page .sec-conts .box-inner p {
    padding: 0 0 40px;
  }
  .page .sec-page .box-inner img,
  .page .sec-conts .box-inner img {
    padding: 28px 0;
  }
  .page .sec-page .box-inner hr,
  .page .sec-conts .box-inner hr {
    margin: 10px auto;
  }
}

/*# sourceMappingURL=style.css.map */
