/* RethinkSM Assessment Centre. Uses the RethinkSM theme tokens, with fallbacks. */
.rsm-assess, .rsm-centre {
	--r-navy: var(--horizon, #0B3150);
	--r-mid: var(--midnight, #071B35);
	--r-teal: var(--teal, #00A9B7);
	--r-aqua: var(--aqua, #13C4C3);
	--r-ink2: var(--teal-ink, #007C88);
	--r-ink: var(--ink, #132238);
	--r-slate: var(--slate, #66758A);
	--r-mist: var(--mist, #E2E8F0);
	--r-aqua-mist: var(--aqua-mist, #DDF7F6);
	--r-cloud: var(--cloud, #F7F9FC);
	--r-white: #FFFFFF;
	--r-warn-bg: #FFF6E5;
	--r-warn: #9A5200;
	font-family: var(--font, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
	color: var(--r-ink);
}
.entry:has(.rsm-assess), .entry:has(.rsm-centre) { max-width: none; }
.rsm-assess { max-width: 860px; }
.rsm-app { display: flex; flex-direction: column; gap: 20px; }
.rsm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rsm-assess .rsm-app p, .rsm-centre p { margin: 0; }
.rsm-assess .rsm-app section, .rsm-assess .rsm-app details { padding-block: 0; }
.rsm-assess .rsm-app .rsm-card { padding: clamp(20px, 3.5vw, 32px); }
.rsm-assess .rsm-app h2 { font-size: clamp(22px, 2.6vw, 28px); margin: 0 0 12px; color: var(--r-navy); }
.rsm-assess .rsm-app h3 { font-size: 17px; margin: 0; color: var(--r-navy); }
.rsm-assess [tabindex="-1"]:focus { outline: none; }

.rsm-card { background: var(--r-white); border: 1px solid var(--r-mist); border-radius: 12px; padding: clamp(20px, 3.5vw, 32px); }
.rsm-assess .rsm-app .rsm-card > * + *, .rsm-assess .rsm-app .rsm-card fieldset > * + * { margin-top: 12px; }
.rsm-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rsm-grid-2 > .rsm-card { margin: 0; }
@media (max-width: 720px) { .rsm-grid-2 { grid-template-columns: 1fr; } }

.rsm-eyebrow { display: block; font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--r-ink2); margin-bottom: 6px; }
.rsm-lede { font-size: 17px; color: var(--r-slate); }
.rsm-muted { color: var(--r-slate); font-size: 15px; }
.rsm-hint { color: var(--r-slate); font-size: 14px; margin-top: 6px !important; }
.rsm-privacy { color: var(--r-slate); font-size: 13.5px; border-top: 1px solid var(--r-mist); padding-top: 14px; margin-top: 20px !important; }
.rsm-note { background: var(--r-aqua-mist); border-radius: 8px; padding: 10px 14px; color: var(--r-navy); }

.rsm-assess .rsm-app .rsm-meta, .rsm-centre .rsm-meta { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0 0; }
.rsm-meta li { background: var(--r-cloud); border: 1px solid var(--r-mist); border-radius: 999px; padding: 5px 12px; font-size: 14px; color: var(--r-navy); }

/* Buttons */
.rsm-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.rsm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border-radius: 8px; font: inherit; font-weight: 600; font-size: 15px; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.rsm-btn:disabled { opacity: .5; cursor: not-allowed; }
.rsm-btn-primary { background: var(--r-navy); color: var(--r-white); }
.rsm-btn-primary:hover:not(:disabled) { background: var(--r-mid); }
.rsm-btn-ghost { background: var(--r-white); color: var(--r-navy); border-color: var(--r-mist); }
.rsm-btn-ghost:hover:not(:disabled) { border-color: var(--r-navy); }
.rsm-btn-light { background: var(--r-white); color: var(--r-navy); }
.rsm-btn-light:hover { background: var(--r-aqua-mist); }
.rsm-assess :focus-visible, .rsm-centre :focus-visible { outline: 3px solid var(--r-aqua); outline-offset: 3px; }
.rsm-link { background: none; border: 0; padding: 6px 2px; font: inherit; font-weight: 600; color: var(--r-ink2); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* Progress */
.rsm-progress-label { display: flex; justify-content: space-between; font-size: 14px; color: var(--r-slate); margin-bottom: 8px; }
.rsm-progress-track { height: 6px; border-radius: 999px; background: var(--r-mist); overflow: hidden; }
.rsm-progress-fill { height: 100%; background: var(--r-ink2); border-radius: 999px; transition: width .25s; }

/* Questions */
.rsm-question fieldset, .rsm-calc fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.rsm-question fieldset { margin-top: 22px; }
.rsm-question legend { padding: 0; }
.rsm-qtext { display: block; font-size: clamp(20px, 2.4vw, 24px); font-weight: 600; line-height: 1.3; color: var(--r-navy); }
.rsm-options { display: grid; gap: 10px; margin-top: 18px; }
.rsm-option { position: relative; }
.rsm-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rsm-option label { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border: 1.5px solid var(--r-mist); border-radius: 10px; cursor: pointer; background: var(--r-white); line-height: 1.45; transition: border-color .15s, background .15s; }
.rsm-option label:hover { border-color: var(--r-teal); }
.rsm-option-level { flex: 0 0 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--r-mist); display: grid; place-items: center; font-size: 13px; font-weight: 600; color: var(--r-slate); }
.rsm-option input:checked + label { border-color: var(--r-ink2); background: var(--r-aqua-mist); }
.rsm-option input:checked + label .rsm-option-level { background: var(--r-ink2); border-color: var(--r-ink2); color: var(--r-white); }
.rsm-option input:focus-visible + label { outline: 3px solid var(--r-aqua); outline-offset: 2px; }
.rsm-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 24px !important; padding-top: 18px; border-top: 1px solid var(--r-mist); }

/* Review */
.rsm-assess .rsm-app .rsm-review { list-style: none; counter-reset: q; padding: 0; margin: 16px 0 0; display: grid; gap: 0; }
.rsm-review li { counter-increment: q; display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--r-mist); }
.rsm-review-q { display: flex; flex-direction: column; gap: 3px; }
.rsm-review-q .rsm-eyebrow { margin: 0; font-size: 11.5px; }
.rsm-review-text::before { content: counter(q) ". "; color: var(--r-slate); }
.rsm-review-text { font-weight: 600; color: var(--r-navy); }
.rsm-review-a { color: var(--r-ink); font-size: 15px; }
.rsm-review-a.is-missing { color: var(--r-warn); font-weight: 600; }

/* Errors and callouts */
.rsm-error { border: 1.5px solid #C2410C; background: #FFF4EE; color: #7C2D12; border-radius: 10px; padding: 12px 16px; }
.rsm-assess .rsm-app .rsm-error ul { margin: 0; padding-left: 18px; }
.rsm-callout { background: var(--r-cloud); border: 1px solid var(--r-mist); border-radius: 10px; padding: 14px 18px; margin-top: 18px !important; }
.rsm-assess .rsm-app .rsm-callout ul { margin: 8px 0 0; padding-left: 18px; }
.rsm-callout > * + * { margin-top: 6px !important; }
.rsm-callout-warn { background: var(--r-warn-bg); border-color: #F3D19B; }
.rsm-callout-warn h3 { color: var(--r-warn); }
.rsm-callout-info { background: var(--r-aqua-mist); border-color: transparent; }

/* Result hero */
.rsm-hero-grid { display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; }
@media (max-width: 600px) { .rsm-hero-grid { grid-template-columns: 1fr; gap: 12px; } }
.rsm-score { display: flex; align-items: baseline; gap: 4px; padding: 18px 22px; border-radius: 14px; background: var(--r-mid); color: var(--r-white); min-width: 150px; justify-content: center; }
.rsm-score-num { font-size: 64px; font-weight: 700; letter-spacing: -0.03em; line-height: 1; }
.rsm-score-of { font-size: 18px; color: rgba(255,255,255,.7); }
.rsm-hero h2 { margin-bottom: 8px; }
.rsm-assess .rsm-app .rsm-scale { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; list-style: none; padding: 0; margin: 22px 0 0 !important; }
.rsm-scale li { background: var(--r-cloud); padding: 9px 10px; display: flex; flex-direction: column; gap: 1px; font-size: 13.5px; color: var(--r-slate); border-top: 4px solid var(--r-mist); }
.rsm-scale li:first-child { border-radius: 0 0 0 8px; }
.rsm-scale li:last-child { border-radius: 0 0 8px 0; }
.rsm-scale li small { font-size: 12px; }
.rsm-scale li.is-current { background: var(--r-aqua-mist); color: var(--r-navy); font-weight: 600; border-top-color: var(--r-ink2); }
@media (max-width: 520px) { .rsm-scale { grid-template-columns: 1fr 1fr; } .rsm-scale li { border-radius: 0 !important; } }

/* Bars: single series, so no legend; values as text beside each bar */
.rsm-bars { display: grid; gap: 18px; margin-top: 8px; }
.rsm-bar-head { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.rsm-bar-label { font-weight: 600; color: var(--r-navy); }
.rsm-bar-value { font-weight: 600; color: var(--r-ink); font-variant-numeric: tabular-nums; }
.rsm-bar-track { height: 12px; background: var(--r-cloud); border-radius: 0 4px 4px 0; margin-top: 6px; position: relative; box-shadow: inset 0 0 0 1px var(--r-mist); }
.rsm-bar-fill { height: 100%; background: var(--r-ink2); border-radius: 0 4px 4px 0; min-width: 3px; }
.rsm-bar-sub { font-size: 13.5px; color: var(--r-slate); margin-top: 4px !important; }

/* Strengths, weaknesses, recommendations */
.rsm-assess .rsm-app .rsm-sw, .rsm-assess .rsm-app .rsm-opps { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.rsm-sw li, .rsm-opps li { display: flex; flex-direction: column; gap: 3px; }
.rsm-sw strong, .rsm-opps strong { color: var(--r-navy); }
.rsm-sw span, .rsm-opps span { color: var(--r-ink); font-size: 15px; }
.rsm-blockers { border-color: #F3D19B; background: var(--r-warn-bg); }
.rsm-blockers h2 { color: var(--r-warn); }
.rsm-assess .rsm-app .rsm-blockers ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
.rsm-assess .rsm-app .rsm-recs { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.rsm-recs > li { border: 1px solid var(--r-mist); border-radius: 10px; padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; }
.rsm-rec-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rsm-rank { flex: 0 0 30px; height: 30px; border-radius: 8px; background: var(--r-navy); color: var(--r-white); display: grid; place-items: center; font-weight: 700; font-size: 14px; }
.rsm-rec-head h3 { flex: 1 1 200px; }
.rsm-tag { font-size: 12.5px; font-weight: 600; color: var(--r-ink2); background: var(--r-aqua-mist); padding: 3px 10px; border-radius: 999px; }
.rsm-why { font-size: 14.5px; color: var(--r-slate); }
.rsm-because { font-size: 13.5px; color: var(--r-slate); font-style: italic; }
.rsm-assess .rsm-app .rsm-steps { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.rsm-how summary { cursor: pointer; font-weight: 600; color: var(--r-navy); }
.rsm-assess .rsm-app .rsm-how ul { padding-left: 18px; display: grid; gap: 6px; }
.rsm-result-actions { margin: 4px 0 8px; }
.rsm-assess .rsm-app .rsm-result-actions .rsm-actions { margin-top: 0; }
.rsm-result-actions p { margin-top: 8px; font-size: 13.5px; }

.rsm-cta { background: var(--grad, linear-gradient(135deg, #071B35 0%, #0B5470 38%, #00A9B7 72%, #13C4C3 100%)); color: var(--r-white); border-radius: 14px; padding: clamp(22px, 4vw, 36px); display: grid; grid-template-columns: 1.4fr auto; gap: 20px; align-items: center; }
.rsm-assess .rsm-app .rsm-cta h2 { color: var(--r-white); }
.rsm-cta p { color: rgba(255,255,255,.85); }
.rsm-cta .rsm-actions { margin: 0; }
@media (max-width: 720px) { .rsm-cta { grid-template-columns: 1fr; } }

/* Calculator */
.rsm-group { padding-top: 22px !important; border-top: 1px solid var(--r-mist) !important; margin-top: 22px !important; }
.rsm-group:first-of-type { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
.rsm-group legend { display: flex; align-items: center; gap: 10px; font-size: 19px; font-weight: 600; color: var(--r-navy); padding: 0; }
.rsm-step { width: 26px; height: 26px; border-radius: 50%; background: var(--r-aqua-mist); color: var(--r-ink2); display: grid; place-items: center; font-size: 13px; font-weight: 700; }
.rsm-group > .rsm-muted { margin-top: 6px !important; }
.rsm-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 14px; }
.rsm-field { display: flex; flex-direction: column; gap: 6px; }
.rsm-field label, .rsm-field legend { font-weight: 600; font-size: 15px; color: var(--r-ink); }
.rsm-unit { font-weight: 400; color: var(--r-slate); }
.rsm-field input[type="number"] { font: inherit; font-size: 16px; padding: 10px 12px; border: 1.5px solid var(--r-mist); border-radius: 8px; min-height: 44px; width: 100%; box-sizing: border-box; color: var(--r-ink); background: var(--r-white); }
.rsm-field input[type="number"]:focus { border-color: var(--r-ink2); }
.rsm-field input::placeholder { color: #9AA6B6; }
.rsm-field-bool { grid-column: 1 / -1; }
.rsm-choice { display: flex; gap: 18px; margin-top: 6px; }
.rsm-choice span { display: inline-flex; align-items: center; gap: 6px; }
.rsm-choice input { width: 18px; height: 18px; accent-color: var(--r-ink2); }
.rsm-calc-out { display: flex; flex-direction: column; gap: 20px; }
.rsm-calc-out:empty { display: none; }
.rsm-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 16px !important; }
@media (max-width: 720px) { .rsm-tiles { grid-template-columns: 1fr; } }
.rsm-tile { background: var(--r-cloud); border: 1px solid var(--r-mist); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.rsm-tile-label { font-size: 13.5px; color: var(--r-slate); }
.rsm-tile-value { font-size: 26px; font-weight: 700; color: var(--r-navy); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.rsm-tile-sub { font-size: 13.5px; color: var(--r-ink); }
.rsm-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 720px) { .rsm-scenarios { grid-template-columns: 1fr; } }
.rsm-scenario { border: 1px solid var(--r-mist); border-radius: 10px; padding: 16px; }
.rsm-scenario-pct { display: inline-block; font-weight: 700; color: var(--r-white); background: var(--r-navy); border-radius: 6px; padding: 3px 10px; font-size: 14px; }
.rsm-assess .rsm-app .rsm-scenario dl { margin: 12px 0 0; display: grid; gap: 2px; }
.rsm-scenario dt { font-size: 13px; color: var(--r-slate); margin-top: 8px; }
.rsm-scenario dd { margin: 0; font-size: 20px; font-weight: 700; color: var(--r-navy); font-variant-numeric: tabular-nums; }
.rsm-breakdown + .rsm-breakdown { margin-top: 24px !important; }
.rsm-breakdown h3 { margin-bottom: 8px; }
.rsm-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.rsm-table th, .rsm-table td { text-align: left; padding: 9px 8px; border-bottom: 1px solid var(--r-mist); vertical-align: middle; }
.rsm-table thead th { font-size: 13px; color: var(--r-slate); font-weight: 600; }
.rsm-table tbody th { font-weight: 500; }
.rsm-table tfoot th, .rsm-table tfoot td { font-weight: 700; color: var(--r-navy); border-bottom: 0; }
.rsm-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rsm-share { display: flex; align-items: center; gap: 8px; min-width: 110px; font-variant-numeric: tabular-nums; }
.rsm-mini { flex: 1; height: 8px; background: var(--r-cloud); box-shadow: inset 0 0 0 1px var(--r-mist); border-radius: 0 4px 4px 0; }
.rsm-mini span { display: block; height: 100%; background: var(--r-ink2); border-radius: 0 4px 4px 0; }
@media (max-width: 560px) { .rsm-table thead th:nth-child(3), .rsm-table td:nth-child(3), .rsm-table tfoot td:nth-child(3) { display: none; } }

/* Assessment Centre hub */
.rsm-centre-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) { .rsm-centre-grid { grid-template-columns: 1fr; } }
.rsm-centre-card { border: 1px solid var(--r-mist); border-radius: 12px; padding: 28px; display: flex; flex-direction: column; gap: 12px; background: var(--r-white); }
.rsm-centre .rsm-centre-card h2 { font-size: 21px; margin: 0; color: var(--r-navy); }
.rsm-centre .rsm-centre-card p { margin: 0; color: var(--r-slate); font-size: 15px; }
.rsm-centre-card .rsm-meta { margin-top: auto; padding-top: 8px; }
.rsm-centre-card .rsm-btn { align-self: flex-start; }
.rsm-centre-note { margin-top: 24px; color: var(--r-slate); font-size: 14px; }

@media (prefers-reduced-motion: reduce) { .rsm-progress-fill, .rsm-btn, .rsm-option label { transition: none; } }
@media print {
	.rsm-actions, .rsm-cta, .rsm-result-actions, .rsm-calc { display: none !important; }
	.rsm-card { border: 0; padding: 0; }
}
.rsm-group > legend { float: left; width: 100%; margin-bottom: 0; }
.rsm-group > legend + * { clear: both; }
/* Contrast: text on tinted backgrounds uses deeper tones to meet WCAG AA 4.5:1. */
.rsm-scale li, .rsm-tile-label, .rsm-tile-sub { color: #4F5D70; }
.rsm-tag { color: #005F69; }
.rsm-assess .rsm-app .rsm-cta-alt { margin-top: 10px; font-size: 14px; color: rgba(255,255,255,.85); }
.rsm-cta-alt a { color: #fff; font-weight: 600; }
