/* 慢宋サイト 追加スタイル（site.css は旧サイトのスタイルをそのまま使用） */

/* フォント（旧サイトと同じ Noto Sans JP / Noto Serif JP を Google Fonts から読み込み） */
:root {
  --font-sans-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --font-serif-display: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

/* 画像を枠いっぱいに表示（旧サイトの next/image fill 相当） */
.ms-fill { position: absolute; inset: 0; width: 100%; height: 100%; }

/* 商品詳細：読み込み中は非表示 */
.pd-loading { visibility: hidden; }

/* ギャラリー拡大表示 */
.ms-lightbox {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(20, 16, 12, .9);
  display: flex; align-items: center; justify-content: center;
  padding: 56px 16px 24px;
  animation: ms-fade .25s ease-out;
}
.ms-lightbox__figure { margin: 0; max-width: min(1100px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.ms-lightbox__figure img { max-width: 100%; max-height: calc(100vh - 140px); object-fit: contain; }
.ms-lightbox__figure figcaption { margin-top: 14px; color: rgba(255,255,255,.85); font-size: 12px; letter-spacing: .12em; font-family: var(--font-serif-display); text-align: center; }
.ms-lightbox button { position: absolute; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.35); cursor: pointer; line-height: 1; }
.ms-lightbox button:hover { border-color: #fff; }
.ms-lightbox__close { top: 12px; right: 12px; width: 44px; height: 44px; font-size: 24px; }
.ms-lightbox__nav { top: 50%; transform: translateY(-50%); width: 44px; height: 64px; font-size: 32px; }
.ms-lightbox__prev { left: 12px; }
.ms-lightbox__next { right: 12px; }
@keyframes ms-fade { from { opacity: 0 } to { opacity: 1 } }

/* カート */
.ms-cart { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border-soft); }
.ms-cart__item { display: grid; grid-template-columns: 88px 1fr auto; gap: 20px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--border-soft); }
.ms-cart__thumb { position: relative; display: block; width: 88px; height: 88px; overflow: hidden; border-radius: 2px; background: linear-gradient(135deg, #ebe3d9, #d9cbb8 50%, #cbb89c); }
.ms-cart__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ms-cart__controls { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.ms-cart__total { white-space: nowrap; }
.ms-cart__summary { margin-top: 40px; margin-left: auto; max-width: 380px; border: 1px solid var(--border-soft); background: rgba(255,255,255,.4); padding: 28px 24px; }
@media (max-width: 640px) {
  .ms-cart__item { grid-template-columns: 72px 1fr; }
  .ms-cart__thumb { width: 72px; height: 72px; }
  .ms-cart__total { grid-column: 2; }
  .ms-cart__summary { max-width: none; }
}

/* 近日発売 */
.ms-badge { position: absolute; top: 14px; left: 14px; z-index: 1; background: rgba(44,36,28,.88); color: #faf7f2; font-size: 10px; letter-spacing: .24em; padding: 6px 10px; }
.ms-coming { border: 1px solid var(--border-soft); background: rgba(255,255,255,.45); padding: 28px 24px; }
.ms-contain { object-fit: contain; background: #fff; }

/* NEWS */
.ms-news { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border-soft); }
.ms-news__item { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--border-soft); }
.ms-news__meta { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.ms-news__tag { font-size: 10px; letter-spacing: .2em; border: 1px solid var(--border-soft); padding: 4px 8px; color: var(--accent); }
@media (max-width: 640px) { .ms-news__item { grid-template-columns: 1fr; gap: 12px; } .ms-news__meta { flex-direction: row; align-items: center; } }

/* 新商品 LP（2023） */
.lp23-hero { padding-top: var(--site-header-offset); background: radial-gradient(circle at 20% 30%, #f8f5f0 0%, #efe7dc 100%); }
.lp23-hero__inner { display: grid; grid-template-columns: 1fr minmax(0, 440px); gap: 56px; align-items: center; padding-top: 56px; padding-bottom: 72px; }
.lp23-hero__text { animation: ms-fade 1.2s ease-out both; }
.lp23-year { color: var(--accent); }
.lp23-hero__photo { margin: 0; aspect-ratio: 2 / 3; overflow: hidden; border-radius: 2px; box-shadow: 0 30px 60px -34px rgba(44,36,28,.55); }
.lp23-hero__photo img, .lp23-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp23-band { height: min(56vh, 520px); overflow: hidden; }
.lp23-band img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; display: block; }
.lp23-frame { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 2px; border: 1px solid var(--border-soft); }
.lp23-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.lp23-grid button { display: block; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border: 0; padding: 0; background: #ebe3d9; cursor: zoom-in; border-radius: 2px; }
.lp23-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; display: block; }
.lp23-grid button:hover img { transform: scale(1.03); }
.lp23-grid img.lp23-contain { object-fit: contain; background: #fff; }
.lp23-spec { border-top: 1px solid var(--border-soft); margin: 0; }
.lp23-spec > div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--border-soft); font-size: 14px; }
.lp23-spec dt { color: var(--muted); font-size: 12px; letter-spacing: .12em; }
.lp23-spec dd { margin: 0; color: var(--foreground); }
@media (max-width: 767px) {
  .lp23-hero__inner { grid-template-columns: 1fr; gap: 36px; padding-top: 36px; padding-bottom: 48px; }
  .lp23-hero__photo { order: -1; width: 100%; aspect-ratio: 4 / 5; }
  .lp23-grid { grid-template-columns: repeat(2, 1fr); }
  .lp23-spec > div { grid-template-columns: 1fr; gap: 4px; }
}
.ms-news__quote { margin: 16px 0 0; padding: 4px 0 4px 18px; border-left: 2px solid rgba(139,105,20,.45); }
.ms-news__quote p { margin: 0 0 10px; font-size: 13px; line-height: 1.9; color: var(--muted); }
.ms-news__quote cite { display: block; font-style: normal; font-size: 11px; letter-spacing: .06em; color: var(--muted); opacity: .85; }

/* 改行の見栄え調整：日本語を文節単位で折り返し、1〜2文字だけの行（泣き別れ）を防ぐ */
h1, h2, h3, .font-serif { word-break: auto-phrase; text-wrap: balance; line-break: strict; }
p, dd, li, blockquote, figcaption { word-break: auto-phrase; text-wrap: pretty; line-break: strict; }
.whitespace-pre-wrap p { word-break: normal; }
.lp23-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lp23-points article { border: 1px solid var(--border-soft); background: rgba(255,255,255,.5); padding: 28px 24px; }
.lp23-points__num { font-family: var(--font-serif-display); font-size: 28px; color: var(--accent); letter-spacing: .08em; margin: 0 0 14px; }
@media (max-width: 767px) { .lp23-points { grid-template-columns: 1fr; } }

/* トップの背景動画：再生が始まるまで隠し、写真を表示（YouTubeの再生ボタンを見せない） */
.ms-mv__video { background: #1a1612 url(/images/mansong/hero-poster.jpg) center / cover no-repeat; }
.ms-mv__video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; filter: brightness(.72) saturate(.88) contrast(1.08); }
.ms-mv__video.is-playing video { opacity: 1; }
.ms-mv__video iframe { opacity: 0; transition: opacity 1.2s ease; transform: translate(-50%, -50%) scale(1.18); }
.ms-mv__video.is-playing iframe { opacity: 1; }

/* よくある質問 */
.ms-faq { border-top: 1px solid var(--border-soft); margin: 0; }
.ms-faq__item { padding: 24px 0; border-bottom: 1px solid var(--border-soft); }
.ms-faq__item dd { margin: 12px 0 0; }
