/* D-055/D-056 shared UI for the monthly list, work info and review link. Namespace .nrm-ui only. Tokens: docs/DESIGN_SPEC.md
 * Spacing 4/8/12/16/24/32 · radii 4 (tags) / 8 (controls, cards) / 12 (dialogs) · strong fill only on the primary action. */
.nrm-ui { --nu-text: #24212B; --nu-sub: #5A5663; --nu-muted: #767280; --nu-accent: #7C426F; --nu-accent-dark: #5f2f55; --nu-accent-soft: #F5EEF4; --nu-bg: #F7F6F8; --nu-surface: #FFFFFF; --nu-line: #E6E2E8; --nu-line-strong: #CFC9D3; --nu-warn: #9a3412; --nu-ok: #2f6b4f;
	--nu-r-s: 4px; --nu-r: 8px; --nu-r-l: 12px; --nu-radius: 8px; --nu-tap: 44px; --nu-sticky-top: 0px;
	color: var(--nu-text); font-size: 15px; line-height: 1.65; font-family: inherit; }
.nrm-ui *, .nrm-ui *::before, .nrm-ui *::after { box-sizing: border-box; }
.nrm-ui [hidden] { display: none !important; }
/* THE THOR .content resets, inside the namespace only (list counters/indent, 2-4rem margins, bold link hover). */
.nrm-ui.nrm-ui p, .nrm-ui.nrm-ui h2, .nrm-ui.nrm-ui h3, .nrm-ui.nrm-ui ul, .nrm-ui.nrm-ui ol, .nrm-ui.nrm-ui dl, .nrm-ui.nrm-ui dd, .nrm-ui.nrm-ui dt, .nrm-ui.nrm-ui div, .nrm-ui.nrm-ui nav, .nrm-ui.nrm-ui aside, .nrm-ui.nrm-ui header, .nrm-ui.nrm-ui section, .nrm-ui.nrm-ui figure, .nrm-ui.nrm-ui details { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.nrm-ui.nrm-ui h2::before, .nrm-ui.nrm-ui h2::after, .nrm-ui.nrm-ui h3::before, .nrm-ui.nrm-ui h3::after { content: none; display: none; }
.nrm-ui.nrm-ui ol, .nrm-ui.nrm-ui ul, .nrm-ui.nrm-ui li { list-style: none; }
.nrm-ui.nrm-ui ol > li, .nrm-ui.nrm-ui ul > li { margin: 0; padding-left: 0; line-height: inherit; }
.nrm-ui.nrm-ui ol > li::before, .nrm-ui.nrm-ui ul > li::before, .nrm-ui.nrm-ui ol::before, .nrm-ui.nrm-ui ul::before, .nrm-ui.nrm-ui ol::after, .nrm-ui.nrm-ui ul::after { content: none; display: none; counter-increment: none; }
.nrm-ui.nrm-ui dt { font-weight: 400; }
.nrm-ui.nrm-ui a { color: var(--nu-accent); text-decoration: none; font-weight: inherit; }
.nrm-ui.nrm-ui a:hover { text-decoration: underline; }
.nrm-ui img { max-width: 100%; height: auto; }
.nrm-ui button, .nrm-ui select, .nrm-ui input { font: inherit; color: inherit; }
.nrm-ui :focus-visible { outline: 2px solid var(--nu-accent); outline-offset: 2px; }
.nrm-ui .nu-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Buttons and links: one filled primary per context; everything else quiet. */
.nrm-ui .nu-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 8px 16px; border-radius: var(--nu-r); border: 1px solid var(--nu-line-strong); background: var(--nu-surface); color: var(--nu-text); font-size: 14px; font-weight: 700; line-height: 1.3; cursor: pointer; text-decoration: none; }
.nrm-ui.nrm-ui a.nu-btn:hover { text-decoration: none; }
.nrm-ui .nu-btn-primary, .nrm-ui.nrm-ui a.nu-btn-primary { background: var(--nu-accent); border-color: var(--nu-accent); color: #fff; }
.nrm-ui .nu-btn-primary:hover, .nrm-ui.nrm-ui a.nu-btn-primary:hover { background: var(--nu-accent-dark); border-color: var(--nu-accent-dark); color: #fff; }
.nrm-ui .nu-btn-sub, .nrm-ui.nrm-ui a.nu-btn-sub { color: var(--nu-accent); font-weight: 700; }
.nrm-ui .nu-btn-ghost, .nrm-ui.nrm-ui a.nu-btn-ghost { background: var(--nu-surface); color: var(--nu-text); font-weight: 400; }
.nrm-ui .nu-btn.is-disabled { color: #8d8894; background: var(--nu-bg); border-color: var(--nu-line); cursor: default; }
.nrm-ui.nrm-ui .nu-link-arrow, .nrm-ui .nu-link-toggle { display: inline-flex; align-items: center; min-height: 40px; color: var(--nu-accent); font-weight: 700; background: none; border: 0; padding: 0; cursor: pointer; }
.nrm-ui.nrm-ui .nu-link-arrow::after { content: "→"; margin-left: 6px; }
.nrm-ui .nu-ad { margin-left: 6px; font-size: 11px; font-weight: 400; border: 1px solid currentColor; border-radius: var(--nu-r-s); padding: 0 4px; opacity: .85; }

/* Segments, chips, checks, badges. */
.nrm-ui .nu-seg { display: inline-flex; border: 1px solid var(--nu-line-strong); border-radius: var(--nu-r); overflow: hidden; background: var(--nu-surface); }
.nrm-ui .nu-seg button { min-height: 40px; padding: 6px 14px; border: 0; border-left: 1px solid var(--nu-line); background: none; cursor: pointer; white-space: nowrap; }
.nrm-ui .nu-seg button:first-child { border-left: 0; }
.nrm-ui .nu-seg button[aria-pressed="true"] { background: var(--nu-text); color: #fff; font-weight: 700; }
.nrm-ui .nu-seg button[aria-pressed="true"] .nu-n { color: #ddd; }
.nrm-ui .nu-n { margin-left: 6px; font-size: 12px; color: var(--nu-sub); font-weight: 400; }
.nrm-ui .nu-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nrm-ui .nu-chip { min-height: 36px; padding: 4px 12px; border: 1px solid var(--nu-line-strong); border-radius: var(--nu-r); background: var(--nu-surface); cursor: pointer; font-size: 13px; }
.nrm-ui .nu-chip[aria-pressed="true"] { border-color: var(--nu-text); background: var(--nu-text); color: #fff; font-weight: 700; }
.nrm-ui .nu-check { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; cursor: pointer; white-space: nowrap; }
.nrm-ui .nu-check input { width: 18px; height: 18px; accent-color: var(--nu-accent); margin: 0; }
.nrm-ui .nu-badge { display: inline-block; font-size: 12px; line-height: 1.5; padding: 0 6px; margin: 0 4px 0 0; border: 1px solid var(--nu-line-strong); border-radius: var(--nu-r-s); color: var(--nu-sub); background: var(--nu-surface); white-space: nowrap; font-weight: 400; vertical-align: 1px; }
.nrm-ui .nu-badge.is-best { border-color: var(--nu-accent); color: var(--nu-accent-dark); font-weight: 700; }
.nrm-ui .nu-badge.is-paid { border-color: #b58a2a; color: #7a5a12; font-weight: 700; }
.nrm-ui .nu-badge.is-warn { border-color: #e2a07b; color: var(--nu-warn); }
.nrm-ui .nu-badge.is-ok { border-color: #9cc5b1; color: var(--nu-ok); }
.nrm-ui select { min-height: 40px; padding: 6px 32px 6px 12px; border: 1px solid var(--nu-line-strong); border-radius: var(--nu-r); background: var(--nu-surface); }
.nrm-ui input[type="search"] { min-height: 40px; width: 100%; padding: 6px 12px; border: 1px solid var(--nu-line-strong); border-radius: var(--nu-r); background: var(--nu-surface); }
.nrm-ui .nu-noimg { display: flex; align-items: center; justify-content: center; text-align: center; background: var(--nu-bg); border: 1px solid var(--nu-line); border-radius: var(--nu-r); color: var(--nu-sub); font-size: 12px; }
/* Shop identity: an approved logo alone (alt = the shop name) in a fixed optical box; the text name only without a logo or
 * after the logo fails to load (.is-logo-failed, set by nuruma-ui.js). */
.nrm-ui .nu-shop { display: inline-flex; align-items: center; gap: 8px; min-width: 0; font-weight: 700; color: var(--nu-text); }
.nrm-ui .nu-shop-logo { display: inline-flex; align-items: center; justify-content: flex-start; width: 120px; height: 32px; flex: 0 0 auto; }
.nrm-ui .nu-shop-logo img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; margin: 0; }
.nrm-ui .nu-shop-sm .nu-shop-logo { width: 96px; height: 28px; }
.nrm-ui .nu-shop-sm { font-size: 13px; }
.nrm-ui .nu-shop-md .nu-shop-name { font-size: 16px; }
.nrm-ui .nu-shop.has-logo .nu-shop-name { display: none; }
.nrm-ui .nu-shop.is-logo-failed .nu-shop-logo { display: none; }
.nrm-ui .nu-shop.is-logo-failed .nu-shop-name { display: inline; }
/* Affiliate notice: once at the start of each purchase component, readable (not a footer-only line). */
.nrm-ui.nrm-ui .nu-disclosure { margin: 0 0 12px; font-size: 13px; color: var(--nu-sub); }

/* Dialogs (month picker, filters, image zoom). */
.nrm-ui dialog { border: 0; border-radius: var(--nu-r-l); padding: 0; max-width: min(92vw, 520px); color: var(--nu-text); box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.nrm-ui dialog::backdrop { background: rgba(20,16,24,.55); }
.nrm-ui .nu-lightbox { max-width: min(96vw, 1000px); background: #111; color: #eee; }
.nrm-ui .nu-lightbox img { display: block; max-width: 100%; max-height: 74vh; margin: 0 auto; object-fit: contain; }
.nrm-ui .nu-lightbox-caption { color: #eee; font-size: 13px; padding: 12px 16px 4px; }
.nrm-ui.nrm-ui .nu-lightbox-go { padding: 8px 16px 16px; }
.nrm-ui .nu-lightbox form { position: absolute; top: 8px; right: 8px; }
.nrm-ui .nu-lightbox-close { width: 44px; height: 44px; border-radius: var(--nu-r); border: 0; background: rgba(0,0,0,.6); color: #fff; font-size: 22px; cursor: pointer; }

/* ---------------- Work info ---------------- */
.nrm-wi { container-type: inline-size; max-width: 1240px; }
/* Overview: jacket · staff/cast facts · summary (PC); jacket + overview, then facts, then summary (narrow). */
.nrm-ui.nrm-ui .nrm-wi-head { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-areas: "jacket basic" "staff staff" "summary summary"; gap: 12px 16px; align-items: start; }
.nrm-wi-jacket { grid-area: jacket; }
.nrm-wi-jacket img, .nrm-wi-noimg { display: block; width: 96px; height: 128px; object-fit: cover; border-radius: var(--nu-r); margin: 0; }
.nrm-wi-overview { grid-area: basic; min-width: 0; }
.nrm-ui.nrm-ui .nrm-wi-staff { grid-area: staff; min-width: 0; }
.nrm-wi-dates .nu-date { white-space: nowrap; }
.nrm-ui.nrm-ui .nrm-wi-title { font-size: 22px; font-weight: 800; line-height: 1.35; margin-bottom: 8px; }
.nrm-ui.nrm-ui .nrm-wi-facts { display: grid; gap: 4px; font-size: 15px; }
.nrm-ui.nrm-ui .nrm-wi-facts > div { display: flex; gap: 12px; align-items: baseline; }
.nrm-ui.nrm-ui .nrm-wi-facts dt { flex: 0 0 4.5em; }
.nrm-wi-facts dt { color: var(--nu-sub); font-size: 13px; padding-top: 1px; }
.nrm-ui.nrm-ui .nrm-wi-facts dd { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; padding: 0; border: 0; }
.nrm-wi-dates { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.nrm-wi-missing { color: var(--nu-muted); }
/* Long lists: native <details>, no JS. Closed: 「ほかN件を表示」. Open: only the remaining items, then 「追加分を閉じる」. */
.nrm-ui.nrm-ui .nrm-wi-more { display: inline; }
.nrm-ui.nrm-ui .nrm-wi-more[open] { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 2px; margin-top: 2px; }
.nrm-wi-more summary { display: inline-flex; align-items: center; min-height: 32px; cursor: pointer; color: var(--nu-accent); font-size: 13px; list-style: none; }
.nrm-wi-more summary::-webkit-details-marker { display: none; }
.nrm-wi-more .nu-when-open, .nrm-wi-more[open] .nu-when-closed { display: none; }
.nrm-wi-more[open] .nu-when-open { display: inline; }
.nrm-ui.nrm-ui .nrm-wi-summary { grid-area: summary; border-top: 1px solid var(--nu-line); padding-top: 12px; display: grid; gap: 4px; align-content: start; }
.nrm-ui.nrm-ui .nrm-wi-sumrow { display: grid; grid-template-columns: 6em minmax(0, 1fr); align-items: baseline; gap: 12px; }
.nrm-wi-sumk { color: var(--nu-sub); font-size: 13px; }
.nrm-wi-sumv { text-align: left; }
.nrm-wi-sumv b { font-size: 17px; font-variant-numeric: tabular-nums; }
.nrm-wi-sumv small { color: var(--nu-sub); }
.nrm-wi-sumv.is-unknown { color: var(--nu-sub); font-size: 13px; }
.nrm-ui.nrm-ui .nrm-wi-sumlinks { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 4px; }
.nrm-wi-official { display: inline-flex; align-items: center; min-height: 40px; color: var(--nu-sub) !important; }
.nrm-wi-note { font-size: 12px; color: var(--nu-muted); margin-top: 8px; }
/* Section bar: anchors (not tabs) + edition selector; sticky, one line. */
.nrm-ui.nrm-ui .nrm-wi-bar { position: sticky; top: var(--nu-sticky-top); z-index: 3; display: flex; align-items: center; gap: 8px 16px; flex-wrap: wrap; margin-top: 16px; padding: 4px 0; background: #fff; border-bottom: 1px solid var(--nu-line); }
.nrm-ui.nrm-ui .nrm-wi-jump { display: flex; gap: 4px; flex: 1 1 auto; }
.nrm-ui.nrm-ui .nrm-wi-jump a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; color: var(--nu-text); font-weight: 700; border-bottom: 2px solid transparent; }
.nrm-ui.nrm-ui .nrm-wi-jump a:hover { border-bottom-color: var(--nu-accent); text-decoration: none; }
.nrm-wi-jump .nu-long { display: none; }
.nrm-wi-edselect { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--nu-sub); }
.nrm-wi-edselect select { color: var(--nu-text); min-height: 44px; max-width: 16em; }
.nrm-ui.nrm-ui .nrm-wi-sec { margin-top: 32px; scroll-margin-top: 64px; }
.nrm-ui.nrm-ui .nrm-wi-h { font-size: 20px; font-weight: 800; padding: 0 0 8px; margin-bottom: 12px; border-bottom: 2px solid var(--nu-text); display: flex; align-items: baseline; gap: 12px; }
.nrm-wi-count { font-size: 13px; font-weight: 400; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-h3 { font-size: 16px; font-weight: 800; margin-top: 24px; }
.nrm-wi-hint, .nrm-wi-source, .nrm-wi-empty, .nrm-wi-none { font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-hint { margin: -4px 0 12px; }
/* Shop jump (many shops): identities in a wrapping row. */
.nrm-ui.nrm-ui .nrm-wi-shopjump ul { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.nrm-ui.nrm-ui .nrm-wi-shopjump a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 10px; border: 1px solid var(--nu-line); border-radius: var(--nu-r); background: var(--nu-surface); }
.nrm-ui.nrm-ui .nrm-wi-shopjump a:hover { border-color: var(--nu-line-strong); text-decoration: none; }
.nrm-wi-jn { font-size: 12px; color: var(--nu-sub); }
/* One shop = one full-width section: header, bonus grid, purchase block. */
.nrm-ui.nrm-ui .nrm-wi-shop { padding: 20px 0 24px; border-top: 1px solid var(--nu-line); scroll-margin-top: 64px; }
.nrm-ui.nrm-ui .nrm-wi-shophead { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 4px 12px; margin-bottom: 12px; }
.nrm-wi-shopcount { font-size: 13px; color: var(--nu-sub); white-space: nowrap; }
.nrm-ui.nrm-ui .nrm-wi-bgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
.nrm-ui.nrm-ui .nrm-wi-bcard { display: flex; flex-direction: column; min-width: 0; border-radius: var(--nu-r); scroll-margin-top: 72px; }
.nrm-ui.nrm-ui .nrm-wi-bcard.is-selected .nrm-wi-zoom { outline: 3px solid var(--nu-accent); outline-offset: 2px; }
.nrm-wi-zoom { display: flex; align-items: center; justify-content: center; width: 100%; height: 132px; padding: 4px; border: 1px solid var(--nu-line); border-radius: var(--nu-r); background: var(--nu-bg); cursor: zoom-in; overflow: hidden; }
.nrm-wi-zoom img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; margin: 0; }
.nrm-wi-noimg-b { cursor: default; color: var(--nu-muted); font-size: 12px; }
.nrm-ui.nrm-ui .nrm-wi-bbody { padding-top: 8px; display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; }
.nrm-wi-bname { font-size: 16px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; word-break: auto-phrase; }
.nrm-ui.nrm-ui .nrm-wi-bmeta { display: grid; gap: 2px; font-size: 13px; }
.nrm-ui.nrm-ui .nrm-wi-bmeta > div { display: flex; gap: 8px; align-items: baseline; }
.nrm-ui.nrm-ui .nrm-wi-bmeta dt { flex: 0 0 2.5em; }
.nrm-ui.nrm-ui .nrm-wi-bmeta dd { flex: 1 1 auto; min-width: 0; padding: 0; border: 0; }
.nrm-wi-bmeta dt { color: var(--nu-sub); }
.nrm-wi-bnote { font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-bact { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin-top: auto; }
.nrm-ui.nrm-ui .nrm-wi-pick { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.nrm-ui .nrm-wi-cmpbtn { min-height: 44px; padding: 0 2px; border: 0; background: none; color: var(--nu-sub); font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.nrm-ui .nrm-wi-cmpbtn[aria-pressed="true"] { color: var(--nu-accent); font-weight: 700; text-decoration: none; }
.nrm-image-credit { display: block; font-size: 11px; color: var(--nu-sub); margin-top: 4px; }
.nrm-ui.nrm-ui .nrm-wi-expired { margin-top: 12px; }
.nrm-wi-expired summary { cursor: pointer; font-size: 13px; color: var(--nu-sub); min-height: 40px; display: flex; align-items: center; }
/* Purchase block: which bonus, which product, which shop page. */
.nrm-ui.nrm-ui .nrm-wi-buy { display: grid; gap: 12px; margin-top: 16px; }
.nrm-ui.nrm-ui .nrm-wi-route { padding: 12px 16px; background: var(--nu-bg); border-radius: var(--nu-r); scroll-margin-top: 72px; }
.nrm-ui.nrm-ui .nrm-wi-route.is-selected { box-shadow: inset 3px 0 0 var(--nu-accent); background: var(--nu-accent-soft); }
.nrm-ui.nrm-ui .nrm-wi-route:focus { outline: 2px solid var(--nu-accent); outline-offset: 2px; }
.nrm-wi-route-for { font-size: 13px; color: var(--nu-sub); }
.nrm-wi-route-for span { color: var(--nu-sub); margin-right: 8px; }
.nrm-ui.nrm-ui .nrm-wi-route-selected { display: flex; align-items: center; gap: 10px; font-size: 15px; margin: 0 0 6px; }
.nrm-ui.nrm-ui .nrm-wi-route-selected[hidden] { display: none; }
.nrm-wi-route-thumb img { display: block; width: 48px; height: 48px; object-fit: contain; background: var(--nu-bg); border-radius: var(--nu-r-s); margin: 0; }
.nrm-ui.nrm-ui .nrm-wi-route-thumb[hidden] { display: none; }
.nrm-wi-route-selected span { color: var(--nu-sub); font-size: 13px; }
.nrm-ui.nrm-ui .nrm-wi-cands > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 0; border-top: 1px solid var(--nu-line); }
.nrm-ui.nrm-ui .nrm-wi-cands > li:first-child { border-top: 0; }
.nrm-wi-cinfo { min-width: 0; flex: 1 1 14em; }
.nrm-wi-clabel { font-weight: 700; }
.nrm-wi-cprice b { font-size: 17px; font-variant-numeric: tabular-nums; }
.nrm-wi-cprice small { margin-left: 8px; color: var(--nu-sub); font-size: 12px; }
.nrm-wi-cprice .is-unknown { color: var(--nu-sub); font-size: 13px; }
.nrm-ui.nrm-ui .nrm-wi-cgo { min-height: 44px; flex: 0 1 auto; white-space: normal; text-align: center; }
.nrm-wi-route-note { font-size: 13px; color: var(--nu-sub); margin-top: 8px; }
.nrm-wi-route .nu-btn-sub { margin-top: 8px; }
/* Price comparison: grid rows on PC, stacked per shop on mobile. */
.nrm-ui.nrm-ui .nrm-wi-prod { margin-top: 16px; }
.nrm-ui.nrm-ui .nrm-wi-prodname { font-size: 16px; font-weight: 800; }
.nrm-wi-prodmeta { font-size: 13px; color: var(--nu-sub); margin-bottom: 8px; }
.nrm-ui.nrm-ui .nrm-wi-offers { border-top: 1px solid var(--nu-line); }
.nrm-ui.nrm-ui .nrm-wi-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "shop price" "tags tags" "checked go"; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--nu-line); align-items: center; }
.nrm-wi-offerhead { display: none !important; }
.nrm-wi-oshop { grid-area: shop; min-width: 0; }
.nrm-wi-oprice { grid-area: price; font-size: 17px; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.nrm-wi-oprice .is-unknown { font-size: 13px; font-weight: 400; color: var(--nu-sub); }
.nrm-wi-otags { grid-area: tags; }
.nrm-wi-ochecked { grid-area: checked; font-size: 12px; color: var(--nu-sub); font-variant-numeric: tabular-nums; }
.nrm-wi-ogo { grid-area: go; justify-self: end; }
.nrm-ui.nrm-ui .nrm-wi-plist > li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 8px 0; border-top: 1px solid var(--nu-line); }
.nrm-wi-pl { font-weight: 700; }
.nrm-wi-pd, .nrm-wi-pp { font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-reviews li { padding: 4px 0; }
.nrm-wi-reviews .nu-badge { margin-right: 8px; }
.nrm-ui.nrm-ui .nrm-wi-campaigns { display: grid; gap: 8px; margin-top: 8px; }
/* Edition filter state (set by the script). */
.nrm-wi-bcard.is-out, .nrm-wi-shop.is-out, .nrm-wi-prod.is-out, .nrm-wi-cand.is-out, .nrm-wi-route.is-out { display: none !important; }

@container (min-width: 560px) {
	.nrm-ui.nrm-ui .nrm-wi-head { grid-template-columns: 112px minmax(0, 1fr); grid-template-areas: "jacket basic" "jacket staff" "summary summary"; }
	.nrm-wi-jacket img, .nrm-wi-noimg { width: 112px; height: 150px; }
	.nrm-wi-zoom { height: 160px; }
	.nrm-ui.nrm-ui .nrm-wi-bgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
	.nrm-ui.nrm-ui .nrm-wi-bgrid.is-single { grid-template-columns: minmax(0, 1fr); }
	.nrm-ui.nrm-ui .nrm-wi-bgrid.is-single .nrm-wi-bcard { flex-direction: row; gap: 16px; }
	.nrm-ui.nrm-ui .nrm-wi-bgrid.is-single .nrm-wi-zoom { width: 260px; flex: 0 0 260px; }
	.nrm-ui.nrm-ui .nrm-wi-bgrid.is-single .nrm-wi-bbody { padding-top: 0; }
	.nrm-wi-jump .nu-long { display: inline; }
	.nrm-wi-jump .nu-short { display: none; }
	.nrm-ui.nrm-ui .nrm-wi-offer { grid-template-columns: minmax(136px, 1.3fr) 108px minmax(0, 1.8fr) 160px 136px; grid-template-areas: "shop price tags checked go"; }
	.nrm-wi-offerhead { display: grid !important; font-size: 12px; color: var(--nu-sub); padding: 8px 0 !important; }
	.nrm-wi-offerhead span:nth-child(2) { text-align: right; }
}
@container (min-width: 900px) {
	.nrm-ui.nrm-ui .nrm-wi-head { grid-template-columns: 136px minmax(0, 1fr) 248px; grid-template-areas: "jacket basic summary" "jacket staff summary"; gap: 6px 24px; grid-template-rows: auto 1fr; }
	.nrm-wi-jacket img, .nrm-wi-noimg { width: 136px; height: 182px; }
	.nrm-ui.nrm-ui .nrm-wi-summary { border-top: 0; border-left: 1px solid var(--nu-line); padding: 0 0 0 20px; align-self: stretch; }
	.nrm-ui.nrm-ui .nrm-wi-facts { gap: 6px; }
	.nrm-ui.nrm-ui .nrm-wi-facts dt { flex-basis: 5em; }
	.nrm-wi-zoom { height: 180px; }
	.nrm-ui.nrm-ui .nrm-wi-bgrid:not(.is-single) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container (max-width: 359px) {
	.nrm-ui.nrm-ui .nrm-wi-bgrid { grid-template-columns: minmax(0, 1fr); }
	.nrm-ui.nrm-ui .nrm-wi-head { grid-template-columns: 80px minmax(0, 1fr); }
	.nrm-wi-jacket img, .nrm-wi-noimg { width: 80px; height: 107px; }
}
@media (max-width: 767px) {
	.nrm-ui select, .nrm-ui .nu-chip, .nrm-ui .nu-btn { min-height: var(--nu-tap); }
	.nrm-ui .nu-shop-md .nu-shop-logo { width: 96px; height: 28px; }
	/* The sticky bar is two rows here (anchors + 対象商品, about 112px): anchors, bonus cards and purchase blocks land below it. */
	.nrm-ui.nrm-ui .nrm-wi-sec, .nrm-ui.nrm-ui .nrm-wi-shop { scroll-margin-top: 124px; }
	.nrm-ui.nrm-ui .nrm-wi-bcard, .nrm-ui.nrm-ui .nrm-wi-route { scroll-margin-top: 132px; }
	.nrm-wi-more summary { min-height: 44px; }
	.nrm-wi-edselect { flex: 1 1 100%; }
	.nrm-wi-edselect select { flex: 1; max-width: none; }
}

/* ---------------- Review link (thin box, never stronger than the review) ---------------- */
.nrm-ui.nrm-rv { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 16px; margin: 16px auto; max-width: 700px; border: 1px solid var(--nu-line); border-left: 3px solid var(--nu-accent); border-radius: var(--nu-r); background: var(--nu-surface); }
.nrm-rv-jacket img, .nrm-rv-noimg { display: block; width: 56px; height: 75px; object-fit: cover; border-radius: var(--nu-r-s); margin: 0; font-size: 10px; }
.nrm-rv-kicker { font-size: 12px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-rv-title { font-size: 15px; font-weight: 800; line-height: 1.4; }
.nrm-rv-meta { font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-rv-go { min-height: 36px; }

/* ---------------- D-058 ---------------- */
.nrm-ui .nu-link-btn { border: 0; background: none; padding: 0; min-height: 44px; color: var(--nu-accent); font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* Price table: one comparison group per condition, its own title and scope note. */
.nrm-ui.nrm-ui .nrm-wi-cmpgroup + .nrm-wi-cmpgroup { margin-top: 16px; }
.nrm-ui.nrm-ui .nrm-wi-cmptitle { font-size: 15px; font-weight: 700; margin: 8px 0 4px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.nrm-wi-cmptitle small { font-size: 13px; font-weight: 400; color: var(--nu-sub); }
.nrm-wi-offer.is-stale .nrm-wi-oprice, .nrm-wi-offer.is-unavailable .nrm-wi-oprice, .nrm-wi-offer.is-stock_unknown .nrm-wi-oprice { font-weight: 600; color: var(--nu-sub); }
.nrm-wi-offer.is-best .nrm-wi-oprice { color: var(--nu-text); }
.nrm-wi-old { color: var(--nu-sub); font-size: 14px; }
.nrm-wi-cprice time, .nrm-wi-ochecked time { font-variant-numeric: tabular-nums; }
.nrm-wi-sumnote { margin-left: 6px; font-size: 12px; color: var(--nu-sub); }
/* Shop-level shared target / condition (said once when every bonus of the shop has the same). */
.nrm-ui.nrm-ui .nrm-wi-shopcommon { display: flex; flex-wrap: wrap; gap: 2px 24px; margin: -4px 0 12px; font-size: 14px; }
.nrm-ui.nrm-ui .nrm-wi-shopcommon > div { display: flex; gap: 8px; }
.nrm-ui.nrm-ui .nrm-wi-shopcommon dt { color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-shopcommon dd { padding: 0; border: 0; }
/* Comparison status inside the existing sticky bar (no extra fixed layer). */
.nrm-ui.nrm-ui .nrm-wi-cmpbar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; }
.nrm-ui.nrm-ui .nrm-wi-cmpbar[hidden] { display: none; }
.nrm-wi-cmpbar .nu-btn { min-height: 40px; padding: 6px 12px; }
.nrm-wi-cmpmsg { flex-basis: 100%; color: var(--nu-warn); font-size: 13px; }
/* Comparison dialog: 3 columns on PC, stacked cards on mobile (same item order). */
.nrm-ui .nrm-wi-cmpdlg { width: min(96vw, 1080px); max-width: min(96vw, 1080px); max-height: 90vh; padding: 0; overflow: auto; }
.nrm-ui.nrm-ui .nrm-wi-cmphead { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--nu-surface); border-bottom: 1px solid var(--nu-line); z-index: 1; }
.nrm-ui.nrm-ui .nrm-wi-cmphead h2 { font-size: 18px; font-weight: 800; }
.nrm-wi-cmphead .nu-btn { width: 44px; min-height: 44px; font-size: 20px; }
.nrm-ui.nrm-ui .nrm-wi-cmphead form { margin-left: auto; }
.nrm-ui.nrm-ui .nrm-wi-cmpnote { padding: 8px 16px 0; font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-cmpgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px; }
.nrm-ui.nrm-ui .nrm-wi-cmpitem { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--nu-line); border-radius: var(--nu-r); }
.nrm-wi-cmpimg { height: 160px; display: flex; align-items: center; justify-content: center; background: var(--nu-bg); border-radius: var(--nu-r); }
.nrm-wi-cmpimg img { max-width: 100%; max-height: 100%; object-fit: contain; margin: 0; }
.nrm-wi-cmpimg.is-none { color: var(--nu-sub); font-size: 13px; }
.nrm-ui.nrm-ui .nrm-wi-cmpshop { font-size: 13px; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-cmpname { font-size: 16px; font-weight: 800; line-height: 1.45; }
.nrm-ui.nrm-ui .nrm-wi-cmpmeta { display: grid; gap: 4px; font-size: 14px; }
.nrm-ui.nrm-ui .nrm-wi-cmpmeta > div { display: flex; gap: 8px; }
.nrm-ui.nrm-ui .nrm-wi-cmpmeta dt { flex: 0 0 3.5em; color: var(--nu-sub); }
.nrm-ui.nrm-ui .nrm-wi-cmpmeta dd { flex: 1 1 auto; min-width: 0; padding: 0; border: 0; }
.nrm-ui.nrm-ui .nrm-wi-cmpout { font-size: 13px; color: var(--nu-warn); }
.nrm-ui.nrm-ui .nrm-wi-cmpact { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 8px; }
.nrm-wi-cmpact .nu-btn { width: 100%; }
@media (min-width: 768px) {
	.nrm-ui.nrm-ui .nrm-wi-cmpgrid[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nrm-ui.nrm-ui .nrm-wi-cmpgrid[data-n="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
