html {
  font-size: calc(100vw * 10 / 375);
}

body {
  width: 100%;
  height: 100%;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
  font-family: 'Roboto', Helvetica, Verdana, Arial, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', 'ＭＳ Ｐゴシック', 'MS P Gothic', Osaka, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
  color: #fff;
}

*,
*:before,
*:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }

img { width: 100%; height: auto; border: none; vertical-align: top; }
picture { display: block; position: relative; width: 100%; height: 100%; }

@media screen and (min-width: 769px) {
  html { font-size: 0.7142857100vw; }
  html { font-size: calc(100vw * 10 / 1400); }
}

@media screen and (min-width: 1401px) {
  html { font-size: 62.5%; }
}

/* utility
------------------------------------------------ */
.u-r-lists { margin: 0; padding: 0; list-style: none; }
.u-r-btn { -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; appearance: none; position: relative; padding: 0; background: none; border: none; border-radius: 0; box-shadow: none; font-family: inherit; cursor: pointer; }
.u-object-fit { width: 100%; height: 100%; max-width: inherit; object-fit: cover; font-family: 'object-fit: cover;'; }

@media screen and (max-width: 768px) {
  /* 375 / 254 = 1.4763779527 */
  /* 375 / 230 = 1.6304347826 */
  .u-d-mobile { display: inherit !important; }
  .u-d-desktop { display: none !important; }
}

@media screen and (min-width: 769px) {
  /* 1400 / 592 = 2.3648648648 */
  /* 1400 / 536 = 2.6119402985 */
  .u-d-mobile { display: none !important; }
  .u-d-desktop { display: inherit !important; }
}

/* component
------------------------------------------------ */
/* link */
.link-skipcontent { position: absolute; margin: -1px; width: 1px; height: 1px; overflow: hidden; }

/* title */
.title-page { margin: 0 0 3rem; font-size: 1.8rem; font-weight: 500; letter-spacing: 0.05em; line-height: 1.08; }

@media screen and (min-width: 769px) {
  .title-page { margin-bottom: 5.2rem; font-size: 3rem; }
}

/* comingsoon */
.comingsoon { display: flex; justify-content: center; align-items: center; margin: 0; min-height: calc(100dvh - ((11.8rem * 2) + 10rem)); text-align: center; font-size: 3.6rem; font-weight: 500; letter-spacing: 0.05em; line-height: 1.08; }

@media screen and (min-width: 769px) {
  .comingsoon { min-height: calc(100dvh - ((8.8rem * 2) + (5.2rem * 2) + 16rem)); font-size: 6rem; }
}

/* container
------------------------------------------------ */
.l-container { position: relative; min-height: 100dvh; }
.l-main { position: relative; }
.l-content { position: fixed; top: 0; left: 0; padding: 12rem 4.8rem 6rem; width: 100%; height: 100dvh; background-color: rgba(37,30,28,0.35); overflow-y: auto; z-index: 2; }
.l-wrap { position: relative; }
.l-bg { pointer-events: none; position: fixed; top: 0; left: 0; width: 100%; height: 100dvh; overflow: hidden; z-index: -1; }
.l-bg-photo { position: absolute; top: 0; width: 50%; height: 100%; }
.l-bg-photo.is-pos-l { left: 0; }
.l-bg-photo.is-pos-r { right: 0; }

@media screen and (min-width: 769px) {
  .l-content { top: 50%; left: 50%; transform: translate(-50%,-50%); padding: 5.2rem 4.7rem; width: calc(100% - (21.4rem * 2)); height: calc(100% - (8.8rem * 2)); }
  .l-wrap { margin: 0 auto; padding: 0 20px; max-width: 1540px; }
}

/* header
------------------------------------------------ */
.l-hd { position: absolute; top: 0; left: 0; }
.l-hd-logo { position: fixed; margin: 0; width: 8.4rem; font-size: 1rem; line-height: 1.2; z-index: 5; }
.l-hd-logo > a { display: block; width: 100%; }
.l-hd-menu { position: fixed; margin: 0; z-index: 5; }
.l-hd-menu > span { position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-indent: -9999px; white-space: nowrap; overflow: hidden; }
.l-hd-menu::after,
.l-hd-menu > span::before,
.l-hd-menu > span::after { content: ''; position: absolute; left: 0; transition: ease 0.4s; width: 100%; height: 0.3rem; background-color: #fff; }
.l-hd-menu::after { top: 0.6rem; }
.l-hd-menu > span::before { top: 1.5rem; }
.l-hd-menu > span::after { top: 2.4rem; }
.l-hd-menu[aria-expanded=true]::after { opacity: 0; }
.l-hd-menu[aria-expanded=true] > span::before,
.l-hd-menu[aria-expanded=true] > span::after { top: 50%; }
.l-hd-menu[aria-expanded=true] > span::before { transform: rotate(45deg); }
.l-hd-menu[aria-expanded=true] > span::after { transform: rotate(-45deg); }

@media screen and (max-width: 768px) {
  .l-hd { width: 100%; height: 100dvh; }
  .l-hd-logo { top: 4.4rem; left: 50%; transform: translateX(-50%); }
  .l-hd-menu { bottom: 1.2rem; left: 50%; transform: translateX(-50%); width: 3.2rem; height: 3.2rem; }
}

@media screen and (min-width: 769px) {
  .l-hd-logo { top: 5.4em; left: 4.8rem; width: 8rem; }
  .l-hd-menu { display: none; }
}

/* gnav */
.l-gnav { position: fixed; z-index: 4; }
.l-gnav-links { display: grid; gap: 0.5rem; }
.l-gnav-links__item { font-size: 2rem; letter-spacing: 0.05em; line-height: 1.2; }
.l-gnav-links__item > a,
.l-gnav-links__item > span { display: inline-block; vertical-align: top; }
.l-gnav-links__item > a { text-decoration: none; color: #fff; }

@media screen and (max-width: 768px) {
  .l-gnav { pointer-events: none; bottom: 0; left: 0; transition: opacity ease 0.4s; padding: 2rem 0 6rem; width: 100%; background-color: rgba(37,30,28,0.35); opacity: 0; }
  .l-gnav[aria-hidden=false] { pointer-events: inherit; opacity: 1; }
  .l-gnav-links__item { text-align: center; font-weight: 600; }
}

@media screen and (min-width: 769px) {
  .l-gnav { top: 12.2rem; left: 4.8rem; }
  .l-gnav-links { gap: 0.4rem; }
  .l-gnav-links__item { font-size: 1.7rem; }
}

/* about
------------------------------------------------ */
.about-logo { margin: 4rem auto; width: 40%; }
.about-text { margin: 0; padding: 0 0.2rem; text-align: center; font-size: 1.8rem; letter-spacing: 0.05em; line-height: 1.08; }

@media screen and (max-width: 768px) {
  .about-text { font-weight: 600; }
}

@media screen and (min-width: 769px) {
  .about-logo { margin: 6rem auto; width: 20%; }
  .about-text { padding: 0 3.2rem; font-size: 3rem; }
}

/* collection
------------------------------------------------ */
.collection-lists { display: grid; }

@media screen and (min-width: 769px) {
  .collection-lists { grid-template-columns: repeat(3,calc(100% / 3)); }
}

/* footer
------------------------------------------------ */
.l-ft { position: absolute; bottom: 0; left: 0; width: 100%; }
.l-ft-sns { display: flex; gap: 1rem; position: fixed; bottom: 1.5rem; left: 1.5rem; z-index: 5; }
.l-ft-sns__item { width: 3.6rem; }
.l-ft-sns__item > a { display: block; width: 100%; }
.l-ft-copyright { position: fixed; bottom: 1.5rem; right: 1.5rem; margin: 0; font-size: 1.3rem; letter-spacing: 0.05em; line-height: 1.0848026427; z-index: 5; }

@media screen and (min-width: 769px) {
  .l-ft-sns { bottom: 2.4rem; left: 3.5rem; }
  .l-ft-sns__item { width: 3.5rem; }
  .l-ft-copyright { bottom: 2.8rem; right: 3.5rem; font-size: 1.7rem; }
}