/* ===============================================
  * COMMON *
=============================================== */
:root {
  --spacer-xxs: 1.5rem;
  --spacer-xs: 2rem;
  --spacer-s: 1.8rem;
  --spacer-m: 4rem;
  --spacer-l: 5rem;
  --spacer-xl: 6rem;
  --padding-horizontal: 5.2%;
  --transition-duration: 1.5s;
}

/* .header .header__inner {
  background: linear-gradient(to bottom, transparent, #FEF7E7 0, #FEF7E7 0%, transparent);
} */

@media (min-width: 769px) {
  :root {
    --spacer-xxs: 3rem;
    --spacer-xs: 4rem;
    --spacer-s: 3rem;
    --spacer-m: 8rem;
    --spacer-l: 10rem;
    --spacer-xl: 12rem;
    --padding-horizontal: min(4.54%, 5rem);
  }
}

/* html {
  scroll-behavior: smooth;
} */

/* :where(.main-area) :target {
  scroll-margin-top: var(--header-height, 0px)
} */

/*疑似要素でbg_box全体に画像を配置*/

body {
  background-color: #FEF7E7;
}

/* body::before {
  content: "";
  display: block;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(../img/sp/content_bg01.png);
  background-position: center top;
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  z-index: -1;
} */

/* .main-area.lp {
  padding-top: 154px;
} */

/* .bg_box01::before {
  background-image: url(../img/sp/content_bg01.png);
}

.bg_box02::before {
  background-image: url(../img/sp/content_bg02.png);
}

.bg_box03::before {
  background-image: url(../img/sp/content_bg03.png);
} */

/* body {
  position: relative;
  height: 100%;
  margin: 0 auto;
} */

.main-area {
  padding-top: 0!important;
}

.bg_box {
  padding-top: var(--header-height);
}

.header .header__inner {
  background: linear-gradient(#FEF7E7, transparent);
}

.sp_only {
  display: block;
}

.pc_only {
  display: none;
}

.sec_tax.sp_only {
  display: flex;
}

.sec_tax.pc_only {
  display: none;
}

.li_block {
  display: block;
  width: 100%;
}

.header[data-header-theme="light"].c-active,
.header[data-header-theme="dark"] {
  background: transparent;
}

.lp_area img {
  width: 100%;
  height: auto;
}

.mainVisual {
  position: relative;
}

.lp_area .slick-slide {
  height: fit-content;
}

.slider-container {
  position: relative;
}

.main-container {
  font-family: "ryo-text-plusn", serif;
  font-weight: 400;
  font-style: normal;
  color: #250D00;
}

.mucha_font {
  font-family: var(--font-en);
}

.footer {
  z-index: 999;
}

/* pc */
body,
html {
  height: 100%;
  margin: 0 auto;
}

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

#Foot {
  position: relative;
  z-index: 99999;
}

.sec_ttl {
  pointer-events: none;
}


/* ===============================================
  * アニメーション - 1 *
=============================================== */
/* ===========### SP ###=========== */
  /* 普通フェード */
  .main-container .js_fade {
    opacity: 0;
    transition-duration: 1s;
    transition: ease-in, opacity 2500ms, transform 1000ms;
  }

  .main-container .js_fade.active {
    opacity: 1;
    transform: translateY(0%);
  }

  .js_fade {
    opacity: 0;
    transition-duration: 1s;
    transition: ease-in, opacity 2500ms, transform 1000ms;
  }
  
  .js_fade.active {
    opacity: 1;
  }


/* ===============================================### 
SP
###=============================================== */
.main-container {
  color: #250D00;
}

/************** common **************/
.sec_box {
  margin: 0 auto;
  width: calc(356* (100vw /375));
}

.sec03 .sec_box {
  width: 100%;
}

.imgBox {
  width: calc(270* (100vw /375));
}

.sec03 .sec_box01 .imgBox {
  width: 100%;
  position: relative;
}

.flex_box {
  display: flex;
  justify-content: space-between;
}

/*** sec_text ***/
.sec_text {
  font-family: "ryo-text-plusn", serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.08em;
  color: #250D00;
}

.sec_text01 {
  font-size: calc(18* (100vw /375));
  line-height: 1.77;
  text-align: center;
}

/*** sec_tax ***/
.sec_tax {
  margin: calc(9* (100vw /375)) 0 0;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  font-family: "ryo-text-plusn", serif;
  font-weight: 400;
  font-style: normal;
  gap: 0;
  letter-spacing: 0.08em;
}

.sec_tax li {
  font-size: calc(12* (100vw /375));
  width: max-content;
  color: #250D00;
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 2;
}

/************** mainVisual **************/
.mainVisual {
  margin: 0 auto calc(80* (100vw /375));
}

.mainVisual .mv_imgBox {
  margin: 0 auto calc(53* (100vw /375));
}

.mainVisual .mv_text {
  margin-bottom: 0;
  font-size: calc(14* (100vw /375));
  letter-spacing: 0.08em;
  line-height: 2;
  color: #250D00;
  text-align: center;
}

/************** sec01 **************/
.sec01 {
  padding: calc(93* (100vw /375)) 0 calc(93* (100vw /375));
  text-align: center;
  position: relative;
  z-index: 1;
}

.sec01::before{
  content: '';
  display: block;
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url(../img/deco.svg);
  width: calc(20* (100vw /375));
  height: calc(20* (100vw /375));
  top: -.8%;
  left: 50%;
  transform: translate(-50%, 0);
}

/*** sec_box01 ***/
.sec01 .sec_box01 {
  margin: 0 auto calc(54* (100vw /375));
}

.sec01 .sec_box01 .img_big_box {
  margin: 0 calc(10* (100vw /375)) 0 auto;
  width: calc(302* (100vw /375));
  align-items: flex-end;
}

.sec01 .sec_box01 h3 {
  margin-bottom: calc(4*(100vw / 375));
  width: calc(24* (100vw /375));
}

.sec01 .sec_box01 .imgBox img {
  border-radius: calc(145* (100vw /375)) calc(145* (100vw /375)) 0 0;
}

/*** sec_box02 ***/
.sec01 .sec_box02 .img_big_box {
  margin: 0 0 0 calc(10* (100vw /375));
  width: calc(303* (100vw /375));
  align-items: center;
  flex-direction: row-reverse;
}

.sec01 .sec_box02 h3 {
  margin-bottom: 0;
  width: calc(24* (100vw /375));
}

.sec01 .sec_box02 .imgBox img {
  border-radius: calc(250* (100vw /375));
}

/************** sec02 **************/
.sec02 {
  padding: calc(100* (100vw /375)) 0 calc(93* (100vw /375));
  position: relative;
  z-index: 2;
  background-color: #ECF2F2;
}

/*** sec_box01 ***/
.sec02 .sec_box01 .img_big_box {
  margin: 0;
  width: calc(304* (100vw /375));
  align-items: flex-start;
}

.sec02 .sec_box01 h3 {
  margin-top: calc(4* (100vw /375));
  width: calc(28* (100vw /375));
}

.sec02 .sec_box01 .imgBox img {
  border-radius: calc(145* (100vw /375)) 0 0 0;
}

/*** sec_box02 ***/
.sec02 .sec_box02 .img_big_box {
  margin: 0 0 0 auto;
  width: calc(305* (100vw /375));
  align-items: flex-end;
  flex-direction: row-reverse;
}

.sec02 .sec_box02 h3 {
  margin-bottom: calc(4* (100vw /375));
  width: calc(24* (100vw /375));
}

.sec02 .sec_box02 .imgBox img {
  border-radius: 0 0 calc(145* (100vw /375)) 0;
}

.sec02 .sec_tax {
  margin: calc(13*(100vw / 375)) 0 0;
}


/************** sec03 **************/
.sec03 {
  background: #FAF1F0;
  padding: calc(101* (100vw /375)) 0 calc(65* (100vw /375));
  position: relative;
  z-index: 3;
}

/*** sec_box01 ***/
.sec03 .sec_box01 {
  margin: 0 auto calc(55* (100vw /375));
}

.sec03 .sec_box01 .img_big_box {
  margin: 0 auto;
  width: 100%;
  position: relative;
}

.sec03 .sec_box01 h3 {
  margin-bottom: 0;
  width: calc(128* (100vw /375));
  position: absolute;
  top: 83%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sec03 .sec_box01 .imgBox img {
  border-radius: 0 calc(80* (100vw /375)) 0 calc(80* (100vw /375));
}

/*** sec_box02 ***/
.sec03 .sec_box02 .img_big_box {
  margin: 0 calc(16*(100vw / 375)) 0 auto;
  width: calc(306*(100vw / 375));
  align-items: center;
}

.sec03 .sec_box02 h3 {
  width: calc(27* (100vw /375));
}

.sec03 .sec_box02 .imgBox img {
  border-radius: calc(250* (100vw /375));
}

.sec_btn {
  margin: calc(53* (100vw /375)) auto 0;
  width: calc(250* (100vw /375));
  display: block;
}

/* ===============================================### 
PC用デザイン
###=============================================== */
@media screen and (min-width: 767px) {
  .sp_only {
    display: none;
  }
  
  .pc_only {
    display: block;
  }

  .sec_tax.sp_only {
    display: none;
  }
  
  .sec_tax.pc_only {
    display: flex;
  }


  /************** common **************/
  .sec_box {
    margin: 0 auto;
    width: 100rem;
  }

  .sec03 .sec_box {
    width: 100rem;
  }

  .sec_box .imgBox {
    width: 50rem;
  }

  .sec03 .sec_box01 .imgBox {
    width: 100rem;
  }
  
  /*** sec_tax ***/
  .sec_tax {
    margin: 1rem 0 0;
  }

  .sec_tax li {
    font-size: 1.4rem;
  }

  /************** mainVisual **************/
  .mainVisual {
    margin: 0 auto 9rem;
  }
  
  .mainVisual .mv_imgBox {
    margin: 0 auto 5.3rem;
  }
  
  .mainVisual .mv_text {
    margin: 5.1rem 0 0;
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    line-height: 2;
  }
  

/************** sec01 **************/
  .sec01 {
    padding: 12.1rem 0 14.8rem;
    text-align: center;
    position: relative;
    z-index: 1;
  }

  .sec01::before{
    width: 2.0rem;
    height: 2.0rem;
    top: 0%;
    left: 50%;
    transform: translate(-50%, 0);
  }

  /*** sec_box01 ***/
  .sec01 .sec_box01 {
    margin: 0 auto 9.4rem;
    width: 61.8rem;
  }

  .sec01 .sec_box01 .img_big_box {
    margin: 0 0 0 auto;
    width: 55.9rem;
  }

  .sec01 .sec_box01 h3 {
    margin-bottom: .4rem;
    width: 4.3rem;
  }

  .sec01 .sec_box01 .imgBox img {
    border-radius: 25rem 25rem 0 0;
  }

  .sec01 .sec_box01 .sec_tax {
    margin: 1.3rem 0 0 6rem;
    text-align: left;
    align-items: flex-start;
  }

  /*** sec_box02 ***/
  .sec01 .sec_box02 {
    margin: 0 auto;
    width: 61.8rem;
  }

  .sec01 .sec_box02 .img_big_box {
    margin: 0 0 0 0;
    width: 55.9rem;
    align-items: center;
    flex-direction: row-reverse;
  }

  .sec01 .sec_box02 h3 {
    margin-bottom: 0;
    width: 4.3rem;
  }

  .sec01 .sec_box02 .imgBox img {
    border-radius: 25.0rem;
  }

/************** sec02 **************/
  .sec02 {
    padding: 14.8rem 0 14.3rem;
    position: relative;
    z-index: 2;
    background-color: #ECF2F2;
  }

  .sec02 .sec_big_box {
    margin: 0 auto;
    width: 100rem;
    display: grid;
    grid-template-columns: 44rem auto;
    grid-template-rows: 39rem auto;
  }

  /*** sec_box01 ***/
  .sec02 .sec_box01 {
    grid-column: 1/2;
    grid-row: 1/3;
    width: 55.9rem;
  }

  .sec02 .sec_box01 .img_big_box {
    margin: 0;
    width: 55.9rem;
    align-items: flex-start;
  }

  .sec02 .sec_box01 h3 {
    margin-top: .4rem;
    width: 5rem;
  }

  .sec02 .sec_box01 .imgBox img {
    border-radius: 25rem 0 0 0;
  }

  /*** sec_box02 ***/
  .sec02 .sec_box02 {
    grid-column: 2/3;
    grid-row: 2/3;
    width: 55.9rem;
  }

  .sec02 .sec_box02 .img_big_box {
    margin: 0 0 0 auto;
    width: 55.9rem;
    align-items: flex-end;
    flex-direction: row-reverse;
  }

  .sec02 .sec_box02 h3 {
    margin-bottom: .4rem;
    width: 4.3rem;
  }

  .sec02 .sec_box02 .imgBox img {
    border-radius: 0 0 25rem 0;
  }

  .sec02 .sec_tax {
    margin: 1.3rem 0 0;
    text-align: left;
    align-items: flex-start;
  }

  .sec02 .sec_box02 .sec_tax {
    margin: 1.3rem 0 0 6rem;
  }

/************** sec03 **************/
  .sec03 {
    background: #FAF1F0;
    padding: 15rem 0 10.1rem;
    position: relative;
    z-index: 3;
  }

  /*** sec_box01 ***/
  .sec03 .sec_box01 {
    margin: 0 auto 9.5rem;
  }

  .sec03 .sec_box01 .img_big_box {
    margin: 0 auto;
    width: 100%;
    position: relative;
  }

  .sec03 .sec_box01 h3 {
    margin-bottom: 0;
    width: 22.6rem;
    position: absolute;
    top: 85%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .sec03 .sec_box01 .imgBox img {
    border-radius: 0 25rem 0 25rem;
  }

  /*** sec_box02 ***/
  .sec03 .sec_box02 {
    margin: 0 auto;
    width: 62.9rem;
  }

  .sec03 .sec_box02 .img_big_box {
    margin: 0 0 0 auto;
    width: 56.4rem;
    align-items: center;
  }

  .sec03 .sec_box02 h3 {
    margin-top: 3.5rem;
    width: 4.8rem;
  }

  .sec03 .sec_box02 .imgBox img {
    border-radius: 25.0rem;
  }

  .sec_btn {
    margin: 9.5rem auto 0;
    width: 25.0rem;
    display: block;
  }


} 




/* ===============================================
  * アニメーション - 2 *
=============================================== */
/* ===========### SP ###=========== */
  /*** sticky ***/
  .sticky_box {
    position: sticky;
  }

  .bg_box {
    top: calc(-1300* (100vw /375));
  }

  .sec02 {
    top: calc(-400* (100vw /375));
  }

  .sec03 {
    top: calc(-400* (100vw /375));
  }

/* ===========### PC ###=========== */
@media screen and (min-width: 767px) {
  /*** sticky ***/
  .sticky_box {
    position: sticky;
  }

  .bg_box {
    top: -200rem;
  }

  .sec02 {
    top: -60rem;
  }

  .sec03 {
    top: -60rem;
  }
}

@media (min-width: 1400px) {
  .bg_box {
    top: -240rem;
  }

  .sec02 {
    top: -60rem;
  }

  .sec03 {
    top: -60rem;
  }
}


/* ===============================================### 
Matsui add
###=============================================== */
.atrBgAll {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  background-size: cover;
  background-position: center top;
}

.artBg01 {
  background-image: url(../img/sp/content_bg01.png);
}

.artBg02 {
  background-image: url(../img/sp/content_bg02.png);
}

.artBg03 {
  background-image: url(../img/sp/content_bg03.png);
}

@media screen and (min-width: 767px) {
  .artBg01 {
    background-image: url(../img/pc/content_bg01.png);
  }
  
  .artBg02 {
    background-image: url(../img/pc/content_bg02.png);
  }
  
  .artBg03 {
    background-image: url(../img/pc/content_bg03.png);
  }
}
/* ===============================================### 
Matsui add
###=============================================== */
  /* 普通フェード */
  .main-container .js_imgFadeInV2 {
    opacity: 0;
    transition-duration: 1s;
    transition: ease-in, opacity 2500ms, transform 1000ms;
  }

  .main-container .js_imgFadeInV2.active {
    opacity: 1;
    transform: translateY(0%);
  }