/*
Theme Name: Robs website
Theme URI: https://www.robertsteers.com.au/
Author: Robert Steers
Description: Consultant website for Robert Steers. Block theme built on the "marked up" brand: chart paper, ink, a cobalt biro and one highlighted figure. Design tokens live in theme.json; components live here.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 2.0.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: robs-website
Tags: block-theme, business, portfolio, full-site-editing
*/

/* ---------- Tokens (aliases of theme.json presets, plus the few that theme.json cannot hold) ---------- */
:root {
	--paper: var(--wp--preset--color--paper);
	--paper-raised: var(--wp--preset--color--paper-raised);
	--grid: var(--wp--preset--color--grid);
	--ink: var(--wp--preset--color--ink);
	--ink-muted: var(--wp--preset--color--ink-muted);
	--cobalt: var(--wp--preset--color--cobalt);
	--cobalt-soft: var(--wp--preset--color--cobalt-soft);
	--highlighter: var(--wp--preset--color--highlighter);
	--baseline: var(--wp--preset--color--baseline);
	--unfavourable: var(--wp--preset--color--unfavourable);
	--favourable: var(--cobalt);
	--on-cobalt: #FFFFFF;
	--on-highlighter: #0E1726;
	--font-display: var(--wp--preset--font-family--display);
	--font-serif: var(--wp--preset--font-family--serif);
	--font-mono: var(--wp--preset--font-family--mono);
	--font-hand: var(--wp--preset--font-family--hand);
	--space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px; --space-5: 40px; --space-6: 64px; --space-7: 96px; --space-8: 128px;
	--radius-sm: 2px;
	--shadow-offset: 4px 4px 0 #0E1726;
	--focus-ring: 0 0 0 2px #F4F6FA, 0 0 0 4px #2448E0;
	--gutter-l: max(16px, env(safe-area-inset-left, 0px));
	--gutter-r: max(16px, env(safe-area-inset-right, 0px));
	--wrap: 1200px;
	--measure: 720px;
}
@media (min-width: 600px) { :root { --gutter-l: max(24px, env(safe-area-inset-left, 0px)); --gutter-r: max(24px, env(safe-area-inset-right, 0px)); } }
@media (min-width: 960px) { :root { --gutter-l: 40px; --gutter-r: 40px; } }

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title, .wp-block-site-title { font-stretch: 112%; text-wrap: balance; }
p { text-wrap: pretty; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
::selection { background: var(--highlighter); color: var(--on-highlighter); }
img { max-width: 100%; height: auto; }
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* ---------- Layout: full-bleed sections with a 1200px wrap ---------- */
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > main, .rs-main { margin-block: 0; }
.rs-main > .entry-content, .rs-main > .wp-block-post-content { margin-block: 0; }
.rs-section { margin-block: 0 !important; padding-block: var(--space-6); }
@media (min-width: 960px) { .rs-section { padding-block: var(--space-7); } }
.rs-section.is-tight { padding-block: var(--space-5); }
.rs-section.is-tight-top { padding-top: var(--space-4); }
.rs-wrap { max-width: calc(var(--wrap) + var(--gutter-l) + var(--gutter-r)); margin-inline: auto !important; padding-left: var(--gutter-l); padding-right: var(--gutter-r); box-sizing: border-box; }
.rs-wrap > * { margin-block-start: 0; }
.rs-wrap > * + * { margin-block-start: var(--space-4); }
.rs-measure, .rs-wrap > p, .rs-wrap > ul, .rs-wrap > ol, .rs-wrap > h2, .rs-wrap > h3 { max-width: var(--measure); }
.rs-wrap > h2 + p { margin-block-start: var(--space-3); }
.rs-section.is-raised { background: var(--paper-raised); border-block: 1px solid var(--grid); }
.rs-section.is-ink { background: var(--ink); color: #EEF1F7; }
.rs-section.is-tint { background: var(--cobalt-soft); border-top: 1px solid #C9D4FB; }
.rs-section.is-ink :where(h1, h2, h3, h4) { color: #FFFFFF; }
.rs-section.is-ink a:not(.wp-block-button__link) { color: #A9B8FF; }
.rs-section.is-ink .rs-label { color: #A3AEC2; }
.rs-graph-paper { background-color: var(--paper-raised); background-image: linear-gradient(rgba(36,72,224,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(36,72,224,.07) 1px, transparent 1px); background-size: 24px 24px; background-position: -1px -1px; }

/* ---------- Type utilities ---------- */
.rs-label, .rs-eyebrow { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
p.rs-label { margin-block-end: 0; }
.rs-label + h1, .rs-label + h2, .rs-label + h3 { margin-block-start: var(--space-3) !important; }
.rs-hero-title { font-size: var(--wp--preset--font-size--huge) !important; font-weight: 800 !important; line-height: 1 !important; letter-spacing: -.025em !important; max-width: 14ch; }
.rs-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.55; max-width: 36em; }
.rs-small, .rs-small p { font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.rs-source { font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.rs-muted { color: var(--ink-muted); }
.rs-hl { background: var(--highlighter); color: var(--on-highlighter); padding: 0 4px; margin: 0 -2px; border-radius: 2px 6px 3px 8px / 7px 3px 6px 2px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.rs-note { display: inline-block; font-family: var(--font-hand); font-size: 28px; line-height: 1; color: var(--cobalt); transform: rotate(-3deg); }

/* ---------- Buttons ---------- */
.wp-block-buttons { gap: var(--space-3); }
.wp-block-button__link { font-stretch: 112%; transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease; }
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-offset); background: var(--cobalt); color: #FFFFFF; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--ink); border-color: var(--ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--cobalt-soft); }
.rs-section.is-ink .wp-block-button.is-style-outline .wp-block-button__link { color: #FFFFFF; border-color: #FFFFFF; }
.rs-section.is-ink .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,.08); }
.rs-section.is-ink .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { box-shadow: 4px 4px 0 #FFE14D; }
.rs-link { font-family: var(--font-display); font-stretch: 112%; font-weight: 650; font-size: 1rem; text-decoration-thickness: 2px; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .wp-block-button__link { transition: none; } .wp-block-button__link:hover { transform: none !important; } }

/* ---------- Header ---------- */
.rs-header { background: var(--paper); border-bottom: 1px solid var(--grid); position: relative; z-index: 20; }
.rs-header .rs-wrap { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: 18px; }
.rs-header .rs-wrap > * + * { margin-block-start: 0; }
.rs-logo { display: inline-flex; line-height: 0; }
.rs-logo svg { height: 34px; width: auto; display: block; }
@media (max-width: 599px) { .rs-logo svg { height: 28px; } }
.rs-header .wp-block-navigation { font-stretch: 112%; gap: 0; }
.rs-header .wp-block-navigation .wp-block-navigation__container { gap: 4px 28px; }
.rs-header .wp-block-navigation a { text-decoration: none; color: var(--ink); }
.rs-header .wp-block-navigation-item__content:hover, .rs-header .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; text-decoration-color: var(--cobalt); }
.rs-header .wp-block-navigation__submenu-container { background: var(--paper-raised) !important; border: 1px solid var(--grid) !important; box-shadow: var(--shadow-offset); padding: 8px 0 !important; min-width: 230px !important; }
.rs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 9px 20px !important; font-weight: 500; }
.rs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--cobalt-soft); text-decoration: none; }
.rs-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--paper) !important; padding: var(--space-4) var(--gutter-r) var(--space-4) var(--gutter-l) !important; }
.rs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; font-size: 1.375rem; align-items: flex-start !important; }
.rs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; }
.rs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.rs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 8px 0 0 16px !important; font-size: 1.0625rem; background: transparent !important; }
.rs-header .wp-block-navigation__responsive-container-open svg, .rs-header .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* ---------- Footer ---------- */
.rs-footer { background: var(--ink); color: #C9D1E0; font-size: 15px; line-height: 1.6; }
.rs-footer .rs-wrap { padding-block: var(--space-6) var(--space-5); }
.rs-footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: var(--space-5); }
@media (max-width: 899px) { .rs-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 519px) { .rs-footer-grid { grid-template-columns: 1fr; } }
.rs-footer .rs-logo svg { height: 30px; }
.rs-footer h2 { font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: #A3AEC2; margin: 0 0 var(--space-3); font-stretch: 100%; }
.rs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rs-footer a { color: #FFFFFF; text-decoration: none; }
.rs-footer a:hover { text-decoration: underline; text-decoration-color: var(--highlighter); text-underline-offset: 4px; }
.rs-footer .rs-tagline { margin: var(--space-3) 0 0; max-width: 30ch; }
.rs-footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid #26324A; font-family: var(--font-mono); font-size: 12px; color: #A3AEC2; }

/* ---------- Hero ---------- */
.rs-hero { padding-block: var(--space-6) var(--space-6); border-bottom: 1px solid var(--grid); }
@media (min-width: 960px) { .rs-hero { padding-block: var(--space-7); } }
.rs-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); align-items: center; }
@media (min-width: 1000px) { .rs-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--space-6); } }
.rs-hero-grid > * + * { margin-block-start: 0 !important; }
.rs-hero-text > * { margin-block: 0; }
.rs-hero-text > * + * { margin-block-start: var(--space-4); }
.rs-hero-text > .rs-label + * { margin-block-start: var(--space-3); }
.rs-page-hero h1 { max-width: 20ch; }
.rs-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-3) var(--space-4); margin: 0; padding-top: var(--space-4); border-top: 2px solid var(--ink); max-width: 960px; }
.rs-meta div { min-width: 0; }
.rs-meta dt { font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); font-weight: 500; }
.rs-meta dd { margin: 4px 0 0; font-size: 15px; line-height: 1.55; }

/* ---------- Grids and cards ---------- */
.rs-grid { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 680px) { .rs-grid.cols-2, .rs-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .rs-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rs-card { position: relative; background: var(--paper-raised); border: 1px solid var(--grid); padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.rs-card h3 { margin: var(--space-1) 0 0; font-size: 1.375rem; line-height: 1.27; }
.rs-card h3 a { color: var(--ink); text-decoration: none; }
.rs-card h3 a::after { content: ""; position: absolute; inset: 0; }
.rs-card p { margin: 0; font-size: 15px; line-height: 1.6; }
.rs-card .rs-more { margin-top: auto; padding-top: var(--space-3); font-family: var(--font-display); font-stretch: 112%; font-weight: 650; font-size: 15px; color: var(--cobalt); }
.rs-card:hover { border-color: var(--ink); box-shadow: var(--shadow-offset); transform: translate(-2px, -2px); }
@media (prefers-reduced-motion: reduce) { .rs-card, .rs-card:hover { transition: none; transform: none; } }
.rs-card .rs-result { font-family: var(--font-display); font-stretch: 112%; font-weight: 750; font-size: 1.0625rem; line-height: 1.35; color: var(--ink); }
.rs-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rs-tags li, .rs-tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 2px 8px; border: 1px solid var(--grid); color: var(--ink-muted); background: var(--paper); }
a.rs-tag { text-decoration: none; color: var(--ink); position: relative; z-index: 2; }
a.rs-tag:hover { border-color: var(--cobalt); color: var(--cobalt); }

/* ---------- Proof stat ---------- */
.rs-stats { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
@media (min-width: 760px) { .rs-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rs-stats.cols-2 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .rs-stats.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rs-stat { display: grid; gap: var(--space-2); align-content: start; padding-top: var(--space-3); border-top: 2px solid var(--ink); min-width: 0; }
.rs-stat-figure { font-family: var(--font-display); font-stretch: 112%; font-size: clamp(2.75rem, 2rem + 2.4vw, 4rem); line-height: 1; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: var(--ink); }
.rs-stat-figure.is-favourable { color: var(--cobalt); }
.rs-stat-text { font-size: 15px; line-height: 1.6; max-width: 32ch; }
.rs-stat-role { font-size: 15px; line-height: 1.6; color: var(--ink-muted); max-width: 32ch; }
.rs-stat-role b { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--ink); margin-right: 6px; }

/* ---------- Verdicts ---------- */
.rs-verdict { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; padding: 4px 10px; border-radius: var(--radius-sm); border: 2px solid transparent; white-space: nowrap; min-width: 52px; box-sizing: border-box; }
.rs-verdict-back { background: var(--cobalt); border-color: var(--cobalt); color: var(--on-cobalt); }
.rs-verdict-fix { border-color: var(--ink); color: var(--ink); }
.rs-verdict-test { border-color: var(--baseline); border-style: dashed; color: var(--ink); }
.rs-verdict-stop { border-color: var(--unfavourable); color: var(--unfavourable); }
.rs-verdicts { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--grid); }
.rs-verdicts li { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: var(--space-3); align-items: baseline; padding: var(--space-3) 0; border-bottom: 1px solid var(--grid); font-size: 16px; line-height: 1.6; }
.rs-verdicts li strong { font-family: var(--font-display); font-stretch: 112%; font-weight: 700; }
.rs-verdicts.is-large li { padding: var(--space-4) 0; font-size: 18px; }
.rs-caption { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); margin-top: var(--space-2) !important; }

/* ---------- Split layouts ---------- */
.rs-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
@media (min-width: 960px) { .rs-split { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-6); } .rs-split.is-even { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rs-split.is-aside-left { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
.rs-split > * { min-width: 0; margin: 0 !important; }
.rs-split > div > * { margin-block: 0; }
.rs-split > div > * + * { margin-block-start: var(--space-3); }
.rs-split h2 + p, .rs-split h3 + p { margin-block-start: var(--space-3); }

/* ---------- Lists ---------- */
.rs-ticks { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.rs-ticks li { position: relative; padding-left: 30px; line-height: 1.55; }
.rs-ticks li::before { content: ""; position: absolute; left: 0; top: .72em; width: 16px; height: 2px; background: var(--cobalt); }
.rs-wrap > .rs-steps, .rs-wrap > h2 + .rs-steps { margin-block-start: var(--space-4); }
.rs-steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; gap: 0; border-top: 2px solid var(--ink); }
.rs-steps li { counter-increment: step; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4) 0; border-bottom: 1px solid var(--grid); line-height: 1.6; }
.rs-steps li::before { content: counter(step, decimal-leading-zero); font-family: var(--font-mono); font-size: 14px; color: var(--cobalt); font-weight: 500; padding-top: 4px; }
.rs-steps li strong { display: block; font-family: var(--font-display); font-stretch: 112%; font-size: 1.25rem; line-height: 1.3; margin-bottom: 4px; }

/* ---------- Case study page ---------- */
.rs-case-block { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2) var(--space-5); padding-block: var(--space-5); border-top: 1px solid var(--grid); }
.rs-case-block:first-child { border-top: 2px solid var(--ink); }
@media (min-width: 900px) { .rs-case-block { grid-template-columns: 200px minmax(0, var(--measure)); } }
.rs-case-block > h2 { font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--ink-muted); margin: 6px 0 0; font-stretch: 100%; line-height: 16px; }
.rs-case-block > div > * { margin-block: 0; }
.rs-case-block > div > * + * { margin-block-start: var(--space-3); }
.rs-case-block.is-result { background: var(--cobalt-soft); border-top-color: var(--cobalt-soft); padding-inline: var(--space-4); margin-inline: calc(var(--space-4) * -1); }
@media (max-width: 599px) { .rs-case-block.is-result { margin-inline: calc(var(--gutter-l) * -1); padding-inline: var(--gutter-l); } }
.rs-case-block.is-limits > div { color: var(--ink-muted); }
.rs-case-block .rs-stats { margin-top: var(--space-2); gap: var(--space-4); }
.rs-case-block .rs-stat-figure { font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3rem); }
.rs-verdict-line { display: flex; gap: var(--space-3); align-items: baseline; }
.rs-verdict-line > span:first-child { flex: none; }

/* ---------- Chart ---------- */
.rs-chart { background: var(--paper-raised); border: 1px solid var(--grid); padding: var(--space-4); display: grid; gap: var(--space-3); margin: 0; min-width: 0; }
.rs-chart-head { display: flex; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.rs-chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.rs-chart .grid-line { stroke: var(--grid); stroke-width: 1; }
.rs-chart .axis { stroke: var(--ink); stroke-width: 2; }
.rs-chart .tick { fill: var(--ink-muted); font-family: var(--font-mono); font-size: 12px; }
.rs-chart .cat { fill: var(--ink); font-family: var(--font-mono); font-size: 13px; }
.rs-chart .before { fill: var(--paper-raised); stroke: var(--baseline); stroke-width: 2; stroke-dasharray: 5 4; }
.rs-chart .after { fill: var(--cobalt); }
.rs-chart .val { fill: var(--ink); font-family: var(--font-mono); font-size: 13px; font-weight: 500; }
.rs-chart .val-hl { fill: var(--highlighter); }
.rs-chart .note-text { fill: var(--cobalt); font-family: var(--font-hand); font-size: 30px; }
.rs-chart .note-arrow { fill: none; stroke: var(--cobalt); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rs-chart .key { fill: var(--ink-muted); font-family: var(--font-mono); font-size: 12px; }
.rs-chart .rs-source { margin: 0; }

/* ---------- CTA band ---------- */
.rs-cta .rs-wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); align-items: end; }
@media (min-width: 900px) { .rs-cta .rs-wrap { grid-template-columns: minmax(0, 1.5fr) auto; } }
.rs-cta .rs-wrap > * + * { margin-block-start: 0; }
.rs-cta h2 { font-size: var(--wp--preset--font-size--xx-large); margin: 0; max-width: 16ch; }
.rs-cta p { margin: var(--space-3) 0 0; max-width: 40em; }

/* ---------- Timeline ---------- */
.rs-timeline { margin: 0; display: grid; border-top: 2px solid var(--ink); }
.rs-timeline > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--grid); }
@media (min-width: 700px) { .rs-timeline > div { grid-template-columns: 140px minmax(0, 1fr); } }
.rs-timeline dt { font-family: var(--font-mono); font-size: 13px; color: var(--ink-muted); padding-top: 3px; font-variant-numeric: tabular-nums; }
.rs-timeline dd { margin: 0; line-height: 1.55; }
.rs-timeline dd strong { font-family: var(--font-display); font-stretch: 112%; font-weight: 700; }

/* ---------- Contact form (Contact Form 7) ---------- */
.rs-form .wpcf7-form { display: grid; gap: var(--space-3); }
.rs-form .wpcf7-form p { margin: 0; }
.rs-form label br { display: none; }
.rs-form label > span[aria-hidden] { color: var(--unfavourable); }
.rs-form label { display: block; font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; color: var(--ink); }
.rs-form .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.rs-form input[type="text"], .rs-form input[type="email"], .rs-form input[type="tel"], .rs-form select, .rs-form textarea { width: 100%; box-sizing: border-box; font-family: var(--font-serif); font-size: 17px; line-height: 1.5; text-transform: none; letter-spacing: 0; padding: 12px 14px; border: 1px solid var(--baseline); border-radius: var(--radius-sm); background: var(--paper-raised); color: var(--ink); }
.rs-form textarea { min-height: 160px; resize: vertical; }
.rs-form input:focus, .rs-form select:focus, .rs-form textarea:focus { outline: 2px solid transparent; box-shadow: var(--focus-ring); border-color: var(--cobalt); }
.rs-form .wpcf7-submit { font-family: var(--font-display); font-stretch: 112%; font-weight: 650; font-size: 1rem; padding: 14px 24px; border: 2px solid var(--cobalt); border-radius: var(--radius-sm); background: var(--cobalt); color: #FFFFFF; cursor: pointer; justify-self: start; transition: transform .12s ease, box-shadow .12s ease; }
.rs-form .wpcf7-submit:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-offset); }
.rs-form .wpcf7-not-valid-tip { font-family: var(--font-serif); text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--unfavourable); margin-top: 4px; }
.rs-form .wpcf7-response-output { margin: 0 !important; padding: 12px 14px !important; border: 2px solid var(--cobalt) !important; font-size: 15px; }
.rs-form .wpcf7-spinner { margin: 0 0 0 12px; }
.rs-form .rs-form-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
@media (min-width: 640px) { .rs-form .rs-form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rs-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.rs-contact-list li { display: grid; gap: 4px; padding-top: var(--space-3); border-top: 2px solid var(--ink); }
.rs-contact-list a, .rs-contact-list span.rs-value { font-family: var(--font-display); font-stretch: 112%; font-weight: 650; font-size: 1.125rem; word-break: break-word; }

/* ---------- Generic page and posts ---------- */
.rs-prose { max-width: var(--measure); }
.rs-prose > * + * { margin-block-start: var(--space-3); }
.wp-block-post-content.rs-prose h2 { margin-block-start: var(--space-5); }
.wp-block-separator { border: 0; border-top: 1px solid var(--grid); }

/* ---------- Growth Maturity Audit ---------- */
.rs-audit { background: var(--paper-raised); border: 1px solid var(--grid); border-top: 2px solid var(--ink); padding: var(--space-5) var(--space-4); max-width: 960px; min-height: 320px; box-sizing: border-box; }
@media (min-width: 760px) { .rs-audit { padding: var(--space-5) var(--space-6); } }
.rs-audit h2 { margin: var(--space-2) 0 var(--space-4); font-size: var(--wp--preset--font-size--x-large); }
.rs-audit p { margin: 0 0 var(--space-3); max-width: 62ch; }
.rs-audit-areas { columns: 2; column-gap: var(--space-5); padding-left: 1.4em; margin: 0 0 var(--space-4); font-family: var(--font-display); font-stretch: 112%; font-weight: 600; line-height: 2; }
@media (max-width: 559px) { .rs-audit-areas { columns: 1; } }
.rs-audit-areas li::marker { font-family: var(--font-mono); font-size: 13px; color: var(--cobalt); }
.rs-audit-progress { height: 6px; background: var(--grid); margin-bottom: var(--space-4); }
.rs-audit-progress span { display: block; height: 100%; background: var(--cobalt); transition: width .3s ease; }
.rs-q { border: 0; padding: 0; margin: 0 0 var(--space-5); min-width: 0; }
.rs-q legend { font-family: var(--font-display); font-stretch: 112%; font-weight: 700; font-size: 1.1875rem; line-height: 1.35; margin-bottom: var(--space-3); padding: 0; }
.rs-q-num { font-family: var(--font-mono); font-size: 14px; font-weight: 500; color: var(--cobalt); margin-right: 4px; }
.rs-q.is-missing legend { color: var(--unfavourable); }
.rs-opts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 700px) { .rs-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rs-opt { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: start; padding: 14px 16px; border: 1px solid var(--grid); background: var(--paper); cursor: pointer; font-size: 16px; line-height: 1.45; transition: border-color .12s ease, background-color .12s ease; }
.rs-opt:hover { border-color: var(--baseline); }
.rs-opt input { grid-row: span 2; margin: 3px 0 0; width: 18px; height: 18px; accent-color: var(--cobalt); }
.rs-opt-level { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.rs-opt.is-checked, .rs-opt:has(input:checked) { border-color: var(--cobalt); background: var(--cobalt-soft); box-shadow: inset 0 0 0 1px var(--cobalt); }
.rs-opt.is-checked .rs-opt-level { color: var(--cobalt); }
.rs-q.is-missing .rs-opt { border-color: var(--unfavourable); }
.rs-audit-error { color: var(--unfavourable); font-weight: 600; }
.rs-audit-nav { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: var(--space-4) 0 var(--space-3); }
.rs-audit-btn { display: inline-flex; align-items: center; font-family: var(--font-display); font-stretch: 112%; font-weight: 650; font-size: 1rem; line-height: 1.25; padding: 14px 24px; border: 2px solid var(--ink); border-radius: var(--radius-sm); background: transparent; color: var(--ink); text-decoration: none; cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease; }
.rs-audit-btn:hover { background: var(--cobalt-soft); }
.rs-audit-btn.is-primary { background: var(--cobalt); border-color: var(--cobalt); color: #FFFFFF; }
.rs-audit-btn.is-primary:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-offset); background: var(--cobalt); }
.rs-audit-btn.is-quiet { border-color: transparent; text-decoration: underline; text-underline-offset: 4px; padding-inline: 8px; }
.rs-audit-btn.is-quiet:hover { background: transparent; text-decoration: none; }
@media (prefers-reduced-motion: reduce) { .rs-audit-btn, .rs-audit-progress span, .rs-opt { transition: none; } .rs-audit-btn.is-primary:hover { transform: none; } }

.rs-audit-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-4); align-items: end; }
.rs-audit-head h2.rs-audit-stage { font-size: var(--wp--preset--font-size--xx-large); margin: var(--space-2) 0 var(--space-3); }
.rs-audit-score { text-align: right; display: grid; gap: 4px; }
.rs-audit-score .rs-stat-figure { color: var(--cobalt); }
.rs-audit-scale { list-style: none; margin: var(--space-4) 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--grid); }
.rs-audit-scale li { padding: 10px 8px 0 0; display: grid; gap: 2px; color: var(--ink-muted); font-family: var(--font-display); font-stretch: 112%; font-size: 15px; }
.rs-audit-scale li.is-current { border-top: 4px solid var(--cobalt); margin-top: -3px; color: var(--ink); }
.rs-audit-scale li.is-current strong { color: var(--cobalt); }
.rs-audit-chart { margin: var(--space-4) 0 var(--space-5); }
.rs-bars { display: grid; gap: 8px; }
.rs-bar-row { display: grid; grid-template-columns: minmax(120px, 210px) minmax(0, 1fr) 44px; gap: 12px; align-items: center; }
@media (max-width: 559px) { .rs-bar-row { grid-template-columns: minmax(0, 1fr) 40px; } .rs-bar-label { grid-column: 1 / -1; margin-bottom: -4px; } .rs-bar-axis > span:first-child { display: none; } }
.rs-bar-label { font-family: var(--font-mono); font-size: 13px; line-height: 1.3; color: var(--ink); }
.rs-bar-track { position: relative; height: 22px; background: repeating-linear-gradient(90deg, var(--grid) 0 1px, transparent 1px 25%); }
.rs-bar-track::after { content: ""; position: absolute; top: -4px; bottom: -4px; left: 60%; border-left: 2px dashed var(--baseline); }
.rs-bar-fill { display: block; height: 100%; background: var(--cobalt); }
.rs-bar-fill.is-below { background: var(--paper-raised); box-shadow: inset 0 0 0 2px var(--cobalt); }
.rs-bar-val { font-family: var(--font-mono); font-size: 14px; font-weight: 500; text-align: center; font-variant-numeric: tabular-nums; }
.rs-bar-val.rs-hl { margin: 0; padding: 1px 4px; }
.rs-bar-axis .rs-bar-ticks { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); }
.rs-bar-axis .rs-bar-ticks span { width: 0; display: flex; justify-content: center; }
.rs-audit-note { margin: var(--space-2) 0 0 !important; }
.rs-audit-sub { font-size: 1.375rem; margin: var(--space-5) 0 var(--space-3); }
.rs-card.is-static:hover { transform: none; box-shadow: none; border-color: var(--grid); }
.rs-card.is-static h3 { font-size: 1rem; margin-top: var(--space-2); }
.rs-audit-cta { margin-top: var(--space-5); padding: var(--space-4); background: var(--cobalt-soft); display: grid; gap: var(--space-2); }
.rs-audit-cta h3 { margin: 0 0 var(--space-2); font-size: 1.375rem; }
.rs-audit-cta .rs-audit-nav { margin-bottom: 0; }
.rs-prefill-note { margin: 0 0 var(--space-2) !important; color: var(--cobalt) !important; }
@media (max-width: 599px) {
	.rs-audit { padding: var(--space-4) var(--space-3); }
	.rs-audit-head { grid-template-columns: minmax(0, 1fr); }
	.rs-audit-score { text-align: left; grid-template-columns: auto 1fr; align-items: baseline; gap: 10px; }
	.rs-audit-scale { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 10px; }
	.rs-audit-scale li.is-current { margin-top: 0; }
	.rs-bar-row { grid-template-columns: minmax(0, 1fr) 44px; column-gap: 10px; }
	.rs-audit-chart { padding: var(--space-3); }
}

/* ---------- Author box (EEAT) ---------- */
.rs-author { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--space-4); align-items: start; max-width: 820px; padding: var(--space-4); background: var(--paper-raised); border: 1px solid var(--grid); border-top: 2px solid var(--ink); }
.rs-author-mark { width: 64px; height: 64px; border-radius: 9999px; background: var(--cobalt); color: #FFFFFF; display: grid; place-items: center; font-family: var(--font-display); font-stretch: 112%; font-weight: 800; font-size: 22px; letter-spacing: -.02em; }
.rs-author-body > * { margin: 0; }
.rs-author-body > * + * { margin-top: 6px; }
.rs-author-name { font-family: var(--font-display); font-stretch: 112%; font-weight: 750; font-size: 1.25rem; }
.rs-author-name a { color: var(--ink); text-decoration: none; }
.rs-author-name a:hover { text-decoration: underline; text-decoration-color: var(--cobalt); }
.rs-author-body p:not(.rs-label):not(.rs-author-name):not(.rs-source) { font-size: 16px; line-height: 1.6; max-width: 62ch; }
@media (max-width: 519px) { .rs-author { grid-template-columns: 1fr; } }
.rs-byline a { color: var(--ink); }
.wp-block-post-content.rs-prose + .rs-author, .rs-wrap > .rs-author { margin-top: var(--space-6); }
