.joy-review { container: joyreview / inline-size; min-width: 0; display: grid; gap: 24px; }
.joy-review :is(section, aside, div, figure, nav, ol, li, dl, dt, dd, picture) { min-width: 0; }
.joy-review :is(h1, h2, h3, p, dt, dd, a, th, td, figcaption) { overflow-wrap: anywhere; }
.joy-review :is(h1, h2, h3) { font-weight: 750; }
.joy-review :is(h1, h2, h3, p, dl, ol, figure) { margin-block: 0; }
.joy-review :is(p + p, h2 + p, h3 + p, p + dl, dl + p, p + table, table + p, p + div, div + p, p + ol, ol + p) { margin-block-start: 16px; }
.joy-review :is(a, summary):focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.joy-review .eyebrow { color: var(--brand); font-weight: 750; letter-spacing: .06em; font-size: .8125rem; }
.joy-hero { display: grid; gap: 20px; padding: 20px; border: 1px solid var(--border); border-radius: var(--r-panel); background: var(--surface); }
.joy-hero__copy { display: grid; align-content: start; gap: 16px; }
.joy-hero__copy :is(p, dl) { margin: 0; }
.joy-identity { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.joy-identity .rc-brand-logo { width: 180px; height: 60px; flex: 0 0 180px; }
.joy-identity .rc-brand-logo :is(img, svg) { width: 100%; height: 100%; object-fit: contain; }
.joy-hero h1 { font-size: var(--t-h1); line-height: 1.12; }
.joy-hero .lede { font-size: 1.125rem; line-height: 1.65; }
.joy-hero__art { align-self: start; display: grid; gap: 10px; }
.joy-hero__art picture { display: block; border-radius: var(--r-panel); overflow: hidden; }
.joy-hero__art img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.joy-hero__art figcaption { font-size: var(--t-small); color: var(--text-dim); }
.joy-contract { display: grid; grid-template-columns: 1fr; gap: 8px; }
.joy-contract > div { padding: 12px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface-alt); }
.joy-contract dt { display: flex; gap: 8px; align-items: center; color: var(--text-dim); font-size: var(--t-small); font-weight: 700; }
.joy-contract dd { margin: 8px 0 0; font: 750 1.5rem / 1.2 var(--font-display); color: var(--brand); }
.joy-contract dd span { display: block; margin-top: 5px; color: var(--text); font: 500 var(--t-small) / 1.5 var(--font-body); }
.joy-contract .rc-icon { flex: 0 0 22px; }
.joy-review .button-group { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; align-items: stretch; }
.joy-review .button { white-space: normal; text-align: center; }
.joy-jump { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 12px; border-block: 1px solid var(--border); }
.joy-jump a { display: inline-flex; min-height: var(--tap); align-items: center; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface); font-weight: 700; }
.joy-section { display: grid; gap: 16px; padding: 20px; border: 1px solid var(--border); border-radius: var(--r-panel); background: var(--surface); }
.joy-section > :is(p, div, dl, ol) { margin-block-start: 0; }
.joy-section--soft { background: var(--surface-alt); }
.joy-section h2 { font-size: var(--t-h2); line-height: 1.25; }
.joy-section h3 { font-size: var(--t-h3); line-height: 1.35; }
.joy-product-grid, .joy-two, .joy-next-grid, .joy-fact-grid { display: grid; gap: 12px; }
.joy-product, .joy-sheet { padding: 16px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface); }
.joy-product h3, .joy-sheet h3 { display: flex; gap: 8px; align-items: flex-start; }
.joy-product h3 .rc-icon, .joy-sheet h3 .rc-icon { flex: 0 0 24px; }
.joy-product .joy-product__value { color: var(--brand); font: 750 1.5rem / 1.3 var(--font-display); }
.joy-product > a { display: inline-flex; align-items: center; min-height: var(--tap); margin-top: 10px; font-weight: 750; }
.joy-status-table { display: none; overflow-x: auto; border: 1px solid var(--border); border-radius: var(--r-control); }
.joy-status-table:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.joy-review table { width: 100%; border-collapse: collapse; margin: 0; font-size: 1rem; }
.joy-review caption { padding: 12px; text-align: start; color: var(--text-dim); font-size: var(--t-small); }
.joy-review :is(th, td) { padding: 12px; text-align: start; vertical-align: top; border-bottom: 1px solid var(--border); }
.joy-review thead th { background: var(--brand-soft); color: var(--text); font-weight: 750; }
.joy-review tbody th { font-weight: 750; }
.joy-review tbody tr:nth-child(even) { background: var(--surface-alt); }
.joy-review .joy-entry { background: var(--brand-soft); }
.joy-status-cards { display: grid; gap: 12px; list-style: none; padding: 0; }
.joy-status-card { border: 1px solid var(--border); border-radius: var(--r-control); padding: 16px; background: var(--surface); }
.joy-status-card h3 { margin-bottom: 12px; }
.joy-status-card dl, .joy-limits { display: grid; gap: 8px; }
.joy-status-card dl > div { display: grid; grid-template-columns: 1fr; gap: 4px; padding-block: 8px; border-top: 1px solid var(--border); }
.joy-status-card dt { color: var(--text-dim); }
.joy-status-card dd { margin: 0; font-weight: 750; }
.joy-note { padding: 14px 16px; background: var(--brand-soft); border: 1px solid var(--border); border-radius: var(--r-control); }
.joy-editorial { padding: 20px; border: 1px solid var(--control-border); border-radius: var(--r-panel); background: var(--brand-soft); }
.joy-calculation { display: grid; gap: 12px; }
.joy-calculation > div { padding-block: 12px; border-bottom: 1px solid var(--border); }
.joy-calculation dt { color: var(--text-dim); }
.joy-calculation dd { margin: 8px 0 0; font-size: 1.125rem; }
.joy-calculation strong { color: var(--brand); }
.joy-calculation .joy-calculation__unresolved { background: var(--surface-alt); padding: 12px; border: 1px solid var(--control-border); border-radius: var(--r-control); }
.joy-calculation__unresolved strong { color: var(--warning); }
.joy-timeline { display: grid; grid-template-columns: 1fr; gap: 12px; list-style: none; padding: 0; }
.joy-timeline li { padding: 16px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface-alt); }
.joy-timeline__icon { display: inline-flex; color: var(--brand); padding: 10px; background: var(--brand-soft); border-radius: var(--r-control); margin-bottom: 12px; }
.joy-steps { padding-inline-start: 1.5em; display: grid; gap: 12px; }
.joy-formula { font: 750 1.5rem / 1.5 var(--font-display); }
.joy-formula strong { color: var(--brand); }
.joy-edge-example { display: grid; gap: 16px; padding: 20px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--r-control); }
.joy-fact-grid > div { padding: 16px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface); }
.joy-fact-grid dt { color: var(--text-dim); font-weight: 700; }
.joy-fact-grid dd { margin: 8px 0 0; font-weight: 750; }
.joy-limits > div { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--border); border-radius: var(--r-control); background: var(--surface-alt); }
.joy-limits dt { font-weight: 750; }
.joy-limits dd { margin: 0; }
.joy-proof figure { display: grid; gap: 12px; }
.joy-proof picture { display: block; }
.joy-proof img { display: block; width: 100%; height: auto; border: 1px solid var(--border); border-radius: var(--r-control); }
.joy-proof figcaption { color: var(--text-dim); }
.joy-proof figcaption a { display: inline-flex; align-items: center; min-height: var(--tap); }
.joy-alternatives { display: grid; gap: 12px; }
.joy-review .compact-offer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 16px; align-items: start; }
.joy-review .compact-offer__brand { grid-column: 1; align-self: start; width: 100px; }
.joy-review .compact-offer__brand :is(.rc-brand-logo, .cl-logo) { width: 100px; height: 40px; }
.joy-review .compact-offer__body { grid-column: 1; }
.joy-review .compact-offer__body > p { margin: 0 0 8px; }
.joy-review .compact-offer__conditions { display: grid; gap: 8px; margin: 0; font-size: 1rem; }
.joy-review .compact-offer__conditions :is(dt, dd) { display: inline; margin: 0; }
.joy-review .compact-offer__conditions dt { font-weight: 750; }
.joy-review .compact-offer__conditions dt::after { content: ": "; }
.joy-review .compact-offer__conditions dd { font-weight: 500; }
.joy-review .compact-offer__actions { grid-column: 1; display: flex; flex-direction: row; justify-content: flex-start; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.joy-next { display: grid; align-content: start; justify-items: start; gap: 10px; padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-control); text-decoration: none; }
.joy-next strong { text-decoration: underline; }
.joy-next span { color: var(--text); }
.joy-next .rc-icon { color: var(--brand); }

@container joyreview (min-width: 32em) {
  .joy-contract, .joy-fact-grid, .joy-next-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .joy-status-card dl > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@container joyreview (min-width: 48em) {
  .joy-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .joy-hero__art { align-self: center; }
  .joy-two, .joy-product-grid, .joy-edge-example { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .joy-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .joy-status-table { display: block; }
  .joy-status-cards { display: none; }
  .joy-limits > div { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 20px; }
  .joy-review .compact-offer { grid-template-columns: 100px minmax(0, 1fr); }
  .joy-review .compact-offer__body, .joy-review .compact-offer__actions { grid-column: 2; }
}

.joy-limit-table { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--r-control); }
.joy-limit-table:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.joy-limit-table table { min-width: 48rem; table-layout: fixed; }
.joy-limit-table :is(th,td) { overflow-wrap: anywhere; vertical-align: top; }
.joy-limit-table th:first-child { width: 21%; }

.joy-activation-table { overflow-x: auto; }
.joy-activation-table:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }


.joy-steps li { overflow-wrap: anywhere; }
.joy-activation-table table { min-inline-size: 28rem; table-layout: auto; }
.joy-activation-table :is(th, td):not(:first-child) { white-space: nowrap; }
.joy-table-cue { color: var(--text-dim); font-size: var(--t-small); font-weight: 700; }
.lightbox[data-joy-viewer][open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; padding: 12px; }
.lightbox[data-joy-viewer] .lightbox__toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lightbox[data-joy-viewer] .icon-button { min-inline-size: 44px; min-block-size: 44px; max-inline-size: 100%; padding: 8px 10px; font-size: var(--t-small); line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
.lightbox[data-joy-viewer] figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 8px; inline-size: 100%; block-size: 100%; min-inline-size: 0; min-block-size: 0; }
.lightbox[data-joy-viewer] .lightbox__image { display: block; inline-size: 100%; block-size: 100%; min-inline-size: 0; min-block-size: 0; overflow: auto; overscroll-behavior: contain; touch-action: pan-x pan-y; background: var(--surface); border: 1px solid var(--control-border); }
.lightbox[data-joy-viewer] .lightbox__image:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
.lightbox[data-joy-viewer] figure img { display: block; inline-size: 100%; block-size: 100%; max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
.lightbox[data-joy-viewer][data-joy-original] figure img { inline-size: auto; block-size: auto; max-inline-size: none; max-block-size: none; }
.lightbox[data-joy-viewer] figcaption { overflow-wrap: anywhere; line-height: 1.3; }
.lightbox[data-joy-viewer] .lightbox__controls { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; text-align: center; }
.lightbox[data-joy-viewer] .lightbox__controls > * { min-inline-size: 0; }
