/* =========================================================================
   Report Templates v2 (RP Reports v2 · Hero / Library / Card / Section head).
   Same design language as Home / Pricing / Features / Blog: site tokens (--ds-*), calm solid surfaces,
   one accent colour, soft card shadow.
   ========================================================================= */
.rp-root:has(.rr, .rl, .rh, .rhd) { background: transparent; }
.rp-root:has(.rr) { height: 100%; }

/* ---------------------------------------------------------------- hero */
.rp-root .rh { position: relative; isolation: isolate; padding: var(--pr-top, 150px) var(--pr-side, 32px) var(--pr-bottom, 56px); overflow: clip; }
.rp-root .rh-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(42% 60% at 50% 0%, color-mix(in srgb, var(--ds-primary) 10%, transparent), transparent 70%),
    radial-gradient(28% 44% at 88% 30%, color-mix(in srgb, var(--ds-accent) 8%, transparent), transparent 70%); }
.rp-root .rh-in { width: min(var(--pr-w, 1040px), 100%); margin-inline: auto; display: grid; justify-items: center; text-align: center; gap: 22px; }
.rp-root .rh--left .rh-in { justify-items: start; text-align: left; }
.rp-root .rh-title { margin: 0; font: var(--ds-h-weight) var(--rh-h1, var(--ds-h1))/1.02 var(--ds-font-display); letter-spacing: -.04em; color: var(--ds-ink); max-width: var(--rh-h1-w, 16ch); text-wrap: balance; }
.rp-root .rh-body { margin: 0; max-width: 58ch; font: 400 var(--rh-body, var(--ds-lead))/1.6 var(--ds-font-body); color: var(--ds-text); text-wrap: pretty; }
.rp-root .rh-search { display: flex; align-items: center; gap: 10px; width: min(560px, 100%); height: 60px; padding: 0 8px 0 20px; margin-top: 6px; border-radius: 999px; background: #fff;
  box-shadow: 0 0 0 1px rgba(16, 20, 46, .08), 0 1px 2px rgba(16, 20, 46, .04), 0 30px 60px -44px rgba(16, 30, 80, .42); transition: box-shadow .3s; }
.rp-root .rh-search:focus-within { box-shadow: 0 0 0 1px color-mix(in srgb, var(--ds-primary) 40%, transparent), 0 0 0 5px color-mix(in srgb, var(--ds-primary) 10%, transparent), 0 30px 60px -44px rgba(16, 30, 80, .45); }
.rp-root .rh-search > svg { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--ds-muted); stroke-width: 2; stroke-linecap: round; }
.rp-root .rh-search input { all: unset; flex: 1; min-width: 0; font: 400 16px/1 var(--ds-font-body); color: var(--ds-ink); }
.rp-root .rh-search input::placeholder { color: var(--ds-muted); }
.rp-root .rh-search button { all: unset; cursor: pointer; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ds-btn-bg); }
.rp-root .rh-search button svg { width: 18px; height: 18px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rp-root .rh-ctas { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.rp-root .rh--left .rh-ctas { justify-content: flex-start; }
.rp-root .rh-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; margin: 4px 0 0; padding: 0; list-style: none; font: 500 14px/1.2 var(--ds-font-body); color: var(--ds-text); }
.rp-root .rh-stats li { display: inline-flex; align-items: baseline; gap: 6px; padding: 0 16px; }
.rp-root .rh-stats li + li { border-left: 1px solid #dfe3ea; }
.rp-root .rh-stats b { font: 600 15px/1 var(--ds-font-body); color: var(--ds-ink); font-variant-numeric: tabular-nums; }
.rp-root .rh :is(.rh-eyebrow, .rh-title, .rh-body, .rh-search, .rh-ctas, .rh-stats) { opacity: 0; transform: translate3d(0, 14px, 0); transition: opacity .8s ease, transform 1s var(--rp-ease); }
.rp-root .rh.is-in :is(.rh-eyebrow, .rh-title, .rh-body, .rh-search, .rh-ctas, .rh-stats) { opacity: 1; transform: none; }
.rp-root .rh.is-in .rh-title { transition-delay: .06s; } .rp-root .rh.is-in .rh-body { transition-delay: .14s; } .rp-root .rh.is-in :is(.rh-search, .rh-ctas) { transition-delay: .22s; } .rp-root .rh.is-in .rh-stats { transition-delay: .3s; }
@media (prefers-reduced-motion: reduce) { .rp-root .rh * { transition: none !important; opacity: 1 !important; transform: none !important; } }
@container rp (max-width: 767px) {
  .rp-root .rh { padding-top: var(--pr-top, 120px); }
  .rp-root .rh-search { height: 54px; }
  .rp-root .rh-stats li { padding: 4px 10px; }
}

/* ---------------------------------------------------------------- library toolbar */
.rp-root .rl { display: grid; gap: 18px; font-family: var(--ds-font-body); }
.rp-root .rl-head { display: grid; gap: 14px; justify-items: start; margin-bottom: 8px; }
.rp-root .rl-title, .rp-root .rhd-title { margin: 0; font: var(--ds-h-weight) var(--ds-h2)/1.05 var(--ds-font-display); letter-spacing: -.034em; color: var(--ds-ink); text-wrap: balance; }
.rp-root .rl-body, .rp-root .rhd-body { margin: 0; max-width: 60ch; font: 400 var(--ds-lead)/1.6 var(--ds-font-body); color: var(--ds-text); }
.rp-root .rl-bar { display: flex; align-items: center; gap: 14px; padding: 8px; border-radius: 20px; background: #fff; box-shadow: 0 0 0 1px #e3e7ee, 0 1px 2px rgba(16, 20, 46, .04); }
.rp-root .rl-tabs { flex: 1; min-width: 0; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); padding-right: 24px; }
.rp-root .rl-tabs::-webkit-scrollbar { display: none; }
.rp-root .rl-tab { all: unset; box-sizing: border-box; cursor: pointer; flex: none; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 12px;
  font: 500 14px/1 var(--ds-font-body); color: var(--ds-text); white-space: nowrap; transition: background .2s, color .2s; }
.rp-root .rl-tab:hover { background: #f4f6f9; color: var(--ds-ink); }
.rp-root .rl-tab em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--ds-muted); font-variant-numeric: tabular-nums; }
.rp-root .rl-tab.is-on { background: var(--ds-ink); color: #fff; }
.rp-root .rl-tab.is-on em { color: rgba(255, 255, 255, .6); }
.rp-root .rl-tab:focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 2px; }
.rp-root .rl-search { flex: none; display: flex; align-items: center; gap: 8px; width: 260px; height: 40px; padding: 0 10px 0 14px; border-radius: 12px; background: #f4f6f9; transition: box-shadow .2s, background .2s; }
.rp-root .rl-search:focus-within { background: #fff; box-shadow: 0 0 0 1px color-mix(in srgb, var(--ds-primary) 40%, transparent); }
.rp-root .rl-search > svg { flex: none; width: 17px; height: 17px; fill: none; stroke: var(--ds-muted); stroke-width: 2; stroke-linecap: round; }
.rp-root .rl-search input { all: unset; flex: 1; min-width: 0; font: 400 14.5px/1 var(--ds-font-body); color: var(--ds-ink); }
.rp-root .rl-search input::placeholder { color: var(--ds-muted); }
.rp-root .rl-x { all: unset; cursor: pointer; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--ds-muted); }
.rp-root .rl-x:hover { background: #e9ecf1; color: var(--ds-ink); }
.rp-root .rl-x svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.rp-root .rl-note { margin: 0; font: 400 14px/1.4 var(--ds-font-body); color: var(--ds-text); }
@container rp (max-width: 767px) {
  .rp-root .rl-bar { flex-direction: column; align-items: stretch; gap: 8px; border-radius: 18px; }
  .rp-root .rl-search { width: auto; order: -1; height: 44px; }
}

/* ---------------------------------------------------------------- report card (library) */
.rp-root .rr { height: 100%; font-family: var(--ds-font-body); }
.rp-root .rr-card { box-sizing: border-box; height: 100%; display: flex; flex-direction: column; border-radius: 20px; background: #fff; text-decoration: none; color: inherit; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(16, 20, 46, .07), 0 1px 2px rgba(16, 20, 46, .04), 0 30px 60px -48px rgba(16, 30, 80, .4); transition: box-shadow .35s ease, transform .45s var(--rp-ease); }
.rp-root a.rr-card:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px color-mix(in srgb, var(--ds-primary) 22%, transparent), 0 2px 6px rgba(16, 20, 46, .05), 0 40px 70px -44px rgba(16, 30, 80, .5); }
.rp-root a.rr-card:focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 3px; }
.rp-root .rr-media { position: relative; display: block; margin: 8px 8px 0; border-radius: 14px; overflow: hidden; aspect-ratio: var(--rr-ratio, 16 / 10); background: #f2f4f8; }
.rp-root .rr-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--rp-ease); }
.rp-root a.rr-card:hover .rr-media img { transform: scale(1.025); }
.rp-root .rr-ph { display: grid; place-items: center; width: 100%; height: 100%; background: #eef2f8; }
.rp-root .rr-ph img { width: 40px; height: 40px; object-fit: contain; opacity: .5; }
.rp-root .rr-badge { position: absolute; left: 10px; top: 10px; padding: 6px 10px 5px; border-radius: 999px; background: rgba(255, 255, 255, .94); font: 600 11px/1 var(--ds-font-body); font-style: normal; letter-spacing: .04em; color: var(--ds-ink); box-shadow: 0 1px 2px rgba(16, 20, 46, .08); }
.rp-root .rr-badge--soon { background: var(--ds-ink); color: #fff; }
.rp-root .rr-body { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; }
.rp-root .rr-cat { font: 600 11.5px/1.2 var(--ds-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-muted); }
.rp-root .rr-title { font: var(--ds-h-weight) var(--rr-title, 19px)/1.25 var(--ds-font-display); letter-spacing: -.016em; color: var(--ds-ink); }
.rp-root .rr-sum { font: 400 var(--rr-sum, 14.5px)/1.55 var(--ds-font-body); color: var(--ds-text); display: -webkit-box; -webkit-line-clamp: var(--rr-lines, 3); -webkit-box-orient: vertical; overflow: hidden; }
.rp-root .rr-go { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; font: 600 14px/1 var(--ds-font-body); color: var(--ds-ink); }
.rp-root .rr-go svg, .rp-root .rr-go-ic svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s var(--rp-ease); }
.rp-root a.rr-card:hover .rr-go { color: var(--ds-primary); }
.rp-root a.rr-card:hover .rr-go svg { transform: translateX(3px); }
.rp-root .rr-card.is-soon { opacity: .72; }
.rp-root .rr mark { background: color-mix(in srgb, var(--ds-primary) 16%, transparent); color: inherit; border-radius: 3px; }

/* ---------------------------------------------------------------- report card (popular) */
.rp-root .rr--pop .rr-card { flex-direction: row; align-items: center; gap: 14px; padding: 16px 16px 16px 16px; border-radius: 18px; }
.rp-root .rr-ic { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: #f1f4f9; }
.rp-root .rr-ic img { width: 26px; height: 26px; object-fit: contain; }
.rp-root .rr-ic b { font: 600 18px/1 var(--ds-font-display); color: var(--ds-primary); }
.rp-root .rr-pb { flex: 1; min-width: 0; display: grid; gap: 4px; }
.rp-root .rr--pop .rr-title { font-size: var(--rr-title, 16.5px); }
.rp-root .rr--pop .rr-sum { font-size: 13.5px; -webkit-line-clamp: 2; }
.rp-root .rr-go-ic { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #f1f4f9; color: var(--ds-ink); transition: background .25s, color .25s; }
.rp-root a.rr-card:hover .rr-go-ic { background: var(--ds-primary); color: #fff; }
.rp-root a.rr-card:hover .rr-go-ic svg { transform: translateX(2px); }

/* ---------------------------------------------------------------- section head (Most popular) */
.rp-root .rhd { display: grid; gap: 14px; justify-items: center; text-align: center; padding: var(--pr-top, 96px) var(--pr-side, 32px) var(--pr-bottom, 36px); width: min(var(--pr-w, 1240px), 100%); margin-inline: auto; box-sizing: border-box; font-family: var(--ds-font-body); }
.rp-root .rhd--left { justify-items: start; text-align: left; }
.rp-root .rhd-link { display: inline-flex; align-items: center; gap: 6px; font: 600 14.5px/1 var(--ds-font-body); color: var(--ds-ink); text-decoration: none; }
.rp-root .rhd-link:hover { color: var(--ds-primary); }
.rp-root .rhd-link svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rp-root :is(.rl, .rhd, .rh) .hv-pill i { background: var(--ds-primary); }

/* ---------------------------------------------------------------- simple text card (default library card) */
.rp-root .rr-card--min { padding: 0; }
.rp-root .rr-card--min .rr-body { gap: 8px; padding: 20px 20px 18px; }
.rp-root .rr-th { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.rp-root .rr-card--min .rr-title { font-size: var(--rr-title, 17.5px); line-height: 1.3; }
.rp-root .rr-tag { flex: none; margin-top: 1px; padding: 5px 8px 4px; border-radius: 999px; background: color-mix(in srgb, var(--ds-primary) 9%, #fff); font: 600 10.5px/1 var(--ds-font-body); font-style: normal; letter-spacing: .04em; color: var(--ds-primary); }
.rp-root .rr-tag--soon { background: #eef0f4; color: var(--ds-muted); }
.rp-root .rr-card--min .rr-sum { font-size: var(--rr-sum, 14px); }
.rp-root .rr-btn { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 999px; text-decoration: none;
  font: 600 13.5px/1 var(--ds-font-body); color: var(--ds-ink); background: #fff; box-shadow: inset 0 0 0 1px #dfe3ea; transition: background .2s, color .2s, box-shadow .2s; }
.rp-root .rr-card--min .rr-sum + .rr-btn, .rp-root .rr-card--min .rr-th + .rr-btn { margin-top: auto; }
.rp-root .rr-card--min .rr-body > .rr-btn { margin-top: auto; }
.rp-root .rr-card--min .rr-body { justify-content: flex-start; }
.rp-root .rr-card--min .rr-sum { margin-bottom: 6px; }
.rp-root .rr-btn svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--rp-ease); }
.rp-root .rr-btn:hover { background: var(--ds-ink); color: #fff; box-shadow: none; }
.rp-root .rr-btn:hover svg { transform: translateX(2px); }
.rp-root .rr-btn:focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 2px; }
.rp-root .rr-card--min:hover { box-shadow: 0 0 0 1px color-mix(in srgb, var(--ds-primary) 20%, transparent), 0 2px 6px rgba(16, 20, 46, .05), 0 34px 60px -46px rgba(16, 30, 80, .45); }
.rp-root .rr-card--min.is-soon { opacity: .75; }

/* ---------------------------------------------------------------- library: category cards in a masonry grid (v60.1) */
.rp-root .rl { box-sizing: border-box; width: 100%; max-width: calc(var(--rl-w, 1240px) + 2 * var(--rl-pad, 32px)); margin-inline: auto; padding: var(--rl-top, 24px) var(--rl-pad, 32px) var(--rl-bottom, 96px); gap: 20px; }
.rp-root .rl-grid { display: grid; grid-template-columns: repeat(var(--rl-c, 3), minmax(0, 1fr)); gap: var(--rl-gap, 20px); align-items: start; margin-top: 6px; }
.rp-root .rl-col { display: grid; gap: var(--rl-gap, 20px); align-content: start; min-width: 0; }
.rp-root .rl-card { border-radius: 22px; background: #fff; padding: 8px 8px 10px;
  box-shadow: 0 0 0 1px rgba(16, 20, 46, .07), 0 1px 2px rgba(16, 20, 46, .04), 0 30px 60px -48px rgba(16, 30, 80, .4); }
.rp-root .rl-ch { display: flex; align-items: center; gap: 12px; padding: 12px 12px 14px; margin-bottom: 4px; border-radius: 16px; background: #f4f6fa; }
.rp-root .rl-ic { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--ds-primary); }
.rp-root .rl-ic img { width: 19px; height: 19px; object-fit: contain; filter: brightness(0) invert(1); }
.rp-root .rl-ic b { font: 600 16px/1 var(--ds-font-display); color: #fff; }
.rp-root .rl-ch h3 { flex: 1; min-width: 0; margin: 0; font: var(--ds-h-weight) 18.5px/1.25 var(--ds-font-display); letter-spacing: -.016em; color: var(--ds-ink); }
.rp-root .rl-ch em { flex: none; min-width: 28px; padding: 5px 8px 4px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px #e3e7ee; text-align: center;
  font: 600 12px/1 var(--ds-font-body); font-style: normal; color: var(--ds-text); font-variant-numeric: tabular-nums; }
.rp-root .rl-list { list-style: none; margin: 0; padding: 0; }
.rp-root .rl-list li { margin: 0; }
.rp-root .rl-list li + li .rl-row { box-shadow: inset 0 1px 0 #eef0f4; }
.rp-root .rl-row { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 12px; border-radius: 12px; text-decoration: none; color: var(--ds-ink);
  font: 400 15px/1.35 var(--ds-font-body); transition: background .2s, color .2s; }
.rp-root .rl-name { flex: 1; min-width: 0; }
.rp-root .rl-row svg { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .3s var(--rp-ease); }
.rp-root a.rl-row:hover { background: #f1f5fd; color: var(--ds-primary); box-shadow: none; }
.rp-root a.rl-row:hover + * , .rp-root .rl-list li:hover + li .rl-row { box-shadow: none; }
.rp-root a.rl-row:hover svg, .rp-root a.rl-row:focus-visible svg { opacity: 1; transform: none; }
.rp-root a.rl-row:focus-visible { outline: 2px solid var(--ds-primary); outline-offset: -2px; }
.rp-root .rl-row small { flex: none; padding: 4px 7px 3px; border-radius: 999px; font: 600 10.5px/1 var(--ds-font-body); letter-spacing: .03em; }
.rp-root .rl-pop { background: color-mix(in srgb, var(--ds-primary) 9%, #fff); color: var(--ds-primary); }
.rp-root .rl-row.is-soon { color: var(--ds-muted); }
.rp-root .rl-row.is-soon small { background: #eef0f4; color: var(--ds-muted); }
.rp-root .rl-more { display: inline-flex; align-items: center; gap: 6px; margin: 6px 12px 4px; font: 600 13.5px/1 var(--ds-font-body); color: var(--ds-ink); text-decoration: none; }
.rp-root .rl-more:hover { color: var(--ds-primary); }
.rp-root .rl-more svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rp-root .rl mark { background: color-mix(in srgb, var(--ds-primary) 16%, transparent); color: inherit; border-radius: 3px; }
/* one category picked: its reports in columns inside one wide card */
.rp-root .rl-grid.is-one .rl-list { columns: 3 240px; column-gap: 16px; }
.rp-root .rl-grid.is-one .rl-list li { break-inside: avoid; }
.rp-root .rl-grid.is-one .rl-list li + li .rl-row { box-shadow: none; }
@container rp (max-width: 767px) {
  .rp-root .rl-card { border-radius: 18px; }
  .rp-root .rl-ch h3 { font-size: 17px; }
}
.rp-root .rl { grid-template-columns: minmax(0, 1fr); }
.rp-root .rl > * { min-width: 0; }
@media (max-width: 767px) {
  .rp-root .rl-bar { flex-direction: column; align-items: stretch; gap: 8px; border-radius: 18px; }
  .rp-root .rl-search { width: auto; order: -1; height: 44px; }
  .rp-root .rl-card { border-radius: 18px; }
  .rp-root .rl-ch h3 { font-size: 17px; }
}
@media (max-width: 478px) { .rp-root .rh-stats li + li { border-left: 0; } .rp-root .rh-stats { gap: 2px 0; } }

/* ---------------------------------------------------------------- report icons (v60.2) */
.rp-root .rr-svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rp-root .rl-ri { flex: none; display: grid; place-items: center; width: 28px; height: 28px; padding: 6px; box-sizing: border-box; border-radius: 8px; background: #f2f4f8; color: var(--ds-ink); transition: background .2s, color .2s; }
.rp-root a.rl-row:hover .rl-ri { background: var(--ds-primary); color: #fff; }
.rp-root .rl-row.is-soon .rl-ri { color: var(--ds-muted); }
.rp-root .rl-row { gap: 12px; padding-left: 10px; }
.rp-root .rr-ic { padding: 12px; box-sizing: border-box; color: var(--ds-ink); background: #f2f4f8; }
.rp-root .rr-ic.is-cms { padding: 0; }
.rp-root a.rr-card:hover .rr-ic { background: var(--ds-primary); color: #fff; }

/* ---------------------------------------------------------------- hero: split layout + report deck (v60.2) */
.rp-root .rh-text { display: grid; justify-items: inherit; gap: 22px; }
.rp-root .rh--split .rh-in { grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); align-items: center; gap: 56px; justify-items: start; text-align: left; }
.rp-root .rh--split .rh-text { justify-items: start; }
.rp-root .rh--split .rh-ctas, .rp-root .rh--split .rh-stats { justify-content: flex-start; }
.rp-root .rh--split .rh-stats li:first-child { padding-left: 0; }
.rp-root .rh--split .rh-title { font-size: var(--rh-h1, calc(var(--ds-h1) * .9)); }
.rp-root .rh-art { position: relative; width: 100%; opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity .9s ease .2s, transform 1.1s var(--rp-ease) .2s; }
.rp-root .rh.is-in .rh-art { opacity: 1; transform: none; }
@container rp (max-width: 991px) {
  .rp-root .rh--split .rh-in { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 40px; }
  .rp-root .rh--split .rh-text { justify-items: center; }
  .rp-root .rh--split .rh-ctas, .rp-root .rh--split .rh-stats { justify-content: center; }
  .rp-root .rh--split .rh-stats li:first-child { padding-left: 16px; }
  .rp-root .rh-art { max-width: 520px; }
}


/* ---------------------------------------------------------------- v60.3: one icon style (site icon tile) on category headers only */
.rp-root .rl-ic { width: 40px; height: 40px; padding: 10px; box-sizing: border-box; border-radius: var(--ds-icon-r); background: var(--ds-icon-bg); color: var(--ds-icon-fg); box-shadow: var(--ds-icon-shadow); }
.rp-root .rl-ic .rr-svg { width: 20px; height: 20px; stroke-width: 1.8; }
.rp-root .rr--pop .rr-card { padding: 18px 16px 18px 20px; }
.rp-root .rr--pop .rr-cat { font-size: 11px; }

/* ---------------------------------------------------------------- hero illustration: glass report folder (v60.3) */
.rp-root .rf { --tx: 0; --ty: 0; position: relative; width: 100%; max-width: 520px; margin-inline: auto; }
.rp-root .rf-svg { display: block; width: 100%; height: auto; overflow: visible; }
.rp-root .rf-echo rect { stroke: color-mix(in srgb, var(--ds-primary) 18%, transparent); stroke-width: 1.2; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s var(--rp-ease) .2s; }
.rp-root .rf-echo rect + rect { stroke: color-mix(in srgb, var(--ds-accent) 16%, transparent); transition-delay: .45s; }
.rp-root .rf.is-in .rf-echo rect { stroke-dashoffset: 0; }
.rp-root .rf-obj { transform-box: view-box; transform-origin: 50% 60%;
  transform: perspective(900px) rotateY(calc(var(--tx) * 10deg)) rotateX(calc(var(--ty) * -8deg)) translate3d(calc(var(--tx) * 6px), calc(var(--ty) * 6px), 0);
  transition: transform .8s var(--rp-ease); }
.rp-root .rf-back, .rp-root .rf-front { opacity: 0; transform: translateY(16px); transition: opacity .8s ease, transform 1s var(--rp-ease); }
.rp-root .rf.is-in :is(.rf-back, .rf-front) { opacity: 1; transform: none; }
.rp-root .rf-sheet { transform-box: fill-box; transform-origin: 50% 100%; opacity: 0; transition: transform 1.2s var(--rp-ease), opacity .7s ease; }
.rp-root .rf-s3 { transform: translate(0, 90px) rotate(0deg); }
.rp-root .rf-s2 { transform: translate(0, 90px); }
.rp-root .rf-s1 { transform: translate(0, 90px); }
.rp-root .rf.is-in .rf-s3 { opacity: 1; transition-delay: .35s; transform: translate(calc(-46px + var(--tx) * -10px), calc(-6px + var(--ty) * -6px)) rotate(-9deg); }
.rp-root .rf.is-in .rf-s2 { opacity: 1; transition-delay: .5s; transform: translate(calc(40px + var(--tx) * -16px), calc(-14px + var(--ty) * -8px)) rotate(7deg); }
.rp-root .rf.is-in .rf-s1 { opacity: 1; transition-delay: .65s; transform: translate(calc(var(--tx) * -24px), calc(-28px + var(--ty) * -12px)); }
.rp-root .rf:hover .rf-s3 { transform: translate(calc(-62px + var(--tx) * -10px), calc(-14px + var(--ty) * -6px)) rotate(-13deg); transition-delay: 0s; }
.rp-root .rf:hover .rf-s2 { transform: translate(calc(56px + var(--tx) * -16px), calc(-22px + var(--ty) * -8px)) rotate(11deg); transition-delay: 0s; }
.rp-root .rf:hover .rf-s1 { transform: translate(calc(var(--tx) * -24px), calc(-44px + var(--ty) * -12px)); transition-delay: 0s; }
.rp-root .rf-gloss { transform: translate(calc(var(--tx) * 120px), calc(var(--ty) * 60px)); transition: transform .6s var(--rp-ease); }
.rp-root .rf.is-still * { transition: none !important; }
@media (prefers-reduced-motion: reduce) { .rp-root .rf * { transition: none !important; } }

/* ---------------------------------------------------------------- v60.4: more breathing room */
.rp-root .rh { padding: var(--pr-top, 176px) var(--pr-side, 32px) var(--pr-bottom, 112px); }
.rp-root .rh--split .rh-in { gap: 72px; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); }
.rp-root .rh-text { gap: 26px; }
.rp-root .rh--split .rh-stats { margin-top: 10px; }
.rp-root .rf { max-width: 440px; }
.rp-root .rl { gap: 28px; padding-top: var(--rl-top, 40px); }
.rp-root .rl-grid { margin-top: 4px; gap: var(--rl-gap, 24px); }
.rp-root .rl-col { gap: var(--rl-gap, 24px); }
.rp-root .rl-bar { padding: 10px; }
@container rp (max-width: 991px) { .rp-root .rh--split .rh-in { gap: 48px; } .rp-root .rf { max-width: 400px; } }
@container rp (max-width: 767px) { .rp-root .rh { padding-top: var(--pr-top, 132px); padding-bottom: var(--pr-bottom, 64px); } .rp-root .rf { max-width: 320px; } }

/* ---------------------------------------------------------------- v62: mobile fixes */
/* the v60.4 two-column rule above came after the ≤991 collapse and kept the hero split on tablet / phone */
@container rp (max-width: 991px) {
  .rp-root .rh--split .rh-in { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 44px; }
  .rp-root .rh--split .rh-art { max-width: 400px; }
}
@container rp (max-width: 767px) {
  .rp-root .rh-text { gap: 20px; width: 100%; }
  .rp-root .rh--split .rh-in { gap: 36px; }
  .rp-root .rh--split .rh-art { max-width: 300px; }
  .rp-root .rh-stats { row-gap: 6px; }
  .rp-root .rh-stats li { padding: 0 14px; }
  .rp-root .rh--split .rh-stats li:first-child, .rp-root .rh-stats li:first-child { padding-left: 14px; }
  .rp-root .rh-stats li:not(:has(b)) { flex-basis: 100%; justify-content: center; border-left: 0; padding: 2px 0 0; color: var(--ds-muted); }
  .rp-root .rh--left .rh-stats li:not(:has(b)), .rp-root[data-m-align-l='left'] .rh-stats li:not(:has(b)) { justify-content: flex-start; }
}
@container rp (max-width: 478px) { .rp-root .rh--split .rh-art { max-width: 260px; } }

