/* ==========================================================================
   Archive Content (page-cake / page-baked / page-gift / page-decorated /
   page-season) — SEO 強化用の追加コンテンツ層。
   既存 products.css / theme-base.css のトークン (--color-beige, --fs-*) を再利用。
   破壊変更を避け、追加スコープのみに class を当てる。
   ========================================================================== */

/* Lead パラグラフ（H1直下） */
.archive-lead {
  max-width: 880px;
  margin: 0 auto 48px;
  padding: 0 20px;
  font-size: var(--fs-base);
  line-height: 1.9;
  color: var(--color-text);
  text-align: left;
}

@media (min-width: 768px) {
  .archive-lead {
    font-size: var(--fs-md);
    text-align: center;
    margin-bottom: 64px;
  }
}

/* セクションブロック共通 */
.archive-content-block {
  padding: 48px 20px;
  border-top: 1px solid #e9e2d4;
}

.archive-content-block:first-of-type {
  border-top: none;
}

@media (min-width: 768px) {
  .archive-content-block {
    padding: 72px 20px;
  }
}

.archive-content-block .site-container {
  max-width: 1080px;
  margin: 0 auto;
}

/* ブロック見出し */
.archive-content-block h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  margin: 0 0 16px;
  position: relative;
  padding-left: 16px;
}

.archive-content-block h2::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 4px;
  height: 1em;
  background: linear-gradient(180deg, #d3b58c 0%, #a8926a 100%);
  border-radius: 2px;
}

.archive-content-block h3 {
  font-size: var(--fs-md);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  margin: 32px 0 12px;
}

.archive-content-block p {
  font-size: var(--fs-base);
  line-height: 1.9;
  color: var(--color-text);
  margin: 0 0 1.2em;
}

.archive-content-block p:last-child {
  margin-bottom: 0;
}

.archive-content-block ul:not(.shop-quick-links):not(.archive-faq__list) {
  padding-left: 1.4em;
  margin: 0 0 1.2em;
}

.archive-content-block ul li {
  line-height: 1.9;
  margin-bottom: 4px;
}

.archive-content-block a {
  color: #8a6e3a;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.archive-content-block a:hover {
  color: #5e4a26;
}

/* CTA 行 */
.archive-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.archive-cta-row .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 999px;
  font-weight: var(--fw-medium);
  font-size: var(--fs-base);
  text-decoration: none;
  min-height: 48px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.archive-cta-row .btn-primary {
  background: linear-gradient(135deg, #d3b58c 0%, #a8926a 100%);
  color: #fff;
  box-shadow: 0 4px 12px rgba(211, 181, 140, 0.3);
}

.archive-cta-row .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(211, 181, 140, 0.4);
  color: #fff;
}

.archive-cta-row .btn-secondary {
  background: #fff;
  color: #5e4a26;
  border: 1.5px solid #d3b58c;
}

.archive-cta-row .btn-secondary:hover {
  background: #faf6ee;
  color: #5e4a26;
  text-decoration: none;
}

/* 店舗クイックリンク */
.shop-quick-links {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

@media (min-width: 768px) {
  .shop-quick-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .shop-quick-links {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.shop-quick-links li {
  margin: 0;
}

.shop-quick-links a {
  display: block;
  padding: 12px 14px;
  background: #faf6ee;
  border: 1px solid #ebe0c8;
  border-radius: 10px;
  color: #5e4a26;
  text-decoration: none;
  font-size: var(--fs-small);
  text-align: center;
  transition: background 0.2s ease, border-color 0.2s ease;
  min-height: 44px;
}

.shop-quick-links a:hover {
  background: #f3ead4;
  border-color: #d3b58c;
  color: #5e4a26;
  text-decoration: none;
}

/* FAQ アコーディオン */
.archive-faq {
  margin-top: 16px;
  border-top: 1px solid #ebe0c8;
}

.archive-faq__item {
  border-bottom: 1px solid #ebe0c8;
}

.archive-faq__q {
  cursor: pointer;
  padding: 18px 40px 18px 16px;
  font-weight: var(--fw-medium);
  font-size: var(--fs-base);
  color: var(--color-text);
  position: relative;
  list-style: none;
  min-height: 44px;
  display: flex;
  align-items: center;
}

.archive-faq__q::-webkit-details-marker {
  display: none;
}

.archive-faq__q::before {
  content: 'Q.';
  color: #a8926a;
  font-weight: 700;
  margin-right: 10px;
  font-family: 'Noto Serif JP', serif;
}

.archive-faq__q::after {
  content: '+';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.4em;
  color: #a8926a;
  font-weight: 300;
  transition: transform 0.2s ease;
}

.archive-faq__item[open] .archive-faq__q::after {
  content: '−';
}

.archive-faq__a {
  padding: 0 16px 20px 36px;
  font-size: var(--fs-base);
  line-height: 1.9;
  color: var(--color-text);
}

/* 関連商品ミニグリッド（セクション内） */
.archive-content-block .item-grid {
  margin-top: 16px;
}

/* 価格帯表 / シーン表 */
.archive-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: var(--fs-base);
}

.archive-table th,
.archive-table td {
  padding: 12px 14px;
  border: 1px solid #ebe0c8;
  text-align: left;
  vertical-align: top;
  line-height: 1.7;
}

.archive-table th {
  background: #faf6ee;
  font-weight: var(--fw-medium);
  white-space: nowrap;
}

@media (max-width: 640px) {
  .archive-table th,
  .archive-table td {
    padding: 10px;
    font-size: var(--fs-small);
  }
}

/* 内部リンクカード（関連ページへの誘導） */
.archive-link-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 16px;
}

@media (min-width: 768px) {
  .archive-link-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.archive-link-card {
  display: block;
  padding: 20px;
  background: #fff;
  border: 1px solid #ebe0c8;
  border-radius: 12px;
  text-decoration: none;
  color: var(--color-text);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.archive-link-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(168, 146, 106, 0.15);
  text-decoration: none;
  color: var(--color-text);
}

.archive-link-card__title {
  font-weight: var(--fw-medium);
  color: #5e4a26;
  margin: 0 0 6px;
  font-size: var(--fs-md);
}

.archive-link-card__desc {
  font-size: var(--fs-small);
  color: var(--color-muted);
  margin: 0;
  line-height: 1.7;
}

/* ==========================================================================
   Hero Banner — page-id 別の旧背景画像 (style.css legacy) を打ち消し、
   polish.css のブランドダーク × ゴールドグラデーションに揃える。
   旧画像は外部 (2024.ichiryu.jp) 参照で SEO/PSI 上もよくないため除去。
   specificity を稼ぐため body 経由で書く。
   対象: page-id-44 cake / page-id-56 baked / page-id-60 gift /
        page-id-54 decorated / page-id-62 season
   ========================================================================== */
body.page-id-44 #hero-banner,
body.page-id-56 #hero-banner,
body.page-id-60 #hero-banner,
body.page-id-54 #hero-banner,
body.page-id-62 #hero-banner {
  background: linear-gradient(135deg, #4a3220 0%, #2c1d11 100%) !important;
  background-image: linear-gradient(135deg, #4a3220 0%, #2c1d11 100%) !important;
  position: relative;
  overflow: hidden;
}

body.page-id-44 #hero-banner::after,
body.page-id-56 #hero-banner::after,
body.page-id-60 #hero-banner::after,
body.page-id-54 #hero-banner::after,
body.page-id-62 #hero-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 80% 110%, rgba(184, 151, 100, 0.30) 0%, transparent 60%),
              radial-gradient(circle at 10% -10%, rgba(211, 181, 140, 0.18) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}

body.page-id-44 #hero-banner .hero-content,
body.page-id-56 #hero-banner .hero-content,
body.page-id-60 #hero-banner .hero-content,
body.page-id-54 #hero-banner .hero-content,
body.page-id-62 #hero-banner .hero-content {
  position: relative;
  z-index: 1;
}

/* ヒーロー H1 タイポ統一 */
body.page-id-44 #hero-banner h1,
body.page-id-56 #hero-banner h1,
body.page-id-60 #hero-banner h1,
body.page-id-54 #hero-banner h1,
body.page-id-62 #hero-banner h1 {
  font-family: var(--ff-serif, 'Noto Serif JP', serif);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #fff;
  font-size: clamp(1.6rem, 4vw, 2.6rem);
  margin: 0;
  text-shadow: none;
  padding: 0;
}

body.page-id-44 #hero-banner .product-hero-title__main,
body.page-id-44 #hero-banner .product-hero-title__brand,
body.page-id-56 #hero-banner .product-hero-title__main,
body.page-id-56 #hero-banner .product-hero-title__brand,
body.page-id-60 #hero-banner .product-hero-title__main,
body.page-id-60 #hero-banner .product-hero-title__brand {
  display: inline-block;
  white-space: nowrap;
}

body.page-id-44 #hero-banner .product-hero-title__sep,
body.page-id-56 #hero-banner .product-hero-title__sep,
body.page-id-60 #hero-banner .product-hero-title__sep {
  display: inline-block;
  margin: 0 .32em;
}

@media (max-width: 767px) {
  body.page-id-44 #hero-banner h1.product-hero-title,
  body.page-id-56 #hero-banner h1.product-hero-title,
  body.page-id-60 #hero-banner h1.product-hero-title {
    display: grid;
    justify-items: center;
    gap: .18em;
    line-height: 1.35;
  }

  body.page-id-44 #hero-banner .product-hero-title__sep,
  body.page-id-56 #hero-banner .product-hero-title__sep,
  body.page-id-60 #hero-banner .product-hero-title__sep {
    display: none;
  }

  body.page-id-44 #hero-banner .product-hero-title__brand,
  body.page-id-56 #hero-banner .product-hero-title__brand,
  body.page-id-60 #hero-banner .product-hero-title__brand {
    font-size: .86em;
  }
}
