/* Standalone layout review styles, scoped to shortcode only. Defend against JIN h2 overrides. */
#cbp-design-root { --cbp-blue:#2754b5;--cbp-ink:#1e3047;--cbp-muted:#627288;--cbp-line:#dfe7f1; color:var(--cbp-ink); max-width:780px; font-size:15px; line-height:1.75; margin:8px auto 40px; overflow-wrap:anywhere; }
#cbp-design-root, #cbp-design-root * { box-sizing:border-box; }
#cbp-design-root a { text-decoration:none; }
#cbp-design-root .cbp-kicker { font-weight:750; font-size:12px; color:#49668e; letter-spacing:.025em; margin-bottom:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#cbp-design-root .cbp-kicker span { padding:3px 8px; color:#5c6a7c; background:#eff3fa; border-radius:5px; font-size:11px; }
#cbp-design-root .cbp-answer { border:1px solid #cbdcf4; border-radius:12px; padding:16px 18px; background:#f6f9ff; margin-bottom:13px; }
#cbp-design-root .cbp-answer-head { display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px; }
#cbp-design-root .cbp-count { font-size:12px; background:#e4edff; color:#2956a6; padding:4px 10px; border-radius:30px; font-weight:700; }
/* Force readable text and light background even if JIN has important heading decorations. */
#cbp-design-root h2.cbp-heading, #cbp-design-root h3.cbp-subheading { color:#203a63 !important; background:#edf3fc !important; background-image:none !important; -webkit-text-fill-color:#203a63 !important; border:0 !important; border-left:4px solid #4273c8 !important; border-radius:4px !important; box-shadow:none !important; padding:9px 12px !important; margin:0 0 11px !important; text-align:left !important; line-height:1.45 !important; letter-spacing:0 !important; width:auto !important; text-shadow:none !important; position:relative !important; }
#cbp-design-root h2.cbp-heading:before,#cbp-design-root h2.cbp-heading:after,#cbp-design-root h3.cbp-subheading:before,#cbp-design-root h3.cbp-subheading:after{ content:none!important;display:none!important; border:0!important; }
#cbp-design-root h2.cbp-heading {font-size:19px!important;font-weight:800!important;}
#cbp-design-root h3.cbp-subheading {font-size:17px!important;font-weight:800!important;padding:6px 11px!important;margin:0!important; border-left:0!important;background:none!important;}
#cbp-design-root .cbp-answer h2.cbp-heading {border:0!important; background:none!important; padding:0!important; margin:0!important; font-size:19px!important;}
#cbp-design-root .cbp-summary { margin:6px 0 10px!important; font-size:14px; line-height:1.7; }
#cbp-design-root .cbp-quick-list {display:grid;gap:1px;background:#dde6f4;border:1px solid #dde6f4;border-radius:9px;overflow:hidden;}
#cbp-design-root .cbp-quick-row {display:grid;grid-template-columns:115px minmax(0,1fr) 16px;gap:11px;align-items:center;padding:10px 12px;min-height:44px;background:#fff!important;color:#233756!important;}
#cbp-design-root .cbp-quick-row:hover {background:#f1f5ff!important;}
#cbp-design-root .cbp-quick-store {font-size:13px;font-weight:850;color:#2b549b;}
#cbp-design-root .cbp-quick-bonus {font-size:14px;font-weight:750;line-height:1.4;}
#cbp-design-root .cbp-quick-arrow {font-weight:900;color:#4069b2;font-size:22px;text-align:right;}
#cbp-design-root .cbp-availability {margin:9px 0 0!important;font-size:12px;color:#5d6980;line-height:1.6;}
#cbp-design-root .cbp-meta {display:flex;flex-wrap:wrap;gap:7px;margin-bottom:21px;}
#cbp-design-root .cbp-meta span {background:#f4f7fb;border:1px solid #e5ebf5;color:#465a75;padding:4px 10px;border-radius:6px;font-size:12px;}
#cbp-design-root .cbp-store-section > h2 {margin-bottom:12px!important;}
#cbp-design-root .cbp-list {display:grid;gap:12px;}
#cbp-design-root .cbp-card {border:1px solid var(--cbp-line);border-radius:12px;box-shadow:0 2px 9px rgba(22,48,88,.035);background:#fff; padding:15px 17px; scroll-margin-top:30px; }
#cbp-design-root .cbp-card-head {display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #edf0f5;padding-bottom:8px;margin-bottom:10px;}
#cbp-design-root .cbp-kind {font-size:11px;font-weight:700;background:#eef3ff;color:#335ab0;padding:3px 8px;border-radius:5px;white-space:nowrap;}
#cbp-design-root .cbp-field-label {font-size:11px;color:#718096;font-weight:700;line-height:1.5;}
#cbp-design-root .cbp-bonus-name {font-size:18px!important;line-height:1.5!important;font-weight:850!important;color:#1e3354!important;margin:3px 0 9px!important;}
#cbp-design-root .cbp-bonus-entry.cbp-divider {padding-top:14px;margin-top:14px;border-top:1px dashed #d7e0eb;}
#cbp-design-root .cbp-edition {font-size:12px;line-height:1.6;background:#f7f8fc;border-radius:5px;padding:7px 9px;margin:0 0 7px!important;}
#cbp-design-root .cbp-edition small {display:inline;color:#677487;}
#cbp-design-root .cbp-qualify {font-size:12px;color:#795a32;margin:4px 0!important;}
#cbp-design-root .cbp-links {display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
#cbp-design-root .cbp-links a {display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:750;border-radius:7px;padding:8px 12px;min-height:40px;line-height:1.45;max-width:100%;}
#cbp-design-root a.cbp-primary {background:#2f56b5!important;color:#fff!important;border:1px solid #2f56b5!important;}
#cbp-design-root a.cbp-secondary {background:white!important;color:#2e58a8!important;border:1px solid #b6c8e9!important;}
#cbp-design-root .cbp-checkdate {font-size:11px;color:#718096;margin:8px 0 0!important;}
#cbp-design-root .cbp-info-panel,#cbp-design-root .cbp-tips {margin-top:23px;border:1px solid #e4eaf2;background:#fafcff;border-radius:10px;padding:16px 17px;}
#cbp-design-root .cbp-info-panel p,#cbp-design-root .cbp-tips p {margin:7px 0 0!important;font-size:13px;color:#4e607b;line-height:1.8;}
#cbp-design-root .cbp-edition-pills {display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
#cbp-design-root .cbp-edition-pills span {background:white;border:1px solid #dce4f0;border-radius:5px;padding:5px 9px;font-size:12px;}
#cbp-design-root .cbp-campaign {background:#fffcf4;border-color:#f1e3c4;}
#cbp-design-root .cbp-event {border-top:1px solid #e9dfcc;padding:10px 0;font-size:13px;}
#cbp-design-root .cbp-event a {color:#2d54b5;text-decoration:underline;}
#cbp-design-root .cbp-disclaimer {font-size:11px;color:#788398;border-top:1px solid #e7ebf2;padding-top:10px;margin:22px 0 0!important;line-height:1.7;}
/* Avoid a second, large auto-generated theme table of contents on design-only drafts. */
body.cbm-design-review #toc_container,body.cbm-design-review .toc_container,body.cbm-design-review .toc,body.cbm-design-review .ez-toc-container,body.cbm-design-review .jin-toc,body.cbm-design-review #jin-toc {display:none!important;}
@media(max-width:600px){
 #cbp-design-root {font-size:14px;margin:0 0 30px;}
 #cbp-design-root .cbp-answer {padding:12px;}
 #cbp-design-root .cbp-quick-row {grid-template-columns:75px minmax(0,1fr) 12px;gap:7px;padding:9px 10px;}
 #cbp-design-root .cbp-quick-store{font-size:12px;}
 #cbp-design-root .cbp-quick-bonus{font-size:13px;}
 #cbp-design-root h2.cbp-heading{font-size:17px!important;}
 #cbp-design-root .cbp-card{padding:13px;}
 #cbp-design-root .cbp-bonus-name{font-size:16px!important;}
 #cbp-design-root .cbp-links a {width:100%;}
 #cbp-design-root .cbp-info-panel,#cbp-design-root .cbp-tips {padding:13px;}
}

/* Larger single book-cover presentation: the JIN feature-image is still set for
   archives/OGP, but not duplicated before the book-info block on draft pages.
   A reserved portrait slot avoids layout jumps on phones. */
/* ISBN-checked book cover on private draft; preserve book aspect ratio. */
.cbm-design-review #cbp-design-root .cbp-cover-hero{display:flex;gap:20px;align-items:center;background:#f7f9fc;border:1px solid #dce6f3;border-radius:12px;padding:16px 18px;margin:2px 0 14px;min-width:0}
.cbm-design-review #cbp-design-root .cbp-cover-image{flex:0 0 172px;width:172px;max-width:40%;min-width:0}
.cbm-design-review #cbp-design-root .cbp-cover-image img{display:block;width:100%;height:auto;max-height:260px;aspect-ratio:2/3;object-fit:contain;object-position:center;border-radius:3px;background:white}
.cbm-design-review #cbp-design-root .cbp-cover-caption{display:flex;flex-direction:column;gap:7px;min-width:0;overflow-wrap:anywhere;font-size:13px;color:#3b5374;line-height:1.6}
.cbm-design-review #cbp-design-root .cbp-cover-caption strong{font-size:19px;line-height:1.45;color:#263e63}
.cbm-design-review #cbp-design-root .cbp-cover-caption a{color:#2856a7;font-size:12px;text-decoration:underline;text-underline-offset:2px}
/* JIN often applies large paragraph spacing. Keep secondary information compact. */
.cbm-design-review #cbp-design-root .cbp-tips p + p,
.cbm-design-review #cbp-design-root .cbp-info-panel p + p{margin-top:8px!important}
.cbm-design-review #cbp-design-root .cbp-tips,
.cbm-design-review #cbp-design-root .cbp-info-panel{padding-top:13px;padding-bottom:13px}
@media(max-width:600px){
 .cbm-design-review #cbp-design-root .cbp-cover-hero{gap:12px;padding:12px;align-items:center;margin-bottom:12px}
 .cbm-design-review #cbp-design-root .cbp-cover-image{flex:0 0 126px;width:126px;max-width:44%}
 .cbm-design-review #cbp-design-root .cbp-cover-image img{max-height:198px}
 .cbm-design-review #cbp-design-root .cbp-cover-caption{font-size:12px;gap:5px;line-height:1.5}
 .cbm-design-review #cbp-design-root .cbp-cover-caption strong{font-size:15px}
 .cbm-design-review #cbp-design-root .cbp-cover-caption a{font-size:11px}
}
@media(max-width:360px){
 .cbm-design-review #cbp-design-root .cbp-cover-image{flex-basis:112px;width:112px}
 .cbm-design-review #cbp-design-root .cbp-cover-image img{max-height:180px}
}

/* Classic JIN inserts the same featured cover before the article body.
   On design-only drafts, retain the book-info cover and suppress just the large
   theme hero. WordPress _thumbnail_id stays intact for lists and OGP. */
body.cbm-design-review .cps-post .cps-post-thumb {display:none!important;}


/* v0.1.17: Mobile-friendly comparison. Never split the bonus into narrow grid columns.
   JIN applies broad link/span rules: use our dedicated copy wrapper and explicit flex sizing. */
#cbp-design-root .cbp-quick-list { display:block!important; border:1px solid #dce5f3!important; border-radius:9px!important; background:#fff!important; overflow:hidden; }
#cbp-design-root a.cbp-quick-row,
#cbp-design-root .cbp-quick-row {
  display:flex!important; flex-direction:row!important; align-items:center!important;
  justify-content:space-between!important; gap:10px!important;
  width:100%!important; max-width:100%!important; height:auto!important;
  min-height:0!important; padding:11px 13px!important; margin:0!important;
  border:0!important; border-bottom:1px solid #e4ebf5!important;
  text-align:left!important; float:none!important; white-space:normal!important;
  background:#fff!important; box-shadow:none!important;
}
#cbp-design-root a.cbp-quick-row:last-child {border-bottom:0!important}
#cbp-design-root .cbp-quick-copy {display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0!important;width:auto!important;flex:1 1 0!important; margin:0!important; padding:0!important;}
#cbp-design-root .cbp-quick-store {display:block!important;margin:0!important;padding:0!important;width:auto!important;font-size:12px!important;line-height:1.45!important;text-align:left!important;}
#cbp-design-root .cbp-quick-bonus {display:block!important;margin:0!important;padding:0!important;width:auto!important;max-width:100%!important;font-size:14px!important;line-height:1.5!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:left!important;}
#cbp-design-root .cbp-quick-more {display:inline-block!important;margin:0 0 0 8px!important;padding:2px 6px!important;font-size:11px!important;font-weight:650!important;color:#475c7e!important;background:#edf2fb!important;border-radius:5px!important;vertical-align:middle!important;}
#cbp-design-root .cbp-quick-arrow {display:block!important; flex:0 0 18px!important;align-self:center!important;font-size:22px!important;line-height:1!important;text-align:right!important;}
/* Tame theme-generated paragraph margins in stacked multi-bonus cards. */
#cbp-design-root .cbp-card{min-width:0!important;min-height:0!important;height:auto!important;}
#cbp-design-root .cbp-bonus-entry{min-width:0!important;min-height:0!important;height:auto!important;}
#cbp-design-root .cbp-bonus-entry p {margin-top:0!important;margin-bottom:0!important;}
#cbp-design-root .cbp-bonus-entry .cbp-bonus-name {margin:3px 0 9px!important;}
#cbp-design-root .cbp-bonus-entry .cbp-edition {margin:0 0 7px!important;}
#cbp-design-root .cbp-bonus-entry .cbp-qualify {margin:4px 0 8px!important;}
#cbp-design-root .cbp-bonus-entry .cbp-checkdate {margin:7px 0 0!important;}
#cbp-design-root .cbp-bonus-entry.cbp-divider {margin-top:12px!important;padding-top:12px!important;}
#cbp-design-root .cbp-links {margin:10px 0 0!important;}
/* Campaigns: short, meaningful synopsis above; full captured excerpt only when expanded. */
#cbp-design-root .cbp-event {padding:10px 0!important;line-height:1.65!important;overflow-wrap:break-word!important;}
#cbp-design-root .cbp-event-title {display:block!important;font-size:14px!important;line-height:1.55!important;color:#283954!important;margin:0 0 7px!important;}
#cbp-design-root .cbp-event-note {font-size:12px!important;line-height:1.65!important;margin:0 0 9px!important;color:#54657b!important;}
#cbp-design-root .cbp-event-details {margin:0 0 10px!important;padding:7px 9px!important;border:1px solid #ece3cd!important;background:#fff!important;border-radius:6px!important;}
#cbp-design-root .cbp-event-details summary {cursor:pointer!important;font-size:12px!important;color:#2e547e!important;font-weight:750!important;}
#cbp-design-root .cbp-event-details p {font-size:12px!important;line-height:1.65!important;margin:7px 0 0!important;color:#526176!important;overflow-wrap:break-word!important;}
#cbp-design-root a.cbp-event-link {display:inline-block!important;font-size:13px!important;margin-top:3px!important;}
@media(max-width:600px){
 #cbp-design-root a.cbp-quick-row {padding:9px 11px!important;}
 #cbp-design-root .cbp-quick-bonus {font-size:13px!important;}
 #cbp-design-root .cbp-card {padding:12px!important;}
 #cbp-design-root .cbp-info-panel {margin-top:14px!important;}
}
/* JIN's fixed 'back to top' badge obscures full-width store links on narrow draft previews.
   Only hide it for private design-review screens, never site-wide. */
@media(max-width:600px){body.cbm-design-review #page-top {display:none!important;}}


/* v0.1.18 — compact answer-first navigation in JIN (mobile + desktop).
   Plain block flow is intentional: theme display/flex/grid rules previously
   stretched store and bonus labels into tall, widely separated rows. */
#cbp-design-root .cbp-answer {padding:12px 14px!important; margin:0 0 14px!important;}
#cbp-design-root .cbp-answer-head {margin:0 0 5px!important;}
#cbp-design-root .cbp-summary {margin:2px 0 9px!important;line-height:1.55!important;}
#cbp-design-root .cbp-quick-list {display:block!important;}
#cbp-design-root a.cbp-quick-row,
#cbp-design-root .cbp-quick-row {
  display:block!important;position:relative!important;float:none!important;
  min-height:0!important;height:auto!important;max-height:none!important;
  margin:0!important;padding:10px 40px 10px 13px!important;
  line-height:1.45!important;white-space:normal!important;
  background:#fff!important;text-align:left!important;
  border:0!important;border-bottom:1px solid #e4ebf5!important;
}
#cbp-design-root a.cbp-quick-row:last-child {border-bottom:0!important;}
#cbp-design-root .cbp-quick-copy {
  display:block!important;position:static!important;height:auto!important;
  min-height:0!important;max-height:none!important;width:100%!important;
  margin:0!important;padding:0!important;line-height:1.45!important;
}
#cbp-design-root .cbp-quick-store,
#cbp-design-root .cbp-quick-bonus {
  display:block!important;position:static!important;float:none!important;
  min-height:0!important;max-height:none!important;height:auto!important;
  margin:0!important;padding:0!important;text-align:left!important;
  white-space:normal!important;
}
#cbp-design-root .cbp-quick-store{font-size:12px!important;line-height:1.3!important;margin-bottom:3px!important;}
#cbp-design-root .cbp-quick-bonus{font-size:14px!important;line-height:1.45!important;}
#cbp-design-root .cbp-quick-arrow{
  position:absolute!important;display:block!important;width:18px!important;height:auto!important;
  top:50%!important;right:12px!important;transform:translateY(-50%)!important;
  line-height:1!important;float:none!important;margin:0!important;
}
#cbp-design-root .cbp-availability {margin:7px 0 0!important;font-size:11px!important;line-height:1.5!important;}
#cbp-design-root .cbp-card {display:block!important;}
#cbp-design-root .cbp-bonus-entry {display:block!important;}
#cbp-design-root .cbp-links {display:flex!important;gap:6px!important;margin:8px 0 0!important;}
#cbp-design-root .cbp-links a {margin:0!important;}
#cbp-design-root .cbp-event {padding:9px 0!important;}
#cbp-design-root .cbp-event-title {margin-bottom:4px!important;}
#cbp-design-root .cbp-event-note {margin:0 0 6px!important;}
#cbp-design-root .cbp-event-details {margin-bottom:7px!important;}
#cbp-design-root .cbp-info-panel,#cbp-design-root .cbp-tips{margin-top:14px!important;}
@media(max-width:600px){
  #cbp-design-root .cbp-answer {padding:11px!important;}
  #cbp-design-root a.cbp-quick-row,#cbp-design-root .cbp-quick-row {padding:9px 36px 9px 11px!important;}
  #cbp-design-root .cbp-quick-bonus {font-size:13px!important;}
  #cbp-design-root .cbp-quick-arrow {right:10px!important;}
  #cbp-design-root .cbp-card{padding:12px!important;}
}

/* v0.1.19: Avoid JIN's large height/line-spacing on the linked early-access rows.
   Text and anchors now live in separate elements; the only anchor is a small
   explicit "詳細へ" link, so the summary never inherits theme link-card layout.
   No fixed heights: all lines remain readable, including long titles. */
#cbp-design-root .cbp-glance-list{
  display:block!important; margin:0!important; padding:0!important;
  border:1px solid #dbe5f3!important; border-radius:9px!important;
  background:#fff!important; overflow:hidden!important;
  box-shadow:none!important; list-style:none!important;
}
#cbp-design-root .cbp-glance-item{
  display:grid!important; grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important; column-gap:12px!important;
  height:auto!important; min-height:0!important; max-height:none!important;
  padding:11px 12px!important; margin:0!important;
  border:0!important; border-bottom:1px solid #e4ebf4!important;
  background:#fff!important; float:none!important;
  line-height:1.45!important; text-align:left!important;
}
#cbp-design-root .cbp-glance-item:last-child{border-bottom:0!important;}
#cbp-design-root .cbp-glance-info{
  display:block!important; min-width:0!important; height:auto!important;
  min-height:0!important; max-height:none!important;
  padding:0!important; margin:0!important; white-space:normal!important;
}
#cbp-design-root .cbp-glance-store{
  display:block!important; height:auto!important; line-height:1.4!important;
  margin:0 0 3px!important; padding:0!important;
  color:#2b549b!important; font-weight:800!important; font-size:12px!important;
}
#cbp-design-root .cbp-glance-bonus{
  display:block!important; height:auto!important; line-height:1.45!important;
  margin:0!important; padding:0!important; white-space:normal!important;
  overflow-wrap:anywhere!important; color:#223852!important;
  font-weight:750!important; font-size:14px!important;
}
#cbp-design-root .cbp-glance-more{
  display:inline-block!important; padding:2px 6px!important; margin:0 0 0 8px!important;
  font-size:11px!important; line-height:1.5!important; color:#485d80!important;
  background:#edf2fb!important; border-radius:5px!important; vertical-align:middle!important;
}
#cbp-design-root a.cbp-glance-action{
  display:inline-flex!important; flex-direction:row!important; align-items:center!important;
  justify-content:center!important; gap:2px!important; flex:none!important;
  width:auto!important; height:auto!important; min-height:40px!important;
  padding:6px 10px!important; margin:0!important; float:none!important;
  border:1px solid #cbd9ef!important; border-radius:7px!important;
  box-shadow:none!important; text-decoration:none!important;
  background:#f6f9ff!important; color:#31599d!important;
  font-size:12px!important; font-weight:750!important; line-height:1.2!important;
  white-space:nowrap!important; text-align:center!important;
}
#cbp-design-root .cbp-summary{margin:2px 0 10px!important;padding:0!important;}
@media(max-width:600px){
  #cbp-design-root .cbp-glance-item{padding:10px!important;column-gap:8px!important;}
  #cbp-design-root .cbp-glance-bonus{font-size:13px!important;}
  #cbp-design-root a.cbp-glance-action{font-size:11px!important; padding:5px 8px!important;}
}

/* v0.1.20 — Gamers specific bonus-image review. Compact and independent from JIN link cards. */
#cbp-design-root .cbp-bonus-visual{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;min-height:0!important;max-height:none!important;margin:8px 0 12px!important;padding:10px!important;background:#f8fafc!important;border:1px solid #e2eaf4!important;border-radius:8px!important;box-shadow:none!important;}
#cbp-design-root .cbp-bonus-visual img{display:block!important;flex:none!important;width:auto!important;height:auto!important;max-width:min(100%,180px)!important;max-height:220px!important;object-fit:contain!important;object-position:left top!important;margin:0!important;padding:0!important;border:0!important;border-radius:4px!important;background:#fff;}
#cbp-design-root .cbp-bonus-visual figcaption{display:block!important;font-size:11px!important;color:#62748c!important;line-height:1.5!important;margin:0!important;padding:0!important;}
#cbp-design-root .cbp-bonus-fair{background:#fffcf6!important;border-color:#ece3d4!important;}
@media(max-width:600px){
 #cbp-design-root .cbp-bonus-visual{padding:8px!important;margin:7px 0 10px!important;}
 #cbp-design-root .cbp-bonus-visual img{max-height:190px!important;max-width:min(100%,155px)!important;}
}


/* v0.1.21: Make the image preview hug its content instead of leaving a
   full-width empty blue rectangle. Keep cover/bonus proportions and let
   visitors open the original hosted image without a JavaScript lightbox. */
#cbp-design-root figure.cbp-bonus-visual{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  width:max-content!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:8px 0 12px!important;
  padding:8px!important;
  vertical-align:top!important;
}
#cbp-design-root figure.cbp-bonus-visual a.cbp-bonus-image-link{
  display:block!important;
  flex:none!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  line-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
#cbp-design-root figure.cbp-bonus-visual a.cbp-bonus-image-link img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(100%,240px)!important;
  max-height:295px!important;
  object-fit:contain!important;
  object-position:left top!important;
  border-radius:3px!important;
  margin:0!important;
}
#cbp-design-root figure.cbp-bonus-visual figcaption{
  max-width:240px!important;
  margin:5px 0 0!important;
  padding:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
#cbp-design-root figure.cbp-bonus-visual .cbp-bonus-image-zoom{
  color:#31599d!important;
  white-space:nowrap!important;
  font-weight:700!important;
}
/* Avoid tall empty cards caused by theme-level content spacing. */
#cbp-design-root .cbp-bonus-entry{
  display:flow-root!important;
  height:auto!important;
  min-height:0!important;
  padding-bottom:0!important;
}
#cbp-design-root .cbp-bonus-entry .cbp-links{clear:both!important;margin-top:8px!important;}
@media(max-width:600px){
  #cbp-design-root figure.cbp-bonus-visual{margin:7px 0 10px!important;padding:7px!important;}
  #cbp-design-root figure.cbp-bonus-visual a.cbp-bonus-image-link img{
    max-width:min(100%,205px)!important;
    max-height:255px!important;
  }
  #cbp-design-root figure.cbp-bonus-visual figcaption{max-width:205px!important;}
}

/* v0.1.22: avoid theme-level min-heights and padding under bonus image links */
#cbp-design-root .cbp-list > .cbp-card {
  min-height:0!important;height:auto!important;max-height:none!important;
  align-self:stretch!important;padding-bottom:13px!important;
}
#cbp-design-root .cbp-bonus-entry .cbp-links{margin-top:6px!important;margin-bottom:0!important;}
#cbp-design-root .cbp-bonus-entry .cbp-checkdate{margin-bottom:0!important;}
#cbp-design-root .cbp-bonus-entry figure.cbp-bonus-visual{margin-bottom:8px!important;}
@media(max-width:600px){
  #cbp-design-root .cbp-list > .cbp-card{padding-bottom:12px!important;}
}


/* v0.1.23: JIN may decorate <section> elements with bottom-space or
   clearfix pseudo-elements. Store cards are now plain div containers.
   Scope these resets to the shortcode; other posts/theme remain untouched. */
#cbp-design-root .cbp-store-section > .cbp-list {
  display:flex!important; flex-direction:column!important; align-items:stretch!important;
  gap:12px!important; margin:0!important; padding:0!important;
}
#cbp-design-root .cbp-store-section .cbp-list > div.cbp-card {
  display:block!important; flex:0 0 auto!important; position:relative!important;
  height:auto!important; min-height:0!important; max-height:none!important;
  margin:0!important; padding:14px 16px 12px!important;
  overflow:visible!important; float:none!important;
}
#cbp-design-root .cbp-store-section .cbp-list > div.cbp-card::before,
#cbp-design-root .cbp-store-section .cbp-list > div.cbp-card::after,
#cbp-design-root .cbp-bonus-entry::before,
#cbp-design-root .cbp-bonus-entry::after {
  content:none!important; display:none!important;
}
#cbp-design-root .cbp-card > .cbp-bonus-entry:last-child {
  display:block!important; height:auto!important; min-height:0!important;
  padding-bottom:0!important; margin-bottom:0!important; clear:none!important;
}
#cbp-design-root .cbp-bonus-entry > p.cbp-checkdate {
  display:block!important; height:auto!important;
  padding:0!important; margin:6px 0 0!important; line-height:1.55!important;
}
#cbp-design-root .cbp-bonus-entry .cbp-links {padding:0!important;}
@media(max-width:600px) {
  #cbp-design-root .cbp-store-section .cbp-list > div.cbp-card {
    padding:12px 12px 11px!important;
  }
}

/* v0.1.24: Fix flex cross-axis shrink from legacy .cbp-list > .cbp-card
   {align-self:start}.  Restore full column width without returning to theme
   section styles. Keep v0.1.23 bottom padding adjustments intact. */
#cbp-design-root .cbp-store-section,
#cbp-design-root .cbp-store-section > .cbp-list {
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
#cbp-design-root .cbp-store-section .cbp-list > div.cbp-card {
  align-self:stretch!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* v0.1.25: single consistent layout for review drafts: never constrain the card to content width.
   Earlier layouts mixed Grid, Flex and align-self:start on the same element. */
body.cbm-design-review #cbp-design-root section.cbp-store-section,
body.cbm-design-review #cbp-design-root section.cbp-store-section > div.cbp-list {
  display:block!important; width:100%!important; max-width:none!important; min-width:0!important;
  float:none!important; clear:both!important; box-sizing:border-box!important;
  margin-left:0!important; margin-right:0!important;
}
body.cbm-design-review #cbp-design-root section.cbp-store-section > div.cbp-list > div.cbp-card {
  display:block!important; width:100%!important; max-width:none!important; min-width:0!important;
  height:auto!important; min-height:0!important; max-height:none!important;
  float:none!important; clear:both!important; align-self:stretch!important;
  box-sizing:border-box!important; margin:0 0 12px!important;
}
body.cbm-design-review #cbp-design-root .cbp-card > .cbp-bonus-entry {
  display:block!important; min-height:0!important; height:auto!important; max-height:none!important;
  margin-bottom:0!important; padding-bottom:0!important;
}
body.cbm-design-review #cbp-design-root .cbp-card > .cbp-bonus-entry:last-child > :last-child {
  margin-bottom:0!important;
}


/* v0.1.26: Card-only cleanup for paragraph/line-break nodes WordPress may
   introduce while filtering generated post HTML. Do not alter real text, image,
   campaign or other site markup. */
body.cbm-design-review #cbp-design-root .cbp-list > div.cbp-card > p:empty,
body.cbm-design-review #cbp-design-root .cbp-list > div.cbp-card > p:has(> br:only-child),
body.cbm-design-review #cbp-design-root .cbp-list > div.cbp-card > br,
body.cbm-design-review #cbp-design-root .cbp-list > div.cbp-card > .cbp-bonus-entry ~ p:empty,
body.cbm-design-review #cbp-design-root .cbp-list > div.cbp-card > .cbp-bonus-entry ~ p:has(> br:only-child) {
  display:none!important; height:0!important; min-height:0!important;
  margin:0!important; padding:0!important; line-height:0!important;
}
body.cbm-design-review #cbp-design-root .cbp-card > .cbp-bonus-entry:last-of-type {
  margin-bottom:0!important; padding-bottom:0!important;
}


/* v0.1.27: Live diagnostic proved that JIN/WordPress inserts a trailing
   unclassed <p> *inside* .cbp-bonus-entry. It has zero content but 32px of
   padding-bottom. The v0.1.26 selector only covered direct children of the
   outer card, so it could not reach this node. The plugin itself generates
   only classed <p> elements inside bonus entries; unclassed trailing p nodes
   here are therefore generated spacing wrappers, not bonus content. */
body.cbm-design-review #cbp-design-root .cbp-card > .cbp-bonus-entry > p:not([class]):last-child {
  display:none!important;
  height:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  line-height:0!important;
}
/* Likewise suppress WordPress auto-paragraphs preceding nested cards or
   appended to a campaign, without touching legitimate descriptions. */
body.cbm-design-review #cbp-design-root .cbp-bonus-entry > p:not([class]):empty,
body.cbm-design-review #cbp-design-root .cbp-bonus-entry > p:not([class]):has(> br:only-child) {
  display:none!important; padding:0!important; margin:0!important;
  height:0!important; min-height:0!important; line-height:0!important;
}


/* v0.1.28: JIN adds bottom padding to regular <p> elements even when their
   margins are reset. The live screenshots show the gap after the edition
   clarification, campaign notes and tips prose. Do not reset all <p> padding:
   edition badges deliberately use padding for their background. */
body.cbm-design-review #cbp-design-root .cbp-bonus-entry > p.cbp-bonus-name,
body.cbm-design-review #cbp-design-root .cbp-bonus-entry > p.cbp-qualify,
body.cbm-design-review #cbp-design-root .cbp-bonus-entry > p.cbp-checkdate,
body.cbm-design-review #cbp-design-root .cbp-event > p.cbp-event-note,
body.cbm-design-review #cbp-design-root .cbp-event-details > p,
body.cbm-design-review #cbp-design-root .cbp-tips > p,
body.cbm-design-review #cbp-design-root .cbp-info-panel > p,
body.cbm-design-review #cbp-design-root p.cbp-disclaimer,
body.cbm-design-review #cbp-design-root p.cbp-availability,
body.cbm-design-review #cbp-design-root p.cbp-summary {
  padding-top:0!important; padding-bottom:0!important;
  height:auto!important; min-height:0!important;
}
/* A neutralized paragraph must not leave extra trailing whitespace through
   the theme's pseudo decoration. Preserve the existing text and links. */
body.cbm-design-review #cbp-design-root .cbp-event > p.cbp-event-note::after,
body.cbm-design-review #cbp-design-root .cbp-tips > p::after {
  content:none!important; display:none!important;
}
