@charset "UTF-8";

:root {
  --color-black: #000000;
  --color-white: #ffffff;
  --color-main: #EB512A;
  --max-width: 390px;
  --font-en: "Libre Baskerville", serif;
}

html {
  font-size: clamp(0.1rem,calc(100vw * 11 / 390),11px);
}
body {
  background: var(--color-white);
  color: var(--color-black);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.6;
}
body .wrapper .content {
  position: relative;
  max-width: var(--max-width);
  min-height: 100vh;
  margin-inline: auto;
  background-color: var(--color-white);
}
body > div {
  margin-inline: auto;
  background: var(--color-black);
}
* {
  box-sizing: border-box;
}
img {
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
figure {
  margin: 0;
}
h1 {
  font-size: clamp(0.1rem,calc(100vw * 17 / 390),34px);
  margin: 0;
}
h2 {
  font-size: clamp(0.1rem,calc(100vw * 12 / 390),22px);
  margin: 0;
}
h3 {
  margin: 0;
}
p {
  font-size: clamp(0.1rem,calc(100vw * 11 / 390),11px);
  line-height: 1.9;
  margin: 0;
}
ul {
  margin: 0;
  padding: 0;
}
ul li {
  margin: 0;
  padding: 0;
}
.js-animation {
  opacity: 0;
}

/* ===============================================
# BUYボタン
=============================================== */
.buy-btn {
  display: block;
  max-width: calc(134/11*1rem);
  margin-inline: auto;
  margin-top: calc(16/11*1rem);
  transition: opacity 0.3s;
}
@media (any-hover: hover) {
  .buy-btn:hover {
    opacity: 0.8;
  }
}


/* ===============================================
# header
=============================================== */
header {
  position: relative;
}
.header_inner {
  margin:  calc(65/11*1rem) auto calc(80/11*1rem);
}
header h1 {
  max-width: calc(338/11*1rem);
  margin-inline: auto;
}
header h2 {
  max-width: calc(272/11*1rem);
  margin: calc(23/11*1rem) auto 0;
}


/* ===============================================
# headline
=============================================== */
.headline {
  position: relative;
  margin-top: calc(40/11*1rem);
  margin-bottom: calc(25/11*1rem);
  text-align: center;
  z-index: 2;
}
.headline_copy {
  width: calc(203/11*1rem);
  margin-inline: auto;
}
.headline .headline_title {
  margin-top: calc(19/11*1rem);
  margin-bottom: calc(11/11*1rem);
  font-size: calc(16/11*1rem);
  font-weight: 400;
  line-height: calc(22/16);
  color: var(--color-main);
}
.headline_text {
  font-weight: 300;
  line-height: calc(20/11);
  letter-spacing: -0.03em;
  font-family: sweet-sans-pro, sans-serif;
}

/* ===============================================
# product
=============================================== */
.scroll-wrap {
  position: absolute;
  top: 0;
  right: calc(-3/11*1rem);
  width: calc(25/11*1rem);
  height: 100%;
}
.scroll {
  position: sticky;
  top: 1em;
  left: auto;
  right: 0;
  margin-left: auto;
  z-index: 10;
}
.product {
  position: relative;
  padding-inline: calc(17/11*1rem);
}
.product_list,
.product_list li {
  list-style: none;
}
.product_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(20/11*1rem) 0;
}
.product_list li {
  position: relative;
  transition: opacity 0.2s ease-out;
}
.product .color {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-block;
  width: calc(10/11*1rem);
  aspect-ratio: 1/1;
  pointer-events: none;
  animation: poyopoyo 2s ease-out infinite;
  z-index: 5;
}
.product .color.color1 {
  background-color: #F37C9A;
}
.product .color.color2 {
  background-color: #504D2D;
}
.product .color.color3 {
  background-color: #C9232A;
}
.product .color.color4 {
  background-color: #AF6934;
}
.product .color.color5 {
  background-color: #F1B42E;
}
.product .color.color6 {
  background-color: #928986;
}
.product .color.color7 {
  background-color: #542B25;
}
.product .color.color8 {
  background-color: #685FA8;
}
.product .color.color9 {
  background-color: #3F3B49;
}
.product .color.color10 {
  background-color: #C99983;
}
.product .color.color11 {
  background-color: #C9232A;
}
.product .color.color12 {
  background-color: #202022;
}
.product .color.color13 {
  background-color: #1986A6;
}
.product .color.color14 {
  background-color: #7F716E;
}
.product .color.color15 {
  background-color: #EC692F;
}
.product .color.color16 {
  background-color: #773B3E;
}
.product .color.color17 {
  background-color: #739FAE;
}
.product .color.color18 {
  background-color: #6E534C;
}
.product .color.color19 {
  background-color: #F19D1F;
}
.product .color.color20 {
  background-color: #D89F75;
}
.product .color.color21 {
  background-color: #AF4F7C;
}
.product .color.color22 {
  background-color: #EEDDCC;
}
.product .color.color23 {
  background-color: #3B3A3F;
}
.product .color.color24 {
  background-color: #372F31;
}
.product .color.color25 {
  background-color: #C5B39E;
}
.product .color.color26 {
  background-color: #2C2A35;
}
.product .color.color27 {
  background-color: #45182D;
}
.product .color.color28 {
  background-color: #213D4B;
}
.product .color.color29 {
  background-color: #137E56;
}
.product .color.color30 {
  background-color: #62282A;
}
.product .color.color31 {
  background-color: #25489D;
}
.product .color.color32 {
  background-color: #CDDF73;
}
.product .color.color33 {
  background-color: #BF165F;
}
.product .color.color34 {
  background-color: #A42025;
}
.product .color.color35 {
  background-color: #5E5548;
}
.product .color.color36 {
  background-color: #85844B;
}
.product .color.color37 {
  background-color: #676A75;
}
.product .color.color38 {
  background-color: #141416;
}
.product .color.color39 {
  background-color: #EFDAB3;
}
.product .color.color40 {
  background-color: #763271;
}


.product_list .modal__trigger > img:first-child {
  position: relative;
  z-index: 4;
  animation: changeLook1 8s ease-out 0s infinite;
  animation-fill-mode: backwards;
}
.product_list .modal__trigger > img:last-child {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  animation: changeLook2 8s ease-out 0s infinite;
  animation-fill-mode: backwards;
}

.product_list .delay1 > img {
  animation-delay: 0.8s !important;
}
.product_list .delay1-6 > img {
  animation-delay: 1.6s !important;
}
.product_list .delay2 > img {
  animation-delay: 2.4s !important;
}
.product_list .delay4 > img {
  animation-delay: 4s !important;
}
.product_list .delay4-8 > img {
  animation-delay: 4.8s !important;
}
.product_list .delay6 > img {
  animation-delay: 6.4s !important;
}
.product_list .delay7 > img {
  animation-delay: 7.2s !important;
}
.product_list .delay5 > img {
  animation-delay: 5.6s !important;
}

.product_list li:last-of-type {
  grid-column: span 2 / span 2;
  display: flex;
  align-items: center;
  font-size: calc(12/11*1rem);
  line-height: calc(22/12);
  letter-spacing: 0.1em;
}
.product_list li:last-of-type > div {
  padding-left: calc(17/11*1rem);
}
.product_list li:last-of-type p {
  font-size: calc(14/11*1rem);
  font-weight: 700;
}
.product_list li:last-of-type a {
  display: block;
  width: calc(137/11*1rem);
  margin-top: calc(10/11*1rem);
}

/* ===============================================
# モーダル
=============================================== */
.modal__trigger,
.modal__trigger-c {
  position: relative;
  cursor: pointer;
}
.modal__wrapper,
.modal__wrapper-c {
  display: none;
  position: fixed;
  top: 0;
  left: 50%;
  z-index: 10;
  width: 100%;
  max-width: var(--max-width);
  height: 100vh;
  transform: translateX(-50%);
}
.modal__container,
.modal__container-c {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: #fff;
}
.modal__inner,
.modal__inner-c {
  position: relative;
  overflow-y: auto;
  height: 100%;
  padding-bottom: calc(50/11*1rem);
}
/*.modal__close,
.modal__close-c {
  position: absolute;
  top: calc(-25/11*1rem);
  right: calc(20/11*1rem);
  width: calc(17/11*1rem);
  aspect-ratio: 1/1;
  margin: calc(38/11*1rem) auto 0;
  cursor: pointer;
  transition: opacity .6s;
  z-index: 10;
}*/

.modal__close,
.modal__close-c {
  position: absolute;
  top: calc(-25/11*1rem);
  right: calc(10/11*1rem);
  width: calc(40/11*1rem);
  aspect-ratio: 1/1;
  margin: calc(38/11*1rem) auto 0;
  cursor: pointer;
  transition: opacity .6s;
  z-index: 10;
  padding: calc(10/11*1rem);
}

.modal__close:hover,
.modal__close-c:hover {
  opacity: .6;
}
.modal__content,
.modal__content-c {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.modal__title {
  margin-top: calc(6/11*1rem);
  font-size: calc(14/11*1rem);
  font-weight: 400;
  line-height: calc(22/14);
  letter-spacing: 0.1em;
  text-align: center;
  width: 100%;
  order:2;
}
.modal__link {
  display: block;
  width: calc(200/11*1rem);
  margin: 0 auto 0;
  order:1;
}
.modal__content .swiper {
  z-index: initial;
}
.modal__content .swiper-button-next,
.modal__content .swiper-button-prev {
  top: auto;
  bottom: calc(290/11*1rem);
  width: calc(28/11*1rem);
  height: calc(18/11*1rem);
  background: url(../img/icn_slide_arrow.svg) no-repeat center / contain;
}
.modal__content .swiper-button-next {
  right: calc(25/11*1rem);
  transform: scale(-1,1);
}
.modal__content .swiper-button-prev {
  left: calc(25/11*1rem);
}
.modal__content .swiper-button-next:after,
.modal__content .swiper-button-prev:after {
  display: none;
}
.modal__content-inner-c {
  padding: calc(34/11*1rem) calc(23/11*1rem);
}
.modal__title-c {
  font-size: calc(17/11*1rem);
  line-height: calc(25/17);
  letter-spacing: 0.1em;
}
.modal__content-inner-c p {
  margin: calc(20/11*1rem) 0 calc(17/11*1rem);
  font-size: calc(12/11*1rem);
  line-height: calc(22/12);
  letter-spacing: 0.1em;
}


/* ===============================================
# close up
=============================================== */
.closeup {
  position: relative;
  margin-top: calc(66/11*1rem);
  padding: calc(38/11*1rem) calc(22/11*1rem)  calc(22/11*1rem);
  border: 1px solid var(--color-black);
}
.closeup h2 {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: calc(175/11*1rem);
  padding: 0 calc(16/11*1rem);
  margin-inline: auto;
  background-color: #fff;
  transform: translateY(-55%);
}
.closeup p {
  font-size: calc(12/11*1rem);
  line-height: calc(22/12);
  letter-spacing: 0.1em;
}
.closeup_img {
  position: relative;
  margin-top: calc(18/11*1rem);
}
.closeup_tap {
  position: absolute;
  width: calc(28/11*1rem);
}
.closeup_tap.tap1 {
  top: calc(100/11*1rem);
  left: calc(113/11*1rem);
}
.closeup_tap.tap2 {
  top: calc(110/11*1rem);
  left: calc(227/11*1rem);
}
.closeup_tap.tap3 {
  top: calc(166/11*1rem);
  left: calc(132/11*1rem);
}
.closeup_tap.tap4 {
  top: calc(190/11*1rem);
  left: calc(249/11*1rem);
}
.closeup_img .fk{position: absolute;animation: bound 3s infinite;}
.closeup_img .fk1{top: calc(70/11*1rem);
  left: calc(77/11*1rem);width: calc(95 / 11* 1rem);animation-delay:0.5s;}
.closeup_img .fk2{top: calc(80/11*1rem);
  left: calc(181/11*1rem);width: calc(120 / 11* 1rem);animation-delay:1s;}
.closeup_img .fk3{top: calc(136/11*1rem);
  left: calc(99/11*1rem);width: calc(95 / 11* 1rem);animation-delay:1.5s;}
.closeup_img .fk4{top: calc(160/11*1rem);
  left: calc(203/11*1rem);width: calc(120 / 11* 1rem);animation-delay:2s;}

  @keyframes bound {
    0% { transform:translateY(0) }
    5% { transform:translateY(0) }
    10% { transform:translateY(0) }
    20% { transform:translateY(-5px) }
    25% { transform:translateY(0) }
    30% { transform:translateY(-3px) }
    50% { transform:translateY(0) }
    100% { transform:translateY(0) }
  }


/* ===============================================
# scroll-to-top
=============================================== */
.scroll-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(27/11*1rem);
  background: none;
  border: none;
  padding: 0;
  margin: calc(50/11*1rem) auto calc(30/11*1rem);
  cursor: pointer;
}

/* ===============================================
# store
=============================================== */
.store {
  text-align: center;
}
.store img {
  width: calc(162/11*1rem);
  height: auto;
}

/* ===============================================
# footer
=============================================== */
footer {
  padding: calc(22/11*1rem) 0 0;
}
footer ul.sns {
  display:flex;
  justify-content: center;
  margin: 1em auto;
  list-style-type: none;
}
footer ul.sns li {
  width: 1.5em;
  margin: 1em;
}
footer ul.sns li a {
  display: block;
}
footer small {
  text-align:center;
  display: block;
  font-size: calc(12/11*1rem);
  line-height: calc(20/12);
  letter-spacing: 0.1em;
  margin-bottom: calc(22/11*1rem);
}

/* ===============================================
# pc-contents
=============================================== */
.pc-contents {
  position: fixed;
  top: 0;
  left: 0;
  width: calc((100% - 390px) / 2);
  height: 100dvh;
  background-color: var(--color-black);
  overflow: hidden;
}
@media (max-width: 1139px) {
  .pc-contents {
    display: none;
  }
}
.pc-contents-wrap {
  width: 100%;
  height: 100dvh;
  padding-top: calc(30/1280*100vw);
  padding-bottom: calc(60/1280*100vw);
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.pc-contents-wrap::-webkit-scrollbar {
  display: none;
}
.pc-contents-inner {
  position: relative;
  display: grid;
  place-content: center;
  z-index: 1;
  color: var(--color-white);
}
.pc-contents-frame {
  position: relative;
  padding-left: calc(30/11*1rem);
  background: url(../img/img_side_line.svg) no-repeat top left / contain;
}
.pc-contents-logo {
  width: calc(132/1280*100vw);
}
.pc-contents-text {
  margin-top: calc(12/11*1rem);
  font-family: var(--font-en);
  font-size: calc(12/11*1rem);
  font-weight: 700;
  line-height: calc(24/12);
}
.pc-contents-list {
  display: grid;
  gap: calc(5/11*1rem) 0;
  margin-top: calc(18/11*1rem);
  padding-top: calc(18/11*1rem);
  border-top: 1px solid var(--color-white);
}
.pc-contents-list,
.pc-contents-list li {
  list-style: none;
}
.pc-contents-list a {
  display: flex;
  align-items: center;
  gap: 0 calc(2/11*1rem);
  color: var(--color-white);
  font-family: var(--font-en);
  font-size: calc(13/11*1rem);
  font-weight: 700;
  line-height: calc(24/13);
  transition: background 0.3s ease;
}
@media (any-hover: hover) {
  .pc-contents-list a:hover {
    text-decoration: none;
  }
  .pc-contents-list a:hover::before {
    content: "";
    display: inline-block;
    width: calc(14/11*1rem);
    aspect-ratio: 1/1;
    background: url(../img/icn_arrow_white.svg) no-repeat center / contain;
  }
}

/* ===============================================
# pc-right
=============================================== */
.pc-right {
  position: fixed;
  top: 0;
  right: 0;
  width: calc((100% - 390px) / 2);
  height: 100dvh;
  background-color: var(--color-black);
}
@media (max-width: 1139px) {
  .pc-right {
    display: none;
  }
}
.pc-right img {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(279/11*1rem);
}


/* ===============================================
# アニメーション
=============================================== */
@keyframes poyopoyo {
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.8);
  }
}

@keyframes changeLook1 {
	0% { opacity: 1; }
	37.5% { opacity: 1; }
	50% { opacity: 0; }
	87.5% { opacity: 0; }
	100% { opacity: 1; }
}

@keyframes changeLook2 {
	0% { opacity: 0; }
	37.5% { opacity: 0; }
	50% { opacity: 1; }
	87.5% { opacity: 1; }
	100% { opacity: 0; }
}