@charset "UTF-8";
/* =========================================
   Top Page Specific Styles
   ========================================= */
/* Main Visual (MV) */
.mv {
  width: 100%;
  background-color: #000;
  padding-top: 145.9%;
  position: relative;
}
.mv picture {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
.mv img {
  width: 100%;
  height: auto;
  display: block;
}

/* Content Block (Concept, Online Shop etc) */
.content-block {
  margin-top: 20px;
  width: 100%;
}
.content-block.concept-image {
  margin-top: 0;
  padding-top: 47px;
}
.content-block.concept-image .content-inner .image-wrapper {
  width: 100%;
  padding-top: 107%;
  position: relative;
}
.content-block.concept-image .content-inner .image-wrapper picture {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
.content-block.concept-image .content-inner .image-wrapper img {
  width: 100%;
  height: auto;
  display: block;
}
.content-block.concept-text-image {
  margin-top: 42px;
}
.content-block.concept-text-image .content-inner .image-wrapper {
  width: 100%;
  padding-top: 91%;
  position: relative;
}
.content-block.concept-text-image .content-inner .image-wrapper picture {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
.content-block.concept-text-image .content-inner .image-wrapper img {
  width: 100%;
  height: auto;
  display: block;
}
.content-block.concept-text {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  text-align: center;
}
.content-block.concept-text .content-inner p {
  line-height: 2;
  letter-spacing: 2px;
}
.content-block.online-store {
  margin-top: 44px;
}

.content-inner {
  /* SP: 画面幅に対して85%で左右中央 */
  width: 85%;
  margin: 0 auto;
  position: relative;
}

.content-inner img {
  max-width: 100%;
}

.image-link {
  display: block;
  position: relative;
  background-color: #000;
  text-align: center;
}

/* 画像中央のテキストオーバーレイ */
.overlay-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 32px;
  font-weight: normal;
}

/* Articles / News */
.articles {
  padding: 50px 0 20px;
  width: 85%; /* SP準拠 */
  margin: 0 auto;
}

.section-title {
  text-align: center;
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 29px;
  color: #000;
  font-weight: normal;
  font-family: "Oswald", sans-serif;
}

.articles-grid {
  display: grid;
  /* SP: 2カラム */
  grid-template-columns: repeat(2, 1fr);
  row-gap: 6px; /* 縦方向(行間)のgap */
  column-gap: 9px; /* 横方向(列間)のgap */
  margin-bottom: 44px;
}

.article-item {
  display: block;
  background-color: #000;
  aspect-ratio: 242/305;
}
.article-item a {
  display: block;
}

.article-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Instagram読み込み・エラー表示用 */
.instagram-status {
  width: 100%;
  padding: 40px 0;
  text-align: center;
  color: #666;
  grid-column: 1/-1; /* グリッドレイアウトの場合、全幅を使う */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid #000000;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  line-height: 1.3;
}

/* ローディングスピナーのアニメーション */
.status-loader {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #333; /* ローディングの色 */
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* エラー時のスタイル */
.instagram-error-text {
  color: #d32f2f;
  font-size: 0.9em;
}

.articles-more {
  width: 100%;
}
.articles-more a {
  width: 58.4%;
  max-width: 292px;
  margin: 0 auto;
  display: block;
}
.articles-more a img {
  width: 100%;
}

.online-store a {
  display: block;
  width: 100%;
  background: #2B0000;
  padding-top: 64%;
  position: relative;
}
.online-store a .image-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
}
.online-store a .image-wrapper img {
  width: 58.2%;
  height: auto;
}

/* =========================================
   Media Query: Tablet (>= 768px)
   ========================================= */
@media (min-width: 768px) {
  .mv {
    padding-top: 50.3%;
  }
  .content-block.concept-image {
    margin-top: 0;
    padding-top: 91px;
  }
  .content-block.concept-image .content-inner .image-wrapper {
    padding-top: 37.5%;
  }
  .content-block.concept-text-image {
    margin-top: 80px;
  }
  .content-block.concept-text-image .content-inner .image-wrapper {
    padding-top: 20.5%;
  }
  .content-block.online-store {
    margin-top: 93px;
  }
  .content-inner {
    width: calc(100% - 80px);
    max-width: 1200px;
    margin: 0 auto;
  }
  .articles {
    width: auto;
    max-width: 1200px;
    margin: 65px auto 36px;
    padding-left: 40px;
    padding-right: 40px;
  }
  .section-title {
    font-size: 33px;
    margin-bottom: 39px;
  }
  /* Articles Grid: 3カラム */
  .articles-grid {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 16px; /* 縦方向(行間)のgap */
    column-gap: 12px; /* 横方向(列間)のgap */
    margin-bottom: 43px;
  }
  .online-store a {
    padding-top: 22.5%;
  }
  .online-store a:hover {
    opacity: 0.8;
  }
  .online-store a .image-wrapper img {
    width: 24.3%;
  }
}
/* =========================================
   Media Query: PC (>= 1024px)
   ========================================= */
@media (min-width: 1024px) {
  .articles-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .content-block {
    margin-top: 40px;
  }
  .article-item a:hover {
    opacity: 0.8;
  }
}
