﻿@charset "UTF-8";

/* ========================================================
                      * Variable *
========================================================= */
:root {
  --pw: 1400; /* PC幅 */
  --sw: 780; /* SP幅 */
  --artboard-pw: 468; /* PCアートボード幅 */
  --artboard-sw: 780; /* SPアートボード幅 */
  --rem: calc(var(--variable) * var(--ratio));
  --rem-pc: var(--variable);
  --transition-timing: cubic-bezier(0.51, 0.21, 0.41, 1);

  --base-font-color: #c5ad88;

  --lp-font-ja: lato, ryo-gothic-plusn, hiragino-kaku-gothic-pron, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, HiraKakuProN-W3, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, Verdana, Helvetica, Arial, sans-serif;
  --lp-font-en: "futura-pt", sans-serif;

  --font-thin: 100;
  --font-light: 300;
  --font-regular: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --font-heavy: 800;

  --icon-arrow-down: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 23.02 12.1' preserveAspectRatio='none'><path d='M11.51 12.1 0 1.47 1.36 0l10.15 9.37L21.67 0l1.35 1.47z' fill='%23000'/></svg>");
}

@media (768px <= width) {
  :root {
    --ratio: calc(var(--artboard-pw) / var(--artboard-sw));
    --variable: calc(100vw / var(--pw));
  }
}
@media (1400px <= width) {
  :root {
    --variable: 1px;
  }
}
@media (width < 768px) {
  :root {
    --ratio: 1;
    --variable: calc(100vw / var(--sw));
  }
}

/* ========================================================
                      * Layout style *
========================================================= */
/* html {
  scroll-behavior: smooth;
  font-size: 62.5%
} */
main {
  max-width: 100%;
}

@media (768px <= width) {
  #Wrap,
  .wrapBottom,
  .wrapTop,
  #Contents {
    width: 100%;
  }
}
@media (width < 768px) {
  #Contents {
    overflow: clip;
  }
}
#FooterWrap {
  position: relative;
}



/* ===================
  LP Contents
=================== */
.lp_contents {
  --letter-spacing: .1em;
  position: relative;
  color: var(--base-font-color, #000);
  font-family: var(--lp-font-ja);
  font-optical-sizing: auto;
  font-weight: var(--font-regular);
  font-size: calc(28 * var(--rem));
  font-style: normal;
  letter-spacing: var(--letter-spacing);
  & * {
    font-feature-settings: "palt";
  }
  & *,
  & *:before,
  & *:after {
    box-sizing: border-box;
  }
  & :where(h1, h2, h3, h4, h5, p, ul, ol, li, dl, dt, dd, a, button, figure, figcaption, span, sup) {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: var(--letter-spacing);
  }
  & ul,
  & li {
    list-style: none;
  }
  & :where(img) {
    display: block;
    width: 100%;
    height: auto;
  }
  & sup {
    top: 0;
    font-size: .6em;
    vertical-align: super;
  }
  & :where(a, a:before, a:after, a img, button) {
    --duration: .3s;
    --timing: ease-in-out;
    transition:
      opacity var(--duration) var(--timing),
      color var(--duration) var(--timing),
      background-color var(--duration) var(--timing),
      background-image var(--duration) var(--timing),
      border-color var(--duration) var(--timing),
      text-shadow var(--duration) var(--timing),
      text-weight var(--duration) var(--timing)
    ;
  }
  & :where(a) {
    color: inherit;
    text-decoration: none;
    text-underline-offset: calc(4 * var(--rem));
    @media (any-hover: hover) {
      &:hover {
        opacity: .7;
      }
    }
    @media (width < 768px) {
      &:hover {
        opacity: 1;
      }
    }
  }
  & :where(button) {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
  }
  & em {
    font-style: normal;
  }
}



/* ===================
  Animation
=================== */
.fade-blur {
  opacity: 0;
  filter: blur(5px);
  transition:
  opacity 2s var(--transition-timing),
  filter 2s var(--transition-timing);
  will-change: opacity, filter;
  &.is-active {
    opacity: 1;
    filter: blur(0);
  }
}

.fade-up {
  opacity: 0;
  translate: 0 calc(40 * var(--rem));
  transition:
    opacity 1s ease,
    translate 1s ease;
  will-change: opacity, translate;
  &.is-active {
    opacity: 1;
    translate: 0 0;
  }
}

.shiny-image {
  position: relative;
  width: calc(var(--width) * var(--rem));
  height: calc(var(--height) * var(--rem));
  overflow: hidden;
  mask: var(--mask) no-repeat center/contain;
  background: #d3ac7c;
  &::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      45deg,
      transparent 25%,
      rgba(249, 223, 176, 0) 25%,
      rgba(249, 223, 176, 1) 50%,
      rgba(249, 223, 176, 0) 75%,
      transparent 75%
    );
    /* animation: shine 6s ease-in-out .4s forwards; */
  }
}
.shiny-text {
  position: relative;
  display: block;
  width: fit-content;
  margin-inline: auto;
  background: #d3ac7c;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  &::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      45deg,
      transparent 25%,
      rgba(249, 223, 176, 0) 25%,
      rgba(249, 223, 176, 1) 50%,
      rgba(249, 223, 176, 0) 75%,
      transparent 75%
    );
    background-size: 200% 100%;
    background-position: 120% center;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    /* animation: textShine 4s ease-in-out forwards; */
  }
  &.fade-up.is-active {
    &::after {
      animation: textShine 6s ease-in-out .4s forwards;
    }
  }
}
@keyframes shine {
  0% {
    left: -150%;
    opacity: 0;
  }
  1% {
    opacity: 1;
  }
  38% {
    left: 150%; /* 30%の時点で右側に通り抜ける（一瞬で光らせるため） */
    opacity: 1;
  }
  38.1% {
    opacity: 0;
  }
  38.2% {
    left: -150%;
    opacity: 0;
  }
  38.3% {
    opacity: 1;
  }
  53% {
    left: 0%; /* 40%の時点で中央に止まる */
    opacity: 1;
  }
  100% {
    left: 0%; /* 残りの時間は待機（光る余白を作る） */
    opacity: 1;
  }
}

@keyframes textShine {
  0% {
    /* スタート：左側に隠れている（透明） */
    background-position: 120% center;
    opacity: 0;
  }
  1% {
    /* すぐに表示 */
    opacity: 1;
  }
  38% {
    /* ① 1回目：右側へ通り抜ける（左から右へキラッ！） */
    background-position: -50% center;
    opacity: 1;
  }
  38.1% {
    /* 【極限短縮】右に抜けきった直後、一瞬で透明化 */
    opacity: 0;
  }
  38.2% {
    /* 【超速ワープ】透明なまま、一瞬で左側（150%）にワープ */
    background-position: 120% center;
    opacity: 0;
  }
  38.3% {
    /* 左側ですぐに再表示。ここが2回目の登場のスタート */
    background-position: 120% center;
    opacity: 1;
  }
  53% {
    /* ② 2回目：左から入ってきて、文字のちょうど中央（50%）で止まる */
    background-position: 50% center;
    opacity: 1;
  }
  100% {
    /* そのまま中央の位置をキープして終了 */
    background-position: 50% center;
    opacity: 1;
  }
}



/* ===================
  Layout
=================== */
.layout-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background : #f6f0ea;
  transition: background-color 0.6s ease;
  will-change: background-color;
}
.layout-mobile-first {
  position: relative;
  @media (768px <= width) {
    display: flex;
  }
}
.layout-mobile-first__left,
.layout-mobile-first__right {
  position: relative;
  width: calc((100% - (var(--artboard-pw) * var(--rem-pc))) / 2);
}
.layout-mobile-first__sticky {
  position: sticky;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
}
.layout-mobile-first__main {
  overflow-x: clip;
  @media (768px <= width) {
    width: calc(var(--artboard-pw) * var(--rem-pc));
  }
}


/* ===================
  Utility
=================== */


/* ===================
  Component
=================== */
/* button */
.component-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--width, calc(400 * var(--rem)));
  height: var(--height, calc(100 * var(--rem)));
  margin-inline: auto;
  background: #c5ad88;
  color: var(--color, #fff);
  font-family: var(--lp-font-en);
  font-size: var(--font-size, calc(35 * var(--rem)));
  font-weight: var(--font-medium);
  letter-spacing: .05em;
}

/* viewmore */
.component-viewmore {
  position: relative;
  display: flex;
  align-items: center;
  &::after {
    content: "";
    display: block;
    width: calc(23 * var(--rem));
    height: calc(12 * var(--rem));
    margin-left: calc(21 * var(--rem));
    background: currentColor;
    mask: var(--icon-arrow-down) no-repeat center/100% 100%;
  }
  &.is-open {
    &::after {
      rotate: 180deg;
    }
  }
}
.component-viewmore__text {
  font-family: var(--lp-font-en);
  font-size: calc(28 * var(--rem));
  font-weight: var(--font-regular);
  letter-spacing: 0;
}



/* ===================
  Accordion
=================== */
.js-accordion--body {
  max-height: var(--max-height, calc(300 * var(--rem)));
  overflow: hidden;
  transition: max-height .6s ease-in-out, padding-bottom .6s ease-in-out;
  will-change: max-height, padding-bottom, mask-image;
  transform: translate3d(0,0,0);
  &.--mask {
    mask-image: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
    &.is-open {
      mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 100%);
    }
  }
}



.project-swiper {
  .swiper-slide,
  .swiper-slide img {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
  }
  .swiper-slide {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  /* pagination */
  --swiper-pagination-bullet-horizontal-gap: calc(15 * var(--rem));
  --swiper-pagination-bullet-width: calc(100 * var(--rem));
  --swiper-pagination-bullet-height: calc(6 * var(--rem));
  --swiper-pagination-bullet-inactive-color: #EEE6DB;
  --swiper-pagination-bullet-inactive-opacity: 1;
  --swiper-pagination-color: var(--base-font-color);
  .swiper-pagination {
    position: static;
    display: flex;
    justify-content: center;
    margin-top: calc(40 * var(--rem));
  }
  .swiper-pagination-bullet {
    display: block;
    border-radius: 0;
  }
  /* navigation */
  --swiper-navigation-size: calc(70 * var(--rem));
  .swiper-button-next,
  .swiper-button-prev {
    width: var(--swiper-navigation-size);
    height: calc(20 * var(--rem));
    z-index: 10 !important;
    -webkit-transform: translateZ(1px);
    transform: translateZ(1px);
  }
  /* .swiper-button-prev {
    left: calc(15 * var(--rem));
  }
  .swiper-button-next {
    right: calc(15 * var(--rem));
  } */
  .swiper-button-next:after,
  .swiper-button-prev:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--base-font-color);
    /* background: url(../img/icon_navigation.png) no-repeat center / contain; */
  }
  .swiper-button-prev:after {
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='70' height='21' viewBox='-1 -1 72 23' preserveAspectRatio='none'><path d='M0 20h70M20 0C20 20 0 20 0 20' fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2px'/></svg>") no-repeat center/100% 100%;
  }
  .swiper-button-next:after {
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='70' height='21' viewBox='-1 -1 72 23' preserveAspectRatio='none'><path d='M70 20H0M50 0c0 20 20 20 20 20' fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2px'/></svg>") no-repeat center/100% 100%;
  }
  /* .swiper-button-prev:after {
    rotate: 180deg;
  } */
  /* .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: calc(0 * var(--rem));
  } */
}
.project-swiper__navigation {
  position: absolute;
  top: calc(197 * var(--rem));
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  .swiper-pagination,
  .swiper-button-next,
  .swiper-button-prev {
    position: static;
    margin: 0;
  }
}
.project-swiper__navigation--2 {
  top: calc(132 * var(--rem));
}
.project-swiper__navigation--3 {
  top: calc(147 * var(--rem));
}



/**
 * project-mainvisual
 */
.project-mainvisual {
  position: sticky;
  top: 0;
  &.is-active {
    .shiny-image {
      &::after {
        animation: shine 6s ease-in-out .6s forwards;
      }
    }
  }
}
.project-mainvisual__head {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
  overflow: hidden;
}
.project-mainvisual__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}


/**
 * project-top
 */
.project-top {
  position: relative;
  margin-top: calc(-180 * var(--rem));
  padding-top: calc(180 * var(--rem));
  padding-bottom: calc(200 * var(--rem));
  background : linear-gradient(to bottom, transparent 0%, transparent calc(180 * var(--rem)), #f6f0ea calc(180 * var(--rem)), #f6f0ea 100%);
  overflow: clip;
  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: calc(1400 * var(--rem));
    height: calc(1400 * var(--rem));
    background : #f6f0ea;
    border-radius: 50%;
    translate: -50% 0;
    pointer-events: none;
  }
}
.project-top__inner {
  position: relative;
}


/**
 * section-intro
 */
.section-intro {
  width: calc(540 * var(--rem));
  height: calc(262 * var(--rem));
  margin-inline: auto;
  padding: calc(10 * var(--rem));
  background: #fff;
}
.section-intro__info {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border: calc(3 * var(--rem)) solid var(--base-font-color);
}
.section-intro__info-item {
  display: flex;
  justify-content: center;
  & + & {
    margin-top: calc(30 * var(--rem));
  }
}
.section-intro__info-label {
  font-size: calc(25 * var(--rem));
  letter-spacing: .125em;
}
.section-intro__info-detail {
  font-family: var(--lp-font-en);
  font-size: calc(44 * var(--rem));
  font-weight: var(--font-medium);
  letter-spacing: 0;
  .--small {
    font-size: calc(32 * var(--rem));
  }
}


.component-heading {
  color: #c5ad88;
  font-family: var(--lp-font-en);
  font-size: calc(68 * var(--rem));
  font-weight: var(--font-medium);
  line-height: calc(85 / 68);
  letter-spacing: -0.01em;
  text-align: center;
}

/**
 * project-anchor-nav
 */
.project-anchor-nav {
  margin-top: calc(142 * var(--rem));
}
.project-anchor-nav__list {
  display: flex;
  justify-content: center;
  margin-top: calc(52 * var(--rem));
}
.project-anchor-nav__item {
  width: calc(190 * var(--rem));
}
.project-anchor-nav__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.project-anchor-nav__top {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: calc(190 * var(--rem));
}
.project-anchor-nav__head {
  width: calc(var(--width) * var(--rem));
  margin-inline: auto;
  opacity: 0;
  filter: blur(5px);
  transition:
  opacity 2s var(--transition-timing),
  filter 2s var(--transition-timing);
  will-change: opacity, filter;
  .project-anchor-nav__list.is-active & {
    opacity: 1;
    filter: blur(0);
  }
}
.project-anchor-nav__image {
  width: calc(var(--width) * var(--rem));
  margin-inline: auto;
  opacity: 0;
  translate: 0 calc(40 * var(--rem));
  transition:
    opacity 1s ease,
    translate 1s ease;
  transition-delay: var(--delay);
  will-change: opacity, translate;
  .project-anchor-nav__list.is-active & {
    opacity: 1;
    translate: 0 0;
  }
}
.project-anchor-nav__image--1 {
  --delay: 0s;
  padding-bottom: calc(5 * var(--rem));
}
.project-anchor-nav__image--2 {
  --delay: 0.3s;
  padding-bottom: calc(7 * var(--rem));
}
.project-anchor-nav__image--3 {
  --delay: 0.6s;
  padding-bottom: calc(20 * var(--rem));
}
.project-anchor-nav__image--4 {
  --delay: 0.9s;
}
.project-anchor-nav__label {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  margin-top: calc(25 * var(--rem));
  opacity: 0;
  filter: blur(5px);
  transition:
  opacity 2s var(--transition-timing),
  filter 2s var(--transition-timing);
  will-change: opacity, filter;
  .project-anchor-nav__list.is-active & {
    opacity: 1;
    filter: blur(0);
  }
}
.project-anchor-nav__label-text {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-family: var(--lp-font-en);
  font-size: calc(24 * var(--rem));
  font-weight: var(--font-regular);
  line-height: calc(33.6 / 24);
  letter-spacing: 0;
  text-align: center;
}
.project-anchor-nav__label-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(50 * var(--rem));
  height: calc(50 * var(--rem));
  margin-top: calc(25 * var(--rem));
  border: 1px solid currentColor;
  border-radius: 50%;
  &::before {
    content: "";
    width: calc(23 * var(--rem));
    height: calc(12 * var(--rem));
    background: currentColor;
    mask: var(--icon-arrow-down) no-repeat center/100% 100%;
  }
}


/**
 * project-section
 */
.project-section {
  padding-bottom: calc(202 * var(--rem));
}
.project-section--delightful-scoop {
  background: #e9f4e9;
}
.project-section--delightful-scoop-large {
  background: #f8e9e8;
}
.project-section--delightful-polish {
  background: #edf5f5;
}
.project-section--brushAssort {
  padding-bottom: calc(400 * var(--rem));
  background: #edf5f5;
}


/**
 * project-section__top
 */
.project-section__top {
  padding-top: calc(92 * var(--rem));
  padding-bottom: calc(102 * var(--rem));
}
.project-section__top--2 {
  padding-bottom: calc(104 * var(--rem));
}
.project-section__top-text {
  margin-top: calc(33 * var(--rem));
  font-size: calc(28 * var(--rem));
  line-height: calc(61.6 / 28);
  text-align: center;
}


/**
 * item-block
 */
.item-block {
  width: calc(720 * var(--rem));
  margin-inline: auto;
  padding: calc(12 * var(--rem)) calc(14 * var(--rem));
  background: var(--bg) no-repeat top center/100% 100%;
}
.item-block--1 {
  --bg: url(../img/bg_block_1.png);
  --bg-inner: url(../img/bg_border_1.svg);
}
.item-block--2 {
  --bg: url(../img/bg_block_2.png);
  --bg-inner: url(../img/bg_border_2.svg);
}
.item-block--3 {
  --bg: url(../img/bg_block_3.png);
  --bg-inner: url(../img/bg_border_3.svg);
  padding-top: calc(14 * var(--rem));
}
.item-block--4 {
  --bg: url(../img/bg_block_4.png);
  --bg-inner: url(../img/bg_border_4.svg);
  padding-top: calc(14 * var(--rem));
}
.item-block__inner {
  width: 100%;
  padding: calc(4 * var(--rem));
  padding-bottom: 0;
  background: var(--bg-inner) no-repeat top center/100% 100%;
}
.item-block__head {
  width: var(--width);
  margin-top: calc(38 * var(--rem));
  margin-inline: auto;
}
.item-block__head--1 {
  --width: calc(196 * var(--rem));
}
.item-block__head--2 {
  --width: calc(174 * var(--rem));
}
.item-block__head--3 {
  --width: calc(119 * var(--rem));
  margin-top: calc(26 * var(--rem));
}
.item-block__head--4 {
  --width: calc(198 * var(--rem));
  margin-top: calc(35 * var(--rem));
}


/**
 * project-item-top
 */
.project-item-top {
  padding-bottom: calc(79 * var(--rem));
}
.project-item-top--1 {
  padding-top: calc(70 * var(--rem));
}
.project-item-top--2 {
  padding-top: calc(77 * var(--rem));
  .component-stamp {
    top: calc(11 * var(--rem));
    left: calc(89 * var(--rem));
  }
}
.project-item-top--3 {
  padding-top: calc(90 * var(--rem));
}
.project-item-top--4 {
  padding-top: calc(71 * var(--rem));
  padding-bottom: calc(109 * var(--rem));
  .component-stamp {
    top: calc(23 * var(--rem));
    right: calc(89 * var(--rem));
  }
}
.project-item-top__image {
  position: relative;
  width: 100%;
  .component-stamp {
    position: absolute;
  }
  & a {
    position: relative;
    display: block;
  }
}
.project-item-top__body {
  margin-top: calc(40 * var(--rem));
  text-align: center;
}
.project-item-top__body--2 {
  margin-top: calc(29 * var(--rem));
}
.project-item-top__body--3 {
  margin-top: calc(30 * var(--rem));
}
.project-item-top__body--4 {
  margin-top: calc(30 * var(--rem));
}
.project-item-top__name {
  font-size: calc(28 * var(--rem));
  line-height: 1;
}
.project-item-top__price {
  margin-top: calc(30 * var(--rem));
  font-size: calc(28 * var(--rem));
  line-height: 1;
}
.project-item-top__button {
  margin-top: calc(60 * var(--rem));
}

.component-stamp {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(160 * var(--rem));
  height: calc(160 * var(--rem));
  border: 1px solid var(--base-font-color);
  border-radius: 50%;
  font-size: calc(20 * var(--rem));
  line-height: calc(30 / 20);
  letter-spacing: 0;
  text-align: center;
}


/**
 * color-variation
 */
.color-variation {
  width: calc(608 * var(--rem));
  margin-inline: auto;
  padding-top: calc(72 * var(--rem));
  border-top: 1px dashed var(--base-font-color);
}
.color-variation--4 {
  padding-top: calc(74 * var(--rem));
}
.color-variation__heading {
  font-size: calc(52 * var(--rem));
  letter-spacing: -0.02em;
}
.color-variation__slider {
  position: relative;
  margin-top: calc(40 * var(--rem));
}
.color-variation__slider-item {
  padding-bottom: calc(120 * var(--rem));
}
.color-variation__slider__image {
  width: calc(468 * var(--rem));
  margin-inline: auto;
}
.color-variation__detail {
  width: calc(540 * var(--rem));
  margin-top: calc(54 * var(--rem));
  margin-inline: auto;
  &:has(.color-variation__tag-list) {
    margin-top: calc(60 * var(--rem));
  }
}
.color-variation__tag-list {
  display: flex;
  gap: calc(20 * var(--rem));
  margin-bottom: calc(54 * var(--rem));
}
.color-variation__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--width) * var(--rem));
  height: calc(44 * var(--rem));
  border: 1px solid var(--base-font-color);
  border-radius: calc(22 * var(--rem));
  font-size: calc(24 * var(--rem));
}
.color-variation__list {
  width: calc(540 * var(--rem));
  margin-inline: auto;
  padding-bottom: calc(120 * var(--rem));
}
.color-variation__list-item {
  & + & {
    margin-top: calc(96 * var(--rem));
  }
}
.color-variation__list-item__heading {
  font-size: calc(42 * var(--rem));
  letter-spacing: 0;
}
.color-variation__list-item__text {
  margin-top: calc(20 * var(--rem));
  font-size: calc(26 * var(--rem));
  line-height: calc(52 / 26);
  text-align: center;
}
.color-variation__list-item__image {
  width: 100%;
  margin-top: calc(48 * var(--rem));
}


/**
 * slider-thumbnail
 */
.slider-thumbnail {
  display: flex;
  justify-content: center;
  gap: calc(40 * var(--rem));
  margin-top: calc(54 * var(--rem));
  &:has(.slider-thumbnail__item:nth-child(3)) {
    gap: calc(18 * var(--rem));
  }
}
.slider-thumbnail__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(80 * var(--rem));
  height: calc(80 * var(--rem));
  padding: calc(4 * var(--rem));
  background: #fff;
  border: calc(2 * var(--rem)) solid transparent;
  border-radius: 50%;
  transition: border-color 1.4s;
  cursor: pointer;
  &.is-active {
    border-color: var(--base-font-color);
  }
}

.component-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: calc(11 * var(--rem));
  border-bottom: 1px dashed var(--base-font-color);
  font-family: var(--lp-font-en);
  font-weight: var(--font-regular);
  &.--secondary {
    justify-content: start;
    padding-block: 0 !important;
  }
}
.component-row__half {
  display: flex;
  align-items: center;
  width: 50%;
  padding-top: calc(32 * var(--rem));
  padding-bottom: calc(22 * var(--rem));
  & + & {
    justify-content: flex-end;
    border-left: 1px dashed var(--base-font-color);
  }
  .component-row__head {
    width: calc(230 * var(--rem));
  }
  .component-row__detail-item {
    width: calc(70 * var(--rem));
  }
}
.component-row__head-text {
  font-size: calc(28 * var(--rem));
  line-height: calc(42 / 28);
  letter-spacing: 0;
  &.--small {
    font-size: calc(24 * var(--rem));
  }
  .--small {
    font-size: calc(24 * var(--rem));
  }
}
.component-row__detail-text {
  font-size: calc(28 * var(--rem));
  letter-spacing: 0;
}
.component-row__detail-list {
  display: flex;
  align-items: center;
  gap: calc(10 * var(--rem));
}
.component-row__detail-item {
  width: auto;
  height: calc(66 * var(--rem));
  & img {
    width: auto;
    height: 100%;
  }
}

.component-table {
  padding-top: calc(33 * var(--rem));
  padding-bottom: calc(11 * var(--rem));
  border-bottom: 1px dashed var(--base-font-color);
  .js-accordion--body {
    --max-height: 0;
  }
  .component-viewmore {
    margin-left: auto;
  }
}
.component-table__text-wrapper {
  margin-top: calc(-6 * var(--rem));
  padding-bottom: calc(20 * var(--rem));
}
.component-table__text {
  font-size: calc(26 * var(--rem));
  line-height: calc(52 / 26);
}


/**
 * section-look
 */
.section-look {
  position: relative;
  margin-top: calc(-200 * var(--rem));
  padding-top: calc(200 * var(--rem));
  padding-bottom: calc(200 * var(--rem));
  overflow: clip;
  &::before,
  &::after {
    content: "";
    position: absolute;
    left: 50%;
    width: calc(1400 * var(--rem));
    height: calc(1400 * var(--rem));
    background : #fff;
    border-radius: 50%;
    translate: -50% 0;
    pointer-events: none;
  }
  &::before {
    top: 0;
  }
  &::after {
    bottom: 0;
  }
}
.section-look__heading {
  position: relative;
  width: calc(191 * var(--rem));
  margin-top: calc(-156 * var(--rem));
  margin-inline: auto;
  margin-bottom: calc(60 * var(--rem));
}


/**
 * project-section-look
 */
.project-section-look {
  position: relative;
  z-index: 5;
  background: #fff;
  & + & {
    padding-top: calc(193 * var(--rem));
  }
  .color-variation__detail {
    width: calc(660 * var(--rem));
    margin-top: calc(74 * var(--rem));
    padding-bottom: 0;
  }
  .component-row {
    padding-bottom: calc(23 * var(--rem));
    & + & {
      padding-top: calc(33 * var(--rem));
    }
  }
}
.project-section-look__heading {
  font-size: calc(76 * var(--rem));
  letter-spacing: -0.035em;
}
.project-section-look__steps {
  width: calc(660 * var(--rem));
  margin-top: calc(86 * var(--rem));
  margin-inline: auto;
  .component-viewmore {
    margin-inline: auto;
    border-bottom: 1px dashed currentColor;
  }
}
.project-section-look__steps-body {
  --max-height: calc(202 * var(--rem));
  .look-steps {
    padding-bottom: calc(40 * var(--rem));
  }
}


/**
 * look-steps
 */
.look-steps__item {
  display: flex;
  font-size: calc(26 * var(--rem));
  & + & {
    margin-top: calc(14 * var(--rem));
  }
  .num {
    width: calc(22 * var(--rem));
    margin-top: calc(6 * var(--rem));
    margin-right: calc(18 * var(--rem));
    font-family: var(--lp-font-en);
    font-weight: var(--font-medium);
    line-height: calc(42 / 26);
    letter-spacing: 0;
  }
}
.look-steps__item-text {
  line-height: calc(52 / 26);
  text-align: justify;
  & a {
    text-decoration: underline;
  }
}


/**
 * project-look-slider
 */
.project-look-slider {
  width: calc(740 * var(--rem));
  margin-top: calc(49 * var(--rem));
  margin-inline: auto;
}
.project-look-slider__item,
.project-look-slider__image {
  width: 100%;
}
.project-look-slider__item {
  border-radius: calc(30 * var(--rem));
  overflow: clip;
}


/**
 * section-bottom
 */
.section-bottom {
  position: relative;
  padding-top: calc(151 * var(--rem));
  padding-bottom: calc(132 * var(--rem));
  background: #f6f0ea;
}
.section-bottom__button {
  --width: calc(580 * var(--rem));
  --height: calc(120 * var(--rem));
  --font-size: calc(40 * var(--rem));
}
.section-bottom__body {
  margin-top: calc(142 * var(--rem));
  text-align: center;
}
.section-bottom__heading {
  margin-bottom: calc(36 * var(--rem));
  letter-spacing: .01em;
}
.section-bottom__text {
  font-size: calc(26 * var(--rem));
  line-height: calc(57.2 / 26);
  & + & {
    margin-top: calc(30 * var(--rem));
  }
}


/**
 * project-footer-nav
 */
.project-footer-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background : #fff;
  opacity: 0;
  translate: 0 100%;
  transition: opacity 0.6s .2s ease, translate 0.6s .2s ease;
  will-change: opacity, translate;
  &.is-visible {
    opacity: 1;
    translate: 0 0;
  }
}
.project-footer-nav__list {
  display: flex;
  flex-wrap: wrap;
}
.project-footer-nav__item {
  &:nth-child(1),
  &:nth-child(2) {
    width: 50%;
  }
  &:nth-child(2) {
    border-left: 1px dashed var(--base-font-color);
  }
  &:nth-child(3),
  &:nth-child(4),
  &:nth-child(5) {
    width: calc(100% / 3);
    border-top: 1px dashed var(--base-font-color);
  }
  &:nth-child(4),
  &:nth-child(5) {
    border-left: 1px dashed var(--base-font-color);
  }
}
.project-footer-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(35 * var(--rem));
  width: 100%;
  height: calc(90 * var(--rem));
  padding-top: calc(8 * var(--rem));
}
.project-footer-nav__image {
  height: calc(60 * var(--rem-pc));
  margin-left: calc(-4 * var(--rem));
  & img {
    width: auto;
    height: 100%;
  }
}
.project-footer-nav__text {
  font-family: var(--lp-font-en);
  font-size: calc(22 * var(--rem));
  font-weight: var(--font-regular);
  line-height: calc(33 / 22);
  letter-spacing: 0;
  text-align: center;
}


/**
 * project-logo-box
 */
.project-logo-box {
  &.is-active {
    .shiny-image {
      &::after {
        animation: shine 6s ease-in-out .6s forwards;
      }
    }
  }
}
.project-logo-box__logo {
  width: calc(273 * var(--rem-pc));
  height: calc(110 * var(--rem-pc));
  margin-inline: auto;
}


/**
 * project-menu
 */
.project-menu {
  width: calc(258 * var(--rem-pc));
  margin-top: calc(-11 * var(--rem-pc));
  margin-inline: auto;
}
.project-menu__list {
  margin-left: calc(8 * var(--rem-pc));
}
.project-menu__item {
  border-bottom: 1px dashed var(--base-font-color);
}
.project-menu__link {
  display: flex;
  align-items: center;
  gap: calc(20 * var(--rem-pc));
  padding-block: calc(10 * var(--rem-pc)) calc(9 * var(--rem-pc));
}
.project-menu__image {
  width: calc(40 * var(--rem-pc));
}
.project-menu__text {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--lp-font-en);
  font-size: calc(14 * var(--rem-pc));
  font-weight: var(--font-regular);
  letter-spacing: 0;
  & span {
    letter-spacing: 0;
  }
  &::after {
    content: "";
    display: block;
    width: calc(11 * var(--rem-pc));
    height: calc(6 * var(--rem-pc));
    background: currentColor;
    mask: var(--icon-arrow-down) no-repeat center/100% 100%;
  }
}


/* ===================
  Share
=================== */
#share {
  z-index: 10 !important;
  transition: bottom 0.6s 0.2s ease;
  .footer-nav-visible & {
    bottom: calc(2% + calc(180 * var(--rem)));
  }
}


/* ===================
  archive_area
=================== */
.archive_area {
  position: relative;
  z-index: 5;
  background: #fff;
}



/*=======================================
               Responsive
========================================*/

/*=======================================
                    PC
========================================*/
@media (768px <= width) {
  .u-d-md {
    display: none !important;
  }
}


/*=======================================
                    SP
========================================*/
@media (width < 768px) {
  .u-d-lg {
    display: none !important;
  }
}
