@charset "UTF-8";

.main-area .main-inner {
  width: var(--inner-width);
  margin: 0 auto;
}
.page-title {
  flex-direction: column;
  line-height: 1.4;
}
.page-title .title-lg {
  font-weight: var(--fw-semibold);
}
.page-title .title-sm {
  letter-spacing: 0.05em;
}
.product-group {
  display: grid;
  grid-template-columns: repeat(var(--column-count, 1), minmax(0, 1fr));
  font-family: var(--font-main);
}
.product-item__image {
  aspect-ratio: var(--product-img-aspectratio);
  object-fit: var(--product-img-objectfit);
}
.product-item__detail {
  word-break: break-all;
  padding: 1rem;
  font-size: 1.2rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
  display: flex;
  flex-direction: column;
  row-gap: 0.5rem;
  position: relative;
}
.product-item__name {
  font-weight: 600;
  letter-spacing: 0;
  word-break: break-all;
}
.product-item__price {
  font-weight: 600;
  letter-spacing: 0;
  word-break: break-all;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .main-area .main-inner {
    --contents-inline-padding: calc(15 *(100vw / 375));

    width: 100%;
    padding: 0 var(--contents-inline-padding, 0);
  }
  .page-title {
    gap: calc(7 * (100vw / 375));
    margin-bottom: calc(23 * (100vw / 375));
  }
  .page-title .title-lg {
    font-size: calc(24 * (100vw / 375));
  }
  .page-title .title-sm {
    font-size: calc(11 * (100vw / 375));
  }
  .product-group {
    --column-count: 2;
    gap: calc(40 * (100vw / 375)) calc(13 * (100vw / 375));
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .main-area .main-inner {
    margin-bottom: 12rem;
  }
  .page-title {
    gap: 0.7rem;
    margin-bottom: 2.8rem;
  }
  .page-title .title-lg {
    font-size: 3.6rem;
  }
  .page-title .title-sm {
    font-size: 1.2rem;
  }
  .product-group {
    --column-count: 3;
    gap: 6rem 1.7rem;
  }
}
