@charset "utf-8";
/* CSS Document */

/*----------------------------------------------------
  PRODUCT PAGE
----------------------------------------------------*/

.product_page {
  background-color: #95867F;
  color: #95867F;
}

.mv_wrap{
  background-image: url(../img/product/main01.jpg);
}
.mv_image{
  background-image: url(../img/product/main02.jpg);
}


/* contents */

.contents{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.contents + .contents{
  flex-direction: row-reverse;
}
.contents-reverse{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-direction: row-reverse;
}

.contents_image{
  position: relative;
  width: 50%;
  height: calc(700 * var(--size-flex));
  flex: 1 1 auto;
  overflow: hidden;
}
.contents_image img{
  position: absolute;
  top: -5%;
  width: 100%;
  height: 110%;
  max-height: unset;
  object-fit: cover;
}

.contents_text{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  box-sizing: border-box;
  width: 50%;
  flex: 1 1 auto;
}

.contents_text-alt {
  background-color: #95867F;
  color: #fff;
  flex: 1 1 auto;
}

.contents_label {
  position: absolute;
  top: calc(50 * var(--size-flex));
  text-align: center;
  font-size: calc(20 * var(--size-flex));
  line-height: 1;
  letter-spacing: .1em;
}
.contents_copy {
  font-size: calc(36 * var(--size-flex));
  line-height: 1.75;
  letter-spacing: .1em;
}
.contents_title {
  margin-top: calc(27 * var(--size-flex));
  font-size: calc(24 * var(--size-flex));
  letter-spacing: .1em;
  line-height: 1.75;
}
.contents_notes {
  margin-top: calc(10 * var(--size-flex));
  font-size: calc(16 * var(--size-flex));
  letter-spacing: .1em;
  line-height: 1.75;
}
.contents_btn{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-top: calc(40 * var(--size-flex));
  min-width: calc(370 * var(--size-flex));
  padding: calc(26 * var(--size-flex)) 0 calc(22 * var(--size-flex)) calc(22 * var(--size-flex));
  border: 1px solid #95867F;
  border-radius: calc(1000 * var(--size-flex));
  color: #95867F;
  font-family: "Cormorant Garamond", serif;
  font-size: calc(24 * var(--size-flex));
  line-height: 1;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1;
  transition: background-color .3s, color .3s, opacity .2s;
}
.contents_btn:hover {
  background-color: #95867F;
  color: #fff;
}
.contents_btn_arrow{
  display: block;
  width: calc(24 * var(--size-flex));
  height: calc(24 * var(--size-flex));
  margin-left: calc(8 * var(--size-flex));
  stroke: currentColor;
}
.contents_btn-alt {
  border-color: #fff;
  color: #fff;
}
.contents_btn-alt:hover {
  background-color: #fff;
  color: #95867F;
}
.contents_btn-fill {
  background-color: #95867F;
  border-color: #95867F;
  color: #fff;
}
.contents_btn-fill:hover {
  opacity: .8;
}
.contents_btn-alt-disable{
  border-color: #95867F;
  color: #95867F;
  padding: calc(26 * var(--size-flex)) calc(22 * var(--size-flex));
}


/* gift */
.gift {
  background-color: #fff;
}

/* shop */
.shop {
  padding: calc(110 * var(--size-flex)) 0 calc(176 * var(--size-flex));
  background-color: rgba(255, 255, 255, .8);
}

.shop_inner {
  width: calc(1208 * var(--size-flex));
  margin: 0 auto;
}

.section_title {
  font-family: "Cormorant Garamond", serif;
  font-size: calc(36 * var(--size-flex));
  line-height: 1;
  letter-spacing: .1em;
  font-weight: 700;
  text-align: center;
}

.shop_list {
  margin-top: calc(44 * var(--size-flex));
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(22 * var(--size-flex));
}

.shop_card {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-direction: column;
}

.shop_card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.shop_name {
  margin-top: calc(34 * var(--size-flex));
  font-size: calc(18 * var(--size-flex));
  line-height: 1.5;
  letter-spacing: 0.1em;
  min-height: calc(2em * 1.5);
}
.shop_address {
  margin-top: calc(20 * var(--size-flex));
  font-size: calc(14 * var(--size-flex));
  line-height: 1.5;
  letter-spacing: .1em;
}

.shop_info {
  margin-top: calc(20 * var(--size-flex));
  padding-top: calc(20 * var(--size-flex));
  border-top: 1px solid #95867F;
}
.shop_info_define{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  font-size: calc(16 * var(--size-flex));
  line-height: 1.5;
  letter-spacing: .1em;
}
.shop_info_term{
  width: calc(80 * var(--size-flex));
  margin-right: calc(20 * var(--size-flex));
}
.shop_info_details{
  
}

/* lineup */
.lineup {
  position: relative;
  background-color: #95867F;
  color: #fff;
  padding: calc(93 * var(--size-flex)) 0 calc(164 * var(--size-flex));
}
.lineup_title{
  position: relative;
  margin-top: 0;
  margin-right: auto;
  text-align: right;
  padding-bottom: calc(10 * var(--size-flex));
  width: calc(388 * var(--size-flex));
  font-size: calc(20 * var(--size-flex));
  line-height: 1;
  font-weight: 600;
  letter-spacing: .1em;
}
.lineup_title::after{
  content: "";
  position: absolute;
  display: block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transform: scaleX(0);
  transform-origin: 100% 0;
  transition: transform .6s;
}
.lineup_title.is-view::after{
  transform: scaleX(1);
}

.lineup_title-right{
  position: relative;
  margin-top: 0;
  margin-left: auto;
  padding-bottom: calc(10 * var(--size-flex));
  width: calc(388 * var(--size-flex));
  font-size: calc(20 * var(--size-flex));
  line-height: 1;
  font-weight: 700;
  letter-spacing: .1em;
}
.lineup_title-right::after{
  content: "";
  position: absolute;
  display: block;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transform: scaleX(0);
  transform-origin: 0 0;
  transition: transform .6s;
}
.lineup_title-right.is-view::after{
  transform: scaleX(1);
}

.lineup_inner {
  width: calc(1208 * var(--size-flex));
  margin: calc(103 * var(--size-flex)) auto 0;
}

.lineup_copy {
  margin: calc(100 * var(--size-flex)) auto;
  text-align: center;
  font-size: calc(36 * var(--size-flex));
  line-height: 1.75;
  letter-spacing: .1em;
}
.lineup_item {
  margin-top: calc(32 * var(--size-flex));
}
.lineup_item + .lineup_item {
  margin-top: calc(64 * var(--size-flex));
}
.lineup_item_title{
  font-family: "Cormorant Garamond", serif;
  font-size: calc(36 * var(--size-flex));
  line-height: 1;
  font-weight: 700;
  letter-spacing: .1em;
  text-align: center;
}
.lineup_item_list {
  margin-top: calc(36 * var(--size-flex));
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: calc(22 * var(--size-flex));
}
.lineup_item_card {
  color: #fff;
  text-align: center;
}
.lineup_item_card img {
  width: calc(272 * var(--size-flex));
  height: calc(185 * var(--size-flex));
  object-fit: cover;
}
.lineup_item_card span {
  display: block;
  margin-top: calc(20 * var(--size-flex));
  font-size: calc(16 * var(--size-flex));
  letter-spacing: .1em;
  line-height: 1;
}

/* original */
.original {
  background-color: #fff;
}

/* service */
.service {
  background-color: #ECE9E7;
  color: #95867F;
  padding: calc(100 * var(--size-flex)) 0 calc(174 * var(--size-flex));
}
.service_title{
  position: relative;
  margin-top: 0;
  margin-right: auto;
  text-align: right;
  padding-bottom: calc(10 * var(--size-flex));
  width: calc(388 * var(--size-flex));
  font-size: calc(20 * var(--size-flex));
  line-height: 1;
  font-weight: 600;
  letter-spacing: .1em;
}
.service_title::after{
  content: "";
  position: absolute;
  display: block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #95867F;
  transform: scaleX(0);
  transform-origin: 100% 0;
  transition: transform .6s;
}
.service_title.is-view::after{
  transform: scaleX(1);
}

.service_text {
  margin: calc(70 * var(--size-flex)) auto calc(100 * var(--size-flex));
  font-size: calc(36 * var(--size-flex));
  line-height: 1.75;
  letter-spacing: .1em;
  text-align: center;
}



@media screen and (max-width: 768px) {
  .product_page {
  }
  .mv_wrap{
    background-image: url(../img/product/main01.jpg);
  }
  .mv_image{
    background-image: url(../img/product/main02.jpg);
  }


  /* contents */

  .contents{
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-direction: column;
  }
  .contents + .contents{
    flex-direction: column;
  }
  .contents-reverse{
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-direction: column;
  }

  .contents_image{
    position: relative;
    width: 100%;
    height: calc(350 * var(--size-flex));
    flex: 1 1 auto;
    overflow: hidden;
  }
  .contents_image img{
    position: absolute;
    top: -5%;
    width: 100%;
    height: 120%;
    object-fit: cover;
  }
  .contents_image-half{
    position: relative;
    width: calc(272 * var(--size-flex));
    height: calc(264 * var(--size-flex));
    margin-left: auto;
    flex: 1 1 auto;
    overflow: hidden;
  }

  .contents_text{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
    box-sizing: border-box;
    width: 100%;
    height: calc(350 * var(--size-flex));
    flex: 1 1 auto;
  }
  .contents_text-half{
    height: calc(264 * var(--size-flex));
  }

  .contents_text-alt {
    background-color: #95867F;
    color: #fff;
    flex: 1 1 auto;
  }

  .contents_label {
    position: absolute;
    top: calc(25 * var(--size-flex));
    text-align: center;
    font-size: calc(10 * var(--size-flex));
    line-height: 1;
    letter-spacing: .1em;
  }
  .contents_copy {
    font-size: calc(18 * var(--size-flex));
    line-height: 1.75;
    letter-spacing: .1em;
  }
  .contents_title {
    margin-top: calc(12 * var(--size-flex));
    font-size: calc(18 * var(--size-flex));
    letter-spacing: .1em;
    line-height: 1.75;
  }
  .contents_btn{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-top: calc(20 * var(--size-flex));
    min-width: calc(185 * var(--size-flex));
    padding: calc(12 * var(--size-flex)) 0 calc(12 * var(--size-flex)) calc(22 * var(--size-flex));
    font-size: calc(12 * var(--size-flex));
  }
  .contents_btn:hover {
  }
  .contents_btn_arrow{
    display: block;
    width: calc(12 * var(--size-flex));
    height: calc(12 * var(--size-flex));
    margin-left: calc(8 * var(--size-flex));
    stroke: currentColor;
  }
  .contents_btn-alt {
    border-color: #fff;
    color: #fff;
  }
  .contents_btn-alt:hover {
    background-color: #fff;
    color: #95867F;
  }
  .contents_btn-fill {
    background-color: #95867F;
    border-color: #95867F;
    color: #fff;
  }
  .contents_btn-fill:hover {
    opacity: .8;
  }
  .contents_btn-alt-disable{
    padding: calc(12 * var(--size-flex));
  }


  /* gift */
  .gift {
    background-color: #fff;
  }

  /* shop */
  .shop {
    padding: calc(50 * var(--size-flex)) 0 calc(74 * var(--size-flex));
  }

  .shop_inner {
    width: calc(292 * var(--size-flex));
    margin: 0 auto;
  }

  .section_title {
    font-size: calc(18 * var(--size-flex));
  }

  .shop_list {
    margin-top: calc(44 * var(--size-flex));
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(50 * var(--size-flex)) calc(22 * var(--size-flex));
  }

  .shop_card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  .shop_name {
    margin-top: calc(17 * var(--size-flex));
    font-size: calc(9 * var(--size-flex));
    line-height: 1.5;
  }
  .shop_address {
    margin-top: calc(9 * var(--size-flex));
    font-size: calc(7 * var(--size-flex));
    line-height: 1.5;
    letter-spacing: .1em;
  }

  .shop_info {
    margin-top: calc(8 * var(--size-flex));
    padding-top: calc(10 * var(--size-flex));
    border-top: 1px solid #95867F;
  }
  .shop_info_define{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: calc(8 * var(--size-flex));
    line-height: 1.5;
    letter-spacing: .1em;
  }
  .shop_info_term{
    width: calc(40 * var(--size-flex));
    margin-right: calc(10 * var(--size-flex));
  }
  .shop_info_details{
    
  }

  /* lineup */
  .lineup {
    padding: calc(35 * var(--size-flex)) 0 calc(70 * var(--size-flex));
  }
  .lineup_title{
    padding-bottom: calc(5 * var(--size-flex));
    width: calc(105 * var(--size-flex));
    font-size: calc(10 * var(--size-flex));
  }
  .lineup_title::after{
  }
  .lineup_title.is-view::after{
  }

  .lineup_title-right{
    padding-bottom: calc(5 * var(--size-flex));
    width: calc(105 * var(--size-flex));
    font-size: calc(10 * var(--size-flex));
  }
  .lineup_title-right::after{
  }
  .lineup_title-right.is-view::after{
  }

  .lineup_inner {
    width: calc(314 * var(--size-flex));
    margin: calc(45 * var(--size-flex)) auto 0;
  }

  .lineup_copy {
    margin: calc(45 * var(--size-flex)) auto;
    font-size: calc(18 * var(--size-flex));
    text-align: justify;
  }
  .lineup_item {
    margin: calc(64 * var(--size-flex)) auto 0;
    width: calc(292 * var(--size-flex));
  }
  .lineup_item_title{
    font-size: calc(18 * var(--size-flex));
  }
  .lineup_item_list {
    margin-top: calc(36 * var(--size-flex));
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: calc(40 * var(--size-flex)) calc(20 * var(--size-flex));
  }
  .lineup_item_card {
    color: #fff;
    text-align: center;
    width: calc(136 * var(--size-flex));
  }
  .lineup_item_card img {
    width: calc(136 * var(--size-flex));
    height: calc(92 * var(--size-flex));
    object-fit: cover;
  }
  .lineup_item_card span {
    margin-top: calc(10 * var(--size-flex));
    font-size: calc(8 * var(--size-flex));
  }

  /* original */
  .original {
    background-color: #fff;
  }

  /* service */
  .service {
    padding: calc(35 * var(--size-flex)) 0 0;
  }
  .service_title{
    position: relative;
    margin-top: 0;
    margin-right: auto;
    text-align: right;
    padding-bottom: calc(10 * var(--size-flex));
    width: calc(74 * var(--size-flex));
    font-size: calc(10 * var(--size-flex));
    line-height: 1;
    letter-spacing: .1em;
  }
  .service_title::after{
    content: "";
    position: absolute;
    display: block;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #95867F;
    transform: scaleX(0);
    transform-origin: 100% 0;
    transition: transform .6s;
  }
  .service_title.is-view::after{
    transform: scaleX(1);
  }

  .service_text {
    margin: calc(35 * var(--size-flex)) auto calc(50 * var(--size-flex));
    padding: 0 calc(30 * var(--size-flex));
    font-size: calc(18 * var(--size-flex));
    line-height: 1.75;
    letter-spacing: .1em;
    text-align: left;
  }
}