:root {
  --color-basis: #4D494D;
  --color-theme: #F4DFD9;
  --font-jp-serif: "a-otf-ryumin-pr6n", serif;
  --font-jp-sans-serif: zen-kaku-gothic-new, sans-serif;
  --font-en: "freight-big-pro", serif;
}

/* //////////////////////////////////////////////////

Title : style.scss
For   : Page/feature/2023/0316/

Created       : 2023-03-09
Last Modified : 2023-03-09

==========================================

Content

////////////////////////////////////////////////// */
/* ===================== base layout */
.article {
  width: 100%;
  margin-inline: auto;
  color: var(--color-basis);
  font-feature-settings: "halt";
  background-repeat: no-repeat;
  background-position: center bottom;
  box-sizing: border-box;
}
.article a:not(.article__button),
.article picture:not(.article__button) {
  display: block;
}
.article img,
.article svg,
.article video {
  width: 100%;
  height: auto;
}
.article * {
  box-sizing: border-box;
}

/* --- for small viewport ---*/
@media screen and (max-width: 767px) {
  .main-area .main-inner {
    width: 100%;
  }
  .article {
    max-width: 600px;
    -webkit-margin-after: 40px;
            margin-block-end: 40px;
    -webkit-padding-after: 140px;
            padding-block-end: 140px;
    background-image: url(../images/lace-narrow.png);
    background-size: 100%;
  }
}
/* --- for large viewport ---*/
@media screen and (min-width: 768px) {
  .article {
    max-width: 1010px;
    -webkit-margin-after: 55px;
            margin-block-end: 55px;
    padding-inline: 10px;
    -webkit-padding-after: 200px;
            padding-block-end: 200px;
    background-image: url(../images/lace-wide.png);
    background-size: 99%;
  }
}
/* ===================== typografy */
.article {
  text-align: center;
}
.article__button {
  font-family: var(--font-en);
  letter-spacing: 0.025em;
  font-weight: 400;
  font-size: var(--font-size, 14px);
}

.hero__detail {
  font-weight: 300;
}
.hero__detail dt {
  font-size: var(--font-size, 15px);
  font-family: var(--font-jp-serif);
  letter-spacing: var(--letter-spacing, 0.125em);
}
.hero__detail dd {
  font-size: var(--font-size, 13px);
  font-family: var(--font-jp-sans-serif);
  line-height: var(--line-height, 2.3076923077);
  letter-spacing: 0.05em;
}

.contents__item-price {
  font-family: var(--font-en);
  letter-spacing: 0.025em;
  font-weight: 400;
  font-size: var(--font-size, 11px);
  line-height: var(--line-height, 1.6363636364);
}

/* --- for small viewport ---*/
/* --- for large viewport ---*/
@media screen and (min-width: 768px) {
  .article__button {
    --font-size: 28px;
  }
  .hero__detail dt {
    --font-size: 21px;
    --letter-spacing: .1em;
  }
  .hero__detail dd {
    --font-size: 17px;
    --line-height: calc(36 / 17);
  }
  .contents__item-price {
    --font-size: 18px;
    --line-height: calc(26 / 18);
  }
}
/* ===================== hero */
.article > * {
  max-width: 990px;
  width: 100%;
}
.hero {
  position: relative;
}
.hero__visual {
  position: relative;
}
.hero__title {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.hero__title, .hero__logo {
  opacity: 0;
  -webkit-animation: fadeIn 0.5s ease-in 0.25s forwards;
          animation: fadeIn 0.5s ease-in 0.25s forwards;
}

/* --- for small viewport ---*/
@media screen and (max-width: 767px) {
  .hero__title {
    top: 28px;
    left: 19px;
    width: 205px;
  }
  .hero__logo {
    position: absolute;
    bottom: 10.5px;
    left: 23px;
    width: 76.5px;
    z-index: 1;
    pointer-events: none;
  }
  .hero__detail {
    -webkit-margin-before: 70px;
            margin-block-start: 70px;
  }
  .hero__detail dt + dd {
    -webkit-margin-before: 30px;
            margin-block-start: 30px;
  }
}
/* --- for large viewport ---*/
@media screen and (min-width: 768px) {
  .hero__title {
    top: 35.6666666667%;
    left: 5.6565656566%;
    width: 36.9696969697%;
  }
  .hero__logo {
    width: 160px;
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
    margin-inline: auto;
  }
  .hero__detail {
    -webkit-margin-before: 60px;
            margin-block-start: 60px;
  }
  .hero__detail dt + dd {
    -webkit-margin-before: 35px;
            margin-block-start: 35px;
  }
}
/* ===================== contents */
.article__contents {
  position: relative;
}
.article__contents > * {
  position: relative;
}
.article .contents {
  position: relative;
  display: grid;
  justify-content: center;
}
.article .contents__item-price {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  border-radius: 50vh;
  border: 1px solid var(--color-theme);
  aspect-ratio: 1/1;
  z-index: 1;
}
.article .contents__item-price a {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

/* --- for small viewport ---*/
@media screen and (max-width: 767px) {
  .article__contents {
    -webkit-margin-before: 70px;
            margin-block-start: 70px;
  }
  .article__contents > * + * {
    -webkit-margin-before: 100px;
            margin-block-start: 100px;
  }
  .contents:nth-of-type(1) {
    grid-template-columns: 1fr 100px;
    -moz-column-gap: 15px;
         column-gap: 15px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(1) {
    grid-row: 1;
    grid-column: span 2;
    -webkit-padding-start: 60px;
            padding-inline-start: 60px;
    -webkit-padding-end: 15px;
            padding-inline-end: 15px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(2) {
    grid-row: 2;
    grid-column: 1;
    -webkit-margin-before: -50px;
            margin-block-start: -50px;
    -webkit-padding-end: 60px;
            padding-inline-end: 60px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(3) {
    grid-row: 3;
    grid-column: 1;
    -webkit-margin-before: 50px;
            margin-block-start: 50px;
    -webkit-padding-start: 50px;
            padding-inline-start: 50px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(4) {
    grid-row: 3;
    grid-column: 2;
    -webkit-margin-before: -77.5px;
            margin-block-start: -77.5px;
  }
  .contents:nth-of-type(1) .contents__item-price {
    grid-row: 4;
    grid-column: 1;
    -webkit-margin-before: -10px;
            margin-block-start: -10px;
    -webkit-margin-start: 6.5px;
            margin-inline-start: 6.5px;
  }
  .contents:nth-of-type(2) {
    grid-template-columns: 53.3333333333% 45.3333333333%;
    -moz-column-gap: 1.3333333333%;
         column-gap: 1.3333333333%;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(1) {
    grid-row: 1;
    grid-column: 1;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(2) {
    grid-row: 1;
    grid-column: 2;
    -webkit-margin-before: 135px;
            margin-block-start: 135px;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(3) {
    grid-row: 2;
    grid-column: span 2;
    -webkit-margin-before: 50px;
            margin-block-start: 50px;
    padding-inline: 12.5px;
  }
  .contents:nth-of-type(2) .contents__item-price {
    grid-row: 3;
    grid-column: 2;
    -webkit-margin-before: -24px;
            margin-block-start: -24px;
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    -webkit-margin-end: 7.5px;
            margin-inline-end: 7.5px;
  }
  .contents__item-price {
    width: 104px;
  }
}
/* --- for large viewport ---*/
@media screen and (min-width: 768px) {
  .article__contents {
    -webkit-margin-before: 100px;
            margin-block-start: 100px;
  }
  .article__contents > * + * {
    -webkit-margin-before: 100px;
            margin-block-start: 100px;
  }
  .contents:nth-of-type(1) {
    grid-template-columns: 19.696969697% 16.6666666667% 13.1313131313% 12.6262626263% 3.0303030303% 15.1515151515% 19.696969697%;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(1) {
    grid-row: 1;
    grid-column: 4/span 4;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(2) {
    grid-row: 1;
    grid-column: 1/span 2;
    -webkit-margin-before: 334px;
            margin-block-start: 334px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(3) {
    grid-row: 2;
    grid-column: 2/span 3;
    -webkit-margin-before: 100px;
            margin-block-start: 100px;
  }
  .contents:nth-of-type(1) .contents__thumb:nth-of-type(4) {
    grid-row: 2;
    grid-column: 6;
    -webkit-margin-before: -47px;
            margin-block-start: -47px;
  }
  .contents:nth-of-type(1) .contents__item-price {
    grid-row: 3;
    grid-column: 2;
    -webkit-margin-before: -40px;
            margin-block-start: -40px;
    -webkit-margin-start: -55%;
            margin-inline-start: -55%;
  }
  .contents:nth-of-type(2) {
    grid-template-columns: 40.404040404% 34.3434343434%;
    -moz-column-gap: 3.0303030303%;
         column-gap: 3.0303030303%;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(1) {
    grid-row: 1;
    grid-column: 1;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(2) {
    grid-row: 1;
    grid-column: 2;
    -webkit-margin-before: 270px;
            margin-block-start: 270px;
  }
  .contents:nth-of-type(2) .contents__thumb:nth-of-type(3) {
    grid-row: 2;
    grid-column: span 2;
    -webkit-margin-before: 100px;
            margin-block-start: 100px;
    -webkit-padding-start: 4.5454545455%;
            padding-inline-start: 4.5454545455%;
    -webkit-padding-end: 4.5454545455%;
            padding-inline-end: 4.5454545455%;
  }
  .contents:nth-of-type(2) .contents__item-price {
    grid-row: 3;
    grid-column: 2;
    -webkit-margin-before: -40px;
            margin-block-start: -40px;
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    transform: translateX(30%);
  }
  .contents__item-price {
    width: 178px;
  }
}
/* ===================== foot / button */
.article__button {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-inline: auto;
  background-color: var(--color-theme);
}

/* --- for small viewport ---*/
.article__button {
  width: 250px;
  height: 40px;
  -webkit-margin-before: 50px;
          margin-block-start: 50px;
}

/* --- for large viewport ---*/
@media screen and (min-width: 768px) {
  .article__button {
    width: 480px;
    height: 70px;
    -webkit-margin-before: 34px;
            margin-block-start: 34px;
  }
}
/* ===================== animation */
.js-fadeIn {
  visibility: hidden;
  opacity: 0;
  transform: translateY(10%);
  transition: all 0.5s;
}
.js-fadeIn.is-show {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

/* --- keyframes --- */
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}