@charset "UTF-8";
/*----------------------------------------------------------------------------

 reset

----------------------------------------------------------------------------*/
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}
address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
}
ul, ol {
  list-style-type: none;
}
em, strong, th, address {
  font-style: normal;
  font-weight: normal;
  text-align: left;
}
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  font-size: 100%;
}
img,
object,
embed {
  border: 0;
  vertical-align: top;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
hr {
  display: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 100%;
}
li {
  list-style-type: none;
}
strong {
  font-weight: bold;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

/*----------------------------------------------------------------------------

 CSS Custom Properties 

----------------------------------------------------------------------------*/
:root {
  --primary-color: #B81C22;
  --primary-txt-color: #44331E;
  --primary-bg-color: #FFFFFF;
  --base-width: 1920;
  --content-width: min((1380 / var(--base-width) * 100vw), 1380px);
  --content-height: 100lvh;
  --content-padding-top: 80px;
  --fixed-padding-top: min((272 / var(--base-width)* 100vw), 272px);
}
@media screen and (max-width: 1600px) {
  :root {
    --content-padding-top: max(50px,5vw);
  }
}
@media screen and (max-width: 640px) {
  :root {
    --base-width: 375;
    --content-width: calc(310 / var(--base-width) * 100vw);
    --content-padding-top: 40px;
    --fixed-padding-top: calc(68 / var(--base-width) * 100vw);
  }
}
/*----------------------------------------------------------------------------

 base

----------------------------------------------------------------------------*/
html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
}
body {
  position: relative;
  color: var(--primary-txt-color);
  font-family: 'Noto Serif JP', serif;
  line-height: 1;
  font-size: 1.6rem;
  background: var(--primary-bg-color);
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}
body.opening_fin {
  overflow: inherit;
}
.sp,
.sp_inline {
  display: none;
}
.pc {
  display: block;
}
@media screen and (max-width: 640px) {
  .sp {
    display: block;
  }
  .sp_inline {
    display: inline;
  }
  .pc {
    display: none;
  }
}
.common_txt {
  font-size: clamp(10px, (17 / var(--base-width) * 100vw), 17px);
  font-weight: 500;
  line-height: calc(40 / 17);
  letter-spacing: 0.07em;
  text-align: justify;
}
@media screen and (max-width: 640px) {
  .common_txt {
    font-size: min((13 / var(--base-width) * 100vw), 18px);
    line-height: calc(30 / 13);
    letter-spacing: 0.07em;
  }
}
#onetrust-consent-sdk #onetrust-banner-sdk {
  font-family: 'Noto Sans JP', sans-serif;
}

/*----------------------------------------------------------------------------

 fadein

----------------------------------------------------------------------------*/
.fadein {
  opacity : 0;
  filter: blur(5px);
  transition : opacity 1.4s cubic-bezier(0.33, 1, 0.68, 1), filter 1.4s cubic-bezier(0.33, 1, 0.68, 1);
}
.fadein.scrollin {
  opacity : 1;
  filter: blur(0);
}
@keyframes fadein { /* animation: fadein 1.4s cubic-bezier(0.33, 1, 0.68, 1) both; */
  0% {
    opacity : 0;
    filter: blur(5px);
  }
  100% {
    opacity : 1;
    filter: blur(0);
	}
}
.fadein_y,
.fadein_y02 {
  opacity : 0;
  transform : translate3d(0, 30px, 0);
  filter: blur(5px);
  transition : transform 1.4s cubic-bezier(0.33, 1, 0.68, 1), opacity 1.4s cubic-bezier(0.33, 1, 0.68, 1), filter 1.4s cubic-bezier(0.33, 1, 0.68, 1);
}
.fadein_y02 {
  transform : translate3d(0, 60px, 0);
  transition-duration: 2s;
}
.fadein_y.scrollin,
.fadein_y02.scrollin {
  opacity : 1;
  transform : translate3d(0, 0, 0);
  filter: blur(0);
}
@-moz-document url-prefix() {
  .fadein_y {
    transform : translate3d(0, 30px, 0) rotate(0.0001deg);
  }
  .fadein_y02 {
    transform : translate3d(0, 60px, 0) rotate(0.0001deg);
  }
  .fadein_y.scrollin,
  .fadein_y02.scrollin {
    transform : translate3d(0, 0, 0) rotate(0.0001deg);
  }
}
@keyframes fadein_y { /* animation: fadein_y 1.4s cubic-bezier(0.33, 1, 0.68, 1) both; */
  0% {
    opacity : 0;
    transform : translate3d(0, 30px, 0);
    filter: blur(5px);
  }
  100% {
    opacity : 1;
    transform : translate3d(0, 0, 0);
    filter: blur(0);
	}
}
@-moz-document url-prefix() {
  @keyframes fadein_y {
    0% {
      opacity : 0;
      transform : translate3d(0, 30px, 0) rotate(0.0001deg);
      filter: blur(5px);
    }
    100% {
      opacity : 1;
      transform : translate3d(0, 0, 0) rotate(0.0001deg);
      filter: blur(0);
    }
  }
}
.scale_down {
  opacity : 0;
  filter: blur(5px);
  transform: scale(1.05);
  transition : opacity 1.4s cubic-bezier(0.33, 1, 0.68, 1), transform 1.4s cubic-bezier(0.33, 1, 0.68, 1), filter 1.4s cubic-bezier(0.33, 1, 0.68, 1);
}
.scale_down.scrollin {
  opacity : 1;
  transform: scale(1);
  filter: blur(0);
}
.no_blur {
  filter: blur(0) !important;
}

/*----------------------------------------------------------------------------

 fuwafuwa animation

----------------------------------------------------------------------------*/
:root {
  --fuwafuwa-anim-start-opacity: 0;
  --fuwafuwa-anim-end-opacity: 1.0;
  --fuwafuwa-anim-start-scale: 0.6;
  --fuwafuwa-anim-end-scale: 1.0;
  --fuwafuwa-anim-transition-transform: transform .8s cubic-bezier(.175,.885,.32,1.275);
  --fuwafuwa-anim-transition-opacity: opacity .8s cubic-bezier(.175,.885,.32,1.275);
  --fuwafuwa-anim: fuwafuwa 5s ease-out infinite;
  --fuwafuwa-anim2: fuwafuwa2 8s ease-out infinite;
  --fuwafuwa-anim-delay: 1.2s;
}
.obj img {
  opacity: var(--fuwafuwa-anim-start-opacity);
  transform: scale(var(--fuwafuwa-anim-start-scale));
  transition: var(--fuwafuwa-anim-transition-transform), var(--fuwafuwa-anim-transition-opacity);
}
@keyframes fuwafuwa {
  0% {
    translate: 0;
  }
  40% {
    translate: 0 10px;
  }
  50% {
    translate: 0 10px;
  }
  90% {
    translate: 0;
  }
}
@keyframes fuwafuwa2 {
  0% {
    translate: 0;
  }
  40% {
    translate: 0 30px;
  }
  60% {
    translate: 0 30px;
  }
  90% {
    translate: 0;
  }
}

/*-------------------------------------------------

butterfly anim

--------------------------------------------------*/
.butterfly_body_bk {
  display: block;
  width: 100%;
  height: 100%;
  animation: fly 1.5s infinite ease-in-out;
}
.butterfly_body_bk img {
  filter: invert(17%) sepia(20%) saturate(1133%) hue-rotate(353deg) brightness(99%) contrast(91%);
}
.butterfly_body_bk.beige img {
  filter: invert(80%) sepia(49%) saturate(154%) hue-rotate(1deg) brightness(106%) contrast(90%);
}
.butterfly_body_bk.pink img {
  filter: invert(88%) sepia(16%) saturate(270%) hue-rotate(334deg) brightness(99%) contrast(87%);
}
@keyframes fly {
  0%, 100%  {
      transform: scaleX(1);
  }
  50% {
      transform: scaleX(0.2);
  }
}

/*-------------------------------------------------

fadeInUp title text anim

--------------------------------------------------*/
:root {
  --fadeInUp-anim: fadeInUp 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  --fadeInUp-anim-delay: 0.075s;
  --fadeInUp-anim-interval: 0.075s;
}
.fadeInUp {
  display: inline-block;
}
.fadeInUp > span {
  display: inline-block;
  opacity: 0;
  /*
  transform: translateY(1em);
  */
  transform: scale(0.5);
}
.fadeInUp.scrollin > span {
  animation: var(--fadeInUp-anim);
}
@keyframes fadeInUp {
  to {
    opacity: 1;
    /*
    transform: translateY(1em);
    */
    transform: scale(1);
  }
}
.fadeInUp > span:nth-child(1) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 0)) !important; }
.fadeInUp > span:nth-child(2) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 1)) !important; }
.fadeInUp > span:nth-child(3) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 2)) !important; }
.fadeInUp > span:nth-child(4) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 3)) !important; }
.fadeInUp > span:nth-child(5) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 4)) !important; }
.fadeInUp > span:nth-child(6) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 5)) !important; }
.fadeInUp > span:nth-child(7) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 6)) !important; }
.fadeInUp > span:nth-child(8) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 7)) !important; }
.fadeInUp > span:nth-child(9) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 8)) !important; }
.fadeInUp > span:nth-child(10) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 9)) !important; }
.fadeInUp > span:nth-child(11) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 10)) !important; }
.fadeInUp > span:nth-child(12) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 11)) !important; }
.fadeInUp > span:nth-child(13) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 12)) !important; }
.fadeInUp > span:nth-child(14) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 13)) !important; }
.fadeInUp > span:nth-child(15) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 14)) !important; }
.fadeInUp > span:nth-child(16) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 15)) !important; }
.fadeInUp > span:nth-child(17) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 16)) !important; }
.fadeInUp > span:nth-child(18) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 17)) !important; }
.fadeInUp > span:nth-child(19) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 18)) !important; }
.fadeInUp > span:nth-child(20) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 19)) !important; }
.fadeInUp > span:nth-child(21) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 20)) !important; }
.fadeInUp > span:nth-child(22) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 21)) !important; }
.fadeInUp > span:nth-child(23) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 22)) !important; }
.fadeInUp > span:nth-child(24) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 23)) !important; }
.fadeInUp > span:nth-child(25) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 24)) !important; }
.fadeInUp > span:nth-child(26) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 25)) !important; }
.fadeInUp > span:nth-child(27) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 26)) !important; }
.fadeInUp > span:nth-child(28) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 27)) !important; }
.fadeInUp > span:nth-child(29) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 28)) !important; }
.fadeInUp > span:nth-child(30) { animation-delay: calc(var(--fadeInUp-anim-delay) + (var(--fadeInUp-anim-interval) * 29)) !important; }

/*-------------------------------------------------

flower_obj anim

--------------------------------------------------*/
.flower_obj img {
  opacity: 0;
  filter: blur(10px);
  transform: translateX(-45%) translateY(30%) scale(0.75) rotate(30deg);
  transform-origin: 0 0;
  /*
  transition: transform 1.4s cubic-bezier(0.33, 1, 0.68, 1),
              opacity 1s cubic-bezier(0.33, 1, 0.68, 1) 0.5s,
              filter 1.2s cubic-bezier(0.33, 1, 0.68, 1) 0.5s;
  */
}
.flower_obj.anim2 img {
  transform: translateX(45%) translateY(30%) scale(0.75) rotate(-30deg);
  transform-origin: right 0;
}
.flower_obj.scrollin img {
  /*
  opacity: 1;
  filter: blur(0);
  transform: translateX(0) translateY(0) scale(1.0) rotate(0deg);
  */
  animation: flower_obj_anim 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
.flower_obj.anim2.scrollin img {
  animation: flower_obj_anim2 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes flower_obj_anim {
  0% {
    opacity: 0;
    filter: blur(10px);
    transform: translateX(-45%) translateY(30%) scale(0.75) rotate(30deg);
  }
  25% {
    opacity: 0;
    filter: blur(10px);
  }
  75% {
    opacity: 1;
  }
  87.5% {
    filter: blur(0);
    transform: translateX(0) translateY(0) scale(1.0) rotate(0deg);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0) translateY(0) scale(1.0) rotate(0deg);
  }
}
@keyframes flower_obj_anim2 {
  0% {
    opacity: 0;
    filter: blur(10px);
    transform: translateX(45%) translateY(30%) scale(0.75) rotate(-30deg);
  }
  25% {
    opacity: 0;
    filter: blur(10px);
  }
  75% {
    opacity: 1;
  }
  87.5% {
    filter: blur(0);
    transform: translateX(0) translateY(0) scale(1.0) rotate(0deg);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0) translateY(0) scale(1.0) rotate(0deg);
  }
}

/*-------------------------------------------------

gide line

--------------------------------------------------*/
body {
  position: relative;
}
body.debug::before {
  display: block;
  content: '';
  width: 1px;
  height: 100%;
  position: fixed;
  top: 0;
  left: 50%;
  background: magenta;
  pointer-events: none;
  z-index: 9999;
}
body.debug #onetrust-consent-sdk #onetrust-banner-sdk {
  display: none !important;
}

/*-------------------------------------------------

header

--------------------------------------------------*/
header {
  position: fixed;
  display: flex;
  justify-content: space-between;
  align-items: center;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  padding: 0 30px;
  background: rgba(255,255,255,0);
  line-height: 1;
  z-index: 300;
}
header::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
  opacity: 0;
  transition: opacity 0.5s ease-out;
  transition: opacity 0s ease-out;
  pointer-events: none;
}
header.shadow::before {
  opacity: 1;
}
header .seiko_logo img {
  width: 105px;
  height: 34px;
}
header .lukia_store {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
}
header .lukia_logo {
  padding-right: 37px;
  border-right: 2px solid #a4a0a1;
}
header .lukia_logo img {
  width: 46px;
  height: 48px;
}
header .store {
  padding-left: 27px;
}
header .store img {
  width: 32px;
  height: 40px;
}
@media screen and (max-width: 1600px) {
  header {
    height: max(50px,5vw);
    padding: 0 max(15px,1.875vw);
  } 
  header .seiko_logo img {
    width: 6.5625vw;
    height: auto;
  }
  header .lukia_logo img {
    width: 2.875vw;
    height: auto;
  }
  header .store img {
    width: 2vw;
    height: auto;
  }
  header .lukia_logo {
    padding-right: 2.3125vw;
  }
  header .store {
    padding-left: 1.6875vw;
  }
}
@media screen and (max-width: 991px) {
  header .seiko_logo img {
    width: 66px;
    height: 21px;
  }
  header .lukia_logo img {
    width: 29px;
    height: 30px;
  }
  header .store img {
    width: 20px;
    height: 25px;
  }
  header .lukia_logo {
    padding-right: 22px;
  }
  header .store {
    padding-left: 16px;
  }
}
@media screen and (max-width: 640px) {
  header {
    height: 40px;
    padding: 0 15px;
  }
  header .seiko_logo img {
    width: 52px;
    height: 17px;
  }
  header .lukia_logo {
    padding-right: 14px;
  }
  header .lukia_store {
    padding: 6px 0;
  } 
  header .lukia_logo img {
    width: 23px;
    height: 24px;
  }
  header .store {
    padding-left: 15px;
  }
  header .store img {
    width: 16px;
    height: 20px;
  }
}

/*-------------------------------------------------

opening

--------------------------------------------------*/
#opening {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  z-index: 200;
  overflow: hidden;
}
#opening.fin {
  position: absolute;
  pointer-events: none;
  overflow: inherit;
  overflow-x: clip;
}
#opening::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #DBF4FF;
  opacity: 1;
  animation: 1.0s opening_bg cubic-bezier(0.33, 1, 0.68, 1) 6.0s forwards;
}
@keyframes opening_bg {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  } 
}
#opening .outer {
  position: relative;
  width: 100vw;
  height: 100%;
  opacity: 1;
  animation: 1.0s opening cubic-bezier(0.33, 1, 0.68, 1) 5.5s forwards;
}
#opening.hidden .outer {
  display: none;
}
@keyframes opening {
  from {
    opacity: 1; 
  }
  to {
    opacity: 0;
  } 
}
#opening .outer .inner {
  position: relative;
  display: grid;
  place-content: center;
  width: 100%;
  height: 100%;
  text-align: center;
}
#opening .outer .inner .logo_box {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  width: calc(410 / var(--base-width) * 100vw);
  container-type: inline-size;
}
#opening .outer .inner .logo_box img {
  width: 100%;
}
#opening .outer .inner .logo {
  position: relative;
}
#opening .outer .inner .logo_box .LUKIA {
  width: 19.024cqi;
  opacity: 0;
  filter: blur(20px);
  transform: scale(.8);
  animation: .8s logo_anim cubic-bezier(0.33, 1, 0.68, 1) 1.3s forwards;
}
#opening .outer .inner .logo_box .space {
  position: relative;
  width: 7.31cqi;
  text-align: left;
  z-index: 2;
  opacity: 0;
  filter: blur(20px);
  transform: scale(.8);
  animation: .8s logo_anim cubic-bezier(0.33, 1, 0.68, 1) 1.6s forwards;
}
#opening .outer .inner .logo.FEILER {
  position: relative;
  width: 58.536cqi;
  opacity: 0;
  filter: blur(20px);
  transform: scale(.8);
  animation: .8s logo_anim cubic-bezier(0.33, 1, 0.68, 1) 1s forwards; 
}
@keyframes logo_anim {
  from {
	  opacity: 0;
    transform: scale(.8);
    filter: blur(20px);
  }
  to {
	  opacity: 1;
    transform: scale(1);
    filter: blur(0);
  } 
}
/* butterfly */
#opening .butterfly_wrap {
  position: absolute;
  top: var(--content-padding-top);
  left: 0;
  width: 100%;
  aspect-ratio: 1920 / 850;
  pointer-events: none;
}
#opening.fin .butterfly_wrap {

}
.butterfly_yl,
.butterfly_rd {
    position: absolute;
    width: 96px;/*200px*/
    height: 58px;
    aspect-ratio: 96/58;
    perspective: 1000px;
    filter: drop-shadow(5px 5px 10px #aaa);
    transform: none;
    position: relative;
    opacity: 0;
}
.butterfly_wrapper {
    animation: float 1.5s ease-in-out infinite;
}
@keyframes float {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-8px);
    }
    100% {
        transform: translateY(0px);
    }
}
.wing_left, .wing_right, .butterfly_body {
    position: absolute;
    top: 50%;
    left: 50%;
    transform-style: preserve-3d;
}
.butterfly_body {
    width: 20.8%;
    aspect-ratio: 20/46;
    transform: translate(-50%, -50%);
    z-index: 2;
}
.butterfly_yl .butterfly_body {
    background: url(../img/body_yl.png) no-repeat;
    background-size: cover;
}
.butterfly_rd .butterfly_body {
    background: url(../img/body_rd.png) no-repeat;
    background-size: cover;
}
.wing_left, .wing_right {
    width: 39.6%;
    aspect-ratio: 38/58;
    backface-visibility: visible;
}
.wing_left {
    transform-origin: right center;
    animation: flapLeft 1.5s infinite ease-in-out;
    overflow: hidden;
}
.butterfly_yl .wing_left {
    background: url(../img/wing_yl_l.png) no-repeat;
    background-size: cover;
}
.butterfly_rd .wing_left {
    background: url(../img/wing_rd_l.png) no-repeat;
    background-size: cover;
}
.wing_right {
    transform-origin: left center;
    animation: flapRight 1.5s infinite ease-in-out;
}
.butterfly_yl .wing_right {
    background: url(../img/wing_yl_r.png) no-repeat;
    background-size: cover;
}
.butterfly_rd .wing_right {
    background: url(../img/wing_rd_r.png) no-repeat;
    background-size: cover;
}
@keyframes flapLeft {
    0%, 100% { 
        transform: translate(-100%, -50%) rotateY(0deg) scaleX(1);
    }
    50% { 
        transform: translate(-100%, -50%) rotateY(-30deg) scaleX(0.4);
    }
}
@keyframes flapRight {
    0%, 100% { 
        transform: translate(0%, -50%) rotateY(0deg) scaleX(1);
    }
    50% { 
        transform: translate(0%, -50%) rotateY(30deg) scaleX(0.4);
    }
}
@media screen and (orientation:portrait) {
  body.tablet #opening .outer .inner .logo_box {
    width: 40vw;
  }
  body.tablet #opening .butterfly_wrap {
    transform: translateY(-5%);
  }
}
@media screen and (max-width: 640px) {
  #opening .outer .inner .logo_box {
    width: 65vw;
  }
  .butterfly_wrap {
    top: var(--content-padding-top);
    aspect-ratio: 375 / 560;
  }
}

/*-------------------------------------------------

main

--------------------------------------------------*/
.main {
  position: relative;
  display: block;
  padding-top: var(--content-padding-top);
}
@media screen and (max-width: 640px) {
  .main {

  }
}

/*-------------------------------------------------

store

--------------------------------------------------*/
#store {
  position: fixed;
  bottom: 135px;
  right: 0;
  line-height: 1;
  z-index: 10;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  perspective: 1000;
  pointer-events: none;
}
:root {
  --store_wrap_width: auto;
}
#store .wrap {
  position: relative;
  display: flex;
  align-items: center;
  height: 186px;
  background: rgba(255,255,255,.80);
  box-shadow: 0px 0px 7px 0px rgba(0,0,0,0.2);
  border-radius: 5px 0 0 5px;
  transform: translateX(calc(100% - 46px));
  transition: transform .1s ease-in-out, box-shadow .1s ease-in-out;
  will-change: transform;
  cursor: pointer;
  pointer-events: auto;
}
body:not(.tablet):not(.mobile) #store .wrap:hover,
body.tablet #store .wrap.open,
body.mobile #store .wrap.open {
  transform: translateX(0%);
  transition: transform .1s ease-in-out .1s, box-shadow .1s ease-in-out .1s;
}

/* 展開なし */
/*
body:not(.tablet):not(.mobile) #store .wrap {
  transition: background .2s ease-in-out, box-shadow .1s ease-in-out;
}
body:not(.tablet):not(.mobile) #store .wrap:hover {
  background: rgba(255,255,255,1);
  background: rgba(246,246,246,1);
  box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.3);
  transition: background .2s ease-in-out .1s, box-shadow .1s ease-in-out .1s;
}
*/

body #store .wrap > a {
  display: block;
  width: 100%;
  height: 100%;
}
#store .ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 100%;
  text-align: center;
  letter-spacing: .05em;
}
#store .ttl a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
#store .ttl img {
  width: 16px;
  height: 115px;
}
#store .btns {
  display: grid;
  grid-template-rows: repeat(2, 1fr);
  grid-auto-flow: column;
  gap: 20px 10px;
  padding: 0 30px 0 20px;
}
#store .btns a {
  position: relative;
  display: inline-block;
  min-width: 7.8em;
  padding: 0.2em 1.666em 0.2em 1em;
  color: #000;
  font-size: 1.8rem;
  font-family: 'Forum', serif;
  letter-spacing: .05em;
  text-decoration: none;
  text-align: center;
  line-height: 1.666em;
  transition: all .1s ease-in-out;
  background: transparent;
}
#store .btns a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 1em;
  width: .35em;
  height: .35em;
  border-top: 1px solid var(--primary-bg-color);
  border-right: 1px solid var(--primary-bg-color);
  border-color: var(--primary-color);
  transform: translateY(-25%) rotate(45deg);
  transition: all .1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  #store .btns a:hover {
    color: #fff;
    background: var(--primary-color);
    transition: all .1s ease-in-out .1s;
  }
  #store .btns a:hover::after {
    border-color: #fff;
    transition: all .1s ease-in-out .1s;
  }
}
@media screen and (max-width: 1600px) {
  #store {
    bottom: 8.4375vw;
  }
  #store .wrap {
    height: max(120px,11.625vw);
    transform: translateX(calc(100% - min(2.875vw,46px)));
  }
  #store .ttl {
    width: max(28px,2.875vw);
  }
  #store .ttl img {
    width: 1vw;
    height: auto;
  } 
  #store .btns a {
    font-size: max(1.125vw,1.2rem);
  }
}
@media screen and (max-width: 991px) {
  #store {
    bottom: 83px;
  }
  #store .wrap {
    height: 120px;
    transform: translateX(calc(100% - 28px));
  }
  #store .ttl img {
    width: 10px;
    height: 71px;
  } 
}
@media screen and (max-width: 640px) {
  #store {
    top: auto;
    bottom: 70px;
  }
  #store .wrap {
    height: 100px;
    transform: translateX(calc(100% - 27px));
  }
  #store .btns {
    gap: 15px 5px;
    padding: 0 15px 0 10px;
  }
  #store .ttl {
    width: 27px;
  }
  #store .ttl img {
    width: 11px;
    height: 79px;
  }
  #store .btns a {
    font-size: 1.2rem;
  }
}
body.tablet #store .wrap,
body.mobile #store .wrap {
  transition-duration: .2s;
}
body.tablet #store .wrap.open,
body.mobile #store .wrap.open {
  transition-duration: .2s;
}

/*-------------------------------------------------

 kv

--------------------------------------------------*/
#kv {
  position: relative;
}
#kv .outer {
	position: relative;
	width: 100%;
	aspect-ratio: 1920 / 850;
}
#kv .logo {
	position: absolute;
  bottom: calc(30 / var(--base-width) * 100vw);
  left: calc(70 / var(--base-width) * 100vw);
  width: calc(280 / var(--base-width) * 100vw);
  opacity: 0;
  transition: opacity 1.5s ease-out 3s;
}
#kv.start .logo {
  opacity: 1;
}
#kv .logo img {
	width: 100%;
}
#kv .inner {
	position: relative;
  width: calc(1060 / var(--base-width) * 100vw);
  margin-inline: auto;
  container-type: inline-size;
}
#kv .inner .img_block {
  transform: scale(0) translate3d(0, 0, 0);
  transition: transform 1.5s cubic-bezier(0,.7,0,1);
  position: relative;
}
#kv.start .inner .img_block {
  transform: scale(1) translate3d(0, 0, 0);
}
#kv .inner .img_block::after {
	position: absolute;
	content: '';
	left: -3px;
	top: -3px;
	width: calc(100% + 6px);
	height: calc(66% + 6px);
	border-top: 4px solid #fff;
	border-left: 4px solid #fff;
	border-right: 4px solid #fff;
	transition: opacity 0.1s ease-out 1.4s;
}
#kv.start .inner .img_block::after {
	opacity: 0;
}
#kv .inner .img_block .img {
  position: relative;
  aspect-ratio: 1060 / 750;
  overflow: hidden;
}
#kv .inner .img_block .img::after {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  aspect-ratio: 1 / 1;
  background-image: radial-gradient(transparent 0%, transparent 70.5%, var(--primary-bg-color) 70.7%);
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
  transform: scale(1.02, 1.04) translate3d(0, 0, 0);
  transform-origin: center top;
  transition: transform 1.0s cubic-bezier(0,.7,0,1) 0.5s;
}
#kv.start .inner .img_block .img::after {
  transform: scale(1) translate3d(0, 0, 0);
}
#kv .inner .img_block .img img {
  position: relative;
  width: 100%;
  margin-top: calc(190 / var(--base-width) * -100vw);
  transform: scale(2.0);
  transition: transform 1.5s cubic-bezier(0,.7,0,1);
}
#kv.start .inner .img_block .img img {
  transform: scale(1);
}
#kv .inner .main_ttl {
  position: relative;
  height: calc(100 / var(--base-width) * 100vw);
  z-index: 2;
}
#kv .circular-text-container {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-49.5%);
  display: inline-block;
  /* height: 620px; ビューポート幅の25%に設定 */
  width: calc(1135 / 1060 * 100cqi);
  aspect-ratio: 1135 / 620;
  /*
  margin: 0 auto;
  max-width: 1135px;
  width: 100%;
  */
}
#kv .circular-text {
  display: inline-block;
  position: relative;
  width: 100%; /* 親要素に合わせる */
  height: 100%; /* 親要素に合わせる */
  top: 0;
  left: 0;
}

.circular-text span {
  position: absolute;
  /*left: 50%;
  top: 100%;
  transform-origin: 100% 100%;  親要素の高さの50%を基準に */
}
.circular-text span img {
  width: 100%;
  height: auto;
}
/*
.char1 { left: -3px; top: 404px; }
.char2 { left: 7px; top: 323px; }
.char3 { left: 56px; top: 283px; }
.char4 { left: 92px; top: 224px; }
.char5 { left: 135px; top: 152px; }
.char6 { left: 211px; top: 122px; }
.char7 { left: 264px; top: 90px; }
.char8 { left: 297px; top: 50px; }
.char9 { left: 367px; top: 48px; }
.char10 { left: 462px; top: 0px; }
.char11 { left: 532px; top: 4px;; }
.char12 { left: 567px; top: 20px; }
.char13 { left: 666px; top: 15px; }
.char14 { left: 702px; top: 22px;}
.char15 { left: 740px; top: 57px; }
.char16 { left: 799px; top: 69px; }
.char17 { left: 886px; top: 112px; }
.char18 { left: 939px; top: 181px; }
.char19 { left: 981px; top: 218px; }
.char20 { left: 1010px; top: 252px; }
.char21 { left: 1031px; top: 296px; }
.char22 { left: 1054px; top: 342px; }
.char23 { left: 1074px; top: 401px; }
*/
/*
@media screen and (max-width: 11350px) {
*/
.char1 { left: -0.26%; top: 65.16%; width: 4.67%;}
.char2 { left: 0.62%; top: 52.1%; width: 6.52%;}
.char3 { left: 4.93%; top: 45.65%; width: 4.76%;}
.char4 { left: 8.11%; top: 36.13%; width: 5.99%;}
.char5 { left: 11.89%; top: 24.52%; width: 6.26%;}
.char6 { left: 18.59%; top: 19.68%; width: 4.58%;}
.char7 { left: 23.26%; top: 14.52%; width: 2.82%;}
.char8 { left: 26.17%; top: 8.06%; width: 5.99%;}
.char9 { left: 32.33%; top: 7.74%; width: 4.05%;}
.char10 { left: 40.7%; top: 0%; width: 4.93%;}
.char11 { left: 46.87%; top: 0.65%; width: 1.23%;}
.char12 { left: 49.96%; top: 3.23%; width: 6.78%;}
.char13 { left: 58.68%; top: 2.42%; width: 1.76%;}
.char14 { left: 61.85%; top: 3.55%; width: 2.56%;}
.char15 { left: 65.2%; top: 9.19%; width: 4.32%;}
.char16 { left: 70.4%; top: 11.13%; width: 6.08%;}
.char17 { left: 78.06%; top: 18.06%; width: 7.31%;}
.char18 { left: 82.73%; top: 29.19%; width: 7.05%;}
.char19 { left: 86.43%; top: 35.16%; width: 4.93%;}
.char20 { left: 88.99%; top: 40.65%; width: 5.02%;}
.char21 { left: 90.84%; top: 47.74%; width: 5.46%;}
.char22 { left: 92.86%; top: 55.16%; width: 4.58%;}
.char23 { left: 94.63%; top: 64.68%; width: 5.11%;}
/*
}
*/
@media screen and (max-width: 640px) {
  #kv .outer {
    aspect-ratio: 375 / 560;
  }
  #kv .inner {
    width: calc(310 / var(--base-width) * 100vw);
    padding-top: calc(45 / var(--base-width) * 100vw);
  }
  #kv .inner .main_ttl {
    height: calc(28 / var(--base-width) * 100vw);
    font-size: 25%;
  }
  #kv .circular-text-container {
    width: calc(332 / 310 * 100cqi);
  }
  #kv .inner .img_block .img {
    aspect-ratio: 310 / 430;
  }
  #kv .inner .img_block .img img {
    margin-top: calc(70 / var(--base-width)* -100vw);
  }
  #kv .logo {
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
  }
  #kv .logo img {
    width: calc(174 / var(--base-width) * 100vw);
  }
}

/*-------------------------------------------------

wrapper

--------------------------------------------------*/
.main > .wrapper {
  position: relative;
  overflow: clip;
}

/*-------------------------------------------------

design

--------------------------------------------------*/
#design {
  position: relative;
  margin-top: min(200 / var(--base-width) * 100vw, 200px);
  padding-top: min(150 / var(--base-width) * 100vw, 150px);
  z-index: 1;
}
#design::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(2486 / var(--base-width) * 100vw);
  aspect-ratio: 1 / 1;
  border-radius: 9999px;
  border: 1px solid var(--primary-txt-color);
  z-index: -1;
  transform: translateX(-50%);
  pointer-events: none;
  opacity: 0;
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
  transition: opacity .4s ease-out;
}
#design.scrollin::before {
  opacity: 1;
}
#design .outer {
  position: relative;
}
#design .outer > .flower_obj {
  position: absolute;
  top: max(-200 / var(--base-width) * 100vw, -200px);
  left: 0;
  width: calc(380 / var(--base-width) * 100vw);
  aspect-ratio: 380 / 450;
  z-index: 2;
}
#design .outer > .flower_obj.obj01 {
  z-index: 2;
}
#design .outer > .flower_obj.obj02 {

}
#design .main_ttl {
  margin-bottom: calc(110 / 55 * 1em);
  color: var(--primary-txt-color);
  font-size: min(55 / var(--base-width) * 100vw, 55px);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
  text-align: center;
  line-height: 1.1;
}
#design .main_ttl .wrap {
  position: relative;
  display: inline-block;
}
#design .design_intro {
  display: grid;
  grid-template-columns: 1.092fr 1fr;
  width: min(1360 / var(--base-width) * 100vw, 1360px);
  margin-inline: auto;
  container-type: inline-size;
}
#design .design_intro .txt_block {
  align-self: center;
  padding-right: 13.8%;
}
#design .design_intro .txt_block .common_txt:not(:last-of-type) {
  margin-bottom: 1em;
}
#design .design_intro .design_intro_ttl {
  position: relative;
  margin-bottom: 1.25em;
  color: var(--primary-txt-color);
  font-size: calc(40 / 1360 * 100cqi);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
  text-align: center;
}

#design .design_intro .design_intro_ttl .ttl_obj {
  position: absolute;
  top: calc(-42 / 55 * 1em);
  left: calc(230 / 55 * 1em);
  width: 1em;
  aspect-ratio: 36 / 35;
  font-size: calc(36 / 55 * 1em);
  line-height: 1;
  transform: rotate(-30deg);
}
#design .design_intro .design_intro_ttl .ttl_obj img {
  opacity: 0;
  transition: opacity .4s ease-out 1.0s, transform .4s ease-out 1.0s;
}
#design .design_intro .design_intro_ttl.scrollin .ttl_obj img {
  animation: var(--fuwafuwa-anim);
  opacity: 1;
}
#design .design_intro .txt_block .top {
  position: relative;
  /*
  display: flex;
  align-items: center;
  */
}
#design .design_intro .txt_block .top::before,
#design .design_intro .txt_block .top::after {
  content: 'ー';
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
}
#design .design_intro .img_block .img {
  position: relative;
  aspect-ratio: 650 / 350;
  border-radius: 20px;
  overflow: hidden;
}
#design .design_intro .img_block .img_wrap {
  position: absolute;
  top: -10%;
  width: 100%;
  height: 120%;
}
#design .design_intro .img_block .img_wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#design .design_block {
  position: relative;
  width: 100%;
  height: 100%;
  padding-top: min(130 / var(--base-width)* 100vw, 130px);
}
#design .design_block .flower_obj {
  position: absolute;
  top: min(250 / var(--base-width) * 100vw, 250px);
  right: 0;
  width: calc(280 / var(--base-width) * 100vw);
  aspect-ratio: 280 / 480;
  z-index: 2;
}
#design .design_block .flower_obj.obj21 {
  z-index: 2;
}
#design .design_block .flower_obj.obj31,
#design .design_block .flower_obj.obj32,
#design .design_block .flower_obj.obj33,
#design .design_block .flower_obj.obj34 {
  top: auto;
  right: auto;
  left: 0;
  bottom: max(-530 / var(--base-width)* 100vw, -530px);
  width: calc(460 / var(--base-width)* 100vw);
  aspect-ratio: 445 / 520;
}
#design .design_block .design_block_wrap {
  position: relative;
  width: min(1640 / var(--base-width)* 100vw, 1640px);
  margin-inline: auto;
  container-type: inline-size;
}
#design .design_block .side_img_block {
  position: absolute;
  top: calc(260 / 1640 * 100cqi);
  left: calc(1100 / 1640 * 100cqi);
  width: calc(663 / 1640 * 100cqi);
}
#design .design_block .first_section {
  position: relative;
  width: min(1000 / var(--base-width) * 100vw, 1000px);
  container-type: inline-size;
}
#design .design_block .first_section .img_block .img {
  position: relative;
  aspect-ratio: 1000 / 800;
  overflow: hidden;
}
#design .design_block .first_section .img_block .img_wrap {
  position: absolute;
  top: -4%;
  left: 0;
  width: 100%;
  height: 108%;
}
#design .design_block .first_section .img_block .img_wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#design .design_block .first_section .img_block .img::after {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  aspect-ratio: 1 / 1;
  background-image: radial-gradient(transparent 0%, transparent 70.5%, var(--primary-bg-color) 70.7%);
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
}
#design .design_block .first_section .txt_block {
  width: max((545 / 1000 * 100cqi), 280px);
  margin-top: calc(150 / 1000 * 100cqi);
  margin-inline: auto;
}
#design .design_block .first_section .txt_block .serial_ttl {
  position: relative;
  margin-bottom: 1.25em;
  color: var(--primary-txt-color);
  font-size: calc(40 / 1000 * 100cqi);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
}
#design .design_block .first_section .txt_block .serial_ttl .ttl_obj {
  position: absolute;
  top: calc(-40 / 40 * 1em);
  left: calc(230 / 40 * 1em);
  width: 0.8em;
  aspect-ratio: 36 / 35;
  font-size: calc(36 / 40 * 1em);
  line-height: 1;
  transform: rotate(20deg);
}
#design .design_block .first_section .txt_block .serial_ttl .ttl_obj img {
  opacity: 0;
  transition: opacity .4s ease-out 1.0s, transform .4s ease-out 1.0s;
}
#design .design_block .first_section .txt_block .serial_ttl.scrollin .ttl_obj img {
  animation: var(--fuwafuwa-anim);
  opacity: 1;
}
#design .design_block .first_section .txt_block .common_txt:not(:last-child)  {
  margin-bottom: 1em;
}
#design .design_block .second_section {
  margin-top: max(-70 / var(--base-width) * 100vw, -70px);
}
#design .design_block .second_section .img_and_txt_block {
  display: flex;
  justify-content: space-between;
  width: min(1462 / var(--base-width) * 100vw, 1462px);
  margin-left: min(80 / var(--base-width) * 100vw, 80px);
  container-type: inline-size;
}
#design .design_block .second_section .img_and_txt_block .img_block {
  position: relative;
  width: calc(722 / 1462 * 100cqi);
  margin-top: calc(240 / 1462 * 100cqi);
  container-type: inline-size;
}
#design .design_block .second_section .img_and_txt_block .img_block .img {
  position: relative;
  aspect-ratio: 500 / 350;
  width: calc(500 / 722 * 100cqi);
  border-radius: calc(70 / 722 * 100cqi);
  overflow: hidden;
}
#design .design_block .second_section .img_and_txt_block .img_block .img_wrap {
  position: absolute;
  top: -10%;
  width: 100%;
  height: 120%;
}
#design .design_block .second_section .img_and_txt_block .img_block .img_wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#design .design_block .second_section .img_and_txt_block .img_block .img.img2 {
  position: absolute;
  top: calc(310 / 722 * 100cqi);
  left: calc(222 / 722 * 100cqi);
}
#design .design_block .second_section .img_and_txt_block .txt_block {
  position: relative;
  width: calc(560 / 1462 * 100cqi);
  container-type: inline-size;
}
#design .design_block .second_section .txt_block .splide__track {
  overflow: inherit;
}
#design .design_block .second_section .txt_block .splide__slide .img {
  border-radius: calc(100 / 722 * 100cqi);
  overflow: hidden;
}
#design .design_block .second_section .txt_block .splide_navs {
  position: absolute;
  top: calc(590 / 560 * 100cqi);
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 6px;
  z-index: 2;
}
#design .design_block .second_section .txt_block .splide_navs button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  cursor: pointer;
}
#design .design_block .second_section .txt_block .splide_navs .splide__arrows button {
  width: max((10 / 560 * 100cqi), 8px);
  aspect-ratio: 84 / 150;
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJf44Os44Kk44Ok44O8XzEiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgOSAxNiI+ICA8ZGVmcz4gPHN0eWxlPiAuc3QwIHsgZmlsbDogIzQ0MzMxZTsgfSA8L3N0eWxlPiA8L2RlZnM+IDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04LjUsMTZjLS4xLDAtLjIsMC0uMy0uMUwuMiw4LjRjLS4xLDAtLjItLjItLjItLjRzMC0uMy4yLS40TDguMi4xYy4yLS4yLjUtLjIuNywwLC4yLjIuMi41LDAsLjdMMS4yLDhsNy42LDcuMWMuMi4yLjIuNSwwLC43LDAsLjEtLjIuMi0uNC4yWiIvPjwvc3ZnPg==");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
}
#design .design_block .second_section .txt_block .splide_navs .splide__arrows button.splide__arrow--next {
  transform: rotate(180deg);
}
#design .design_block .second_section .txt_block .splide_navs .splide__pagination {
  display: flex;
  gap: calc(22 / 560 * 100cqi);
  margin-inline: calc(30 / 560 * 100cqi);
}
#design .design_block .second_section .txt_block .splide_navs .splide__pagination button {
  width: max((15 / 560 * 100cqi), 10px);
  aspect-ratio:  1 / 1;
  border: 1px solid var(--primary-txt-color);
  border-radius: 9999px;
}
#design .design_block .second_section .txt_block .splide_navs .splide__pagination button.is-active {
  background: var(--primary-txt-color);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt {
  position: relative;
  margin-top: calc(120 / 560 * 100cqi);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 .inner_txt {
  padding-right: 1em;
  flex: 1;
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 .icon {
  width: calc(87 / 560 * 100cqi);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(36 / 560 * 100cqi);
  aspect-ratio: 36 / 32;
  line-height: 1;
  transform: translate3d(10%, 200%, 0) rotate(-5deg);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 {
  width: calc(25 / 560 * 100cqi);
  aspect-ratio: 25 / 25;
  top: auto;
  bottom: 0;
  transform: translate3d(130%, -10%, 0) rotate(25deg);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 .butterfly_body_bk {
  animation-delay: 1s;
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon img {
  animation: var(--fuwafuwa-anim);
}
#design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 img {
  animation-delay: 1s;
}

/* SSWA014 */
#design .design_block.SSWA014 {
  padding-top: min(360 / var(--base-width) * 100vw, 360px);
}
#design .design_block.SSWA014 .side_img_block {
  position: absolute;
  top: calc(280 / 1640 * 100cqi);
  left: calc(270 / 1640 * 100cqi);
  width: calc(585 / 1640 * 100cqi);
}
#design .design_block.SSWA014 .first_section {
  margin-left: auto;
  margin-right: 0;
}
#design .design_block.SSWA014 .first_section .txt_block .serial_ttl .ttl_obj {
  top: calc(-32 / 40* 1em);
  left: calc(-60 / 40 * 1em);
  transform: rotate(-30deg);
}
#design .design_block.SSWA014 .second_section {
  margin-top: max(-70 / var(--base-width) * 100vw, -70px);
}
#design .design_block.SSWA014 .second_section .img_and_txt_block {
  flex-direction: row-reverse;
  margin-left: min(110 / var(--base-width) * 100vw, 110px);
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .img_block {
  margin-top: min(200 / var(--base-width)* 100vw, 200px);
}
#design .design_block.SSWA014 .img_and_txt_block .txt_block .splide_navs {
  display: none;
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt {
  display: block;
  margin-top: calc(80 / 560 * 100cqi);
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon {
  top: auto;
  bottom: 0;
  transform: translate3d(0%, 200%, 0) rotate(-5deg);
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 {
  top: auto;
  bottom: 0;
  transform: translate3d(120%, -10%, 0) rotate(25deg);
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .img_block .img {
  margin-left: auto;
}
#design .design_block.SSWA014 .second_section .img_and_txt_block .img_block .img.img2 {
  left: auto;
  right: calc(222 / 722 * 100cqi);
}
#design .design_block.SSWA014 .flower_obj.obj41,
#design .design_block.SSWA014 .flower_obj.obj42,
#design .design_block.SSWA014 .flower_obj.obj43 {
  top: min(1110 / var(--base-width) * 100vw, 1110px);
  width: calc(300 / var(--base-width) * 100vw);
  aspect-ratio: 300 / 455;
}
@media screen and (orientation:portrait) {

}
@media screen and (max-width: 1200px) {
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt br.ctl {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  #design {
    margin-top: min(140 / var(--base-width) * 100vw, 210px);
    padding-top: min(90 / var(--base-width) * 100vw, 135px);
    z-index: 1;
  }
  #design::before {
    width: calc(482 / var(--base-width) * 100vw);
  }
  #design .outer {
    width: 100%;
  }
  #design .outer > .flower_obj {
    top: calc(-205 / var(--base-width) * 100vw);
    left: 0;
    width: calc(155 / var(--base-width) * 100vw);
  }
  #design .main_ttl {
    margin-bottom: calc(40 / 30 * 1em);
    font-size: min(30 / var(--base-width) * 100vw, 45px);
  }
  #design .design_intro {
    display: grid;
    grid-template-columns: 1fr;
    width: min(312 / var(--base-width) * 100vw, 468px);
    margin-inline: auto;
  }
  #design .design_intro .img_block {
    grid-row: 1 / 2;
    margin-bottom: min(40 / var(--base-width) * 100vw, 60px);
  }
  #design .design_intro .txt_block {
    padding-right: 0;
  }
  #design .design_intro .design_intro_ttl {
    margin-bottom: calc(30 / 24 * 1em);
    font-size: min(24 / var(--base-width) * 100vw, 36px);
  }
  #design .design_intro .design_intro_ttl .ttl_obj {
    left: calc(125 / 55* 1em);
  }
  #design .design_intro .txt_block .txt {
    justify-content: center;
    text-align: center;
    white-space: nowrap;
  }
  #design .design_intro .txt_block .top {
    margin-bottom: 0.5em;
  }
  #design .design_block {
    padding-top: min(60 / var(--base-width) * 100vw, 90px);
  }
  #design .design_block .flower_obj {
    top: calc(280 / var(--base-width) * 100vw);
    width: calc(100 / var(--base-width) * 100vw);
  }
  #design .design_block .flower_obj.obj31,
  #design .design_block .flower_obj.obj32,
  #design .design_block .flower_obj.obj33,
  #design .design_block .flower_obj.obj34 {
    bottom: calc(-170 / var(--base-width) * 100vw);
    width: calc(175 / var(--base-width) * 100vw);
  }
  #design .design_block .design_block_wrap {
    width: 100%;
  }
  #design .design_block .side_img_block {
    top: min(290 / var(--base-width)* 100vw, 420px);
    left: 50%;
    width: min(275 / var(--base-width)* 100vw, 412px);
    transform: translateX(-23%);
  }
  #design .design_block .first_section {
    width: min(325 / var(--base-width)* 100vw, 488px);
    margin-inline: auto !important;
  }
  #design .design_block .first_section .img_block {
    width: calc(300 / 325 * 100cqi);
    margin-right: auto;
  }
  #design .design_block .first_section .txt_block {
    width: 100%;
    width: calc(250 / 325 * 100cqi);
    margin-inline: auto;
    margin-top: calc(442 / 325 * 100cqi);
  }
  #design .design_block .first_section .txt_block .serial_ttl {
    margin-bottom: calc(30 / 24 * 1em);
    font-size: min(24 / var(--base-width) * 100vw, 36px);
    text-align: center;
  }
  #design .design_block .first_section .txt_block .serial_ttl .ttl_obj {
    top: calc(-42 / 40 * 1em);
    left: calc(360 / 40 * 1em);
  }
  #design .design_block .second_section {
    margin-top: min(60 / var(--base-width) * 100vw, 90px) !important;
  }
  #design .design_block .second_section .img_and_txt_block {
    flex-direction: column-reverse !important;
    gap: min(60 / var(--base-width) * 100vw, 90px);
    width: min(355 / var(--base-width) * 100vw, 534px);
    margin-inline: auto !important;
  }
  #design .design_block .second_section .img_and_txt_block .txt_block {
    width: min(310 / var(--base-width) * 100vw, 465px);
    margin-inline: auto;
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt {
    width: min(250 / var(--base-width) * 100vw, 375px);
    margin-inline: auto;
    margin-top: min(60 / var(--base-width) * 100vw, 90px);
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 {
    flex-direction: column;
    align-items: flex-end;
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 .inner_txt {
    padding-right: 0;
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt1 .icon {
    width: min(50 / var(--base-width) * 100vw, 75px);
    margin-top: 0.5em;
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon {
    top: auto;
    bottom: 0;
    width: min(44 / var(--base-width) * 100vw, 66px);
    transform: translate3d(10%, 40%, 0);
  }
  #design .design_block .second_section .img_and_txt_block .img_block {
    width: 100%;
    margin-top: 0 !important;
    aspect-ratio: 355 / 358;
  }
  #design .design_block .second_section .img_and_txt_block .img_block .img {
    width: calc(270 / 355 * 100cqi);
    border-radius: calc(50 / 355 * 100cqi);
  }
  #design .design_block .second_section .img_and_txt_block .img_block .img.img2 {
    top: calc(168 / 355 * 100cqi);
    left: calc(85 / 355 * 100cqi);
  }
  #design .design_block.SSWA014 {
    padding-top: min(200 / var(--base-width) * 100vw, 300px);
  }
  #design .design_block .first_section .img_block {
    width: calc(315 / 325 * 100cqi);
    margin-right: auto;
    margin-left: calc(-15 / 325 * 100cqi);
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon {
    width: calc(22 / 325 * 100cqi);
    transform: translate3d(-100%, 100%, 0) rotate(-5deg);
  }
  #design .design_block .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 {
    width: calc(15 / 325 * 100cqi);
    transform: translate3d(-20%, -60%, 0) rotate(20deg);
  }

  /* SSWA014 */
  #design .design_block.SSWA014 .side_img_block {
    top: min(290 / var(--base-width)* 100vw, 420px);
    left: 50%;
    width: min(250 / var(--base-width)* 100vw, 375px);
    transform: translateX(-20%);
  }
  #design .design_block.SSWA014 .first_section .img_block {
    margin-left: auto;
    margin-right: calc(-15 / 325* 100cqi);
  }
  #design .design_block.SSWA014 .first_section .txt_block {
    margin-top: calc(438 / 325 * 100cqi);
  }
  #design .design_block.SSWA014 .first_section .txt_block .serial_ttl .ttl_obj {
    top: calc(-32 / 40* 1em);
    left: calc(70 / 40* 1em);
  }
  #design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt {
    margin-top: min(40 / var(--base-width) * 100vw, 60px);
  }
  #design .design_block.SSWA014 .flower_obj.obj41,
  #design .design_block.SSWA014 .flower_obj.obj42,
  #design .design_block.SSWA014 .flower_obj.obj43 {
    top: min(1250 / var(--base-width)* 100vw, 1500px);
    width: calc(120 / var(--base-width)* 100vw);
  }
  #design .design_block.SSWA014 .second_section .img_and_txt_block .img_block .img.img2 {
    left: auto;
    right: calc(85 / 355 * 100cqi);
  }
  #design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon {
    transform: translate3d(-100%, 100%, 0) rotate(-5deg);
  }
  #design .design_block.SSWA014 .second_section .img_and_txt_block .txt_block .common_txt.txt2 .icon.icon2 {
    transform: translate3d(-20%, -60%, 0) rotate(20deg);
  }
}

/*-------------------------------------------------

lead

--------------------------------------------------*/
#lead {
  position: relative;
  padding-top: min((200 / var(--base-width) * 100vw), 200px);
  padding-bottom: calc(640 / var(--base-width) * 100vw);
}
#lead .outer {
  position: relative;
  width: min(1920 / var(--base-width) * 100vw, 1920px);
  margin-inline: auto;
  container-type: inline-size;
}
#lead .inner {
  position: relative;
  width: min(1240 / var(--base-width) * 100vw, 1240px);
  margin-inline: auto;
  container-type: inline-size;
}
#lead .main_ttl {
  margin-bottom: 1.25em;
  color: var(--primary-txt-color);
  font-size: clamp(20px, 38 / var(--base-width) * 100vw, 38px);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-align: center;
  line-height: 1.4;
}
#lead .main_ttl .ttl_upper {
  display: inline-block;
  margin-bottom: 1.0em;
  padding-inline: 0.65em;
  color: #fff;
  font-size: calc(18 / 38 * 100%);
  font-weight: 500;
  line-height: calc(28 / 18 * 1em);
  background: var(--primary-txt-color);
  border-radius: 5px;
}
#lead .main_ttl .ja {
  transition-delay: 0.25s;
}
#lead .main_ttl .en {
  display: inline-block;
  font-size: 135%;
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.05em;
}
#lead .common_txt {
  margin-bottom: 1em;
  font-size: clamp(12px,(18 / var(--base-width)* 100vw), 18px);
  font-weight: 500;
  line-height: calc(40 / 18);
  text-align: center;
  letter-spacing: 0.1em;
}
#lead .common_txt:last-of-type {
  margin-bottom: 0;
}
#lead .inner .objects {
  position: absolute;
  container-type: inline-size;
  z-index: 2;
}
#lead .inner .objects img {
  width: 100%;
}
#lead .inner .objects.object01 {
  top: 0;
  left: 0;
  width: calc(200 / 1240 * 100cqi);
  aspect-ratio: 1 / 1;
}
#lead .inner .objects .butterfly_wrap {
  position: absolute;
  top: calc(-40 / 200 * 100cqi);
  left: calc(25 / 200 * 100cqi);
  width: calc(32 / 200 * 100cqi);
  transform: rotate(20deg);
  opacity: 0;
  transition: opacity 1.0s cubic-bezier(0.33, 1, 0.68, 1) 1.0s;
}
#lead .inner .objects.object02 .butterfly_wrap {
  transition: opacity 1.0s cubic-bezier(0.33, 1, 0.68, 1) 1.5s;
}
#lead .inner .objects.scrollin .butterfly_wrap {
  opacity: 1;
}
#lead .inner .objects.object02 {
  top: calc(150 / 1240 * 100cqi);
  right: 0;
  width: calc(146 / 1240 * 100cqi);
  aspect-ratio: 49 / 75;
}
#lead .inner .objects.object02 .butterfly_wrap {
  top: auto;
  bottom: calc(-30 / 146 * 100cqi);
  left: calc(30 / 146 * 100cqi);
  width: calc(22 / 146 * 100cqi);
  transform: rotate(150deg);
}
#lead .inner .objects.object01 .img {
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  transition: clip-path 1.0s cubic-bezier(0.33, 1, 0.68, 1);
}
#lead .inner .objects.object02 .img {
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  transition: clip-path 1.0s cubic-bezier(0.33, 1, 0.68, 1) 0.5s;
}
#lead .inner .objects.scrollin .img {
  clip-path: polygon(0 100%, 100% 100%, 100% 0, 0 0);
}
#lead > .bg {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  aspect-ratio: 1920 / 580;
  border-bottom: 1px solid var(--primary-txt-color);
  overflow: hidden;
}
#lead > .bg .img {
  width: 100%;
  height: 100%;
}
#lead > .bg .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}
@media screen and (orientation:portrait) {

}
@media screen and (max-width: 640px) {
  #lead {
    padding-top: min((200 / var(--base-width) * 100vw), 300px);
    padding-bottom: calc(325 / var(--base-width) * 100vw);
  }
  #lead .outer {
    width: 100%;
  }
  #lead .inner {
    width: 100%;
  }
  #lead .inner .objects.object01 {
    top: calc(-120 / var(--base-width) * 100vw);
    left: auto;
    right: 5%;
    width: calc(120 / var(--base-width) * 100vw);
    aspect-ratio: 37 / 25;
  }
  #lead .inner .objects.object01 .img {
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
  #lead .inner .objects.object01.scrollin .img {
    clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%);
  }
  #lead .inner .objects.object02 {
    top: auto;
    left: 2.5%;
    right: auto;
    bottom: calc(-90 / var(--base-width) * 100vw);
    width: calc(130 / var(--base-width) * 100vw);
    aspect-ratio: 127 / 75;
  }
  #lead .inner .objects .butterfly_wrap {
    top: calc(40 / 120 * 100cqi);
    left: calc(-22 / 120 * 100cqi);
    width: calc(20 / 120 * 100cqi);
    transform: rotate(-40deg);
  }
  #lead .inner .objects.object02 .butterfly_wrap {
    top: auto;
    bottom: calc(-10 / 130 * 100cqi);
    left: auto;
    right: calc(-28 / 130 * 100cqi);
    width: calc(18 / 130 * 100cqi);
    transform: rotate(95deg);
  }
  #lead .main_ttl {
    margin-bottom: 1.5em;
    font-size: min(22 / var(--base-width) * 100vw, 33px);
    text-align: center;
  }
  #lead .main_ttl .ttl_upper {
    margin-bottom: 1.25em;
    padding-inline: 0.45em;
    font-size: calc(15 / 22 * 100%);
  }
  #lead .common_txt {
    margin-bottom: 2em;
    font-size: min((13 / var(--base-width) * 100vw), 18px);
    line-height: calc(33 / 13);
    letter-spacing: 0.1em;
  }
  #lead > .bg {
    aspect-ratio: 125 / 73;
  }
}

/*-------------------------------------------------

about

--------------------------------------------------*/
#about {
  position: relative;
  margin-top: min((235 / var(--base-width) * 100vw), 235px);
}
#about .outer {
  position: relative;
}
#about .inner {
  position: relative;
  width: min(1514 / var(--base-width) * 100vw, 1514px);
  margin-inline: auto;
  container-type: inline-size;
}
#about .main_ttl {
  width: calc(806 / 1514 * 100cqi);
  margin-top: calc(50 / 55 * 1em);
  margin-left: auto;
  margin-bottom: calc(140 / 55 * 1em);
  color: var(--primary-txt-color);
  font-size: min(55 / var(--base-width) * 100vw, 55px);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
  text-align: center;
  line-height: 1.1;
  container-type: inline-size;
}
#about .main_ttl .wrap {
  position: relative;
  display: inline-block;
}
#about .main_ttl .ttl_obj {
  position: absolute;
  top: calc(-40 / 55 * 1em);
  right: calc(-86 / 55 * 1em);
  width: 1em;
  aspect-ratio: 36 / 35;
  font-size: calc(36 / 55 * 1em);
  line-height: 1;
  transform: rotate(20deg);
}
#about .main_ttl .wrap > .ttl_obj img {
  opacity: 0;
  transition: opacity .4s ease-out 1.2s, transform .4s ease-out 1.2s;
}
#about .main_ttl .wrap.scrollin > .ttl_obj img {
  animation: var(--fuwafuwa-anim);
  opacity: 1;
}
#about .txt_block {
  width: calc(806 / 1514 * 100cqi);
  border: 1px solid var(--primary-txt-color);
  border-radius: calc(150 / 1514 * 100cqi);
  background: var(--primary-bg-color);
  container-type: inline-size;
}
#about .txt_block.block1 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
#about .txt_block.block2 {
  margin-left: auto;
  transition-delay: .4s;
}
#about .txt_block .txt_box_inner {
  padding: calc(70 / 806 * 100cqi) calc(145 / 806 * 100cqi);
}
#about .txt_block .txt_block_ttl {
  margin-bottom: 2em;
  font-size: clamp(14px,(20 / var(--base-width)* 100vw), 20px);
  font-weight: 500;
  line-height: calc(40 / 20);
  letter-spacing: 0.1em;
}
#about .txt_block .common_txt {
  font-size: clamp(10px,(15 / var(--base-width)* 100vw), 15px);
  font-weight: 500;
  line-height: calc(38 / 15);
  letter-spacing: 0.05em;
}
#about .txt_block.block2 .common_txt {
  text-align: left;
}
#about .txt_block .common_txt:not(:last-of-type) {
  margin-bottom: 1em;
}
#about .txt_block .common_txt.name {
  font-size: clamp(12px,(18 / var(--base-width)* 100vw), 18px);
  text-align: right;
}
#about .txt_block.block2 .common_txt.name {
  margin-bottom: 0.5em;
  text-align: left;
}
#about .txt_block .common_txt.name .en {
  display: inline-block;
  margin-right: 0.75em;
  font-weight: 400;
  font-family: 'Forum', serif;
}
#about .txt_block .common_txt.links {
  margin-bottom: 0;
  font-size: clamp(12px,(18 / var(--base-width)* 100vw), 18px);
}
#about .txt_block .common_txt.links .link {
  display: flex;
  justify-content: flex-end;
  gap: calc(30 / 18 * 1em);
}
#about .txt_block .common_txt.links .link a {
  color: var(--primary-txt-color);
}
#about .outer .flower_obj {
  position: absolute;
  top: min(100 / var(--base-width) * 100vw, 100px);
  left: 0;
  width: calc(270 / var(--base-width) * 100vw);
  aspect-ratio: 540 / 610;
  z-index: 2;
}
#about .outer .flower_obj.obj01 {
  z-index: 2;
}
#about .outer .flower_obj.obj02 {

}
#about .outer .flower_obj.obj03 {
  top: min(148 / var(--base-width) * 100vw, 148px);
  left: auto;
  right: 0;
  width: calc(284 / var(--base-width) * 100vw);
  aspect-ratio: 568 / 1136;
}

@media screen and (orientation:portrait) {

}
@media screen and (max-width: 640px) {
  #about {
    margin-top: min((80 / var(--base-width) * 100vw), 120px);
  }
  #about .inner {
    width: 100%;
    padding-inline: min((10 / var(--base-width) * 100vw), 15px);
  }
  #about .main_ttl {
    width: auto;
    margin-top: auto;
    margin-left: auto;
    margin-bottom: calc(40 / 30 * 1em);
    font-size: min(30 / var(--base-width) * 100vw, 45px);
    text-align: center;
  }
  #about .txt_block {
    width: min(324 / var(--base-width) * 100vw, 486px);
    border-radius: min(60 / var(--base-width) * 100vw, 90px);
  }
  #about .txt_block.block1 {
    position: relative;
    top: auto;
    left: auto;
    margin-left: auto;
    z-index: 2;
  }
  #about .txt_block.block2 {
    position: relative;
    z-index: 3;
    margin-top: max(20 / var(--base-width) * -100vw, -30px);
    margin-left: 0;
    margin-right: auto;
  }
  #about .txt_block .txt_box_inner {
    width: min(250 / var(--base-width) * 100vw, 375px);
    margin-inline: auto;
    padding: min(50 / var(--base-width) * 100vw, 75px) 0;
  }
  #about .txt_block .txt_block_ttl {
    margin-bottom: 1em;
    font-size: min(20 / var(--base-width) * 100vw, 30px);
  }
  #about .txt_block .common_txt {
    font-size: min((13 / var(--base-width) * 100vw), 18px);
    line-height: calc(30 / 13);
    letter-spacing: 0.07em;
  }
  #about .txt_block .common_txt.name,
  #about .txt_block .common_txt.links {
    font-size: min((15 / var(--base-width) * 100vw), 20px);
  }
  #about .txt_block .common_txt.links .link {
    gap: calc(20 / 15 * 1em);
  }
  #about .outer .flower_obj {
    top: calc(55 / var(--base-width) * 100vw);
    width: calc(110 / var(--base-width) * 100vw);
  }
  #about .outer .flower_obj.obj03 {
    top: 44%;
    right: -5%;
    width: calc(110 / var(--base-width)* 100vw);
    z-index: 3;
  }
}

/*-------------------------------------------------

box

--------------------------------------------------*/
#box {
  position: relative;
  padding-top: min(380 / var(--base-width) * 100vw, 380px);
}
#box .flower_obj {
  position: absolute;
  top: min(255 / var(--base-width) * 100vw, 255px);
  left: 0;
  width: calc(380 / var(--base-width) * 100vw);
  aspect-ratio: 380 / 340;
  z-index: 2;
}
#box .flower_obj.obj21,
#box .flower_obj.obj22 {
  top: auto;
  bottom: max(-190 / var(--base-width) * 100vw, -190px);
  right: 0;
  left: auto;
  width: calc(430 / var(--base-width) * 100vw);
  aspect-ratio: 430 / 400;
}
#box .outer {
  position: relative;
  width: min(1640 / var(--base-width) * 100vw, 1640px);
  margin-inline: auto;
  padding-block: min(110 / var(--base-width) * 100vw, 110px);
  container-type: inline-size;
  z-index: 1;
}
#box .outer::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  border: 1px solid var(--primary-txt-color);
  border-radius: min(150 / var(--base-width) * 100vw, 150px);
  z-index: -1;
}
#box .inner {
  position: relative;
  display: grid;
  gap: calc(55 / 1640* 100cqi);
  grid-template-columns: 1.226fr 1.0178fr 1fr;
  width: calc(1200 / 1640 * 100cqi);
  margin-inline: auto;
  container-type: inline-size;
}
#box .inner .obj {
  position: absolute;
  z-index: 1;
}
#box .inner .obj.obj01 {
  top: calc(-40 / 1500 * 100cqi);
  left: calc(601 / 1500 * 100cqi);
  width: calc(166 / 1500 * 100cqi);
}
#box .inner .obj.obj02 {
  top: calc(-15 / 1500 * 100cqi);
  left: calc(1340 / 1500 * 100cqi);
  width: calc(157 / 1500 * 100cqi);
}
#box .inner.scrollin > .obj.anim_start img {
  /*
  animation: var(--fuwafuwa-anim);
  animation-delay: var(--fuwafuwa-anim-delay);
  opacity: var(--fuwafuwa-anim-end-opacity);
  transform: scale(var(--fuwafuwa-anim-end-scale));
  */
}
#box .common_txt_ttl .ttl {

}
#box .inner .img_box {

}
#box .inner .img_box.SSQW090 {

}
#box .txt_block {
  align-self: center;
  padding-right: 20%;
}
#box .txt_block  .common_txt_ttl {
  margin-bottom: 1.25em;
  color: var(--primary-txt-color);
  font-size: calc(40 / 1200 * 100cqi);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
}
#box .txt_block .txt:not(:last-child) {
  margin-bottom: 1em;
}
#box .butterfly_wrap {
  position: absolute;
  opacity: 0;
  transition: transform 2.0s cubic-bezier(0.33, 1, 0.68, 1), opacity 2.0s cubic-bezier(0.33, 1, 0.68, 1);
  transition-delay: 0.5s;
}
#box .butterfly_wrap.w_yl {
  bottom: calc(220 / 1640 * 100cqi);
  right: calc(10 / 1640 * 100cqi);
  transform: translate3d(200%,100%,0) rotate(-35deg);
}
#box .butterfly_wrap.w_rd {
  top: calc(-120 / 1640 * 100cqi);
  left: calc(240 / 1640 * 100cqi);
  transform: translate3d(-200%,100%,0) rotate(35deg);
}
#box .butterfly_wrap.scrollin {
  opacity: 1;
  transform: translate3d(0,0,0) rotate(0);
}
#box .butterfly_outer {
  animation: var(--fuwafuwa-anim2);
}
#box .butterfly_wrap.w_rd .butterfly_outer {
  animation-delay: 1.0s;
}
#box .butterfly_yl {
  width: calc(80 / 1640 * 100cqi);
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  transform: rotate(-35deg) !important; 
}
#box .butterfly_rd {
  width: calc(70 / 1640 * 100cqi);
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  transform: rotate(30deg) !important; 
}
#box .butterfly_wrapper {
  scale: none !important;
}
@media screen and (orientation:portrait) {

}
@media screen and (max-width: 991px) {
  #box .txt_block {
    padding-right: 10%;
  }
}
@media screen and (max-width: 640px) {
  #box {
    position: relative;
    padding-top: calc(170 / var(--base-width) * 100vw);
  }
  #box .flower_obj {
    top: calc(60 / var(--base-width) * 100vw);
    width: calc(185 / var(--base-width) * 100vw);
  }
  #box .flower_obj.obj21,
  #box .flower_obj.obj22 {
    bottom: max(-145 / var(--base-width) * 100vw, -240px);
    width: calc(210 / var(--base-width) * 100vw);
  }
  #box .outer {
    position: relative;
    width: min(325 / var(--base-width)* 100vw, 488px);
    padding-block: min(50 / var(--base-width)* 100vw, 75px) min(70 / var(--base-width)* 100vw, 105px);
  }
  #box .outer::before {
    border-radius: min(60 / var(--base-width)* 100vw, 90px);
  }
  #box .inner {
    gap: min(20 / var(--base-width)* 100vw, 30px);
    grid-template-columns: 1fr;
    width: 100%;
    padding-inline: min(37 / var(--base-width)* 100vw, 55px);
  }
  #box .txt_block {
    margin-bottom: min(20 / var(--base-width)* 100vw, 30px);
    padding-right: 0;
  }
  #box .txt_block .common_txt_ttl {
    margin-bottom: calc(30 / 24 * 1em);
    font-size: min(24 / var(--base-width)* 100vw, 36px);
    text-align: center;
  }
  #box .inner .img_box {
    width: min(220 / var(--base-width)* 100vw, 330px);
    margin-inline: auto;
  }
  #box .butterfly_wrap.w_yl {
    top: auto;
    left: calc(90 / 325 * 100cqi);
    bottom: calc(-120 / 325 * 100cqi);
    right: auto;
  }
  #box .butterfly_wrap.w_rd {
    top: calc(-100 / 325 * 100cqi);
    left: calc(130 / 325 * 100cqi);
  }
  #box .butterfly_yl {
    width: calc(50 / 325 * 100cqi);
  }
  #box .butterfly_rd {
    width: calc(40 / 325 * 100cqi);
  }
}

/*-------------------------------------------------

spec

--------------------------------------------------*/
#spec {
  position: relative;
  padding-block: min((250 / var(--base-width) * 100vw), 250px) calc(450 / var(--base-width) * 100vw);
}
#spec > .outer {
  position: relative;
  width: clamp(600px, (1000 / var(--base-width) * 100vw), 1000px);
  margin-inline: auto;
  container-type: inline-size;
}
#spec .main_ttl {
  position: relative;
  margin-bottom: calc(130 / 1000 * 100cqi);
  font-size: clamp(20px, 38 / var(--base-width)* 100vw, 38px);
  text-align: center;
}
#spec .main_ttl .ttl_upper {
  display: inline-block;
  margin-bottom: 1.6em;
  padding-inline: 0.65em;
  color: #fff;
  font-size: clamp(1.3rem, calc(22 / 38 * 100%), 2.2rem);
  font-weight: 500;
  line-height: calc(28 / 18 * 1em);
  background: var(--primary-txt-color);
  letter-spacing: 0.1em;
  border-radius: 5px;
}
#spec .main_ttl .logo {
  display: inline-block;
  width: calc(260 / 1000 * 100cqi);
  margin-bottom: calc(50 / 1000 * 100cqi);
}
#spec .main_ttl .common_txt_ttl {
  color: var(--primary-txt-color);
  font-size: min(55 / 1000 * 100cqi);
  font-weight: 400;
  font-family: 'Forum', serif;
  letter-spacing: 0.1em;
  --fadeInUp-anim-interval: 0.05s;
}
#spec .main_ttl .common_txt_ttl .ttl {
  width: calc(714 / 1720 * 100cqi);
}
#spec .main_ttl .fadeInUp + img.mark {
  transition-delay: 1.65s;
}
#spec > .outer > .inner {
  position: relative;
}
#spec .lineup {
  position: relative;
}
#spec .lineup .outer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  container-type: inline-size;
}
#spec .lineup .product {
  width: 50%;
}
#spec .lineup .product .inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}
#spec .lineup .product.SSQW094 .inner {
  flex-direction: row-reverse;
}
#spec .lineup .product .inner .img_box {
  position: relative;
  width: calc(295 / 1000 * 100cqi);
  margin-left: calc(25 / 1000 * 100cqi);
}
#spec .lineup .product.SSWA014 .inner .img_box {
  width: calc(295 / 1000 * 100cqi);
  margin-left: 0;
  margin-right: calc(25 / 1000 * 100cqi);
}
/*
#spec .lineup .product .inner .img_box::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0%;
  width: calc(143 / 1000 * 100cqi);
  aspect-ratio: 143 / 44;
  background: url(../img/lineup_watch_shadow.png) center center no-repeat;
  background-size: contain;
  z-index: -1;
  transform: translate3d(-52%,40%,0);
}
*/
#spec .lineup .product .inner .txt_box {
  position: relative;
  width: calc(180 / 1000 * 100cqi);
  white-space: nowrap;
  padding-bottom: 10%;
}
#spec .txt_box .serial {
  margin-bottom: calc(40 / 24 * 1em);
  font-size: calc(24 / 1000 * 100cqi);
  font-family: 'Forum', serif;
  font-weight: 400;
  letter-spacing: 0.1em;
}
#spec .txt_box .price {
  margin-bottom: calc(32 / 20 * 1em);
  font-size: calc(20 / 1000 * 100cqi);
  font-weight: 500;
  letter-spacing: 0.1em;
}
#spec .txt_box .price .min {
  font-size: calc(15 / 20 * 100%);
}
#spec .txt_box .note {
  margin-bottom: calc(20 / 16 * 1em);
  font-size: calc(16 / 1000 * 100cqi);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
#spec .txt_box .date {
  margin-bottom: calc(50 / 16 * 1em);
  font-size: calc(16 / 1000 * 100cqi);
  font-weight: 500;
  letter-spacing: 0.1em;
}
#spec .txt_box .btn a {
  position: relative;
  display: grid;
  place-content: center;
  height: max((46 / 1000 * 100cqi), 30px);
  padding-right: 3.6%;
  color: var(--primary-bg-color);
  font-size: calc(18 / 1000 * 100cqi);
  font-family: 'Forum', serif;
  font-weight: 400;
  text-decoration: none;
  letter-spacing: 0.1em;
  background: var(--primary-color);
  border-radius: 8px;
  border: 1px solid var(--primary-color);
  overflow: hidden;
  transition: all .1s ease-out;
}
#spec .txt_box .btn.store a {
  margin-top: calc(20 / 1000 * 100cqi);
  padding-top: 0.3em;
  font-size: calc(15 / 1000 * 100cqi);
  font-weight: 500;
  letter-spacing: 0.1em;
}
#spec .txt_box .btn a::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 6%;
  width: 3.6%;
  aspect-ratio: 4 / 8;
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJf44Os44Kk44Ok44O8XzEiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNSA5Ij4gIDxkZWZzPiA8c3R5bGU+IC5zdDAgeyBmaWxsOiAjZmZmOyB9IDwvc3R5bGU+IDwvZGVmcz4gPHBhdGggY2xhc3M9InN0MCIgZD0iTS41LDljLS4xLDAtLjMsMC0uNC0uMS0uMi0uMi0uMi0uNSwwLS43bDMuNi0zLjZMLjEuOUMwLC43LDAsLjMuMS4xUy43LDAsLjkuMWw0LDRjLjIuMi4yLjUsMCwuN0wuOSw4LjljMCwwLS4yLjEtLjQuMVoiLz48L3N2Zz4=");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  transform: translateY(-50%);
  transition: all .1s ease-out;
}
@media (hover: hover) {
  #spec .txt_box .btn a:hover {
    background: #fff;
    color: var(--primary-color);
    transition: all .1s ease-out .1s;
  }
  #spec .txt_box .btn a:hover::before {
    background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJf44Os44Kk44Ok44O8XzEiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNSA5Ij4gPGRlZnM+IDxzdHlsZT4gLnN0MCB7IGZpbGw6ICNCODFDMjI7IH0gPC9zdHlsZT4gPC9kZWZzPiA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNLjUsOWMtLjEsMC0uMywwLS40LS4xLS4yLS4yLS4yLS41LDAtLjdsMy42LTMuNkwuMS45QzAsLjcsMCwuMy4xLjFTLjcsMCwuOS4xbDQsNGMuMi4yLjIuNSwwLC43TC45LDguOWMwLDAtLjIuMS0uNC4xWiIvPjwvc3ZnPg==");
    transition: all .1s ease-out .1s;
  }
}
#spec > .bg {
  position: absolute;
  left: 0;
  bottom: max((70 / var(--base-width) * -100vw), -70px);
  width: 100%;
  aspect-ratio: 3840 / 1024;
}
#spec > .bg .img {
  width: 100%;
  height: 100%;
}
#spec > .bg .img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}
#spec .butterfly_wrap {
  position: absolute;
  opacity: 0;
  transition: transform 2.0s cubic-bezier(0.33, 1, 0.68, 1), opacity 2.0s cubic-bezier(0.33, 1, 0.68, 1);
  z-index: 2;
}
#spec .butterfly_wrap.w_rd {
  top: calc(260 / 1000 * 100cqi);
  right: calc(-60 / 1000 * 100cqi);
  transform: translate3d(-100%,100%,0) rotate(35deg);
  transition-delay: 0.5s;
}
#spec .butterfly_wrap.w_yl {
  top: calc(60 / 1000 * 100cqi);
  left: calc(-20 / 1000 * 100cqi);
  transform: translate3d(100%,100%,0) rotate(-35deg);
}
#spec .butterfly_wrap.scrollin {
  opacity: 1 !important;
  transform: translate3d(0,0,0) rotate(0) !important;
}
#spec .butterfly_outer {
  animation: var(--fuwafuwa-anim2);
}
#spec .butterfly_wrap.w_rd .butterfly_outer {
  animation-delay: 1.0s;
}
#spec .butterfly_rd {
  width: calc(70 / 1000 * 100cqi);
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  transform: rotate(35deg) !important; 
}
#spec .butterfly_yl {
  width: calc(80 / 1000 * 100cqi);
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  transform: rotate(-30deg) !important; 
}
#spec .butterfly_wrapper {
  scale: none !important;
}
@media screen and (max-width: 640px) {
  #spec {
    padding-block: calc(210 / var(--base-width) * 100vw) calc(240 / var(--base-width) * 100vw);
  }
  #spec > .outer {
    width: 100%;
    container-type: inline-size;
  }
  #spec .main_ttl {
    margin-bottom: min((50 / var(--base-width) * 100vw), 75px);
    font-size: min(22 / var(--base-width)* 100vw, 33px);
  }
  #spec .main_ttl .ttl_upper {
    margin-bottom: 1.5em;
    padding-inline: 0.45em;
    font-size: calc(15 / 22 * 100%);
  }
  #spec .main_ttl .common_txt_ttl {
    font-size: min((30 / var(--base-width) * 100vw), 45px);
    line-height: calc(45 / 30);
  }
  #spec .main_ttl .logo {
    width: min((150 / var(--base-width) * 100vw), 225px);
    margin-bottom: min((24 / var(--base-width) * 100vw), 36px);
  }
  #spec .lineup {
    width: min((280 / var(--base-width) * 100vw), 420px);
    margin-inline: auto;
  }
  #spec .lineup .outer {
    flex-direction: column;
    gap: min((60 / var(--base-width) * 100vw), 90px);
  }
  #spec .lineup .product {
    width: 100%;
  }
  #spec .lineup .product .inner {
    flex-direction: row !important;
    justify-content: space-between;
  }
  #spec .lineup .product .inner .img_box {
    width: calc(150 / 280 * 100%) !important;
    margin: 0 !important;
  }
  /*
  #spec .lineup .product .inner .img_box::before {
    width: 80%;
    transform: translate3d(-52%,40%,0);
  }
  */
  #spec .lineup .product .inner .txt_box {
    position: relative;
    width: calc(130 / 280 * 100%);
    font-size: calc(12 / var(--base-width) * 100vw);
  }
  #spec .txt_box .serial {
    margin-bottom: calc(20 / 15 * 1em);
    font-size: min((15 / var(--base-width) * 100vw), 22px);
  }
  #spec .txt_box .price {
    margin-bottom: calc(20 / 15 * 1em);
    font-size: min((15 / var(--base-width) * 100vw), 22px);
  }
  #spec .txt_box .price .min {
    font-size: calc(11 / 15 * 100%);
  }
  #spec .txt_box .note {
    margin-bottom: calc(15 / 12 * 1em);
    font-size: min((12 / var(--base-width) * 100vw), 18px);
  }
  #spec .txt_box .date {
    margin-bottom: calc(25 / 12 * 1em);
    font-size: min((12 / var(--base-width) * 100vw), 18px);
  }
  #spec .txt_box .btn a {
    height: min((34 / var(--base-width) * 100vw), 51px);
    font-size: min((12.8 / var(--base-width) * 100vw), 19.2px);
    border-radius: 5px;
  }
  #spec .txt_box .btn.store a {
    font-size: min((10 / var(--base-width) * 100vw), 15px);
    font-size: min((10 / var(--base-width) * 100vw), 15px);
  }
  #spec .txt_box .btn a::before {
    width: 3.2%;
  }
  #spec > .bg {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    aspect-ratio: 375 / 220;
    z-index: -1;
  }
  #spec .butterfly_wrap.w_rd {
    top: auto;
    left: auto;
    bottom: calc(230 / 325 * 100cqi);
    right: calc(0 / 375 * 100cqi);
    transform: translate3d(200%, 100%, 0) rotate(-45deg);
  }
  #spec .butterfly_wrap.w_yl {
    top: auto;
    bottom: calc(-50 / 375 * 100cqi);
    left: calc(0 / 375 * 100cqi);
    right: auto;
    transform: translate3d(-250%, 200%, 0) rotate(90deg);
  }
  #spec .butterfly_rd {
    width: calc(30 / 375 * 100cqi);
    transform: rotate(-30deg) !important; 
  }
  #spec .butterfly_yl {
    width: calc(40 / 375 * 100cqi);
    transform: rotate(35deg) !important; 
  }
}

/*-------------------------------------------------

 footer

--------------------------------------------------*/
footer {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 140px;
  padding: 0 30px;
  background: #262627;
}
footer .logo_copy {
  display: flex;
  align-items: center;
}
footer .seiko_logo {
  margin-right: 30px;
}
footer .seiko_logo img {
  width: 90px;
  height: 29px;
}
footer .copyright {
  color: #fff;
  font-weight: 400;
  font-size: 1.0rem;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1;
  letter-spacing: .05em;
}
footer .other {
  display: flex;
  align-items: center;
}
footer .brand a {
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 44px;
  font-size: 0.9rem;
  background: #d8d2c5;
  border-radius: 5px;
  transition: filter .1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  footer .brand a:hover {
    filter: brightness(1.1);
    transition: filter .1s ease-in-out .1s;
  }
}
footer .brand a .logo {
  width: 30px;
  height: 31px;
  margin-right: 14px;
}
footer .brand a .ttl {
  width: 206px;
  height: 15px;
}
footer .insta {
  display: flex;
  align-items: center;
  margin-left: 40px;
}
footer .insta a {
  display: flex;
  align-items: center;
  color: #fff;
  font-weight: 400;
  font-size: 1.2rem;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1;
  letter-spacing: .05em;
  text-decoration: none;
  transition: opacity .1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  footer .insta a:hover {
    opacity: 0.75;
    transition: opacity .1s ease-in-out .1s;
  }
}
footer .insta .icon_instagram {
  width: 40px;
  height: 40px;
}
footer .insta .txt {
  margin-left: 15px;
}
@media (max-width: 1600px) {
  footer {
    height: max(88px,8.75vw);
    padding: 0 max(15px,1.875vw);
  }
  footer .seiko_logo {
    margin-right: 1.875vw;
  }
  footer .seiko_logo img {
    width: 5.625vw;
    height: auto;
  }
  footer .brand a {
    width: 18.75vw;
    height: auto;
    aspect-ratio: 300 / 44;
  }
  footer .brand a .logo {
    width: 1.875vw;
    height: auto;
    margin-right: .875vw;
  }
  footer .brand a .ttl {
    width: 12.875vw;
    height: auto;
  }
  footer .insta .icon_instagram {
    width: 2.5vw;
    height: auto;
  }
  footer .insta a {
    font-size: 1.1rem;
  }
}
@media (max-width: 991px) {
  footer .seiko_logo {
    margin-right: 18px;
  }
  footer .seiko_logo img {
    width: 60px;
    height: 19px;
  } 
  footer .insta .txt {
    display: none;
  }
  footer .brand a {
    width: 112px;
    height: 33px;
  }
  footer .brand a .logo {
    width: 19px;
    height: 20px;
    margin-right: 10px;
  }
  footer .brand a .ttl {
    width: 60px;
    height: 17px;
  }
  footer .insta {
    margin-left: 20px;
  }
  footer .insta .icon_instagram {
    width: 30px;
    height: 30px;
  }
}
@media (max-width: 640px) {
  footer {
    height: 60px;
    padding: 0 15px;
  }
  footer .seiko_logo img {
    width: 52px;
    height: 17px;
  }
  footer .seiko_logo {
    margin-right: 10px;
  }
  footer .copyright {
    width: 110px;
    transform: scale(.7);
    transform-origin: 0 center;
    /*
    font-size: 7px;
    */
    white-space: nowrap;
  }
  footer .brand a {
    width: 112px;
    height: 33px;
  }
  footer .insta {
    margin-left: 10px;
  }
  footer .insta .icon_instagram {
    width: 25px;
    height: 25px;
  }
}
