/* Page composition only. Identities, controls, maps and tabs remain shared. */
.system-post { --entity-content-gap: 2rem; }
.system-post .post-tool { min-width:0; scroll-margin-top:calc(var(--shell-header-height) + 1rem); }
.system-post .post-editorial { color:var(--text-secondary); font-size:var(--entity-body-size); line-height:var(--entity-body-line); }
.post-editorial :is(p,ul,figure) { margin:0; }
.post-editorial p + p { margin-top:.75rem; }
.post-editorial ul { padding-left:1.25rem; }
.post-editorial li + li { margin-top:.375rem; }
.post-editorial :is(h2,h3,h4):not(.wb-entity-section__head > h2) { color:var(--text); margin:0; font-weight:650; }
.post-editorial h2:not(.wb-entity-section__head > h2) { font-size:var(--type-section-title-size); line-height:var(--type-section-title-line); }
.post-editorial :is(h3,h4) { font-size:var(--entity-subtitle-size); line-height:1.5; }
.post-editorial a:not(.wb-entity-link):not(.wb-entity-action):not(.wb-source-link) { color:var(--link); }
.post-editorial .wb-entity-link { min-width:0; }
.post-editorial .wb-field { --wb-input-width:100%; }
.post-editorial .wb-input { min-width:0; }
.post-chapter { display:grid; gap:1.25rem; margin-top:2.5rem; scroll-margin-top:calc(var(--shell-header-height) + 1rem); min-width:0; }
.post-note { border-left:2px solid var(--lu4-accent); padding:.75rem 1rem; background:var(--elevated); }
.post-figure { display:grid; gap:.5rem; align-content:start; min-width:0; }
.post-figure > a { display:block; width:fit-content; max-width:100%; }
.post-figure img { display:block; width:auto; max-width:100%; height:auto; max-height:30rem; object-fit:contain; }
.post-figure figcaption { font-size:var(--entity-meta-size); line-height:var(--entity-meta-line); color:var(--text-muted); }
.post-table-scroll { min-width:0; max-width:100%; overflow:auto; }
.post-table { width:100%; border-collapse:collapse; font-size:var(--entity-meta-size); line-height:1.6; font-variant-numeric:tabular-nums; text-align:left; }
.post-table :is(th,td) { padding:.75rem; border-bottom:1px solid var(--border); vertical-align:top; }
.post-table thead { background:var(--elevated); }
.post-table th { font-weight:600; }
.post-table tbody th { color:var(--text); }
.post-reference { border-block-end:1px solid var(--border); min-width:0; }
.post-reference > summary { cursor:pointer; display:flex; align-items:center; gap:.75rem; padding:1rem 0; color:var(--text); }
.post-reference > summary small { font-size:var(--entity-meta-size); color:var(--text-muted); }
.post-reference__body { padding-bottom:1.5rem; min-width:0; }
.stones-intro { display:grid; grid-template-columns:1.4fr 1fr; gap:2rem; }
.stones-how { display:grid; gap:.75rem; padding:1.25rem; background:var(--elevated); }
.stones-quality { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; }
.stones-skills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; }
.stones-skill { display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:.75rem; border-top:1px solid var(--border); padding:1rem 0; }
.stones-skill > div { padding-left:3rem; white-space:pre-line; }
.stones-costs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.stones-costs > section { display:grid; align-content:start; gap:1rem; min-width:0; }
.system-post[data-system-post="post-328"] { max-width:56rem; }
.tattoo-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem 2rem; }
.tattoo-stat header { display:flex; align-items:center; gap:.75rem; margin-bottom:.75rem; }
.tattoo-stat__icon { width:2.5rem; height:2.5rem; border-radius:var(--radius-sm); }
.tattoo-merchants { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.tattoo-merchants > section { display:grid; align-content:start; gap:1rem; min-width:0; }
.tattoo-merchants .post-figure img { max-height:18rem; }
.tattoo-install { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; align-items:start; }
.tattoo-install > div { display:grid; gap:1rem; align-content:start; }
.tattoo-steps { margin:0; padding-left:1.25rem; }
.tattoo-limits th:first-child { width:38%; }
.tattoo-slots th:first-child { width:50%; }
.tattoo-prices td:last-child { text-align:right; white-space:nowrap; }
.tattoo-prices thead th:last-child { text-align:right; }
.post-editorial :is(.tattoo-install > div,.tattoo-merchants > section,.tattoo-recommendations article) p + p { margin-top:0; }
.tattoo-recommendations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 2rem; }
.tattoo-recommendations article { display:grid; gap:.75rem; align-content:start; }
.tattoo-playstyle { display:grid; gap:1rem; margin-top:1rem; }
.exp-check { padding:1.5rem; background:var(--elevated); display:grid; grid-template-columns:1fr 1.3fr; gap:2rem; }
.exp-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-content:start; }
.exp-result { display:grid; gap:.5rem; }
.exp-result > div { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.exp-result strong { color:var(--text); font-variant-numeric:tabular-nums; }
.exp-rules { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin-top:1.5rem; }
.exp-rules > section { display:grid; align-content:start; gap:.75rem; }
.exp-rules .post-note { background:none; padding:0; border:0; }
.exp-party { display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; }
.exp-party > div:first-child { display:grid; gap:1rem; align-content:start; }
/* Shop only: a stable prose/price rail, with room for illustrations and actual
   comparisons. Other article and entity widths remain unchanged. */
.system-post[data-system-post="post-550"] { --shop-reading-width:44rem; max-width:56rem; }
.shop-entry { display:grid; gap:var(--space-3); max-width:var(--shop-reading-width); }
.shop-service { gap:var(--space-3); }
.shop-service > :is(p,ul),.shop-condition { max-width:var(--shop-reading-width); }
/* A grid gap owns prose spacing here; don't also add the article's p + p margin. */
.post-editorial :is(.shop-entry,.shop-service) p + p { margin-top:0; }
.shop-service__copy { display:grid; gap:.75rem; align-content:start; }
.shop-illustrated { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,20rem); gap:var(--space-6); align-items:start; }
.shop-illustrated .post-figure img { max-height:28rem; }
.shop-service--autoloot .post-figure img { max-height:none; }
.shop-subsection { display:grid; gap:.75rem; min-width:0; }
.shop-service > .shop-subsection + .shop-subsection { margin-top:.5rem; }
.shop-products { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,32rem),1fr)); gap:0 2rem; max-width:var(--shop-reading-width); }
.shop-product { container:shop-product / inline-size; padding:.75rem 0; border-bottom:1px solid var(--border); min-width:0; }
.shop-product__content { display:grid; grid-template-columns:minmax(0,1fr) max-content; gap:.25rem 1rem; align-items:center; }
.shop-product__identity { min-width:0; }
.shop-price { font-size:var(--entity-meta-size); line-height:var(--entity-meta-line); }
.shop-cost { display:inline-block; white-space:nowrap; font-variant-numeric:tabular-nums; }
.shop-plans { border-collapse:collapse; width:100%; max-width:var(--shop-reading-width); text-align:left; }
.shop-plans :is(th,td) { padding:.75rem 0; border-bottom:1px solid var(--border); }
.shop-plans th { font-weight:400; }
.shop-plans thead { color:var(--text-muted); font-size:var(--entity-meta-size); }
.shop-plans tbody th { color:var(--text); padding-inline-end:1rem; }
.shop-plans td { width:1%; white-space:nowrap; font-size:var(--entity-meta-size); }
/* Below 30rem of actual row width, a bilingual product and a cost no longer
   fit comfortably side by side. Align the cost with its name, not its icon. */
@container shop-product (max-width:30rem) {
  .shop-product__content { grid-template-columns:minmax(0,1fr); }
  .shop-product--entity .shop-product__content { grid-template-columns:var(--wb-entity-icon-size,2.5rem) minmax(0,1fr); column-gap:var(--wb-entity-gap,.75rem); }
  .shop-product--entity .shop-product__identity { grid-column:1 / -1; }
  .shop-product--entity .shop-price { grid-column:2; }
}
.shop-exchange { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.shop-exchange section { display:grid; gap:1rem; align-content:start; }
.shop-exchange ul { display:grid; gap:.5rem; list-style:none; padding:0; }
.shop-exchange li + li { margin-top:0; }
.shop-service--autoloot .shop-products { grid-template-columns:1fr; }
.shop-autoloot-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.enchant-controls { display:grid; gap:var(--space-2); min-width:0; }
.enchant-choice { display:grid; gap:var(--space-2); min-width:0; max-width:100%; }
#enchant-tools { display:grid; gap:var(--space-5); }
#enchant-hp { min-width:0; }
#enchant-result { margin-top:1.5rem; padding-top:0; border-top:0; }
.post-control-label { color:var(--text-muted); font-size:var(--entity-meta-size); }
.enchant-armor { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.enchant-armor > section { border-left:2px solid var(--border-strong); padding-left:1rem; }
.enchant-armor h3 { margin-bottom:1rem; }
.enchant-armor p { white-space:pre-line; }
.enchant-hp-table { min-width:44rem; text-align:right; }
.enchant-hp-table th:first-child { text-align:left; min-width:10rem; }
.premium-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem 2rem; }
.premium-benefits article { display:grid; align-content:start; gap:.5rem; padding:1rem 0; border-top:1px solid var(--border); }
.premium-benefits h2 { font-size:var(--entity-body-size); line-height:1.5; }
.premium-benefits strong { color:var(--link); font-size:var(--type-section-title-size); line-height:1.5; }
.premium-benefits p { font-size:var(--entity-meta-size); line-height:var(--entity-meta-line); }
.premium-prices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 2rem; }
.premium-prices > div { display:grid; align-content:start; gap:.75rem; padding:1rem 0; border-bottom:1px solid var(--border); }
.premium-prices strong { color:var(--text); }
.premium-calculation { display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; }
.premium-calculation > div:first-child { display:grid; gap:.75rem; }
.premium-weighting { padding:1.5rem; background:var(--elevated); display:grid; align-content:start; gap:1rem; }
.premium-weighting input { width:100%; accent-color:var(--lu4-accent); }
.premium-weighting output { display:grid; gap:.25rem; }
.premium-weighting output strong { color:var(--text); font-size:var(--type-page-title-size); line-height:1.3; }
.premium-formula { font-size:var(--entity-meta-size); }
@media (max-width:959px) {
  .stones-quality,.premium-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tattoo-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-illustrated,.exp-check,.exp-party,.premium-calculation,.tattoo-install,.tattoo-merchants { grid-template-columns:1fr; }
}
@media (max-width:639px) {
  .system-post.wb-entity-detail { width:calc(100% - 2rem); }
  .stones-intro,.stones-costs,.stones-skills,.tattoo-recommendations,.exp-rules,.shop-entry,.shop-products,.shop-exchange,.shop-autoloot-comparison,.enchant-armor { grid-template-columns:1fr; }
  .stones-quality { grid-template-columns:1fr; gap:1rem; }
  .tattoo-stats { grid-template-columns:1fr; }
  .premium-benefits { gap:1rem; }
  .premium-prices { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1rem; }
  .exp-check,.premium-weighting { padding:1rem; }
  .exp-inputs { gap:.75rem; }
  .exp-result > div { font-size:var(--entity-meta-size); }
  .enchant-armor { gap:1.5rem; }
  .enchant-controls { gap:1rem; }
  .post-table :is(th,td) { padding:.625rem .5rem; }
  .post-chapter { margin-top:2rem; }
}
