/* 結果頁下方「現場商品區」樣式（全部以 .mvs 開頭，避免影響原頁面） */
#venueShopMount { width: 100%; }
.mvs { max-width: 960px; margin: 28px auto 8px; padding: 0 16px; color: #1e3a2f; box-sizing: border-box; }
.mvs *, .mvs *::before, .mvs *::after { box-sizing: border-box; }
.mvs-hd h3 { margin: 0 0 4px; font-size: 20px; line-height: 1.4; color: #1e3a2f; }
.mvs-hd2 { margin-top: 36px; padding-top: 24px; border-top: 1px solid #e6dfd0; }
.mvs-sub { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: #6b6b60; }

.mvs-gap { background: #fbf6ea; border: 1px solid #e6d7b0; border-radius: 12px; padding: 12px 14px; margin: 0 0 12px; }
.mvs-gap-h { font-size: 14px; font-weight: 700; color: #7a5c1e; }
.mvs-gap-list { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.mvs-gap-item { font-size: 14px; color: #1e3a2f; text-decoration: underline; word-break: break-word; }

.mvs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 640px) { .mvs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 900px) { .mvs-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.mvs-card { background: #fff; border: 1px solid #e6dfd0; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.mvs-card.sel { border-color: #c8a96e; box-shadow: 0 0 0 2px rgba(200, 169, 110, .45); }
.mvs-media { position: relative; width: 100%; aspect-ratio: 1 / 1; background: #f3efe6; overflow: hidden; }
.mvs-img, .mvs-video { width: 100%; height: 100%; object-fit: contain; display: block; background: #f3efe6; }
.mvs-video { background: #000; object-fit: contain; }
.mvs-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: 0; border-radius: 50%; background: rgba(30, 58, 47, .55); color: #fff; font-size: 20px; line-height: 28px; cursor: pointer; padding: 0; }
.mvs-nav.prev { left: 6px; } .mvs-nav.next { right: 6px; }
.mvs-dots { position: absolute; left: 0; right: 0; bottom: 6px; display: flex; justify-content: center; gap: 5px; }
.mvs-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(30, 58, 47, .25); cursor: pointer; }
.mvs-dot.on { background: #1e3a2f; }

.mvs-body { padding: 10px 10px 12px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.mvs-cat { font-size: 12px; color: #8a7a55; }
.mvs-name { font-size: 14px; font-weight: 700; line-height: 1.45; color: #1e3a2f; word-break: break-word; }
.mvs-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.mvs-now { font-size: 16px; font-weight: 700; color: #1e3a2f; }
.mvs-was { font-size: 12px; color: #9a9a8e; text-decoration: line-through; }
.mvs-tag { font-size: 12px; font-weight: 700; color: #7a5c1e; background: #f3e4bd; border-radius: 100px; padding: 2px 9px; }
.mvs-line { font-size: 13px; line-height: 1.6; color: #4a4a40; }
.mvs-link { font-size: 13px; color: #1e3a2f; text-decoration: underline; margin-top: auto; }
.mvs-pick { display: flex; align-items: center; gap: 8px; margin-top: 4px; padding: 9px 10px; border-radius: 10px; background: #f3efe6; font-size: 14px; color: #1e3a2f; cursor: pointer; }
.mvs-pick input { width: 18px; height: 18px; accent-color: #1e3a2f; margin: 0; }
.mvs-toggle { align-self: flex-start; background: none; border: 1px solid #c8a96e; color: #7a5c1e; border-radius: 100px; padding: 5px 12px; font-size: 13px; cursor: pointer; }
.mvs-usage { background: #f7f3ea; border-radius: 10px; padding: 10px; }
.mvs-usage-h { font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.mvs-usage-t, .mvs-usage-c { font-size: 13px; line-height: 1.65; color: #4a4a40; }
.mvs-usage-c { color: #7a5c1e; margin-top: 4px; }

.mvs-stickybar { position: sticky; top: 0; z-index: 40; background: #f6f2ea; padding: 10px 0; margin: 0 0 14px; }
@media (prefers-color-scheme: dark) { .mvs-stickybar { background: #14201a; } }
.mvs-go { display: block; width: 100%; max-width: 460px; margin: 0 auto; padding: 15px 20px; border: 0; border-radius: 100px; font-size: 16px; font-weight: 700; color: #f3ecdf; background: linear-gradient(120deg, #1e3a2f, #3a5a4c); cursor: pointer; box-shadow: 0 4px 14px rgba(30,58,47,.25); }
.mvs-go:disabled { opacity: .55; cursor: not-allowed; }

.mvs-routine { margin-top: 16px; }
.mvs-cols { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 720px) { .mvs-cols { grid-template-columns: 1fr 1fr; } }
.mvs-col { background: #fff; border: 1px solid #e6dfd0; border-radius: 14px; padding: 14px; }
.mvs-col-h { margin: 0 0 10px; font-size: 16px; color: #1e3a2f; }
.mvs-empty { margin: 0; font-size: 14px; color: #8a8a7e; }
.mvs-steps { list-style: none; margin: 0; padding: 0; position: relative; }
.mvs-step { position: relative; padding: 0 0 14px 18px; border-left: 2px solid #e6dfd0; margin-left: 6px; }
.mvs-step:last-child { padding-bottom: 0; }
.mvs-step::before { content: ''; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #c8a96e; }
.mvs-step-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mvs-badge { font-size: 12px; font-weight: 700; color: #fff; background: #1e3a2f; border-radius: 100px; padding: 2px 10px; }
.mvs-freq { font-size: 12px; color: #7a5c1e; background: #f3e4bd; border-radius: 100px; padding: 2px 9px; }
.mvs-step-name { margin-top: 4px; font-size: 14px; font-weight: 700; color: #1e3a2f; word-break: break-word; }
.mvs-step-note { margin-top: 2px; font-size: 13px; line-height: 1.6; color: #4a4a40; }
.mvs-note { margin-top: 12px; background: #f7f3ea; border-radius: 12px; padding: 12px 14px; }
.mvs-note.alt { background: #fbf6ea; border: 1px solid #e6d7b0; }
.mvs-note.muted { background: transparent; padding: 0 2px; }
.mvs-note-h { font-size: 14px; font-weight: 700; margin-bottom: 4px; color: #1e3a2f; }
.mvs-note-t { font-size: 13px; line-height: 1.7; color: #4a4a40; }
.mvs-note.muted .mvs-note-t { color: #8a8a7e; }
