/*
 * WRS theme — faithful rebuild of the recovered womensradiostation.com design.
 *
 * Original stylesheet. Values (sizes, colours, spacing, breakpoints) were measured from the recovered captures
 * and their stylesheets; no code from the old theme or plugins is reused. Recovered breakpoints: 1679, 1439,
 * 1279, 1023/1024, 767, 700, 479. The desktop captures are 1440 px wide (the ≤1679 tier), mobile 390 px.
 */

/* ================================================================== tokens */
:root {
	--wrs-pink: #e3006c;          /* theme accent: links, section headings, bars */
	--wrs-brand: #e4005a;         /* card borders and buttons (recovered plugin colour) */
	--wrs-text: #7a7e83;
	--wrs-text-light: #9c9da1;
	--wrs-text-dark: #071021;
	--wrs-bg: #f1f3f6;
	--wrs-surface: #ffffff;
	--wrs-menu-bg: #fcfcfc;
	--wrs-border: #e4e4e4;
	--wrs-hover: #083fa9;
	--wrs-green: #8cc80c;
	--wrs-accent-text: #fcfcfc;
	--wrs-shadow: 0 3px 20px rgba(29, 38, 38, 0.051);
	--wrs-rail: 110px;            /* collapsed side menu */
	--wrs-panel: 330px;           /* expanded side menu */
	--wrs-gap: 60px;              /* page padding */
	--wrs-header: 58.875px;       /* top bar */
	--wrs-sidebar-cut: 375px;     /* recovered "normal content" = page width − 375 */
}

@media (max-width: 1679px) {
	:root { --wrs-rail: 100px; --wrs-panel: 300px; --wrs-gap: 45px; }
}

@media (max-width: 1439px) {
	:root { --wrs-gap: 30px; }
}

@media (max-width: 1023px) {
	:root { --wrs-rail: 0px; --wrs-header: 61.67px; }
}

@media (max-width: 479px) {
	:root { --wrs-gap: 20px; }
}

/* ==================================================================== base */
html { font-size: 14px; }

body {
	background: var(--wrs-bg);
	color: var(--wrs-text);
	font-family: Inter, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6em;
	margin: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--wrs-text-dark);
	font-family: Inter, sans-serif;
	font-weight: 600;
	margin: 0;
}

h1 { font-size: 45px; letter-spacing: -0.02em; line-height: 1.111em; }
h2 { font-size: 28px; line-height: 1.142em; }
h3 { font-size: 23px; line-height: 1.217em; }
h4 { font-size: 20px; line-height: 1.3em; }
h5 { font-size: 18px; line-height: 1.335em; }
h6 { font-size: 15px; line-height: 1.333em; }

@media (max-width: 1679px) {
	h1 { font-size: 38px; letter-spacing: -0.01em; line-height: 1.142em; }
}

@media (max-width: 1439px) {
	h1 { font-size: 28px; letter-spacing: 0; }
	h2 { font-size: 23px; }
	h3 { font-size: 20px; }
	h4 { font-size: 18px; }
	h5 { font-size: 16px; }
}

@media (max-width: 479px) {
	h1 { font-size: 24px; }
	h2 { font-size: 22px; }
}

p { margin: 0 0 24px; }

a { color: var(--wrs-pink); text-decoration: none; transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease; }
a:hover { color: var(--wrs-hover); }

img { height: auto; max-width: 100%; }

button, input { font-family: inherit; }

/* Recovered keyboard focus style (1px dotted #888), shown for keyboard users only. */
:focus { outline: 0; }
:focus-visible { outline: 1px dotted #888 !important; outline-offset: 1px; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* Core skip link, styled as the recovered one. */
.skip-link.screen-reader-text:focus {
	background: #f1f1f1;
	clip: auto;
	clip-path: none;
	color: #0073aa;
	height: auto;
	left: 6px;
	padding: 1em 1.5em;
	position: fixed !important;
	top: 6px;
	width: auto;
	z-index: 100010;
}

.wrs-icon { display: inline-block; flex: 0 0 auto; height: 1em; vertical-align: middle; width: 1em; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* =================================================================== shell */
.wp-site-blocks {
	padding-left: var(--wrs-rail);
	transition: padding-left 0.3s linear;
}

/* Above 1679 px the open menu pushes the page (recovered); below it overlays. */
@media (min-width: 1680px) {
	:root:has(.wrs-menu.is-open) .wp-site-blocks { padding-left: var(--wrs-panel); }
	:root:has(.wrs-menu.is-open) .wrs-topbar { left: var(--wrs-panel); }
}

.wrs-main {
	margin: 0 auto;
	padding: calc(var(--wrs-header) + var(--wrs-gap)) var(--wrs-gap) var(--wrs-gap);
}

/* Page sections stack like the recovered flex containers: margins never collapse. */
.wrs-page { display: flex; flex-direction: column; }

/* ------------------------------------------------------------- side menu */
.wrs-menu {
	background: var(--wrs-menu-bg);
	bottom: 0;
	box-shadow: 0 var(--wrs-header) 20px rgba(0, 0, 0, 0.1);
	left: 0;
	overflow: hidden;
	position: fixed;
	top: 0;
	transition: width 0.3s linear, box-shadow 0.3s linear;
	width: var(--wrs-rail);
	z-index: 8004;
}

.wrs-menu.is-open,
.wrs-menu:has(.wrs-menu__panel:hover),
.wrs-menu:has(.wrs-menu__panel:focus-visible),
.wrs-menu:has(.wrs-menu__panel :focus-visible) {
	box-shadow: 0 3px 20px rgba(0, 0, 0, 0.102);
	width: var(--wrs-panel);
}

.wrs-menu__top {
	align-items: center;
	background: #fff;
	box-shadow: 0 3px 16px rgba(0, 0, 0, 0.051);
	box-sizing: border-box;
	display: flex;
	min-height: var(--wrs-header);
	padding: 15px 30px;
	position: relative;
	width: var(--wrs-panel);
}

/* The divider at the rail edge (collapsed only). */
.wrs-menu__top::before {
	background: var(--wrs-border);
	content: "";
	height: 17px;
	left: calc(var(--wrs-rail) - 0.1px);
	position: absolute;
	top: calc(50% - 8.5px + 0.2em);
	transition: opacity 0.3s;
	width: 1px;
}

.wrs-menu__toggle {
	align-items: center;
	background: none;
	border: 0;
	color: var(--wrs-text-dark);
	cursor: pointer;
	display: flex;
	height: 18px;
	justify-content: center;
	left: 41px;
	padding: 0;
	position: absolute;
	top: calc(50% - 9px);
	transition: left 0.3s linear, color 0.3s;
	width: 18px;
	z-index: 1;
}

.wrs-menu__toggle .wrs-icon { height: 22px; width: 22px; }
.wrs-menu__toggle:hover { color: var(--wrs-pink); }

/* The recovered logo slot (49 px). The logo never loaded in the captures, so the strip keeps the captured
   header height; the logo sits inside it and shows only when the menu is expanded. */
.wrs-menu__logo { display: block; left: 30px; opacity: 0; position: absolute; top: 50%; transform: translateY(-50%); transition: opacity 0.3s; visibility: hidden; }
.wrs-menu__logo img { display: block; max-height: 49px; width: auto; }

.wrs-menu__panel {
	box-sizing: border-box;
	height: calc(100% - var(--wrs-header));
	overflow-x: hidden;
	overflow-y: auto;
	padding: 30px;
	scrollbar-width: none;
	width: var(--wrs-panel);
}

.wrs-menu__panel::-webkit-scrollbar { display: none; }

.wrs-menu__list { font-size: 14px; list-style: none; margin: 0; padding: 0; }

.wrs-menu__list > li + li { margin-top: 13px; }

/* An entry with a page and a sub-menu (All Jobs) has its chevron button beside the link, placed within the entry. */
.wrs-menu__item { position: relative; }

/* Long labels wrap to two lines inside the fixed-width panel, as recovered ("Membership – COMING SOON"). */
.wrs-menu__link {
	color: var(--wrs-text-dark);
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5em;
	padding: 0.714em 0 0.714em 3.93em;
	position: relative;
}

/* A "#" parent is its sub-menu's disclosure button; a placeholder entry (not rebuilt yet, or "#") does not navigate. */
.wrs-menu__link--parent { background: none; border: 0; box-sizing: border-box; cursor: pointer; font-family: inherit; text-align: left; width: 100%; }
.wrs-menu__link.is-inert { cursor: default; }

.wrs-menu__link:hover,
.wrs-menu__item.is-current .wrs-menu__link,
.wrs-menu__item.is-ancestor > .wrs-menu__link { color: var(--wrs-pink); }

.wrs-menu__tile {
	align-items: center;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.039);
	color: var(--wrs-text);
	display: flex;
	height: 40px;
	justify-content: center;
	left: 0;
	position: absolute;
	top: 0;
	width: 40px;
}

/* Sized so each icon paints as large as the recovered 18.2px glyphs (≈18.5px of ink; measured side by side). */
.wrs-menu__tile .wrs-icon { height: 22.2px; width: 22.2px; }

.wrs-menu__item.is-current .wrs-menu__tile,
.wrs-menu__item.is-ancestor > .wrs-menu__link .wrs-menu__tile { box-shadow: 0 3px 12px rgba(0, 0, 0, 0.078); color: var(--wrs-pink); }

.wrs-menu__label { opacity: 0; transition: opacity 0.3s; }

/* The recovered sub-menu chevron (open_child_menu): drawn at the entry's right edge (21px target); it turns up
   when open. The 22px icon (5.5 x 11px of ink, as the recovered glyph) sits 8.25px past the edge so that its ink
   ends at the edge. */
.wrs-menu__chevron { color: var(--wrs-text-dark); height: 22px; position: absolute; right: -8.25px; top: calc(50% - 11px); transition: transform 0.3s; width: 22px; }
.wrs-menu__link--parent .wrs-menu__chevron { top: 10.5px; }
.wrs-menu__expand { background: none; border: 0; color: var(--wrs-text-dark); cursor: pointer; display: block; height: 21px; padding: 0; position: absolute; right: 0; top: 2px; width: 21px; }
.wrs-menu__expand--top { top: 11px; }
.wrs-menu__link--parent .wrs-menu__chevron, .wrs-menu__expand--top { opacity: 0; transition: opacity 0.3s, transform 0.3s; }
.wrs-menu__item.is-expanded > .wrs-menu__link .wrs-menu__chevron,
.wrs-menu__item.is-expanded > .wrs-menu__expand .wrs-menu__chevron,
.wrs-menu__subitem.is-expanded > .wrs-menu__row .wrs-menu__chevron { transform: rotate(-90deg); }

/* Sub-menus (only in the expanded panel): grey entries with the recovered orange dots. */
.wrs-menu__sub { display: none; list-style: none; margin: 15.4px 0 16.8px 30.8px; padding: 0; }
.wrs-menu__sub .wrs-menu__sub { margin: 0 0 0 16.8px; }
.wrs-menu__subitem + .wrs-menu__subitem { margin-top: 2.8px; }
.wrs-menu__row { display: block; position: relative; }

.wrs-menu__sublink {
	color: var(--wrs-text);
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 21px;
	padding: 3px 0 2px 15.4px;
	position: relative;
}

.wrs-menu__sublink::before { background: #fb582a; border-radius: 50%; content: ""; height: 6px; left: 0; position: absolute; top: 10.5px; width: 6px; }
.wrs-menu__sublink.is-inert { cursor: default; }

.wrs-menu__sublink:hover,
.wrs-menu__subitem.is-current > .wrs-menu__row > .wrs-menu__sublink,
.wrs-menu__subitem.is-ancestor > .wrs-menu__row > .wrs-menu__sublink { color: var(--wrs-pink); }

/* As recovered, an entry's own icon sits on a line of its own above the entry. */
.wrs-menu__subicon { color: var(--wrs-pink); display: block; height: 21px; line-height: 21px; }
.wrs-menu__subicon .wrs-icon { height: 17px; width: 17px; }

.wrs-menu__caption {
	color: var(--wrs-text-light);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 21px;
	padding: 1.25em 0 0.45em 2px;
	position: relative;
	text-transform: uppercase;
	white-space: nowrap;
}

.wrs-menu__caption span { opacity: 0; transition: opacity 0.3s; }

/* Collapsed: section captions become 5 px dots centred on the rail. */
.wrs-menu__caption::before {
	background: var(--wrs-border);
	border-radius: 50%;
	content: "";
	height: 5px;
	left: 17px;
	position: absolute;
	top: calc(50% - 2.5px + 0.4em);
	transition: opacity 0.3s;
	width: 5px;
}

.wrs-menu.is-open .wrs-menu__top::before,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__top::before,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__top::before,
.wrs-menu.is-open .wrs-menu__caption::before,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__caption::before,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__caption::before { opacity: 0; }

.wrs-menu.is-open .wrs-menu__label,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__label,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__label,
.wrs-menu.is-open .wrs-menu__caption span,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__caption span,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__caption span,
.wrs-menu.is-open .wrs-menu__link--parent .wrs-menu__chevron,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__link--parent .wrs-menu__chevron,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__link--parent .wrs-menu__chevron,
.wrs-menu.is-open .wrs-menu__expand--top,
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__expand--top,
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__expand--top { opacity: 1; }

.wrs-menu.is-open .wrs-menu__sub:not([hidden]),
.wrs-menu:has(.wrs-menu__panel:hover) .wrs-menu__sub:not([hidden]),
.wrs-menu:has(.wrs-menu__panel :focus-visible) .wrs-menu__sub:not([hidden]) { display: block; }

.wrs-menu.is-open .wrs-menu__logo { opacity: 1; visibility: visible; }

.wrs-menu.is-open .wrs-menu__toggle { left: calc(var(--wrs-panel) - 2.93em - 3px); }

.wrs-menu__backdrop { display: none; }

@media (min-width: 1680px) {
	.wrs-menu__top { padding: 15px 37px; }
	.wrs-menu__toggle { left: 46px; }
	.wrs-menu__panel { padding: 59px 34px; }
}

/* Below 1024 px: the rail collapses to a header stub with the toggle; the panel opens as an overlay. */
@media (max-width: 1023px) {
	.wrs-menu { bottom: auto; box-shadow: none; height: var(--wrs-header); width: 78px; }
	.wrs-menu.is-open { bottom: 0; height: auto; width: var(--wrs-panel); }
	.wrs-menu:has(.wrs-menu__panel:hover):not(.is-open) { box-shadow: none; width: 78px; }
	.wrs-menu__top { padding: 15px 30px; }
	.wrs-menu__top::before { left: 77px; }
	.wrs-menu__toggle { left: 30px; }
	.wrs-menu__logo img { max-height: 29px; }
}

@media (max-width: 479px) {
	.wrs-menu__panel { padding: 25px; }
	.wrs-menu { width: 68px; }
	.wrs-menu:has(.wrs-menu__panel:hover):not(.is-open) { width: 68px; }
	.wrs-menu__top { padding: 15px 25px; }
	.wrs-menu__top::before { left: 67px; }
	.wrs-menu__toggle { left: 25px; }
}

/* ---------------------------------------------------------------- top bar */
.wrs-topbar {
	align-items: center;
	background: #fff;
	box-shadow: 0 3px 16px rgba(0, 0, 0, 0.02);
	box-sizing: border-box;
	display: flex;
	font-size: 14px;
	height: var(--wrs-header);
	left: var(--wrs-rail);
	padding: 0 var(--wrs-gap);
	position: fixed;
	right: 0;
	top: 0;
	transition: left 0.3s linear;
	z-index: 8000;
}

.wrs-topbar__search { flex: 0 0 33.333%; }

.wrs-search--header {
	align-items: center;
	display: flex;
	line-height: 2em;
	position: relative;
}

.wrs-search--header .wrs-search__field {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--wrs-text);
	font-size: 14px;
	height: 28px;
	line-height: 28px;
	padding: 0 0 0 2.642em;
	width: 297px;
}

.wrs-search--header .wrs-search__field::placeholder { color: var(--wrs-text-light); opacity: 1; }
.wrs-search--header .wrs-search__field::-webkit-search-cancel-button { display: none; }

.wrs-search--header .wrs-search__submit {
	background: none;
	border: 0;
	bottom: 1px;
	color: var(--wrs-text-dark);
	cursor: pointer;
	left: 0;
	padding: 0;
	position: absolute;
	transition: color 0.3s;
}

.wrs-search--header .wrs-search__submit .wrs-icon { height: 23px; width: 23px; }
.wrs-search--header .wrs-search__submit:hover { color: var(--wrs-pink); }

.wrs-topbar__search-toggle {
	background: none;
	border: 0;
	color: var(--wrs-text-dark);
	cursor: pointer;
	display: none;
	padding: 0;
}

.wrs-topbar__search-toggle .wrs-icon { height: 23px; width: 23px; }
.wrs-topbar__search-toggle:hover { color: var(--wrs-pink); }

/*
 * The recovered right-hand tools (Phase 8A): language selector, divider, messages and notifications, Login or
 * Register — the recovered sizes and spacing (14/21 semibold, -0.42px; 53.2px before the icons, 20px between them).
 */
.wrs-topbar__tools { align-items: center; display: flex; margin-left: auto; }

.wrs-lang { position: relative; }

.wrs-lang__toggle {
	align-items: center;
	background: none;
	border: 0;
	color: var(--wrs-text-dark);
	cursor: pointer;
	display: flex;
	font-size: 14px;
	font-weight: 600;
	height: 27px;
	letter-spacing: -0.42px;
	line-height: 21px;
	padding: 0;
}

.wrs-lang__flag { border-radius: 50%; display: block; height: 27px; object-fit: cover; width: 27px; }
.wrs-lang__title { margin-left: 11.2px; transition: color 0.3s; }
.wrs-lang__chevron { color: var(--wrs-text-light); height: 18px; margin: 0 -4.5px 0 3.9px; width: 18px; }
.wrs-lang__toggle:hover .wrs-lang__title, .wrs-lang.is-open .wrs-lang__title { color: var(--wrs-pink); }

.wrs-lang__list {
	background: #fff;
	box-shadow: 0 3px 20px rgba(29, 38, 38, 0.05);
	list-style: none;
	margin: 0;
	opacity: 0;
	padding: 19.6px 0;
	position: absolute;
	right: -21px;
	top: calc(50% + 30px);
	transition: opacity 0.3s, visibility 0.3s;
	visibility: hidden;
	width: 210px;
	z-index: 10000;
}

/* A hover bridge across the gap above the list. */
.wrs-lang__list::before { content: ""; height: 17px; left: 0; position: absolute; right: 0; top: -17px; }
.wrs-lang:hover .wrs-lang__list, .wrs-lang.is-open .wrs-lang__list { opacity: 1; visibility: visible; }
.wrs-lang__item + .wrs-lang__item { margin-top: 4.76px; }
.wrs-lang__name { color: var(--wrs-text-dark); display: block; font-size: 14px; font-weight: 500; line-height: 21px; padding: 9.225px 21px; transition: color 0.3s; }
.wrs-lang__name:hover, .wrs-lang__item.is-current .wrs-lang__name { color: var(--wrs-pink); }

.wrs-topbar__notices { align-items: center; display: flex; margin-left: 51.6px; position: relative; }
.wrs-topbar__notices::before { background: var(--wrs-border); content: ""; height: 17px; left: -26.2px; position: absolute; top: calc(50% - 7.1px); width: 1px; }
.wrs-topbar__icon { color: var(--wrs-text-dark); display: flex; transition: color 0.3s; }
.wrs-topbar__icon:hover { color: var(--wrs-pink); }
.wrs-topbar__messages .wrs-icon { height: 27px; width: 27px; }
.wrs-topbar__notifications { margin-left: 19px; }
.wrs-topbar__notifications .wrs-icon { height: 28px; width: 28px; }

.wrs-topbar__login {
	align-items: center;
	background: none;
	border: 0;
	color: var(--wrs-text-dark);
	cursor: pointer;
	display: flex;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: -0.42px;
	line-height: 21px;
	margin-left: 25.5px;
	padding: 0;
	transition: color 0.3s;
	white-space: nowrap;
}

.wrs-topbar__login:hover { color: var(--wrs-pink); }
.wrs-topbar__login-icon { height: 28px; width: 28px; }
.wrs-topbar__login-text { margin-left: 8px; }
.wrs-topbar__login-line + .wrs-topbar__login-line { margin-left: 7px; }

@media (max-width: 1439px) {
	.wrs-search--header .wrs-search__field { width: 193px; }
}

@media (max-width: 1023px) {
	.wrs-topbar { left: 78px; padding: 0 12px 0 var(--wrs-gap); }
}

/* Below 768px: icons only (flag, messages, notifications, search, login), as recovered. */
@media (max-width: 767px) {
	.wrs-topbar { padding-right: 24.5px; }
	.wrs-topbar__search { display: none; }
	.wrs-topbar__search-toggle { display: block; margin-left: 16.8px; }
	.wrs-lang__title, .wrs-lang__chevron { display: none; }
	.wrs-topbar__notices { margin-left: 51px; }
	.wrs-topbar__notices::before { left: -25.8px; }
	.wrs-topbar__messages .wrs-icon { height: 24.5px; width: 24.5px; }
	.wrs-topbar__notifications { margin-left: 14.2px; }
	.wrs-topbar__notifications .wrs-icon { height: 24.5px; width: 24.5px; }
	.wrs-topbar__search-toggle { margin-left: 14.3px; }
	.wrs-topbar__search-toggle .wrs-icon { height: 23px; width: 23px; }
	.wrs-topbar__login { margin-left: 16.3px; }
	.wrs-topbar__login-icon { height: 26px; width: 26px; }
	.wrs-topbar__login-text { display: none; }
}

@media (max-width: 479px) {
	.wrs-topbar { left: 68px; }
}

/* Full-screen search (below 768 px). */
.wrs-search-overlay {
	background: rgba(0, 0, 0, 0.8);
	inset: 0;
	position: fixed;
	z-index: 100005;
}

.wrs-search-overlay[hidden] { display: none; }

.wrs-search-overlay::before {
	background: #f9fafc;
	content: "";
	height: 250px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.wrs-search-overlay .wrs-search--header {
	border-bottom: 1px solid var(--wrs-border);
	left: 30px;
	position: absolute;
	right: 30px;
	top: 125px;
	transform: translateY(-50%);
}

.wrs-search-overlay .wrs-search__field { font-size: 18px; height: 3em; line-height: 3em; width: 100%; }
.wrs-search-overlay .wrs-search__submit { bottom: auto; top: 50%; transform: translateY(-50%); }
.wrs-search-overlay .wrs-search__submit .wrs-icon { height: 28px; width: 28px; }

.wrs-search-overlay__close {
	background: none;
	border: 0;
	color: var(--wrs-text-dark);
	cursor: pointer;
	height: 25px;
	padding: 0;
	position: absolute;
	right: 30px;
	top: 34px;
	transition: color 0.3s, transform 0.3s;
	width: 25px;
}

.wrs-search-overlay__close .wrs-icon { height: 25px; width: 25px; }
.wrs-search-overlay__close:hover { color: var(--wrs-pink); transform: rotate(-180deg); }

/* ============================================================ login popup */
/* The recovered popup (Phase 8A): a centred 460px white panel over a light veil that covers the whole page. */
.wrs-login { align-items: center; box-sizing: border-box; display: flex; inset: 0; justify-content: center; overflow-y: auto; padding: 30px; position: fixed; z-index: 100008; }
.wrs-login[hidden] { display: none; }
.wrs-login__veil { background: rgba(241, 243, 246, 0.9); inset: 0; position: fixed; }
.wrs-login__dialog { max-width: 100%; padding-top: 36px; position: relative; width: 460px; }

.wrs-login__close {
	background: none;
	border: 0;
	color: #292929;
	cursor: pointer;
	display: block;
	height: 25px;
	opacity: 0.65;
	padding: 0;
	position: absolute;
	right: -3px;
	top: 0;
	transition: opacity 0.3s;
	width: 25px;
}

.wrs-login__close .wrs-icon { height: 38px; left: -6.5px; position: absolute; top: -6.5px; width: 38px; }

.wrs-login__close:hover { opacity: 1; }

.wrs-login__panel { background: #fff; }
.wrs-login__tabs { display: flex; }

.wrs-login__tab {
	align-items: center;
	color: var(--wrs-pink);
	display: flex;
	flex: 1 1 50%;
	font-size: 15px;
	font-weight: 500;
	height: 49px;
	justify-content: center;
	position: relative;
}

.wrs-login__tab .wrs-icon { height: 13px; margin-right: 4.5px; width: auto; }
.wrs-login__tab.is-active { background: #f9fafc; }
.wrs-login__tab.is-active::after { background: var(--wrs-pink); content: ""; height: 2px; left: 0; position: absolute; right: 0; top: 0; }
.wrs-login__tab.is-disabled { cursor: default; }

.wrs-login__form { padding: 30px; }
.wrs-login__label { align-items: center; color: var(--wrs-text-dark); display: flex; font-size: 15px; font-weight: 500; height: 24px; line-height: 24px; margin-bottom: 12px; }
.wrs-login__label .wrs-icon { height: 25px; margin: 0 11px 0 -3px; width: 25px; }

.wrs-login__field {
	background: #fff;
	border: 1px solid var(--wrs-border);
	border-radius: 26px;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
	box-sizing: border-box;
	color: var(--wrs-text);
	display: block;
	font-size: 15px;
	height: 52px;
	line-height: 24px;
	margin: 0 0 30px;
	padding: 13px 20px;
	width: 100%;
}

/* As recovered, the row is as tall as the "Forgot password?" line; "Remember me" sits 9px lower. */
.wrs-login__row { align-items: flex-start; display: flex; height: 24px; justify-content: space-between; margin: -2px 0 28px; }
.wrs-login__remember { color: var(--wrs-text); cursor: pointer; font-size: 12px; line-height: 18px; margin-top: 9px; padding-left: 25.8px; position: relative; }
.wrs-login__check { height: 19px; left: 0; margin: 0; opacity: 0; position: absolute; top: 0; width: 19px; }
.wrs-login__remember span::before { border: 1px solid var(--wrs-border); border-radius: 4px; box-sizing: border-box; content: ""; height: 19px; left: 0; position: absolute; top: -0.5px; width: 19px; }
.wrs-login__check:checked + span::after { border: solid var(--wrs-pink); border-width: 0 2px 2px 0; content: ""; height: 9px; left: 7px; position: absolute; top: 2.5px; transform: rotate(45deg); width: 4px; }
.wrs-login__check:focus-visible + span::before { outline: 1px dotted #888; outline-offset: 1px; }
.wrs-login__forgot { font-size: 12px; line-height: 24px; margin-right: 12px; }

.wrs-login__submit {
	background: linear-gradient(to left, var(--wrs-hover) 50%, var(--wrs-pink) 50%) no-repeat left bottom / 210% 100% var(--wrs-pink);
	border: 0;
	border-radius: 26px;
	color: var(--wrs-accent-text);
	cursor: pointer;
	display: block;
	font-size: 12px;
	font-weight: 600;
	height: 50px;
	letter-spacing: 0.72px;
	line-height: 24px;
	text-transform: uppercase;
	transition: background-position 0.3s ease;
	width: 100%;
}

.wrs-login__submit:hover, .wrs-login__submit:focus-visible { background-position: right bottom; }

/* ============================================================= page title */
.wrs-page-title { margin-bottom: 30px; }

.wrs-page-title__caption {
	color: var(--wrs-text-dark);
	font-size: 28px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.142em;
	margin: 0 0 0.555em;
}

.wrs-page-title__subtitle { color: var(--wrs-text); font-size: 15px; line-height: 1.6em; margin: -0.55em 0 0; }

.wrs-page-title::after { background: var(--wrs-border); content: ""; display: block; height: 1px; margin-top: 1.3em; }

@media (min-width: 1680px) {
	.wrs-page-title { margin-bottom: 31px; }
}

@media (max-width: 1439px) {
	.wrs-page-title__caption { font-size: 23px; }
}

@media (max-width: 479px) {
	.wrs-page-title__caption { font-size: 22px; }
}

/* ================================================================ archives */
.wrs-archive-heading {
	color: var(--wrs-text-dark);
	font-size: 28px;
	font-weight: 600;
	line-height: 1;
	margin: 10px 0 20px;
}

.wrs-page--archive .wrs-grid-wrap { margin: 24px 0 10px; }

@media (max-width: 1439px) {
	.wrs-archive-heading { font-size: 23px; }
}

@media (max-width: 479px) {
	.wrs-archive-heading { font-size: 22px; }
}

/* Mobile, as recovered: a 25px gap under the title block, and the heading and card grid 2.5px wider than the
   content column on each side (the old container's -12.5px margin with 10px padding). */
@media (max-width: 767px) {
	.wrs-page--archive .wrs-page-title { margin-bottom: 25px; }
	.wrs-page--archive .wrs-archive-heading,
	.wrs-page--archive .wrs-grid-wrap { margin-left: -2.5px; margin-right: -2.5px; }
}

.wrs-empty { margin: 40px auto; max-width: 385px; text-align: center; }
.wrs-empty__text { margin-bottom: 30px; }

/* ========================================================== buttons, pills */
.wrs-btn {
	align-items: center;
	background: var(--wrs-brand);
	border: 0;
	border-radius: 12px;
	box-sizing: border-box;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-size: 15px;
	font-weight: 800;
	gap: 8px;
	justify-content: center;
	line-height: 1.05;
	max-width: 100%;
	min-width: 190px;
	padding: 13px 22px;
	text-decoration: none;
	transition: 0.2s ease;
}

.wrs-btn:hover, .wrs-btn:focus-visible { background: #000; color: #fff; }

.wrs-btn__icon { font-weight: 900; }

.wrs-pill {
	background: var(--wrs-brand);
	border-radius: 999px;
	color: #fff;
	display: inline-block;
	font-weight: 700;
	padding: 10px 14px;
	text-decoration: none;
	transition: 0.2s ease;
}

.wrs-pill:hover, .wrs-pill:focus-visible { background: #000; color: #fff; }

/* =================================================================== cards */
.wrs-grid-wrap { margin: 24px 0; }

.wrs-grid {
	align-items: start;
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.wrs-card {
	background: #fff;
	border: 3px solid var(--wrs-brand);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-align: center;
}

.wrs-card__image { background: #f5f5f5; display: block; height: 170px; padding: 0 5px; }

.wrs-card__image img { display: block; height: 100%; object-fit: contain; width: 100%; }

.wrs-card__body { padding: 24px 28px 28px; }

.wrs-card__title { color: var(--wrs-brand); font-size: 20px; font-weight: 800; letter-spacing: 0; line-height: 1.18; margin: 0 0 12px; }
.wrs-card__title a, .wrs-card__title a:hover { color: var(--wrs-brand); text-decoration: none; }

.wrs-card__rule { background: #111; height: 1px; margin: 10px auto 16px; width: 68%; }

.wrs-card__meta { color: #6b7280; font-size: 14px; line-height: 1.55; margin: 0 0 18px; }

.wrs-card__text { color: #667085; line-height: 1.55; margin: 0 0 18px; }

.wrs-load-wrap { margin: 32px 0; text-align: center; }

.wrs-load-more.is-loading { opacity: 0.75; pointer-events: none; }

@media (max-width: 700px) {
	.wrs-grid { grid-template-columns: 1fr; }
	.wrs-card__image, .wrs-card__image img { height: auto; }
}

/* ======================================================= single-page cards */
.wrs-page--single { margin: 0 auto; max-width: calc(100% - var(--wrs-sidebar-cut)); }

/* The recovered final section's extra 20px before the footer area (desktop captures; absent on mobile). */
@media (min-width: 768px) {
	.wrs-page--single { padding-bottom: 20px; }
}

.wrs-box {
	background: #fff;
	border-radius: 25px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 30px;
}

.wrs-entity-header { display: flex; flex-direction: column; gap: 20px; }

.wrs-entity-header__banner { margin: 0; }
.wrs-entity-header__banner img { border-radius: 15px; display: block; height: auto; width: 100%; }

.wrs-entity-header__title-row { align-items: center; display: flex; min-height: 61px; padding: 10px; }

/*
 * The recovered like widget (Phase 8B, display only): at the end of the title row, a 40px box with a 1px grey inset
 * line, holding the 30px pink heart square and the count (WP ULike on the old site).
 */
.wrs-like {
	align-items: center;
	border-radius: 3.75px;
	box-shadow: inset 0 0 0 1px #bdbdbd;
	display: inline-flex;
	flex: 0 0 auto;
	height: 40px;
	margin-left: auto;
	padding: 0 5px;
}
.wrs-like__heart { align-items: center; background: var(--wrs-pink); border-radius: 3.75px; color: #757575; display: flex; height: 30px; justify-content: center; width: 30px; }
.wrs-like__heart .wrs-icon { fill: currentColor; height: 20px; width: 20px; }
.wrs-like__count { color: #616161; font-size: 14px; font-weight: 600; line-height: 28px; padding: 0 5px; }

.wrs-entity-header__title {
	color: var(--wrs-pink);
	font-size: 28px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	margin: 0;
}

/* Information columns. */
.wrs-info { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }

.wrs-info__col { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding: 10px; }

.wrs-info--episode .wrs-info__col--side { padding-top: 30px; }

.wrs-info__heading {
	color: var(--wrs-pink);
	font-size: 28px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	margin: 0;
}

.wrs-info__text { color: var(--wrs-text); }

/* Phase 8E: the sponsor card under its heading (R04/R12), with 24 px more space above and below it, as recovered. */
.wrs-info__sponsors { margin: 24px 0; }

.wrs-info__series-meta { align-items: flex-end; display: flex; flex-direction: column; gap: 20px; }

.wrs-info__rss { font-size: 15px; line-height: 24px; }

.wrs-points { display: grid; gap: 10px; list-style: none; margin: 0 0 24px; padding: 0; }

.wrs-points li {
	background: #fff;
	border-left: 5px solid var(--wrs-brand);
	border-radius: 12px;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
	color: var(--wrs-text);
	padding: 14px;
}

/* The old CSS named "Josefin Sans" here, but the recovered captures show the tags rendered in the browser's
   sans-serif fallback (Arial); that appearance is reproduced without any web font. */
.wrs-tags {
	color: #54595f;
	font-family: Arial, sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 38px;
	margin: 0;
	text-align: justify;
}

.wrs-tags a, .wrs-tags a:hover { color: #54595f; }

.wrs-info__links { list-style: none; margin: 0; padding: 0; }

/* Episode grids inside single pages. */
.wrs-box .wrs-grid-wrap { margin: 24px 0; }

/* Show page: next/previous pill in its own white card. */
.wrs-adjacent--show {
	background: #fff;
	border-radius: 25px;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin: 20px 0;
	padding: 30px 30px;
}

/* Presenter page: the black PREVIOUS / NEXT bar. */
.wrs-adjacent--presenter {
	align-items: stretch;
	background: #000;
	border-radius: 25px;
	display: flex;
	margin: 20px 0;
	padding: 20px 10px 40px;
}

.wrs-adjacent__half { display: flex; flex: 1 1 0; min-width: 0; }
.wrs-adjacent__half--next { justify-content: flex-end; }

.wrs-adjacent__divider { background: var(--wrs-pink); flex: 0 0 1px; }

.wrs-adjacent__link { align-items: center; color: #fff; display: flex; gap: 15px; min-width: 0; padding: 0 15px; }

.wrs-adjacent__arrow { color: #fff; display: flex; transition: color 0.3s; }
.wrs-adjacent__arrow .wrs-icon { height: 30px; width: 20px; }

.wrs-adjacent__text { display: flex; flex-direction: column; min-width: 0; }
.wrs-adjacent__half--next .wrs-adjacent__text { align-items: flex-end; text-align: right; }

.wrs-adjacent__label { color: #fff; font-size: 12px; line-height: 24px; text-transform: uppercase; transition: color 0.3s; }

.wrs-adjacent__title {
	color: var(--wrs-pink);
	font-size: 12px;
	font-weight: 700;
	line-height: 24px;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: color 0.3s;
	white-space: nowrap;
}

.wrs-adjacent__link:hover .wrs-adjacent__label, .wrs-adjacent__link:hover .wrs-adjacent__arrow { color: var(--wrs-pink); }
.wrs-adjacent__link:hover .wrs-adjacent__title { color: #fff; }

/* Episode page: pink pills on the black box. */
.wrs-adjacent--episode {
	background: #000;
	border-radius: 25px;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin: 20px 0;
	padding: 50px 10px;
}

.wrs-adjacent__pill {
	background: var(--wrs-brand);
	border-radius: 999px;
	color: #fff;
	flex: 0 1 auto;
	font-size: 15px;
	font-weight: 400;
	line-height: 24px;
	padding: 12px 18px;
	text-decoration: none;
}

.wrs-adjacent__pill:hover, .wrs-adjacent__pill:focus-visible { background: #000; color: #fff; }
.wrs-adjacent--episode .wrs-adjacent__pill:hover { background: #333; }

.wrs-adjacent__pill--next { margin-left: auto; }
/* Show page: a lone pill starts at the left, as recovered (Phase 8B). */
.wrs-adjacent--show .wrs-adjacent__pill:only-child { margin-left: 0; }

@media (max-width: 1439px) {
	.wrs-info__heading { font-size: 23px; }
}

@media (max-width: 1279px) {
	.wrs-page--single { max-width: none; }
}

/* Tablet/mobile (recovered Elementor ≤1024 rules): the follow-up cards lose their margin and keep 100 px below. */
@media (max-width: 1024px) {
	.wrs-adjacent--episode, .wrs-adjacent--presenter, .wrs-adjacent--show { margin: 0; }
	.wrs-adjacent--episode { padding: 30px 5px 130px; }
	.wrs-adjacent--presenter { padding: 0 5px 120px; }
	.wrs-adjacent--show { padding: 30px 5px 130px; }
}


/* ---------------------------------------------------------- episode header */
.wrs-episode-header {
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 20px;
	padding: 20px 24px;
}

.wrs-episode-header__title { color: #111; font-size: clamp(20px, 3vw, 28px); letter-spacing: 0; line-height: 1.25; margin: 0; }

/* min-height keeps the recovered row height (it also held the old like button, not rebuilt). */
.wrs-episode-header__meta { align-items: center; color: #6b7280; display: flex; flex-wrap: wrap; font-size: 14px; gap: 6px; min-height: 34px; }

.wrs-episode-header__sep { margin: 0 2px; opacity: 0.4; }

/* The recovered like pill in the meta line (Phase 8B, display only). */
.wrs-like-pill { align-items: center; background: var(--wrs-pink); border: 1px solid #e4e7ec; border-radius: 999px; color: #374151; display: inline-flex; font-weight: 600; gap: 6px; padding: 4px 10px; }
/* The old site's Inter subset had no ♥, so the heart was drawn by the fallback font (Arial), as recovered. */
.wrs-like-pill__heart { font-family: Arial, sans-serif; font-size: 18px; line-height: 18px; }
.wrs-like-pill__count { font-size: 14px; line-height: 24px; }

.wrs-episode-header__show { color: var(--wrs-brand); font-weight: 600; }
.wrs-episode-header__show:hover { color: var(--wrs-brand); text-decoration: underline; }

.wrs-episode-header__entities { display: flex; flex-wrap: wrap; gap: 8px; }

.wrs-chip {
	align-items: center;
	background: #f9fafb;
	border: 1px solid #e4e7ec;
	border-radius: 999px;
	color: #374151;
	display: inline-flex;
	font-size: 13px;
	font-weight: 600;
	gap: 5px;
	line-height: 24px;
	padding: 6px 12px;
	text-decoration: none;
	transition: 0.15s;
}

.wrs-chip:hover { background: #fdf2f8; border-color: var(--wrs-brand); color: var(--wrs-brand); }

/* ------------------------------------------------------------ audio facade */
.wrs-audio { margin: 0; }

.wrs-audio__facade {
	align-items: flex-start;
	background: #f2f2f2;
	border: 1px solid #e5e5e5;
	box-sizing: border-box;
	display: grid;
	gap: 0 10px;
	grid-template-columns: auto 1fr;
	height: 200px;
	padding: 10px 8px;
	position: relative;
}

.wrs-audio__play {
	align-items: center;
	background: #f50;
	border: 0;
	border-radius: 50%;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	transition: background 0.2s ease;
	width: 44px;
}

.wrs-audio--direct .wrs-audio__play { background: var(--wrs-brand); }
.wrs-audio__play:hover, .wrs-audio__play:focus-visible { background: #000; }
.wrs-audio__play .wrs-icon { height: 20px; margin-left: 3px; width: 20px; }

.wrs-audio__info { display: flex; flex-direction: column; min-width: 0; padding-top: 3px; }

.wrs-audio__station { color: #333; font-size: 12px; line-height: 1.3; text-decoration: underline; }

.wrs-audio__title { color: #333; font-size: 15px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wrs-audio__label { color: #333; font-size: 12px; line-height: 1.4; margin-top: 6px; }

.wrs-audio__note {
	bottom: 4px;
	color: #6b6b6b;
	font-size: 11px;
	left: 8px;
	line-height: 1.3;
	margin: 0;
	position: absolute;
	right: 8px;
}

.wrs-audio.is-loaded .wrs-audio__facade { display: none; }

.wrs-audio__frame { border: 0; display: block; height: 200px; width: 100%; }

.wrs-audio__element { display: block; margin: 70px 0; width: 100%; }

.wrs-audio--none { align-items: center; background: #f2f2f2; border: 1px solid #e5e5e5; display: flex; min-height: 64px; padding: 10px 16px; }

.wrs-audio__unavailable { color: #666; margin: 0; }

/* -------------------------------------------------------------- transcript */
.wrs-transcript { border: 1px solid #e4e7ec; border-radius: 12px; margin: 0 -10px 24px; overflow: hidden; }

.wrs-transcript__summary {
	align-items: center;
	background: #f9fafb;
	color: #7a7e83;
	cursor: pointer;
	display: flex;
	font-size: 15px;
	font-weight: 600;
	justify-content: space-between;
	list-style: none;
	padding: 14px 20px;
	user-select: none;
}

.wrs-transcript__summary::-webkit-details-marker { display: none; }

.wrs-transcript__preview { color: #6b7280; font-size: 13px; font-weight: 400; margin-left: 8px; max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wrs-transcript__caret { color: var(--wrs-brand); font-size: 18px; transition: transform 0.2s; }
.wrs-transcript[open] .wrs-transcript__caret { transform: rotate(180deg); }

.wrs-transcript__body { border-top: 1px solid #e4e7ec; font-size: 14px; line-height: 1.75; max-height: 480px; overflow-y: auto; padding: 20px; white-space: pre-wrap; }

.wrs-transcript__actions { align-items: center; background: #f9fafb; border-top: 1px solid #f0f0f1; display: flex; gap: 8px; padding: 12px 20px; }
.wrs-transcript__actions[hidden] { display: none; }

.wrs-transcript__btn { background: #fff; border: 1px solid #e4e7ec; border-radius: 8px; color: #374151; cursor: pointer; font-size: 13px; font-weight: 600; padding: 7px 14px; transition: 0.15s; }
.wrs-transcript__btn:hover { border-color: var(--wrs-brand); color: var(--wrs-brand); }

.wrs-transcript__status { color: #6b7280; font-size: 13px; }

/* ================================================================ homepage */
.wrs-page--home .wp-block-post-content { margin: 0; }

/* The homepage fills the content area at every width, as the old theme's did: the window width minus the side rail
   and twice the page gap. (Phase 8G: the old theme's script set that width from the window at run time; the recovered
   capture froze it at its own 1440 px window, which had made the earlier fixed 1250 / 1210 px look recovered.) */

.wrs-home { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 -15px; }

.wrs-home__col { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding: 0 15px; }

.wrs-home__welcome,
.wrs-home__heading,
.wrs-quick-jump__heading {
	color: var(--wrs-text-dark);
	font-size: 23px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2em;
	margin: 0;
	padding-bottom: 19px;
}

.wrs-quick-jump__heading { margin-bottom: 20px; }

/* Presenter slider (cube). */
.wrs-slider { position: relative; }

.wrs-slider__viewport {
	aspect-ratio: 16 / 9;
	border: 4px solid var(--wrs-pink);
	border-radius: 15px;
	perspective: 1200px;
	position: relative;
	touch-action: pan-y;
	z-index: 1;
}

.wrs-slider__cube { height: 100%; position: relative; transform-style: preserve-3d; width: 100%; }

.wrs-slider__slide {
	backface-visibility: hidden;
	background-position: center;
	background-size: cover;
	border-radius: 15px;
	display: flex;
	inset: 0;
	overflow: hidden;
	position: absolute;
	visibility: hidden;
}

.wrs-slider__slide.is-active, .wrs-slider__slide.is-incoming { visibility: visible; }

.wrs-slider__slide::before { background: rgba(0, 0, 0, 0.4); content: ""; inset: 0; position: absolute; transition: background 0.3s; }
.wrs-slider__slide:hover::before { background: rgba(0, 0, 0, 0.7); }

/* Side-face shading while the cube turns. */
.wrs-slider__shade {
	background: #000;
	inset: 0;
	opacity: calc(var(--wrs-shade, 0) * 0.6);
	pointer-events: none;
	position: absolute;
	transition: opacity var(--wrs-shade-speed, 0ms) ease;
	z-index: 2;
}

.wrs-slider__title {
	align-items: center;
	box-sizing: border-box;
	color: #fff;
	display: flex;
	font-size: 23.0775px; /* recovered computed size, the same at desktop and mobile */
	font-weight: 600;
	height: 100%;
	justify-content: center;
	letter-spacing: 0;
	line-height: 1.217em;
	margin: 0;
	padding: 30px;
	position: relative;
	text-align: center;
	width: 100%;
	z-index: 1;
}

.wrs-slider__title a, .wrs-slider__title a:hover { color: #fff; }

.wrs-slider__shadow {
	background: #000;
	bottom: -30px;
	filter: blur(24px);
	height: 40px;
	left: 3%;
	opacity: 0.35;
	position: absolute;
	right: 3%;
	z-index: 0;
}

.wrs-slider__pause {
	background: #fff;
	border: 1px solid var(--wrs-border);
	border-radius: 8px;
	color: var(--wrs-text-dark);
	cursor: pointer;
	font-size: 13px;
	left: 10px;
	padding: 6px 10px;
	position: absolute;
	top: 10px;
	z-index: 3;
}

.wrs-slider__pause:not(:focus):not(:focus-visible) {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	padding: 0;
	width: 1px;
}

/* Quick Jump. */
.wrs-quick-jump__grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 10px; }

.wrs-quick-jump__cell { background: #fff; border-radius: 15px; margin: 10% 0; padding: 10px; }

.wrs-tile {
	align-items: center;
	background: #fff;
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	color: var(--wrs-text-dark);
	display: flex;
	flex-direction: column;
	gap: 15px;
	padding: 30px 20px 20px;
	text-align: center;
	transition: background 0.3s, color 0.3s;
}

.wrs-tile__icon { color: var(--wrs-text-dark); display: flex; transition: color 0.3s; }
.wrs-tile__icon .wrs-icon { height: 50px; width: 50px; }

/*
 * Phase 8G readability improvement over the recovered tiles (which broke words, e.g. "Marketplac / e"): the label
 * reaches into the tile's horizontal padding and keeps a 4 px inset each side (20 px padding − 16 px; 13 px − 9 px in
 * the 1280–1439 px tier), so single-word labels stay whole wherever the tile is at least as wide as the word. The tile,
 * its padding, the icon and the grid are unchanged; a word wider than the tile still wraps (break-word).
 */
.wrs-tile__label { align-self: stretch; color: var(--wrs-text-dark); font-size: 12px; font-weight: 500; line-height: 1.217; margin: 0 -16px; overflow-wrap: break-word; transition: color 0.3s; }

.wrs-tile:hover { background: var(--wrs-pink); }
.wrs-tile:hover .wrs-tile__icon, .wrs-tile:hover .wrs-tile__label { color: var(--wrs-accent-text); }

@media (min-width: 1680px) {
	.wrs-tile { padding: 31px 20px 28px; }
}

@media (min-width: 1280px) and (max-width: 1439px) {
	.wrs-tile { padding-left: 13px; padding-right: 13px; }
	.wrs-tile__label { margin: 0 -9px; }
}

/* Latest Podcasts. */
.wrs-latest__heading {
	border-bottom: 1px solid var(--wrs-border);
	color: var(--wrs-text-dark);
	font-size: 23px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2em;
	margin: 0 0 50px;
	padding-bottom: 19px;
}

.wrs-latest__list { display: flex; flex-direction: column; gap: 1px; list-style: none; margin: 0; padding: 0; }

.wrs-latest__item { background: #efefef; display: flex; flex-direction: column; padding: 15px; }

.wrs-latest__title { color: #000; font-size: 15px; line-height: 24px; margin-top: 12px; text-transform: uppercase; }
.wrs-latest__title:hover { color: var(--wrs-pink); }

.wrs-latest__date { align-items: center; color: var(--wrs-pink); display: flex; font-size: 12px; gap: 5px; line-height: 1.25; }
.wrs-latest__date .wrs-icon { height: 12px; width: 12px; }

@media (min-width: 1680px) {
	.wrs-latest__heading { margin-bottom: 55px; }
}

/* Founder message. */
.wrs-founder {
	background: #fff;
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	padding: 30px 10px 20px;
	text-align: center;
}

.wrs-founder__image { margin: 0 0 22px; }
/* At most its recovered 570 px (the old image's own width), left-aligned where the card is wider (Phase 8D). */
.wrs-founder__image img { border-radius: 15px; display: block; height: auto; max-width: 570px; width: 100% !important; }

.wrs-founder__title { color: var(--wrs-pink); font-size: 23px; font-weight: 600; letter-spacing: 0; line-height: 1.217em; margin: 0; }

.wrs-founder p { color: var(--wrs-text); font-size: 15px; line-height: 24px; margin: 0 0 24px; }
/* The recovered text ended with an empty paragraph: its 24 px margin stays below the last line (Phase 8D). */
.wrs-founder p:last-child { margin-bottom: 24px; }

@media (min-width: 1680px) {
	.wrs-founder { padding: 31px 10px 25px; }
}

@media (max-width: 1439px) {
	.wrs-founder__title { font-size: 14px; }
}

/* Right column: one white card (weather, Information, Statistics, the chart, the poll). */
.wrs-home__col--right { align-self: start; }

/* The recovered Information alert's 30 px bottom margin (25 px on phones), with the 20 px widget gap. */
.wrs-home__col--right > .wrs-notice { margin: 0 0 10px; }

.wrs-home__col--right {
	background: #fff;
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	margin: 0 15px;
	padding: 30px;
}

.wrs-notice {
	background: var(--wrs-green) url(../images/alert-bg.png) center / cover;
	border-radius: 8px;
	box-shadow: var(--wrs-shadow);
	color: var(--wrs-accent-text);
	margin-bottom: 30px;
	padding: 30px;
	position: relative;
}

.wrs-notice[hidden] { display: none; }

.wrs-notice__icon { color: var(--wrs-accent-text); display: block; }
.wrs-notice__icon .wrs-icon { height: 40px; width: 40px; }

.wrs-notice__content p { color: var(--wrs-accent-text); margin: 0; }

.wrs-notice__content .wrs-notice__title {
	display: block;
	font-size: 38px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.142em;
	margin-top: 16px; /* the recovered icon line is 36px; the SVG box is 40px */
}

.wrs-notice__content .wrs-notice__text { font-size: 17px; line-height: 1.47em; margin-top: 13px; }

.wrs-notice__dismiss {
	align-items: center;
	background: var(--wrs-pink);
	border: 2px solid rgba(252, 252, 252, 0.3);
	border-radius: 50%;
	color: var(--wrs-accent-text);
	cursor: pointer;
	display: flex;
	height: 37px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 20px;
	top: 20px;
	transition: background 0.3s, border-color 0.3s, color 0.3s;
	width: 37px;
}

.wrs-notice__dismiss .wrs-icon { height: 18px; width: 18px; stroke-width: 2.5; }
.wrs-notice__dismiss:hover { background: var(--wrs-hover); border-color: var(--wrs-accent-text); color: var(--wrs-bg); }

@media (min-width: 1680px) {
	.wrs-home__col--right { padding: 45px 44px; }
	.wrs-notice { padding: 64px 45px 39px; }
	.wrs-notice__content .wrs-notice__title { font-size: 45px; margin-top: 21px; }
}

@media (max-width: 1439px) {
	.wrs-notice__content .wrs-notice__title { font-size: 28px; }
	.wrs-notice__content .wrs-notice__text { font-size: 15px; }
	.wrs-home__welcome, .wrs-home__heading, .wrs-quick-jump__heading, .wrs-latest__heading { font-size: 20px; }
}

@media (max-width: 479px) {
	.wrs-home__col--right, .wrs-notice { padding: 25px; }
	.wrs-home__col--right > .wrs-notice { margin-bottom: 5px; }
	.wrs-notice__content .wrs-notice__title { font-size: 24px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.wrs-home { grid-template-columns: 1fr 1fr; }
	.wrs-home__col--left { grid-column: 1 / -1; }
}

/* Phase 8D: below 768 px the old hidden spacer under the slider shows (30 px; 25 px from 479 px), and the tile and
   Latest Podcasts gaps shrink from 479 px only (measured across 390–767 px). */
@media (max-width: 767px) {
	.wrs-home { grid-template-columns: 1fr; }
	.wrs-quick-jump__grid { grid-template-columns: 1fr; }
	.wrs-slider { margin-bottom: 50px; }
}

@media (max-width: 479px) {
	.wrs-slider { margin-bottom: 45px; }
	.wrs-tile { padding-top: 25px; }
	.wrs-latest__heading { margin-bottom: 45px; }
}

/* ======================================= homepage sections (Phase 8D) */
/*
 * The rest of the recovered homepage: Recent Jobs, Recent Topics, Latest News, Members, Testimonials, Newsletter,
 * the weather card, Statistics, the pie chart and the poll. Values measured on the recovered captures (1440 px
 * desktop, 390 px phone) and, for the other tiers, on the offline copy of the recovered homepage.
 */

/* The old spacers (30 px each, with the 20 px widget gaps; none after the Quick Jump grid or the Recent Jobs row). */
.wrs-home__col > .wrs-home__jobs { margin-top: 80px; }
.wrs-home__col > .wrs-home__podcasts { margin-top: 30px; }
.wrs-home__col > .wrs-home__topics,
.wrs-home__col > .wrs-home__members { margin-top: 50px; }
.wrs-home__col > .wrs-home__testimonials { margin-top: 100px; }

/* Recent Jobs: the recovered text (a job list shortcode's own output), 20 px under the rule up to 1024 px. */
.wrs-panel .wrs-panel__text { line-height: 24px; margin-bottom: 0; }

@media (max-width: 1024px) {
	.wrs-home .wrs-panel--section .wrs-panel__title + * { margin-top: 20px; }
}

/* Newsletter: the same alert as Information, white with dark text and the open-envelope glyph; no dismiss button. */
.wrs-notice.wrs-notice--plain { background: var(--wrs-surface); border-radius: 15px; margin: 0; }
.wrs-notice--plain .wrs-notice__icon,
.wrs-notice--plain .wrs-notice__content p { color: var(--wrs-text-dark); }
.wrs-notice--plain .wrs-notice__icon .wrs-icon { height: 44px; width: 44px; }
.wrs-notice--plain .wrs-notice__content .wrs-notice__title { margin-top: 20px; }

/* "Important Notification": 13 px with the info glyph before it (Lucide info, drawn as a mask). */
.wrs-notice__info { font-size: 13px; line-height: 1.76; }

.wrs-notice__info::before {
	background: currentColor;
	content: "";
	display: inline-block;
	height: 15px;
	margin-right: 8px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask-size: 16.36px;
	mask-size: 16.36px; /* the recovered glyph's 15 px ink */
	vertical-align: -3px;
	width: 15px;
}

/* Weather card, not live: the recovered box (10 px corners, 10 px padding, 92 px high), marker and place name, on the
   old widget's fixed background image (the same in every capture, whatever the weather; decorative only). */
.wrs-weather {
	align-items: center;
	background: #3f6fae url(../images/broken-clouds.jpeg) center / cover no-repeat;
	border-radius: 10px;
	box-sizing: border-box;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	min-height: 92px;
	padding: 10px;
}

.wrs-weather p { color: #fff; font-size: 15px; line-height: 24px; margin: 0; text-align: center; }
.wrs-weather__place { align-items: center; display: flex; gap: 10px; }
.wrs-weather__marker { color: var(--wrs-pink); flex: none; height: 20px; width: 15px; }

/*
 * Phase 8E, live conditions in the recovered layout: the place, date and weekday (left), the condition icon (middle),
 * the temperature in pink and the condition (right). The card keeps its 92 px: the icon (at most 64 px, near the
 * recovered 63 px) gives way first, down to 36 px, and a long condition text uses the smaller size on up to three lines.
 */
.wrs-weather--live { gap: 10px; height: 92px; }
.wrs-weather__col { display: flex; flex: 0 1 auto; flex-direction: column; justify-content: center; min-width: 0; }
.wrs-weather__col--now { max-width: 45%; }
.wrs-weather__icon { aspect-ratio: 1; color: #fff; display: flex; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35)); flex: 0 1 64px; max-height: 64px; min-width: 36px; }
.wrs-weather__icon .wrs-icon { height: 100%; width: 100%; }
.wrs-weather .wrs-weather__temp { color: var(--wrs-pink); }
.wrs-weather .wrs-weather__text { overflow-wrap: break-word; }
.wrs-weather .wrs-weather__text--long { -webkit-box-orient: vertical; display: -webkit-box; font-size: 13px; -webkit-line-clamp: 3; line-clamp: 3; line-height: 16px; overflow: hidden; }

/* The provider's attribution and the end-user weather notice (WeatherAPI.com terms), just under the card. */
.wrs-home__col > .wrs-weather-notice { margin-top: -12px; }
.wrs-weather-notice p { color: #6c7075; font-size: 11px; line-height: 15px; margin: 0; }
.wrs-weather-notice__credit a { color: var(--wrs-pink); }
.wrs-weather-notice__text { margin-top: 2px; }
.wrs-weather-notice__more { color: #6c7075; font-size: 11px; line-height: 15px; margin-top: 2px; }
.wrs-weather-notice__more summary { cursor: pointer; text-decoration: underline; width: fit-content; }
.wrs-weather-notice__more p { margin-top: 4px; }

/* Statistics: three figures in the recovered columns (10 px padding, 35 px apart). */
.wrs-counters__note {
	color: #6c7075; /* new text: darker than the recovered grey, for contrast */
	font-size: 12px;
	line-height: 16px;
	margin: -28px 0 12px; /* in the space under the heading: no box moves */
}

.wrs-counters__list {
	column-gap: 35px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 10px;
}

.wrs-counters__item { display: flex; flex-direction: column; min-width: 0; text-align: center; }
.wrs-counters__icon { align-items: center; color: var(--wrs-text-dark); display: flex; height: 49px; justify-content: center; }
.wrs-counters__icon .wrs-icon { flex: none; height: 60px; width: 60px; }
.wrs-counters__icon .wrs-icon--globe { height: 49px; width: 49px; }
/* A figure stays on one line, centred even where it is wider than its column (the old counters broke "10789" as
   "1078 / 9" in the narrowest columns, which reads as two numbers). */
.wrs-counters__value {
	color: var(--wrs-text-dark);
	display: flex;
	font-size: 25px;
	font-weight: 500;
	justify-content: center;
	line-height: 0.85;
	margin-top: 11px;
	white-space: nowrap;
}

/* The label breaks inside the word where the column is too narrow, as recovered ("PRESENTER / S"). */
.wrs-counters__label {
	align-self: stretch;
	color: var(--wrs-text-dark);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 1px;
	line-height: 24px;
	margin-top: 2px;
	overflow-wrap: break-word;
	text-transform: uppercase;
}

/* The divider: a 1 px black line, 85 % wide, centred in a 31 px box. */
.wrs-home .wp-block-separator.wrs-home__divider {
	background: none;
	border: 0;
	border-top: 1px solid #000;
	height: 0;
	margin: 15px auto;
	opacity: 1;
	width: 85%;
}

/* Pie chart: the recovered 250 px box, the pie centred, the legend on a line 232 px down across 80 % of the width. */
.wrs-pie { height: 250px; margin: 0; position: relative; }
.wrs-pie__svg { display: block; height: 232px; margin: 0 auto; width: 202px; }
.wrs-pie__values text { fill: #fff; font: 11px Arial, "Liberation Sans", Helvetica, sans-serif; }

.wrs-pie__legend {
	align-items: center;
	color: #222;
	display: flex;
	font: 11px/11px Arial, "Liberation Sans", Helvetica, sans-serif;
	height: 11px;
	left: 10%;
	position: absolute;
	right: 10%;
	top: 232px;
}

.wrs-pie__keys { display: flex; gap: 18px; }
.wrs-pie__keys[hidden] { display: none; }
.wrs-pie__key { align-items: center; display: flex; gap: 4px; white-space: nowrap; }
.wrs-pie__dot { border-radius: 50%; flex: none; height: 11px; width: 11px; }
.wrs-pie__pager { align-items: center; color: #0011cc; display: flex; gap: 4px; margin-left: auto; }

.wrs-pie__turn {
	-webkit-appearance: none;
	appearance: none;
	background: none;
	border: 0;
	color: #0011cc;
	cursor: pointer;
	flex: none;
	height: 11px;
	padding: 0;
	width: 11px;
}

.wrs-pie__turn::before { background: currentColor; content: ""; display: block; height: 11px; width: 11px; }
.wrs-pie__turn--prev::before { clip-path: polygon(100% 0, 100% 100%, 0 54.5%); }
.wrs-pie__turn--next::before { clip-path: polygon(0 0, 100% 54.5%, 0 100%); }
.wrs-pie__turn:disabled { color: #ccc; cursor: default; }

/* Poll: the recovered option rows — a 110 × 60 frame, a 20 px circle and the name. */
.wrs-poll__question { color: #333; font-size: 15px; font-weight: 600; line-height: 24px; margin: 0; }
.wrs-poll__options { display: flex; flex-direction: column; gap: 20px; list-style: none; margin: 20px 0 0; padding: 0; }
.wrs-poll__option { align-items: center; color: #000; display: flex; font-size: 16px; line-height: 20px; min-height: 60px; padding-left: 5px; }

.wrs-poll__image {
	background: #ededed;
	border: 2px solid var(--wrs-pink);
	border-radius: 2px;
	box-sizing: border-box;
	flex: none;
	height: 60px;
	overflow: hidden;
	width: 110px;
}

/*
 * The presenter's own recovered image in the frame (owner request 2026-10-11; empty on the recovered poll): the card
 * banner fills the frame from the left, where its photo is; the default avatar sits centred when there is no image.
 */
.wrs-poll__photo { display: block; height: 100%; object-fit: cover; object-position: left center; width: 100%; }

.wrs-poll__radio {
	background: #ededed;
	border: 1px solid var(--wrs-pink);
	border-radius: 50%;
	box-sizing: border-box;
	flex: none;
	height: 20px;
	margin-left: 10px;
	width: 20px;
}

.wrs-poll__label { margin-left: 10px; min-width: 0; }
.wrs-poll__footer { line-height: 1; margin: 30px 0 0; }

/*
 * Phase 8E: a real poll with the old poll's own states (its recovered settings). Each row is a label around a real
 * radio button, visually hidden but focusable; hovering a row tints its frame (#e1f6ff, blue border), a chosen row
 * keeps the tint with the pink border and a 10 px pink dot fades into its circle. VOTE NOW turns dark grey with a
 * shadow on hover, focus and press, and is dimmed while the vote is sent. Added (no recovered equivalent): the site's
 * keyboard focus ring drawn around the circle of the focused option.
 */
.wrs-poll__fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
legend.wrs-poll__question { display: block; padding: 0; width: 100%; }
.wrs-poll__choice { align-items: center; cursor: pointer; display: flex; min-height: 60px; min-width: 0; }
.wrs-poll__input { height: 1px; margin: 0; opacity: 0; position: absolute; width: 1px; }
.wrs-poll__choice:hover .wrs-poll__image { background: #e1f6ff; border-color: #097baa; }
.wrs-poll__input:checked ~ .wrs-poll__image { background: #e1f6ff; border-color: var(--wrs-pink); }
.wrs-poll__radio { position: relative; }

.wrs-poll__radio::before {
	background: var(--wrs-pink);
	border-radius: 100%;
	content: "";
	height: 10px;
	left: 50%;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: opacity 0.2s ease;
	width: 10px;
}

.wrs-poll__input:checked ~ .wrs-poll__radio::before { opacity: 1; }
.wrs-poll__input:focus-visible ~ .wrs-poll__radio,
.wrs-poll__fieldset.is-keyed .wrs-poll__input:focus ~ .wrs-poll__radio { outline: 1px dotted #888; outline-offset: 1px; }
.wrs-poll__hp { height: 1px; left: -9999px; overflow: hidden; position: absolute; width: 1px; }
button.wrs-poll__button { border: 0; cursor: pointer; font-family: inherit; min-width: 100px; }

button.wrs-poll__button:hover, button.wrs-poll__button:focus-visible, button.wrs-poll__button:active {
	background: #333;
	box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.6);
}

.wrs-poll__form[aria-busy="true"] .wrs-poll__button { opacity: 0.5; pointer-events: none; }

.wrs-poll__message { color: var(--wrs-text-dark); font-size: 15px; line-height: 24px; margin: 20px 0 0; }
.wrs-poll__message[hidden] { display: none; }

/*
 * The results (no capture shows them): the old poll's pie in its recovered colours, then each presenter's share, with
 * the presenter's image in a half-size frame beside the name and bar.
 */
.wrs-poll.is-done .wrs-poll__message { margin: 0 0 20px; }
.wrs-poll__pie { display: block; height: 200px; margin: 20px auto 0; width: 200px; }
.wrs-poll__tally { display: flex; flex-direction: column; gap: 12px; list-style: none; margin: 20px 0 0; padding: 0; }
.wrs-poll__row { color: #000; column-gap: 8px; display: grid; font-size: 15px; grid-template-columns: auto 1fr auto; line-height: 20px; }
.wrs-poll__image--row { align-self: center; border-width: 1px; grid-column: 1; grid-row: 1 / span 2; height: 30px; width: 55px; }
.wrs-poll__count { color: #6c7075; font-size: 13px; }
.wrs-poll__bar { background: #f1f3f6; border-radius: 4px; display: block; grid-column: 2 / -1; height: 8px; margin-top: 4px; overflow: hidden; }
.wrs-poll__fill { background: rgba(var(--wrs-poll-rgb), 0.6); display: block; height: 100%; }
.wrs-poll__total { color: var(--wrs-text-dark); font-size: 15px; font-weight: 600; line-height: 24px; margin: 20px 0 0; }

.wrs-poll__button {
	background: var(--wrs-pink);
	border-radius: 2px;
	color: #fff;
	display: inline-block;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.45;
	padding: 10px;
	text-transform: uppercase;
}

/* The old poll form's own narrow layout (782 px and below): the button spans the card. */
@media (max-width: 782px) {
	.wrs-poll__footer { margin-bottom: 10px; }
	.wrs-poll__button { display: block; text-align: center; width: 100%; }
}

/* An alert title too long for its column breaks inside the word, as recovered ("Informati / on" at 1680 px). */
.wrs-notice__content .wrs-notice__title { overflow-wrap: break-word; }

/*
 * From 1680 px: the homepage cards' 45 / 44 px padding and 35 px under a section title; the alert titles' 1.111 line
 * height; the Newsletter glyph keeps its size but its line shrinks to 26 px, so it rises into the padding.
 */
@media (min-width: 1680px) {
	.wrs-home .wrs-panel { padding: 45px 44px; }
	.wrs-home .wrs-panel--section .wrs-panel__title { margin-bottom: 35px; }
	.wrs-notice__content .wrs-notice__title { line-height: 1.111; }
	.wrs-notice--plain .wrs-notice__icon { height: 26px; }
	.wrs-notice--plain .wrs-notice__icon .wrs-icon { margin-top: -19px; }
	.wrs-notice--plain .wrs-notice__content .wrs-notice__title { margin-top: 21px; }
}

/*
 * The figures wrap as the old columns did: two to a row up to 767 px, one from 600 px (50 px apart, 25 px below the
 * last). From 479 px the old spacers are 25 px, and the figures 45 px apart with 20 px below the last.
 */
@media (max-width: 767px) {
	.wrs-counters__list { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 25px; row-gap: 50px; }
}

@media (max-width: 600px) {
	.wrs-counters__list { grid-template-columns: 1fr; }
}

@media (max-width: 479px) {
	.wrs-home__col > .wrs-home__jobs { margin-top: 70px; }
	.wrs-home__col > .wrs-home__podcasts { margin-top: 25px; }
	.wrs-home__col > .wrs-home__topics,
	.wrs-home__col > .wrs-home__members { margin-top: 45px; }
	.wrs-home__col > .wrs-home__testimonials { margin-top: 90px; }
	.wrs-founder { padding-top: 25px; }
	.wrs-counters__list { padding-bottom: 20px; row-gap: 45px; }
}

/* ================================================================== footer */
/* The recovered 20px gap above the footer (the footer row's own top margin is reset by the flow layout). */
.wrs-site-footer { margin-top: 20px; padding: 0 var(--wrs-gap); }

.wrs-footer { margin: 0 auto; }

/* The recovered four columns (Phase 8A): the logo, "Start your career", "Get started" and the empty "Subscribe now". */
.wrs-footer__row { box-sizing: border-box; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 20px 0; min-height: 221px; padding: 20px 0; }
.wrs-footer__col { box-sizing: border-box; padding: 0 15px; }
.wrs-footer__col > * { margin-block: 0; }
.wrs-footer__col--logo { align-items: center; display: flex; }
/* Recovered as H4; marked up as H2 so the heading levels do not skip (semantics only, same appearance). */
.wrs-footer__heading { color: var(--wrs-text-dark); font-size: 20px; font-weight: 600; line-height: 20px; margin: 0 0 20px !important; }
/* As recovered, the lists start 3px left of their headings on desktop. */
.wrs-footer__list { color: var(--wrs-text); font-size: 15px; line-height: 24px; list-style: disc; margin-left: -3px !important; padding-left: 17.25px; }
.wrs-footer__list li + li { margin-top: 5.1px; }

.wrs-logo { display: block; }
.wrs-logo img { display: block; height: auto; max-height: 87px; width: auto; }

.wrs-footer__copyright {
	background: var(--wrs-pink);
	color: #fff;
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 24px;
	margin: 0;
	padding: 20px;
	text-align: center;
	text-transform: uppercase;
}

@media (max-width: 767px) {
	.wrs-footer__row { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.wrs-footer__col { padding: 0 12.5px; }
	.wrs-footer__heading { font-size: 18px; line-height: 18px; }
	.wrs-footer__list { font-size: 14px; margin-left: 0 !important; padding-left: 16.1px; }
	.wrs-footer__list li + li { margin-top: 4.76px; }
}

/* ===================================================== colour-scheme control */
/* The recovered orange pipette button (Phase 8A); its "Default" / "Dark" choices slide out to the left. At the
   recovered 90px from the bottom (24px above the 66px bar), or 24px above a taller bar. */
.wrs-scheme { bottom: max(90px, calc(var(--wrs-player-space, 66px) + 24px)); height: 45px; position: fixed; right: 7.5px; width: 45px; z-index: 100001; }

.wrs-scheme__toggle {
	align-items: center;
	background: #ffb039;
	border: 0;
	border-radius: 50%;
	color: var(--wrs-accent-text);
	cursor: pointer;
	display: flex;
	height: 45px;
	justify-content: center;
	padding: 0;
	position: relative;
	transition: background-color 0.3s ease;
	width: 45px;
	z-index: 1;
}

.wrs-scheme__toggle:hover { background: #dc9222; }
.wrs-scheme__toggle .wrs-icon { height: 23px; width: 23px; }
.wrs-scheme__options { list-style: none; margin: 0; padding: 0; }
.wrs-scheme__options li { position: absolute; right: 0; top: 0; transition: right 0.3s ease; }
.wrs-scheme.is-open .wrs-scheme__options li:nth-child(1) { right: 60px; }
.wrs-scheme.is-open .wrs-scheme__options li:nth-child(2) { right: 120px; }

.wrs-scheme__option {
	background: var(--wrs-bg);
	border: 1px solid var(--wrs-border);
	border-radius: 50%;
	box-sizing: border-box;
	color: var(--wrs-text);
	cursor: pointer;
	font-family: inherit;
	font-size: 12px;
	height: 45px;
	line-height: 41px;
	opacity: 0;
	padding: 0;
	transition: all 0.3s ease;
	visibility: hidden;
	width: 45px;
}

.wrs-scheme__option--dark { background: var(--wrs-text-dark); border-color: #383c43; color: #bfc2c9; }
.wrs-scheme.is-open .wrs-scheme__option { opacity: 1; visibility: visible; }
.wrs-scheme__option:hover { transform: scale(1.1); }

/* Below 701px the recovered control overlaps the top edge of the player card (28px), as captured. */
@media (max-width: 700px) {
	.wrs-scheme { bottom: calc(var(--wrs-player-space, 118px) - 28px); }
}

/* ============================================================ scroll to top */
.wrs-top {
	align-items: center;
	background: var(--wrs-pink);
	border-radius: 50%;
	bottom: calc(max(90px, calc(var(--wrs-player-space, 66px) + 24px)) + 60px); /* The recovered slot (30px) lies under the player bar; it stacks above the colour-scheme control. */
	color: var(--wrs-accent-text);
	display: flex;
	height: 45px;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0.5em;
	transition: opacity 0.3s, background 0.3s, color 0.3s;
	width: 45px;
	z-index: 7999;
}

@media (max-width: 700px) {
	.wrs-top { bottom: calc(var(--wrs-player-space, 118px) + 32px); }
}

.wrs-top.is-visible { opacity: 1; pointer-events: auto; }
.wrs-top:hover { background: var(--wrs-hover); color: var(--wrs-bg); }

.wrs-top > .wrs-icon { height: 15px; position: relative; width: 15px; }

.wrs-top__progress { height: 100%; inset: 0; position: absolute; transform: rotate(-90deg); width: 100%; }
.wrs-top__track { fill: none; stroke: none; }
.wrs-top__bar { fill: none; stroke: var(--wrs-accent-text); stroke-dasharray: 100; stroke-dashoffset: 100; stroke-width: 2; }

/* ======================================================= persistent player */
/*
 * The recovered floating "Now playing" bar (Aipex v3): fixed at the bottom from x = 96px to the right edge, #111,
 * 18px top-left radius only, 66px tall on desktop; pink controls with the theme's slide-right hover. Additions
 * approved for Phase 6: progress/seek with elapsed/total time, Previous/Next and a compact Latest / This Show /
 * Random control in the place of the old Episodes toggle. Phase 8A restores the recovered shape: the service note
 * (shown until the visitor starts that service) and the SoundCloud credit sit under the seek bar, so the bar keeps
 * the recovered height; below 701px it is the recovered card (x = 96px to the right edge), taller than the
 * recovered 118px because it keeps these controls. --wrs-player-space (set by player.js from the bar's height)
 * keeps the end of the page, the colour-scheme control and the scroll-to-top button clear of the bar.
 */
.wrs-player-region { min-height: var(--wrs-player-space, 0px); }

.wrs-player {
	background: #111;
	border-radius: 18px 0 0;
	bottom: 0;
	box-shadow: 0 -8px 34px rgba(0, 0, 0, 0.32);
	color: #fff;
	left: 96px;
	position: fixed;
	right: 0;
	z-index: 99999;
}

.wrs-player[hidden] { display: none; }

.wrs-player__bar {
	align-items: center;
	display: grid;
	gap: 12px;
	grid-template-columns: auto minmax(190px, 380px) auto minmax(240px, 1fr) auto;
	padding: 12px 18px;
}

.wrs-player__minimise,
.wrs-player__play,
.wrs-player__skip,
.wrs-player__mode select {
	background: linear-gradient(to left, var(--wrs-hover) 50%, var(--wrs-pink) 50%) no-repeat left bottom / 210% 100% var(--wrs-pink);
	border: 0;
	cursor: pointer;
	transition: color 0.3s ease, background-position 0.3s ease;
}

.wrs-player__minimise:hover, .wrs-player__minimise:focus-visible,
.wrs-player__play:hover, .wrs-player__play:focus-visible,
.wrs-player__skip:not(:disabled):hover, .wrs-player__skip:focus-visible,
.wrs-player__mode select:hover, .wrs-player__mode select:focus-visible {
	background-position: right bottom;
	color: var(--wrs-bg);
}

.wrs-player__minimise {
	align-items: center;
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 42px;
	justify-content: center;
	padding: 0;
	width: 42px;
}

.wrs-player__minimise .wrs-icon { height: 21px; width: 21px; }

.wrs-player__now { min-width: 0; }

.wrs-player__label { display: block; font-size: 10px; letter-spacing: 0.06em; line-height: 24px; opacity: 0.7; text-transform: uppercase; }

.wrs-player__title { display: block; font-size: 14px; font-weight: 500; line-height: 1.2; }

/* The seek bar with the service note (before the visitor starts that service) or the SoundCloud credit under it. */
.wrs-player__slot { display: flex; flex-direction: column; gap: 3px; justify-content: center; min-width: 0; }

.wrs-player__credit,
.wrs-player__note { color: rgba(255, 255, 255, 0.7); display: block; font-size: 11px; line-height: 13px; }

.wrs-player__credit[hidden], .wrs-player__note[hidden] { display: none; }

.wrs-player__credit-link, .wrs-player__credit-link:hover { color: #fff; text-decoration: underline; }

.wrs-player__play {
	align-items: center;
	color: #000;
	display: flex;
	height: 26px;
	justify-content: center;
	padding: 0;
	width: 26px;
}

.wrs-player__play .wrs-icon { height: 14px; width: 14px; }
.wrs-player__icon { display: flex; }
.wrs-player__icon[hidden] { display: none; }

.wrs-player__progress { align-items: center; display: flex; gap: 8px; min-width: 0; }

.wrs-player__time { font-size: 11px; font-variant-numeric: tabular-nums; opacity: 0.7; white-space: nowrap; }
.wrs-player__time[hidden] { display: none; }

.wrs-player__seek { accent-color: var(--wrs-pink); cursor: pointer; flex: 1 1 auto; margin: 0; min-width: 0; }
.wrs-player__seek:disabled { cursor: default; opacity: 0.5; }

/*
 * Phase 8E: WebKit draws the native seek bar's unfilled track almost invisibly on the dark card. In WebKit only, the
 * bar uses the dark colour scheme, so WebKit draws that track visibly (the pink fill stays). The feature query
 * (`hanging-punctuation`, which WebKit supports and Chromium does not) keeps Chromium's approved native look unchanged;
 * an engine that adds it later gets the dark-scheme slider, which suits the dark card.
 */
@supports (hanging-punctuation: first) {
	.wrs-player__seek { color-scheme: dark; }
}

.wrs-player__controls { align-items: center; display: flex; gap: 6px; }

.wrs-player__skip {
	border-radius: 50%;
	color: #fff;
	font-family: inherit;
	font-size: 22px;
	height: 34px;
	line-height: 1;
	padding: 0 0 3px;
	width: 34px;
}

.wrs-player__skip:disabled { cursor: default; opacity: 0.4; }

.wrs-player__mode { display: block; margin-left: 6px; position: relative; }

.wrs-player__mode select {
	appearance: none;
	border-radius: 12px;
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
	padding: 8px 30px 8px 14px;
}

.wrs-player__mode option { background: #fff; color: #111; }

.wrs-player__mode::after {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: "";
	height: 6px;
	pointer-events: none;
	position: absolute;
	right: 13px;
	top: calc(50% - 6px);
	transform: rotate(45deg);
	width: 6px;
}

/* The hidden SoundCloud widget / audio element (as recovered: a 1px, transparent, inert wrapper). */
.wrs-player__engine { height: 1px; opacity: 0; overflow: hidden; pointer-events: none; position: absolute; width: 1px; }
.wrs-player__frame { border: 0; display: block; height: 166px; width: 100%; }

/* Fallback: the browser would not start the hidden widget, so SoundCloud's own compact player is shown. */
.wrs-player.is-revealed .wrs-player__engine { height: auto; opacity: 1; overflow: visible; padding: 0 18px 12px; pointer-events: auto; position: static; width: auto; }
.wrs-player__fallback-hint { font-size: 12px; margin: 0; padding: 0 18px 8px; }
.wrs-player__fallback-hint[hidden] { display: none; }

/* Minimised, as recovered: 430px wide at the right edge; on phones from x 24 to the edge (over the menu rail). */
.wrs-player.is-minimised { left: auto; right: 0; width: min(430px, calc(100% - 24px)); }
.wrs-player.is-minimised .wrs-player__bar { grid-template-columns: auto 1fr auto; }
.wrs-player.is-minimised .wrs-player__progress,
.wrs-player.is-minimised .wrs-player__controls { display: none; }
.wrs-player.is-minimised .wrs-player__slot { grid-column: 1 / -1; }
/* With nothing to show (the note and credit hidden; the seek bar is hidden when minimised), the minimised card keeps
   no empty row, and has the recovered height (66px; 81.6px on phones). */
.wrs-player.is-minimised .wrs-player__slot:not(:has(> .wrs-player__note:not([hidden]), > .wrs-player__credit:not([hidden]))) { display: none; }

@media (max-width: 900px) {
	.wrs-player__bar { grid-template-columns: auto 1fr auto; }
	.wrs-player__slot, .wrs-player__controls { grid-column: 1 / -1; }
	.wrs-player__mode { margin-left: auto; }
}

/* The recovered mobile card: headphones and "Now playing" on the first row, the play button below. */
@media (max-width: 700px) {
	.wrs-player__bar { gap: 10px; grid-template-columns: auto 1fr; }
	.wrs-player__slot { grid-column: 2; }
	.wrs-player__controls { flex-wrap: wrap; grid-column: 2; justify-content: flex-start; row-gap: 6px; }
	.wrs-player__mode { margin-left: 6px; }
	/* A very long word in a title wraps instead of running out of the card. */
	.wrs-player__title { overflow-wrap: anywhere; }
}

/*
 * The compact phone card (Phase 8A, approved): the recovered two rows, so that after the visitor allows the service
 * the card has the recovered height (117.6px). Row 1: headphones and "Now playing", with the playback mode on the
 * "Now playing" line (top right); row 2: play at its recovered place, the seek bar, and previous / next at the play
 * button's recovered size. The service note (until the visitor allows the service) and the SoundCloud credit use the
 * card's full width below. Below 375px the three-row card stays, so that the seek bar keeps a usable width. The
 * minimised card keeps its recovered layout.
 */
@media (min-width: 375px) and (max-width: 700px) {
	.wrs-player:not(.is-minimised) .wrs-player__bar { grid-template-columns: 42px minmax(0, 1fr) auto; }
	.wrs-player:not(.is-minimised) .wrs-player__minimise { grid-column: 1; grid-row: 1; }
	.wrs-player:not(.is-minimised) .wrs-player__now { grid-column: 2 / -1; grid-row: 1; }
	.wrs-player:not(.is-minimised) .wrs-player__play { grid-column: 1; grid-row: 2; }
	.wrs-player:not(.is-minimised) .wrs-player__slot { display: contents; }
	.wrs-player:not(.is-minimised) .wrs-player__progress { gap: 6px; grid-column: 2; grid-row: 2; }
	.wrs-player:not(.is-minimised) .wrs-player__controls { flex-wrap: nowrap; gap: 4px; grid-column: 3; grid-row: 2; }
	.wrs-player:not(.is-minimised) .wrs-player__note,
	.wrs-player:not(.is-minimised) .wrs-player__credit { grid-column: 1 / -1; }
	.wrs-player:not(.is-minimised) .wrs-player__skip { font-size: 18px; height: 26px; padding: 0 0 2px; width: 26px; }
	.wrs-player:not(.is-minimised) .wrs-player__mode { display: flex; height: 24px; margin: 0; position: absolute; right: 18px; top: 12px; }
	.wrs-player:not(.is-minimised) .wrs-player__mode select { box-sizing: border-box; display: block; font-size: 11px; height: 24px; line-height: 16px; padding: 4px 24px 4px 10px; }
	.wrs-player:not(.is-minimised) .wrs-player__mode::after { height: 5px; right: 10px; top: calc(50% - 4.5px); width: 5px; }
}

/* ==================================================== persistent navigation */
/*
 * Phase 6B: a thin WRS-pink progress bar while a page is fetched without a reload (after 150 ms), above the top bar
 * and side menu. <main> is focused after such a page change (tabindex="-1"); like any non-interactive container it
 * shows no focus ring.
 */
.wrs-nav-progress {
	background: var(--wrs-pink);
	height: 3px;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	transform: scaleX(0);
	transform-origin: 0 0;
	z-index: 100004;
}

.wrs-nav-progress.is-active { animation: wrs-nav-progress 10s cubic-bezier(0.03, 0.5, 0, 1) forwards; opacity: 1; }

@keyframes wrs-nav-progress {
	from { transform: scaleX(0); }
	to { transform: scaleX(0.95); }
}

@media (prefers-reduced-motion: reduce) {
	.wrs-nav-progress.is-active { animation: none; transform: scaleX(1); }
}

#wrs-main:focus, #wrs-main:focus-visible { outline: none !important; }

/* ===================================================================== 404 */
.wrs-page--404 { padding-bottom: 30px; text-align: center; }

@media (max-width: 767px) {
	.wrs-page--404 { padding-bottom: 25px; } /* recovered mobile value */
}

.wrs-404__code { color: rgba(227, 0, 108, 0.07); font-size: 232px; font-weight: 700; letter-spacing: 0; line-height: 1em; margin: 0; }

.wrs-404__title { color: var(--wrs-text-dark); font-size: 28px; font-weight: 600; letter-spacing: 0; line-height: 1.142em; margin: 15px 0 0; }

.wrs-404__text { color: var(--wrs-text); margin: 19px 0 30px; }

.wrs-search--page { margin: 0 auto; max-width: 385px; position: relative; width: 100%; }

.wrs-search--page .wrs-search__field {
	background: transparent;
	border: 1px solid var(--wrs-border);
	border-radius: 26px;
	box-shadow: 0 3px 16px rgba(0, 0, 0, 0.051);
	box-sizing: border-box;
	color: var(--wrs-text);
	font-size: 13px;
	line-height: 19px;
	padding: 15px 5.45em 15px 20px;
	width: 100%;
}

.wrs-search--page .wrs-search__field::placeholder { color: var(--wrs-text-light); opacity: 1; }
.wrs-search--page .wrs-search__field::-webkit-search-cancel-button { display: none; }

.wrs-search--page .wrs-search__submit {
	align-items: center;
	background: var(--wrs-text-dark);
	border: 0;
	border-radius: 50%;
	color: #fff;
	cursor: pointer;
	display: flex;
	height: 43px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 4px;
	top: 4px;
	transition: background 0.3s, color 0.3s;
	width: 43px;
}

.wrs-search--page .wrs-search__submit .wrs-icon { height: 18px; width: 18px; }
.wrs-search--page .wrs-search__submit:hover { background: var(--wrs-pink); color: var(--wrs-accent-text); }

@media (min-width: 1680px) {
	.wrs-404__text { margin-bottom: 32px; }
}

@media (max-width: 1439px) {
	.wrs-404__title { font-size: 23px; }
	.wrs-search--page .wrs-search__field { border-radius: 22px; }
}

@media (max-width: 1023px) {
	.wrs-404__code { font-size: 150px; }
}

@media (max-width: 479px) {
	.wrs-404__code { font-size: 100px; }
	.wrs-404__title { font-size: 22px; }
}

/* ============================================= plain pages (Phase 7 later) */
.wrs-page__content > :last-child { margin-bottom: 0; }

/*
 * Phase 8B: on WordPress Pages (the placeholder template T1, Contacts), the page fills the window at least, so a
 * short page keeps its footer at the bottom, as the recovered pages did (the old content area had a min-height of
 * the window less the header and footer). `:has()` follows client-side navigation, and taller pages are unchanged.
 * Phase 8C: the sponsor archive and single too (short pages on the old site as well).
 * Phase 8F: the news article and topic pages too (single posts, as the sponsor single).
 */
.wp-site-blocks:has(> .wrs-main .wrs-page--page),
.wp-site-blocks:has(> .wrs-main .wrs-page--sponsors),
.wp-site-blocks:has(> .wrs-main .wrs-page--sponsor),
.wp-site-blocks:has(> .wrs-main .wrs-page--news),
.wp-site-blocks:has(> .wrs-main .wrs-page--topic) {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks:has(> .wrs-main .wrs-page--page) > .wrs-main,
.wp-site-blocks:has(> .wrs-main .wrs-page--sponsors) > .wrs-main,
.wp-site-blocks:has(> .wrs-main .wrs-page--sponsor) > .wrs-main,
.wp-site-blocks:has(> .wrs-main .wrs-page--news) > .wrs-main,
.wp-site-blocks:has(> .wrs-main .wrs-page--topic) > .wrs-main {
	box-sizing: border-box;
	flex-grow: 1;
	width: 100%;
}

/*
 * Pages without the sidebar (T1 pages, Docs, the events routes) fill the content area at every width, as the old
 * theme's pages did: the window less the side rail and twice the page gap. (Phase 8H: the old theme's script set that
 * width from the window at run time; the recovered captures froze it at their 1440 px window, which had made the
 * earlier fixed 1250 / 1210 px look recovered — the homepage was corrected the same way in Phase 8G.)
 */

/* ================================================== panel cards (Phase 8B) */
/*
 * The recovered white panel card: the old sidebar widgets (`widget`) and homepage cards (`section`). A flex column,
 * so the recovered title and content margins never collapse. Values measured on the recovered captures (1440 px
 * desktop tier, 390 px mobile) and, for the other tiers, on the offline copy of the recovered pages.
 */
.wrs-panel {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	padding: 30px;
}

.wrs-panel .wrs-panel__title {
	color: var(--wrs-text-dark);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.217;
	margin: -0.2em 0 30px;
}

/* Widget: the rule 0.8 em under the title. */
.wrs-panel--widget .wrs-panel__title::after {
	background: var(--wrs-border);
	content: "";
	display: block;
	height: 1px;
	margin-top: 0.8em;
}

/* Section: a 19 px gap to the rule, then the Elementor widget gap (20 px, less the recovered −2 px) before the content. */
.wrs-panel--section .wrs-panel__title {
	border-bottom: 1px solid var(--wrs-border);
	line-height: 1.2;
	padding-bottom: 19px;
}

.wrs-panel--section .wrs-panel__title + * { margin-top: 18px; }

.wrs-panel > :last-child { margin-bottom: 0; }

/* Active Members: a four-column avatar grid and the VIEW ALL link (the recovered simple button). */
.wrs-members__grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(4, 1fr);
}

.wrs-members__avatar .wrs-avatar { display: block; height: auto; width: 100%; }

.wrs-panel .wrs-members__more { line-height: 24px; margin: 20px 0 -6px; }

.wrs-view-all {
	color: var(--wrs-text-dark);
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 21px;
	padding-right: 2.1em;
	position: relative;
	text-decoration: none;
	text-transform: uppercase;
	vertical-align: top;
}

a.wrs-view-all[href]:hover { color: #000; }

/* The recovered glyph (fontello icon-login-1 at 1.25 em): its ring (radius 0.587 em) is centred 0.725 em in from the right. */
.wrs-view-all__icon {
	height: 1.667em;
	position: absolute;
	right: -0.1085em;
	top: 50%;
	transform: translateY(-50%);
	width: 1.667em;
}

/* Recent Topics: the title, then "by AUTHOR" in small uppercase grey (Phase 8L: no avatar, so no 90 px indent). */
.wrs-topics {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wrs-topics__item {
	align-content: center;
	color: var(--wrs-text-light);
	display: flex;
	flex-wrap: wrap;
	font-size: 11px;
	line-height: 24px;
	position: relative;
	text-transform: uppercase;
}

.wrs-topics__item + .wrs-topics__item { margin-top: 20px; }

.wrs-topics__title {
	color: var(--wrs-text-dark);
	flex: 0 0 100%;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.333;
	margin-top: 4px;
	text-transform: none;
}

.wrs-topics__author { margin-left: 0.3em; }

@media (min-width: 1680px) {
	.wrs-panel--widget { padding: 44px; }
	.wrs-panel--widget .wrs-panel__title { margin-bottom: 35px; }
	.wrs-panel .wrs-members__more { margin-top: 24px; }
}

@media (max-width: 1439px) {
	.wrs-panel .wrs-panel__title { font-size: 20px; }
	.wrs-view-all { font-size: 11px; }
}

@media (max-width: 767px) {
	.wrs-panel--section .wrs-panel__title + * { margin-top: 20px; }
}

@media (max-width: 479px) {
	.wrs-panel { padding: 25px; }
	.wrs-panel .wrs-panel__title { margin-bottom: 25px; }
}

/* =============================================== right sidebar (Phase 8B) */
/*
 * The recovered right sidebar (`parts/sidebar.html`): 345 px beside the content column from 1280 px, the content
 * keeping the recovered "normal content" width (page width − 375 px). The two fill the content area at every width,
 * as the old theme's did (its sidebar stayed 345 px while the page grew with the window; Phase 8H — the earlier
 * 1250 / 1210 px wrapper came from the captures' frozen 1440 px window). Below 1280 px the sidebar follows the
 * content, its cards side by side: three columns, two below 1024 px, one from 600 px.
 */
.wrs-with-sidebar { align-items: flex-start; display: flex; }

.wrs-with-sidebar > .wrs-page { flex: 1 1 auto; max-width: calc(100% - var(--wrs-sidebar-cut)); min-width: 0; }

.wrs-sidebar { flex: 0 0 345px; margin-left: 30px; min-width: 0; }

.wrs-sidebar__inner > .wrs-panel + .wrs-panel { margin-top: 30px; }

@media (max-width: 1279px) {
	.wrs-with-sidebar { display: block; }
	.wrs-with-sidebar > .wrs-page { max-width: none; }
	.wrs-sidebar { margin: 30px 0 0; }
	.wrs-sidebar__inner { align-items: flex-start; display: flex; flex-wrap: wrap; gap: 30px; }
	.wrs-sidebar__inner > .wrs-panel { width: calc((100% - 60px) / 3); }
	.wrs-sidebar__inner > .wrs-panel + .wrs-panel { margin-top: 0; }
}

@media (max-width: 1023px) {
	.wrs-sidebar__inner > .wrs-panel { width: calc((100% - 30px) / 2); }
}

@media (max-width: 600px) {
	.wrs-sidebar__inner > .wrs-panel { width: 100%; }
}

@media (max-width: 479px) {
	.wrs-sidebar { margin-top: 25px; }
	.wrs-sidebar__inner { gap: 25px; }
}

/* ============================================== empty states (Phase 8B) */
/*
 * The recovered empty listings of the placeholder pages (`wrs/empty-state`, template T2): the old document table,
 * community directory and events calendar. Values measured on the recovered captures (1440 px desktop, 390 px
 * mobile). The static controls (aria-hidden) keep their recovered look but never react.
 */
.wrs-empty-state { color: var(--wrs-text); }

.wrs-empty-state [aria-hidden="true"] { cursor: default; user-select: none; }

/* The last margin collapsed into the next section's on the old pages. */
.wrs-empty-state > :last-child { margin-bottom: 0; }

/* --- table: the Docs header card (Phase 8C) -------------------------------- */
/*
 * On the old document list the page title, the "All Docs" item and the viewing note formed one white card (three
 * boxes: the title band with rounded top corners, the navigation, the note with rounded bottom corners and a rule
 * above it), 30 px above the filter and table card (25 px on phones).
 */
.wrs-page--page.wrs-page--docs .wrs-page-title {
	background: var(--wrs-surface);
	border-radius: 15px 15px 0 0;
	box-shadow: 0 3px 20px rgba(29, 38, 38, 0.05);
	margin-bottom: 0;
	padding: 30px 30px 0;
}

/* In the card the title had no bottom margin and no rule below it. */
.wrs-page--docs .wrs-page-title__caption { margin-bottom: 0; }

.wrs-page--docs .wrs-page-title::after { display: none; }

.wrs-empty-state__head { margin-bottom: 30px; }

.wrs-empty-state__docnav {
	background: var(--wrs-surface);
	box-shadow: 0 12px 12px rgba(29, 38, 38, 0.05);
	list-style: none;
	margin: 0;
	padding: 17px 30px 20px;
}

.wrs-empty-state__docnav li { margin-right: 17px; }

.wrs-empty-state__docnav a {
	align-items: flex-start;
	color: var(--wrs-text-dark);
	display: flex;
	width: max-content;
	font-size: 13px;
	font-weight: 500;
	line-height: 24px;
}

.wrs-empty-state__docnav a:not([href]) { cursor: default; }

.wrs-empty-state__docnav-icon.wrs-icon { flex: none; height: 24px; margin-right: 9px; width: 18px; }

.wrs-empty-state__viewing {
	background: var(--wrs-surface);
	border-radius: 0 0 15px 15px;
	box-shadow: 0 12px 12px rgba(29, 38, 38, 0.05);
	color: var(--wrs-text);
	font-size: 14px;
	line-height: 24px;
	margin: 0;
	padding: 20px 30px;
}

.wrs-empty-state__viewing::before {
	background: var(--wrs-border);
	content: "";
	display: block;
	height: 1px;
	margin-bottom: 15px;
}

.wrs-empty-state__viewing strong { font-weight: 500; }

/* --- table: filter tabs, header and the empty notice ---------------------- */
.wrs-empty-state__card {
	background: var(--wrs-surface);
	border-radius: 2px;
	box-shadow: 0 12px 12px rgba(29, 38, 38, 0.05);
	padding: 30px;
}

.wrs-empty-state--table .wrs-empty-state__filters {
	display: flex;
	font-size: 13px;
	font-weight: 500;
	line-height: 13px;
	margin: 0 0 30px;
	padding-left: 2.5px;
	position: relative;
}

.wrs-empty-state--table .wrs-empty-state__filters::after {
	background: var(--wrs-border);
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
}

.wrs-empty-state__filter {
	border-bottom: 1px solid var(--wrs-border);
	color: var(--wrs-text-dark);
	margin-right: 20px;
	padding-bottom: 20px;
}

.wrs-empty-state__table-wrap { overflow-x: auto; }

.wrs-empty-state__table {
	background: var(--wrs-surface);
	border: 1px dashed transparent;
	border-collapse: separate;
	border-radius: 6px;
	border-spacing: 0;
	box-shadow: 0 5px 30px rgba(0, 0, 0, 0.04);
	margin: 0;
	min-width: 100%;
}

.wrs-empty-state__table th {
	background: #f9fafc;
	color: var(--wrs-text-dark);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 24px;
	padding: 16px 0 15px 20px;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
}

/*
 * Column widths as on the old document list (Title, Author, Created, Last Edited, Group, Tags): the recovered
 * percentages per width tier (as they applied on that page, whose narrower-screen rules partly lost to more
 * specific ones); the browser scales them up when they add up to less than 100 %, as it did on the old page. From
 * 1023 px down the table keeps its content width and scrolls; Tags is hidden from 1279 px down.
 */
.wrs-empty-state__table th:first-child { width: 26%; }
.wrs-empty-state__table th:not(:first-child) { width: 12%; }

.wrs-empty-state__table th.is-sorted::after {
	border: 4px solid transparent;
	border-top: 5px solid #1eb5d8;
	content: "";
	display: inline-block;
	margin-left: 6px;
	vertical-align: -1px;
}

.wrs-empty-state__table td {
	border-top: 1px solid var(--wrs-border);
	color: var(--wrs-text-light);
	font-size: 14px;
	line-height: 24px;
	padding: 20px 0 20px 20px;
}

.wrs-empty-state__table th:last-child,
.wrs-empty-state__table td:last-child { padding-right: 20px; }

.wrs-empty-state__table .wrs-empty-state__notice-cell { color: var(--wrs-text); font-size: 15px; }

.wrs-empty-state__notice { margin: 0; }

/* --- directory: the "All …" tab, search, order select and notice ---------- */
.wrs-empty-state__nav {
	border-bottom: 1px solid #eee;
	border-top: 1px solid #eee;
	box-shadow: 0 2px 12px #fafafa;
	margin: 0 0 20px;
}

.wrs-empty-state__tab {
	background: #555;
	color: #fafafa;
	display: inline-block;
	font-size: 15px;
	line-height: 24px;
	padding: 7.5px 9.5px;
	vertical-align: top;
}

.wrs-empty-state__count {
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 50%;
	color: #555;
	font-size: 12px;
	margin-left: 2px;
	padding: 3px 6px;
}

.wrs-empty-state--directory .wrs-empty-state__filters {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
}

.wrs-empty-state__search {
	border: 1px solid #eee;
	box-sizing: border-box;
	display: flex;
	width: 240px;
}

.wrs-empty-state__search-field {
	align-self: flex-start;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
	color: #aaa;
	flex: 1 1 auto;
	font-size: 13px;
	line-height: 19px;
	min-width: 0;
	padding: 3px 10px;
}

.wrs-empty-state__search-button {
	align-items: center;
	background: var(--wrs-pink);
	box-sizing: border-box;
	color: #555;
	display: flex;
	flex: 0 0 20%;
	height: 28.5px;
	justify-content: center;
	margin-left: auto;
}

.wrs-empty-state__search-button .wrs-icon { height: 18px; width: 18px; }

.wrs-empty-state__order {
	border: 1px solid #eee;
	border-radius: 2px;
	box-sizing: border-box;
	display: block;
	overflow: hidden;
	width: 149px;
}

.wrs-empty-state__select {
	background: #fff;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
	color: var(--wrs-text);
	display: block;
	font-size: 16px;
	line-height: 19px;
	padding: 6px 48px 6px 10px;
	position: relative;
	white-space: nowrap;
}

.wrs-empty-state__select-icon {
	height: 13px;
	position: absolute;
	right: 15.6px;
	top: 9.5px;
	width: 13px;
}

.wrs-empty-state__select-arrow { color: #ccc; display: block; font-size: 15px; line-height: 24px; }

.wrs-empty-state__feedback {
	background: #fff;
	border: 1px solid #ccc;
	box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
	color: #737373;
	display: flex;
	margin: 10px 0;
}

.wrs-empty-state__feedback-icon {
	align-items: flex-start;
	background: #0b80a4;
	color: #fff;
	display: flex;
	flex: 0 0 auto;
	margin-right: 10px;
	padding: 2px 10px 0;
}

.wrs-empty-state__feedback-icon .wrs-icon { height: 20px; width: 20px; }

.wrs-empty-state__feedback p { font-size: 15px; line-height: 24px; margin: 0; }

/* --- events: bar, date row, notice, month grid, pager, subscribe ---------- */
/* The old calendar set its own system font stack (Arial on the captured Windows machine); only its heading and
   subscribe button used the theme font. */
.wrs-empty-state--events {
	display: flex;
	flex-direction: column;
	font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
}

.wrs-empty-state__heading,
.wrs-empty-state__subscribe span { font-family: Inter, sans-serif; }

.wrs-empty-state__bar {
	align-items: center;
	background: #fff;
	border: 1px solid var(--wrs-border);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
	box-sizing: border-box;
	display: flex;
	height: 55px;
	margin-bottom: 30px;
	overflow: hidden;
}

.wrs-empty-state__bar-search {
	align-items: center;
	color: #5d5d5d;
	display: flex;
	flex: 1 1 auto;
	font-size: 14px;
	line-height: 22.68px;
	padding-left: 29px;
}

.wrs-empty-state__bar-search .wrs-icon { color: var(--wrs-text-dark); height: 20px; margin-right: 13.56px; width: 20px; }

/*
 * The old bar showed the calendar's own grey magnifier under the theme's dark one (Phase 8C, as recovered). Both
 * glyphs' ink measured 16 px on the recovered capture; the drawn glyph fills 79 % of its box, hence 20 px boxes.
 */
.wrs-empty-state__bar-search { position: relative; }

.wrs-empty-state__bar-search .wrs-empty-state__bar-search-plugin.wrs-icon {
	color: #5d5d5d;
	height: 20px;
	left: 14px;
	margin: 0;
	position: absolute;
	top: calc(50% - 10px);
	width: 20px;
}

.wrs-empty-state__bar-button {
	background: var(--wrs-pink);
	border-radius: 4px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 22.68px;
	padding: 11px 20px;
}

.wrs-empty-state__views { align-self: stretch; display: flex; padding: 0 12px; }

.wrs-empty-state__view {
	color: var(--wrs-text-dark);
	font-size: 13px;
	line-height: 19px;
	margin: 0 11px;
	padding-top: 16px;
	position: relative;
}

.wrs-empty-state__view.is-current { font-weight: 700; }

.wrs-empty-state__view.is-current::after {
	background: #fb582a;
	bottom: 0;
	content: "";
	height: 2px;
	left: -1px;
	position: absolute;
	right: 0;
}

.wrs-empty-state__top { align-items: center; display: flex; margin-bottom: 14px; min-height: 38.8px; }

.wrs-empty-state__arrows { color: var(--wrs-text-dark); display: flex; gap: 20px; padding-right: 20px; }

.wrs-empty-state__arrows .wrs-icon { height: 16px; padding: 4px; width: 16px; }

.wrs-empty-state__today {
	background: #fff;
	border: 1px solid var(--wrs-border);
	border-radius: 15px;
	color: var(--wrs-text-dark);
	font-size: 11px;
	font-weight: 500;
	line-height: 18px;
	margin: 0 30px 0 9px;
	padding: 5px 17px;
	text-transform: uppercase;
}

.wrs-empty-state__heading {
	align-items: center;
	color: var(--wrs-text-dark);
	display: flex;
	font-size: 28px;
	font-weight: 600;
	line-height: 39.76px;
	margin: -1px 0 0;
}

.wrs-empty-state__heading-short { display: none; }

.wrs-empty-state__carets { align-items: center; display: inline-flex; gap: 10px; margin-left: 10px; }

.wrs-empty-state__carets .wrs-icon { height: 12px; width: 12px; }

.wrs-empty-state__carets .wrs-icon + .wrs-icon { color: #334aff; }

.wrs-empty-state__bar-mini { display: none; }

.wrs-empty-state__message {
	background: #fcfcfc;
	border: 1px solid var(--wrs-border);
	border-radius: 5px;
	color: var(--wrs-text);
	font-size: 13px;
	line-height: 23px;
	margin: 0 0 30px 8px;
	padding: 12px 18px;
	text-align: center;
}

.wrs-empty-state__message--day { display: none; }

.wrs-empty-state__month {
	background: #fff;
	border-collapse: separate;
	border-radius: 6px;
	border-spacing: 0;
	box-shadow: 0 5px 30px rgba(0, 0, 0, 0.04);
	margin: 0;
	padding: 2px;
	table-layout: fixed;
	width: 100%;
}

.wrs-empty-state__month th {
	border-bottom: 2px solid transparent;
	color: #5d5d5d;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 26px;
	padding: 0 0 11px;
	text-align: left;
	text-transform: uppercase;
}

.wrs-empty-state__month td {
	border-bottom: 1px solid var(--wrs-border);
	border-right: 1px solid var(--wrs-border);
	height: 193px;
	padding: 0;
	vertical-align: top;
}

.wrs-empty-state__month td:first-child { border-left: 1px solid transparent; }

.wrs-empty-state__daynum {
	color: #141827;
	display: inline-block;
	font-size: 18px;
	line-height: 18px;
	padding: 17px 18px;
}

.wrs-empty-state__month .is-today .wrs-empty-state__daynum { color: #334aff; font-weight: 700; }

.wrs-empty-state__month .is-future .wrs-empty-state__daynum { font-weight: 700; }

.wrs-empty-state__pager {
	align-items: flex-start;
	border-top: 1px solid var(--wrs-border);
	margin-top: 30px;
	color: var(--wrs-text-light);
	display: flex;
	font-size: 14px;
	font-weight: 600;
	justify-content: space-between;
	letter-spacing: 0.06em;
	line-height: 22.68px;
	padding-top: 30px;
	text-transform: uppercase;
}

.wrs-empty-state__prev,
.wrs-empty-state__next { display: flex; flex-direction: column; text-align: center; }

.wrs-empty-state__pager .wrs-icon { align-self: center; height: 17px; width: 17px; }

.wrs-empty-state__pager .wrs-empty-state__chevron { align-self: flex-start; height: 16px; margin: 1px 0 3px; width: 10px; }

.wrs-empty-state__pager-today { display: none; }

.wrs-empty-state--events-month .wrs-empty-state__pager { display: none; }

.wrs-empty-state__subscribe {
	align-self: flex-end;
	border: 1px solid #334aff;
	border-radius: 4px;
	margin-top: 30px;
}

.wrs-empty-state__subscribe span {
	background: var(--wrs-pink);
	border-radius: 26px;
	color: #fcfcfc;
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 21px;
	padding: 16px 50.05px;
	text-transform: uppercase;
}

/*
 * Phase 8C, tiers of the old calendar pages beyond the two captured widths (measured on the offline copy):
 * from 1680 px the old theme's default H1 top margin (40.432 px) showed above the title band (the calendar pages
 * missed the reset other pages had) and the calendar's gaps grew; from 1279 px down the subscribe pill was smaller.
 */
@media (min-width: 1680px) {
	.wrs-page--route .wrs-page-title { margin-top: 40.432px; }
	.wrs-empty-state__bar { margin-bottom: 45px; }
	.wrs-empty-state__arrows { gap: 21px; padding-right: 21px; }
	.wrs-empty-state__today { margin-right: 32px; }
	.wrs-empty-state__pager { margin-top: 40px; padding-top: 35px; }
	.wrs-empty-state__subscribe { margin-top: 35px; }
}

@media (max-width: 1279px) {
	.wrs-empty-state__subscribe span { font-size: 11px; padding: 10px 29.7px; }
	.wrs-empty-state__month td { height: 149px; }
}

@media (min-width: 1680px) {
	.wrs-page--page.wrs-page--docs .wrs-page-title { padding: 45px 44px 0; }
	.wrs-empty-state__docnav { padding: 17px 44px 20px; }
	.wrs-empty-state__viewing { padding: 22px 44px 26px; }
	.wrs-empty-state__card { padding: 45px 44px; }
	.wrs-empty-state--table .wrs-empty-state__filters { margin-bottom: 31px; }
	.wrs-empty-state__filter { margin-right: 24px; }
	.wrs-empty-state__table td { padding-bottom: 22px; padding-top: 26px; }
}

@media (max-width: 1679px) {
	.wrs-empty-state__table th:first-child { width: 21%; }
}

@media (max-width: 1279px) {
	.wrs-empty-state__table th:first-child { width: 26%; }
	.wrs-empty-state__table th:nth-child(3),
	.wrs-empty-state__table th:nth-child(4) { width: 20%; }
	.wrs-empty-state__table th:nth-child(6),
	.wrs-empty-state__table td:nth-child(6) { display: none; }
}

@media (max-width: 1023px) {
	.wrs-empty-state__table { min-width: max-content; }
	.wrs-empty-state__table th:nth-child(4) { width: 22%; }
	.wrs-empty-state__table th:nth-child(5),
	.wrs-empty-state__table td:nth-child(5) { padding-right: 20px; }
}

/* The old navigation item floated from 46.8em (748.8 px); below that its list's 24 px margin showed. */
@media (max-width: 748px) {
	.wrs-empty-state__docnav li { margin-bottom: 24px; }
}

/* Between 601 and 748 px the old link filled its row (its click area). */
@media (min-width: 601px) and (max-width: 748px) {
	.wrs-empty-state__docnav a { width: auto; }
}

@media (max-width: 767px) {
	.wrs-empty-state__table th { line-height: 22.4px; }
	.wrs-empty-state__table td,
	.wrs-empty-state__table .wrs-empty-state__notice-cell { font-size: 14px; line-height: 22.4px; }

	/* Events on phones: the bar folds into the pink button beside the heading; the notice comes first. */
	.wrs-empty-state__bar,
	.wrs-empty-state__arrows,
	.wrs-empty-state__today { display: none; }
	.wrs-empty-state__top { margin-bottom: 0; min-height: 0; }
	.wrs-empty-state__heading { font-size: 22px; line-height: 26.774px; }
	.wrs-empty-state__bar-mini { background: var(--wrs-pink); display: block; height: 21px; margin-left: auto; width: 29px; }
	.wrs-empty-state__message { margin: 0 0 30px; padding: 12px; text-align: left; }
	.wrs-empty-state--events-list .wrs-empty-state__message { margin-top: 12px; order: -1; }
	.wrs-empty-state__pager { align-items: center; line-height: 19.32px; margin-top: 30px; padding-top: 30px; }
	.wrs-empty-state__pager .wrs-icon { margin: 1.16px 0; }
	.wrs-empty-state__pager .wrs-empty-state__chevron { height: 11.2px; margin: 0; width: 7px; }
	.wrs-empty-state__pager .wrs-empty-state__plural { display: none; }
	.wrs-empty-state__pager-today { color: #141827; display: block; font-size: 11px; line-height: 15.18px; }
	.wrs-empty-state__subscribe { align-self: stretch; margin-top: 30px; text-align: center; }
	.wrs-empty-state__subscribe span { display: inline-block; font-size: 11px; }

	.wrs-empty-state__carets .wrs-icon + .wrs-icon { color: var(--wrs-text-dark); }
	.wrs-empty-state--events-month .wrs-empty-state__heading-wide { display: none; }
	.wrs-empty-state--events-month .wrs-empty-state__heading-short { display: inline; }
	.wrs-empty-state--events-month .wrs-empty-state__message:not(.wrs-empty-state__message--day) { display: none; }
	.wrs-empty-state--events-month .wrs-empty-state__message--day { display: block; margin: 30px 0 0; }
	.wrs-empty-state--events-month .wrs-empty-state__pager { border-top-color: #d5d5d5; color: #141827; display: flex; font-size: 12px; font-weight: 400; line-height: 16.56px; margin-top: 0; }
	.wrs-empty-state--events-month .wrs-empty-state__pager .wrs-icon:not(.wrs-empty-state__chevron) { height: 16.56px; margin: 0; }
	.wrs-empty-state--events-month .wrs-empty-state__pager-today { font-size: 12px; font-weight: 400; line-height: 16.56px; }
	.wrs-empty-state__month { padding: 2px 3px; }
	.wrs-empty-state__month th { padding-bottom: 11px; text-align: center; }
	.wrs-empty-state__month td,
	.wrs-empty-state__month td:first-child { border: 0; height: auto; padding: 0 1px 1px 0; }
	.wrs-empty-state__daynum {
		align-items: flex-start;
		background: var(--wrs-pink);
		border-radius: 4px;
		box-sizing: border-box;
		display: flex;
		font-size: 14px;
		font-weight: 400;
		/* Square day cells, as the old phone grid (48.3 px at 390 px). */
		aspect-ratio: 1 / 1;
		justify-content: center;
		line-height: 14px;
		padding: 14.7px 0 0;
	}
	.wrs-empty-state__month .is-today .wrs-empty-state__daynum,
	.wrs-empty-state__month .is-future .wrs-empty-state__daynum { color: #141827; font-weight: 400; }
}

/*
 * Phase 8C, the phone tiers beyond the 390 px capture (from the old pages' own breakpoints, measured on the offline
 * copy): the directory tab stops floating at 46.8em (748.8 px) and its search and order stack from 32em (512 px)
 * down; the calendar's gaps are 30 px down to 480 px and 25 px below.
 */
@media (max-width: 748px) {
	.wrs-empty-state__nav { border: 0; box-shadow: none; padding-bottom: 24px; }
	.wrs-empty-state__tab { display: block; }
}

@media (max-width: 511px) {
	.wrs-empty-state--directory .wrs-empty-state__filters { display: block; }
	.wrs-empty-state__search { width: 100%; }
	.wrs-empty-state__order { margin-top: 10px; width: 100%; }
}

@media (max-width: 600px) {
	.wrs-empty-state__subscribe span { padding: 10px 22px; }
}

@media (max-width: 479px) {
	.wrs-empty-state__message { margin-bottom: 25px; }
	.wrs-empty-state--events-month .wrs-empty-state__message--day { margin-top: 25px; }
	.wrs-empty-state__pager { margin-top: 25px; padding-top: 25px; }
	.wrs-empty-state__subscribe { margin-top: 25px; }
	.wrs-empty-state__subscribe span { padding: 10px 20.9px; }
}

/* The document list on phones (Phase 8C): smaller table text from 600 px; 25 px spacing from 479 px. */
@media (max-width: 600px) {
	.wrs-empty-state__docnav li { margin-bottom: 29px; }
	.wrs-empty-state__table th { line-height: 20.8px; }
	.wrs-empty-state__table td,
	.wrs-empty-state__table .wrs-empty-state__notice-cell { font-size: 13px; line-height: 20.8px; }
}

@media (max-width: 479px) {
	.wrs-page--page.wrs-page--docs .wrs-page-title { padding: 25px 25px 0; }
	.wrs-empty-state__docnav { padding: 17px 25px 20px; }
	.wrs-empty-state__viewing { padding: 20px 25px; }
	.wrs-empty-state__card { padding: 25px; }
	.wrs-empty-state--table .wrs-empty-state__filters { margin-bottom: 25px; }
	.wrs-empty-state__head { margin-bottom: 25px; }
}

/* ============================= recovered two-column page body (Phase 8C) */
/*
 * The old Become A Presenter page (an unfinished demo page, reproduced as recovered): rows of two columns
 * (64 / 35.332 %; 62 / 38 % from 1024 px; stacked from 767 px) 30 px apart, the chart headings over the literal,
 * broken chart shortcodes, rules between the rows (on phones also after the first column), then the "Skills" gauges
 * and "Progress Bar" bars. Measured on the recovered captures (1440 and 390 px); the other widths follow the old
 * page's own styles. Rules are decorative (no separator semantics).
 */
.wrs-legacy-row { display: flex; margin: 0 -15px; }

.wrs-legacy-row--charts { padding-bottom: 20px; }

.wrs-legacy-col { box-sizing: border-box; padding: 0 15px; }

.wrs-legacy-col--wide { width: 64%; }

.wrs-legacy-col--narrow { width: 35.332%; }

.wrs-legacy-row--charts .wrs-legacy-col { padding-top: 22px; }

/* The old gauge column kept an 8 % right margin (8 % of its 64 % width = 5.12 % of the row). */
.wrs-legacy-col--gauges { padding-right: calc(15px + 5.12%); }

.wrs-legacy-heading { font-size: 23px; line-height: 1; margin: 0; }

.wrs-legacy-shortcode { color: var(--wrs-text); font-size: 15px; line-height: 24px; margin: 60px 0 0; }

.wrs-legacy-col > .wrs-gauges,
.wrs-legacy-col > .wrs-progress-bars { margin-top: 60px; }

.wrs-legacy-rule { border-top: 1px solid var(--wrs-border); margin: 65px 0; }

.wrs-legacy-rule--tiny { margin-top: 55px; }

.wrs-legacy-rule--phone { display: none; }

/* Gauges: white cards, three to a row (two from 767 px, one from 600 px), 30 px apart (25 px on small phones). */
.wrs-gauges { display: flex; flex-wrap: wrap; margin: 0 -30px -30px 0; }

.wrs-gauges__column { box-sizing: border-box; padding: 0 30px 30px 0; width: 33.3333%; }

.wrs-gauge {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: 0 3px 20px rgba(29, 38, 38, 0.05);
	padding: 17px;
	text-align: center;
}

.wrs-gauge__ring { margin: 0 auto; max-width: 160px; position: relative; }

/* The old chart drew on a canvas of whole pixels (113 px in a 113.6 px column). */
@supports (width: round(down, 100%, 1px)) {
	.wrs-gauge__ring { width: round(down, 100%, 1px); }
}

.wrs-gauge__ring svg { display: block; fill: none; height: auto; width: 100%; }

.wrs-gauge__track { stroke: #f7f7f7; stroke-width: 4.5; }

.wrs-gauge__bar { stroke-width: 4.5; }

/*
 * The old style sheet set letter-spacing −0.07em here, but both recovered screenshots (desktop and phone) show the
 * figures at normal spacing (ink 48 / 51 / 51 px); the screenshots are followed.
 */
.wrs-gauge__total {
	color: var(--wrs-text-dark);
	font-size: 26px;
	font-weight: 500;
	left: 50%;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	white-space: nowrap;
}

.wrs-gauge__title { color: var(--wrs-text-dark); font-weight: 500; line-height: 24px; margin: 5px 0 0; }

/* Progress bars: the label and percentage 8 px above a 6 px bar; 57 px between bars. */
.wrs-progress { padding-top: 30px; position: relative; }

.wrs-progress + .wrs-progress { margin-top: 57px; }

.wrs-progress__text {
	bottom: 14px;
	color: var(--wrs-text-dark);
	display: flex;
	justify-content: space-between;
	left: 0;
	line-height: 24px;
	margin: 0;
	position: absolute;
	right: 0;
}

.wrs-progress__label { font-size: 15px; font-weight: 500; }

.wrs-progress__value { font-size: 14px; }

.wrs-progress__track { background: var(--wrs-bg); border-radius: 6px; height: 6px; }

.wrs-progress__bar { background: var(--wrs-pink); border-radius: 6px; box-shadow: 0 3px 10px rgba(227, 0, 108, 0.2); height: 6px; }

/* Wide screens: the old theme's spacers grew (tiny 20 → 22 px, large 30 → 33 px, the bars' top gap 30 → 34 px), and from 1680 to 2159 px the
   narrow columns were inset by 8 % of their width (2.8266 % of the row). */
@media (min-width: 1680px) {
	.wrs-legacy-shortcode,
	.wrs-legacy-col > .wrs-gauges,
	.wrs-legacy-col > .wrs-progress-bars { margin-top: 62px; }
	.wrs-legacy-rule { margin-bottom: 68px; }
	.wrs-legacy-rule--tiny { margin-top: 57px; }
	.wrs-progress { padding-top: 34px; }
}

@media (min-width: 1680px) and (max-width: 2159px) {
	.wrs-legacy-col--narrow { padding-left: calc(15px + 2.8266%); }
}

@media (max-width: 1439px) {
	.wrs-legacy-heading { font-size: 20px; }
}

@media (max-width: 1024px) {
	.wrs-legacy-col--wide { width: 62%; }
	.wrs-legacy-col--narrow { width: 38%; }
	.wrs-legacy-col--gauges { padding-right: 15px; }
}

@media (max-width: 767px) {
	.wrs-legacy-row { display: block; }
	.wrs-legacy-row--charts { padding-bottom: 0; }
	.wrs-legacy-col--wide,
	.wrs-legacy-col--narrow { width: auto; }
	.wrs-legacy-rule,
	.wrs-legacy-rule--tiny { margin: 25px 0 45px; }
	/* The last block in its column: WordPress's flow layout drops a last child's bottom margin, so padding. */
	.wrs-legacy-rule--phone { display: block; margin: 45px 0 0; padding-bottom: 25px; }
	.wrs-gauges__column { width: 50%; }
}

@media (max-width: 600px) {
	.wrs-gauges__column { width: 100%; }
}

@media (max-width: 479px) {
	.wrs-progress { padding-top: 25px; }
	.wrs-gauges { margin: 0 -25px -25px 0; }
	.wrs-gauges__column { padding: 0 25px 25px 0; }
}

/* ============================ review-round shells and sponsors (Phase 8C) */
/*
 * Phase 8C, owner review: the Activity, Members, Topics, Knowledge Base and Community News shells and the recovered
 * sponsor pages. Values measured on the recovered captures (1440 px desktop, 390 px mobile) and, for the other
 * tiers, on the offline copies of the recovered pages. Every control here is a static picture (hidden from assistive
 * technology, never focusable): no search, ordering or filtering exists behind them.
 */

/* --- directory extras: the activity feed's RSS icon, the order select's recovered widths, Activity's blue count - */
.wrs-empty-state__rss { color: var(--wrs-pink); display: block; flex: 0 0 auto; height: 19px; margin: 6px 15px 0 0; width: 18px; }
.wrs-empty-state__rss .wrs-icon { display: block; height: 19px; width: 18px; }
.wrs-empty-state__rss + .wrs-empty-state__search { margin-right: auto; }

/* The old select took the width of its longest option (Groups 149 px, the default); full width below 512 px. */
@media (min-width: 512px) {
	.wrs-empty-state--activity .wrs-empty-state__order { width: 189px; }
	.wrs-empty-state--members .wrs-empty-state__order { width: 179px; }
}

/* Below 512 px the RSS icon takes its own 28 px line above the search, as recovered (padding: no margin collapse). */
@media (max-width: 511px) {
	.wrs-empty-state__rss { margin: 0; padding: 6px 0 3px; }
}

/*
 * Below 512 px the order control spans the row, but the old select inside it kept its own width (its longest
 * option: Groups 172 px, Activity 212 px, Members 202 px): only that part is white, the chevron sits at the row's end.
 */
@media (max-width: 511px) {
	.wrs-empty-state__select { background: none; box-shadow: none; isolation: isolate; }
	.wrs-empty-state__select::before {
		background: #fff;
		border-radius: 2px;
		box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
		content: "";
		height: 100%;
		left: 0;
		position: absolute;
		top: 0;
		width: 172px;
		z-index: -1;
	}
	.wrs-empty-state--activity .wrs-empty-state__select::before { width: 212px; }
	.wrs-empty-state--members .wrs-empty-state__select::before { width: 202px; }
}

/* Activity's count sat in the old "new items" badge: blue, borderless. */
.wrs-empty-state--activity .wrs-empty-state__count { background: #5087e5; border: 0; color: #fafafa; }

/* --- forum topic list: search picture, breadcrumb, table header and empty footer row ------------------------- */
.wrs-empty-state__forum-top { display: flow-root; }

.wrs-empty-state__forum-search {
	background: #fff;
	border: 1px solid var(--wrs-border);
	border-radius: 26px;
	box-shadow: 0 3px 16px rgba(0, 0, 0, 0.051);
	box-sizing: border-box;
	display: block;
	float: right;
	height: 51px;
	position: relative;
	width: 269.84px;
}

.wrs-empty-state__forum-search-button {
	align-items: center;
	background: var(--wrs-text-dark);
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 43px;
	justify-content: center;
	position: absolute;
	right: 3px;
	top: 3px;
	width: 43px;
}

.wrs-empty-state__forum-search-button .wrs-icon { height: 18px; width: 18px; }

.wrs-empty-state__crumbs { color: var(--wrs-text); font-size: 14px; line-height: 24px; margin: 0; padding: 14px 0; }
.wrs-empty-state__crumb { color: var(--wrs-pink); font-weight: 500; text-decoration: none; }
a.wrs-empty-state__crumb[href]:hover { color: var(--wrs-hover); }
.wrs-empty-state__crumbs .wrs-empty-state__crumb--current,
.wrs-empty-state__crumbs .wrs-empty-state__crumb--text { color: var(--wrs-text); font-weight: 400; } /* --text: Phase 8L, a crumb without a page ("Forums") */
.wrs-empty-state__crumb-sep { color: var(--wrs-text-dark); display: inline-block; font-size: 15px; margin: 0 4px; }

.wrs-empty-state__forum-wrap { margin-top: 30px; }

.wrs-empty-state__forum { border: 1px solid #eee; }

.wrs-empty-state__forum-head { background: #f9fafc; box-sizing: border-box; padding: 16px 19px 15px; }

.wrs-empty-state__forum-table { border-collapse: collapse; table-layout: fixed; width: 100%; }

/*
 * Phase 8L (owner decision): two columns — the topic, and its publication date in the recovered last column's 26 % of
 * the row inside its 19 px padding (17 % from 1680 px; 40 % on phones). bbPress's Voices and Posts are left out.
 */
.wrs-empty-state__forum-table th {
	background: #f9fafc;
	box-sizing: border-box;
	color: var(--wrs-text-dark);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 24px;
	padding: 0 20px 0 0;
	text-align: left;
	text-transform: uppercase;
}

.wrs-empty-state__forum-table th:last-child { padding-right: 0; width: 26%; }

.wrs-empty-state__forum-footer { background: #fff; border-top: 1px solid var(--wrs-border); box-sizing: border-box; height: 44px; padding: 16px 19px 15px; }

@media (min-width: 1680px) {
	/* The old forum pages (not WordPress Pages) sat 40.432 px lower from 1680 px, as the events routes do. */
	.wrs-page--page:has(.wrs-empty-state__forum) .wrs-page-title { margin-top: 40.432px; }
	.wrs-empty-state__forum-table th:last-child { width: 17%; }
}

/* --- Knowledge Base: the blue search panel picture and the recovered "FAQs coming soon" ------------------------ */
.wrs-search-hero { background: #0d4bc1; border-radius: 15px; box-sizing: border-box; padding: 61px 0 80px; text-align: center; }

.wrs-search-hero__title { color: #fff; font-size: 48px; font-weight: 700; letter-spacing: 0; line-height: 72px; margin: 0; }

.wrs-search-hero__box {
	border-radius: 5px;
	box-sizing: border-box;
	display: flex;
	margin: 21px auto 0;
	padding: 6px;
	width: 40%;
}

.wrs-search-hero__field {
	align-items: center;
	background: #fff;
	border-radius: 5px 0 0 5px;
	box-sizing: border-box;
	color: #5c5c5c;
	display: flex;
	flex: 1 1 auto;
	font-size: 16px;
	height: 61px;
	min-width: 0;
	padding: 0 25px;
	text-align: left;
}

/* The placeholder is clipped at the field's content edge, as in the old input (phones: "Search the documentatic"). */
.wrs-search-hero__text { min-width: 0; overflow: hidden; white-space: nowrap; }

/* The button's visible colour: the old theme's "slide" button painted the accent over its dark background colour. */
.wrs-search-hero__button {
	align-items: center;
	background: var(--wrs-pink);
	border-radius: 0 5px 5px 0;
	color: #fff;
	display: flex;
	flex: 0 0 auto;
	font-size: 16px;
	line-height: 16px;
	padding: 0 25px;
}

/* The old knowledge base's own spacing: 40 px between its rows, then 140 px of its container below the last one. */
.wrs-page__content .wrs-kb-faqs {
	color: var(--wrs-text);
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 24px;
	margin: 40px 0 0;
	padding-bottom: 140px;
	text-align: center;
}

/* --- Community News: three columns of card frames (25 / 50 / 25 %), their headings and recovered links -------- */
.wrs-page__content > .wrs-cn { display: flex; margin: 0 -15px; }
.wrs-cn__col { box-sizing: border-box; min-width: 0; padding: 0 15px; width: 25%; }
.wrs-cn__col--main { width: 50%; }

/* The old spacers: one (30 px, with the 20 px widget gaps) between cards, two above Team Members. */
.wrs-cn > .wrs-cn__col > * + * { margin-top: 70px; }
.wrs-cn > .wrs-cn__col > .wrs-cn__card--after-two-spacers { margin-top: 120px; }

/* The cards' bodies (demo posts, members, testimonials) are not reproduced: the recovered title margin (30 px, 20 px
   on the list card) leads straight to the card's link. */
.wrs-cn .wrs-panel--section .wrs-panel__title + * { margin-top: 0; }
.wrs-cn .wrs-cn__card--list .wrs-panel__title { margin-bottom: 20px; }

/* Team Members' order tabs, a static picture (the old separators were hidden). */
.wrs-members__tabs { display: flex; flex-wrap: wrap; gap: 8px 7.2px; margin: 0 0 -8px; }

.wrs-members__tab {
	background: var(--wrs-bg);
	border-radius: 15px;
	color: var(--wrs-text-dark);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 24px;
	padding: 2px 9px;
	text-transform: uppercase;
}

/* The simple VIEW ALL link on its own (a recovered "#" is shown the same but never navigates). */
.wrs-view-all-wrap { margin: 0; }
.wrs-panel .wrs-view-all-wrap--simple { line-height: 24px; margin-bottom: -6px; }
.wrs-panel--widget .wrs-view-all-wrap--simple { margin-top: 20px; }

/* The full-width pink button ("All News"). */
.wrs-view-all-button {
	background: var(--wrs-pink);
	border-radius: 26px;
	box-sizing: border-box;
	color: var(--wrs-accent-text);
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 21px;
	padding: 16px 50.05px;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 0.3s, color 0.3s;
}

a.wrs-view-all-button[href]:hover { background: var(--wrs-hover); color: var(--wrs-accent-text); }

@media (min-width: 1680px) {
	.wrs-cn .wrs-panel { padding: 45px 44px; }
	.wrs-members__tab { padding: 2px 13px; }
}

@media (max-width: 1439px) {
	.wrs-view-all-button { border-radius: 22px; font-size: 11px; padding: 10px 29.7px; }
}

@media (min-width: 1280px) and (max-width: 1439px) {
	.wrs-members__tabs { column-gap: 4.2px; }
	.wrs-members__tab { font-size: 10px; padding: 0 7px; }
}

/* From 1279 px the middle column comes first (the old layout's own order), still between the side columns' widths. */
@media (max-width: 1279px) {
	.wrs-cn__col--main { order: -1; }
}

/*
 * Tablet (the old Elementor ≤1024 px rules): the middle column at full width, the side columns below it; each column
 * ended with the old spacer (50 px with its widget gap). The first column is the group's first child (it follows the
 * middle column only through `order`), so its spacer has to outweigh core's flow-layout reset
 * `:root :where(.is-layout-flow) > :first-child { margin-block-start: 0 }` (Phase 8I: it had left the All News button
 * directly on the Recent Topics card).
 */
@media (max-width: 1024px) {
	.wrs-page__content > .wrs-cn { flex-wrap: wrap; }
	.wrs-cn__col, .wrs-cn__col--main { width: 50%; }
	.wrs-cn__col--main { width: 100%; }
	.wrs-page__content > .wrs-cn > .wrs-cn__col--first, .wrs-page__content > .wrs-cn > .wrs-cn__col--last { margin-top: 50px; }
}

@media (max-width: 981px) {
	.wrs-search-hero { padding: 20px 0; }
	.wrs-search-hero__title { font-size: 26px; line-height: 39px; margin: 0 5%; }
	.wrs-search-hero__box { width: 90%; }
	.wrs-search-hero__field { height: 48px; }
	.wrs-search-hero__button { font-size: 14px; line-height: 14px; padding: 0 10px; }
}

@media (max-width: 767px) {
	.wrs-empty-state__forum-search { border-radius: 22px; float: none; width: 100%; }
	/* Phase 8L: the two columns fit the phone (the recovered four needed 645 px and scrolled sideways); the box still
	   scrolls rather than overflow the page should anything be wider. */
	.wrs-empty-state__forum { overflow-x: auto; }
	.wrs-empty-state__forum-table th:last-child { width: 40%; }
	.wrs-cn__col, .wrs-cn__col--main { width: 100%; }
}

@media (max-width: 600px) {
	.wrs-view-all-button { padding: 10px 22px; }
}

@media (max-width: 479px) {
	.wrs-empty-state__forum-wrap { margin-top: 25px; }
}

@media (max-width: 320px) {
	.wrs-empty-state__forum-search { margin-bottom: 10px; }
}

@media (max-width: 479px) {
	.wrs-page__content > .wrs-cn { margin: 0 -12.5px; }
	.wrs-cn__col { padding: 0 12.5px; }
	.wrs-view-all-button { padding: 10px 20.9px; }
}

/* --- sponsors: the archive (the shows' card grid) and the single (content card and post navigation) ----------- */
.wrs-page--sponsor {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin: 0 auto;
	max-width: calc(100% - var(--wrs-sidebar-cut)); /* the old "normal content": the page width − 375 px (Phase 8H) */
	padding-top: 30px;
}

/*
 * The archive grid follows the title band directly (the shows' archive has its heading in between). The old
 * /our-sponsors/ was a Page: the page width (the content area at every width — Phase 8H) and the page title gaps, not
 * the shows archive's mobile offsets.
 */
.wrs-page--sponsors .wrs-grid-wrap { margin-top: 0; }

.wrs-page--sponsor > * { margin: 0; }

.wrs-sponsor__content,
.wrs-adjacent--sponsor {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	padding: 30px;
}

.wrs-sponsor__content > * { margin: 0 0 24px; }
.wrs-sponsor__content > :last-child { margin-bottom: 0; }
.wrs-sponsor__content p { color: var(--wrs-text); font-size: 15px; line-height: 24px; }

.wrs-adjacent--sponsor { display: flex; flex-wrap: wrap; }
.wrs-adjacent__post { box-sizing: border-box; width: 50%; }
.wrs-adjacent__post--prev { padding-right: 15px; text-align: left; }
.wrs-adjacent__post--next { margin-left: auto; padding-left: 15px; text-align: right; }
.wrs-adjacent__post-link { color: inherit; display: block; text-decoration: none; }

.wrs-adjacent__post-label {
	color: var(--wrs-text-light);
	display: block;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 18px;
	text-transform: uppercase;
}

/* The recovered 9 px chevron, 10 px from the label. */
.wrs-adjacent__post-arrow { height: 12.8px; margin: 2.6px 5.6px 0 -4.4px; vertical-align: top; width: 12.8px; }
.wrs-adjacent__post--next .wrs-adjacent__post-arrow { margin: 2.6px -4.4px 0 5.6px; }

.wrs-adjacent__post-title {
	color: var(--wrs-text-dark);
	display: block;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.335;
	margin-top: 12px;
	transition: color 0.3s ease;
}

.wrs-adjacent__post-link:hover .wrs-adjacent__post-title { color: var(--wrs-pink); }

@media (min-width: 1680px) {
	.wrs-sponsor__content, .wrs-adjacent--sponsor { padding: 45px 44px; }
}

@media (max-width: 1279px) {
	.wrs-page--sponsor { max-width: none; }
	.wrs-adjacent__post-title { font-size: 16px; }
}

@media (max-width: 767px) {
	.wrs-page--sponsors .wrs-page-title { margin-bottom: 30px; }
	.wrs-page--sponsors .wrs-grid-wrap { margin-left: 0; margin-right: 0; }
}

@media (max-width: 479px) {
	.wrs-page--sponsors .wrs-page-title { margin-bottom: 25px; }
	.wrs-page--sponsor { gap: 25px; padding-top: 25px; }
	.wrs-sponsor__content, .wrs-adjacent--sponsor { padding: 25px; }
	.wrs-adjacent__post, .wrs-adjacent__post--prev, .wrs-adjacent__post--next { padding: 0; text-align: left; width: 100%; }
	.wrs-adjacent__post--prev + .wrs-adjacent__post--next { margin-top: 15px; }
}

/* ========================================== Coming Soon (Phase 8B, T1-CS) */
/*
 * The recovered centred "Coming Soon" notice (pattern `wrs/coming-soon`, template `page-coming-soon`): no title
 * band; the content column of the sidebar layout, whose recovered shop sidebar (demo products) is not reproduced.
 * The heading used the old theme's H1 sizes in the Cardo serif (WooCommerce's font on the old page). Phase 8C ships
 * the same Cardo file (regular 400 only, as the old page declared it, so the 600 heading is the browser's synthetic
 * bold of it, as recovered); see assets/LICENSES.md.
 */
.wrs-coming-soon { align-items: center; display: flex; flex-direction: column; gap: 7.5px; }

.wrs-coming-soon > * { margin: 0; }

.wrs-coming-soon .wrs-coming-soon__title {
	color: var(--wrs-text-dark);
	font-family: Cardo, serif;
	font-size: 38px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.142;
}

@media (min-width: 1680px) {
	.wrs-coming-soon .wrs-coming-soon__title { font-size: 45px; letter-spacing: -0.02em; line-height: 1.111; }
}

@media (max-width: 1439px) {
	.wrs-coming-soon .wrs-coming-soon__title { font-size: 28px; letter-spacing: normal; }
}

@media (max-width: 479px) {
	.wrs-coming-soon .wrs-coming-soon__title { font-size: 24px; }
}

/* ================================================================ Contacts */
/*
 * The recovered /contacts/ page (Phase 7B). The old page had a right sidebar (restored in Phase 8B: the shared
 * sidebar layout above); its content column is the recovered "normal content" width and stays left. Values
 * measured from the recovered captures (1440 px desktop tier and 390 px mobile) and the old theme's breakpoints.
 */
.wrs-page--contacts { padding-bottom: 50px; }

/* The form card (recovered Contact Form 7 look). */
.wrs-contact-form {
	background: var(--wrs-surface);
	border-radius: 15px;
	margin-bottom: 70px;
	padding: 30px;
}

.wrs-contact-form__field {
	background: var(--wrs-surface);
	border: 1px solid var(--wrs-border);
	border-radius: 26px;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.02);
	box-sizing: border-box;
	color: var(--wrs-text);
	display: block;
	font-family: inherit;
	font-size: 13px;
	line-height: 19px;
	margin: 0 0 30px;
	padding: 13px 20px;
	transition: color 0.3s, background-color 0.3s, border-color 0.3s;
	width: 100%;
}

.wrs-contact-form__field::placeholder { color: var(--wrs-text-light); opacity: 1; }
.wrs-contact-form__field:focus { background: #f9fafc; }
.wrs-contact-form__field--message { height: 117px; padding: 14px 20px 13px; resize: none; }

/* Desktop: the button left, the consent to its right (the recovered row); DOM order stays consent → button. */
.wrs-contact-form__actions { align-items: center; display: flex; flex-direction: row-reverse; gap: 20px; justify-content: flex-end; }

/* As recovered, the consent sits in a 24 px text line of its group (5 px below the line's top); its error tip follows
   that line. */
.wrs-contact-form__consent {
	color: var(--wrs-text);
	display: inline-block;
	font-size: 12px;
	line-height: 15px;
	padding-left: 2.15em;
	position: relative;
	transition: color 0.3s;
	vertical-align: baseline;
}

.wrs-contact-form__check {
	appearance: none;
	background: transparent;
	border: 1px solid var(--wrs-border);
	border-radius: 4px;
	box-sizing: border-box;
	cursor: pointer;
	height: 19px;
	left: 0;
	margin: 0;
	position: absolute;
	top: -2px;
	width: 19px;
}

/* Recovered checked state (label.checkbox_label.checked): an accent dot inside a white ring, and dark text. */
.wrs-contact-form__check:checked {
	background: radial-gradient(circle, var(--wrs-pink) 55%, var(--wrs-surface) 62%);
	box-shadow: inset 0 0 0 3px var(--wrs-surface);
}

.wrs-contact-form__consent:has(.wrs-contact-form__check:checked) { color: var(--wrs-text-dark); }

/* Recovered button: accent pill whose background slides to the hover colour. */
.wrs-contact-form__submit {
	background: linear-gradient(to left, var(--wrs-hover) 50%, var(--wrs-pink) 50%) 0 100% / 210% 100%;
	border: 0;
	border-radius: 26px;
	color: var(--wrs-accent-text);
	cursor: pointer;
	display: inline-block;
	flex: 0 0 auto;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 21px;
	margin: 0;
	padding: 16px 50.05px;
	text-transform: uppercase;
	transition: color 0.3s, background-position 0.3s;
	vertical-align: middle;
}

.wrs-contact-form__submit:hover, .wrs-contact-form__submit:focus-visible { background-position: 100% 100%; color: var(--wrs-bg); }

/*
 * Delivery states (Phase 7C), as the recovered stylesheets drew Contact Form 7's: a field error tip 4 px under the
 * field (inside its bottom margin), the field without its soft shadow; the result as the old theme's message box
 * centred over the form when scripted, or CF7's plain box under the form without JavaScript.
 */
.wrs-contact-form__form { position: relative; }

.wrs-contact-form__hp { height: 1px; left: -9999px; overflow: hidden; position: absolute; top: 0; width: 1px; }

.wrs-contact-form__field[aria-invalid="true"] { box-shadow: none; }

/* Tip colour: approved accessibility improvement (2026-09-29). The recovered CF7 tip colour, #fb582a, is known from
   the old stylesheets, but the error state itself was never captured. At 12 px it gives 3.22:1 on white, so the tip
   uses the nearest similar colour (CIEDE2000) that reaches 4.5:1. Everything else is as recovered. */
.wrs-contact-form__tip { color: #db3c11; display: block; font-size: 12px; line-height: 1.4em; margin: -26px 0 15px; }
.wrs-contact-form__tip[hidden] { display: none; }
.wrs-contact-form__consent-group .wrs-contact-form__tip { margin: 4px 0 0; }

.wrs-contact-form__response { border: 2px solid #00a0d2; color: var(--wrs-text); margin: 30px 0 0; padding: 3px 15px; }
.wrs-contact-form__response[hidden] { display: none; }
.wrs-contact-form__response.is-invalid { border-color: #ffb900; }
.wrs-contact-form__response.is-sent { border-color: #46b450; }
.wrs-contact-form__response.is-failed { border-color: #dc3232; }
.wrs-contact-form__response.is-spam { border-color: #f56e28; }

.is-scripted .wrs-contact-form__response {
	background: var(--wrs-surface);
	border: 1px solid var(--wrs-border);
	border-radius: 5px;
	box-sizing: border-box;
	font-size: 13px;
	left: 50%;
	line-height: 23px;
	margin: 0;
	max-width: 100%;
	opacity: 0;
	padding: 12px 18px;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: opacity 0.4s;
	width: max-content;
	z-index: 1000;
}

.is-scripted .wrs-contact-form__response::before { background: var(--wrs-menu-bg); content: ""; inset: 0; position: absolute; z-index: -1; }
.is-scripted .wrs-contact-form__response.is-visible { opacity: 1; }
.is-scripted .wrs-contact-form__response.is-invalid { border-color: rgba(251, 88, 42, 0.5); }
.is-scripted .wrs-contact-form__response.is-invalid::before { background: rgba(251, 88, 42, 0.05); }
.is-scripted .wrs-contact-form__response.is-sent { border-color: rgba(140, 200, 12, 0.5); }
.is-scripted .wrs-contact-form__response.is-sent::before { background: rgba(140, 200, 12, 0.05); }

/* The two cards (each keeps its own height, as recovered). */
.wrs-contact-cards { align-items: start; display: grid; gap: 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); }

.wrs-contact-card {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-sizing: border-box;
	padding: 30px;
}

/* The recovered glyphs filled their 48 px box; the replacement's drawing spans 18 of its 24 units, so it is drawn at
   64 px, centred on the same 48 px box (outside the flow, so the box keeps its recovered size). */
.wrs-contact-card__icon { color: var(--wrs-text-dark); display: block; height: 48px; position: relative; width: 48px; }
.wrs-contact-card__icon .wrs-icon { height: 64px; left: -8px; position: absolute; top: -8px; width: 64px; }
.wrs-contact-card__details { margin-top: 20px; }

.wrs-contact-card__title { color: var(--wrs-text-dark); font-size: 20px; font-weight: 600; line-height: 1.3em; margin: 0; }

.wrs-contact-card__lines { color: var(--wrs-text-dark); font-size: 16px; line-height: 26px; margin: 18px 0 0; overflow-wrap: break-word; }
.wrs-contact-card__lines a { color: inherit; }
.wrs-contact-card__lines a:hover { color: var(--wrs-pink); }

@media (min-width: 1680px) {
	.wrs-contact-form { padding: 45px 44px; }
	.wrs-contact-card { padding: 45px 44px 36px; }
}

@media (max-width: 1439px) {
	.wrs-contact-form__field { border-radius: 22px; padding: 10px 20px; }
	.wrs-contact-form__field--message { height: 98px; padding: 10px 20px; }
	.wrs-contact-form__submit { border-radius: 22px; font-size: 11px; padding: 10px 29.7px; }
	.wrs-contact-card__title { font-size: 18px; }
}

@media (max-width: 1279px) {
	.wrs-contact-card__lines { font-size: 14px; }
}

/* Below 768 px the consent sits above the button, in the recovered text-line flow. */
@media (max-width: 767px) {
	.wrs-contact-form__actions { display: block; font-size: 15px; line-height: 24px; }
	.wrs-contact-form__consent { margin: -5px 0 25px; }
	.wrs-contact-form__submit { display: block; }
}

@media (max-width: 600px) {
	.wrs-contact-form__submit { padding: 10px 22px; }
	.wrs-contact-cards { grid-template-columns: 1fr; }
}

@media (max-width: 479px) {
	.wrs-page--page .wrs-page-title { margin-bottom: 25px; }
	.wrs-contact-form { padding: 25px; }
	.wrs-contact-form__field { margin-bottom: 25px; }
	.wrs-contact-form__tip { margin-top: -21px; }
	.wrs-contact-form__consent { margin-bottom: 20px; }
	.is-scripted .wrs-contact-form__response { padding: 12px; }
	.wrs-contact-form__submit { padding: 10px 20.9px; }
	.wrs-contact-cards { gap: 25px; }
	.wrs-contact-card { padding: 25px; }
}

/* =================================================== single pages ≤767 px */
/* Kept last so these recovered mobile rules win over the component defaults above. */
@media (max-width: 767px) {
	.wrs-page--single > .wrs-box:first-child { margin-top: -80px; }
	/* The title keeps the recovered 60% column of the row (the old like button used the rest). */
	.wrs-entity-header__title-row { min-height: 66px; }
	.wrs-entity-header__title { flex: 0 0 calc((100% - 20px) * 0.6); font-size: 19px; }
	.wrs-episode-header__meta { align-content: flex-start; min-height: 64px; }
	.wrs-info { grid-template-columns: 1fr; }
	.wrs-info__heading { text-align: center; }
	.wrs-adjacent__pill--next { margin-left: auto; }
}

@media (max-width: 479px) {
	.wrs-info__heading { font-size: 22px; }
}

/* Recovered footer/404 details below 768 / 480 px. The recovered band's text starts 30px below its top and ends 20px
   above its bottom (Phase 8A correction: the extra 10px had been placed at the bottom). */
@media (max-width: 767px) {
	.wrs-footer__copyright { padding-top: 30px; }
}

@media (max-width: 479px) {
	.wrs-404__text { margin-bottom: 25px; }
}
/* ================================================= Phase 8F: managed news, topics, testimonials, activity */

/*
 * News cards: the old theme's blog cards, as its blogger and blog styles drew them (the recovered stylesheets, the
 * homepage and Community News captures). The image: a 10:7 frame (3:2 in the band and archive layouts) with 8 px
 * corners and the theme's "pull" hover — a light gradient mask at 30 % and the title over the image (the h4 style,
 * white, 20 px 30 px from the bottom); on hover the mask darkens fully, the title lifts 60 px (orange, #ffb039, under
 * the pointer) and the category (a pink pill) and the date slide in below it — the hover as on the still-live site
 * (reference screenshots, 2026-10-03). Below the image (classic): the category (upper case) and the date, then the
 * title (h4). Titles hover in the theme's link blue (#083fa9). The image repeats the title link for the mouse; the
 * title is the accessible link.
 */
.wrs-news { display: flex; flex-direction: column; gap: 20px; margin: 0; }

.wrs-panel--section .wrs-panel__title + .wrs-news { margin-top: 0; }

/* After a filled list the old View All sits under a rule (the old theme's `.sc_item_content + .sc_item_button`:
 * a 1 px top border, 19 px above the text): 30 px under a band list, 20 px under the dated card, 30 px under the text
 * list (33 px from 1680 px). With nothing published the card keeps its 8C place under the heading. */
.wrs-news + .wrs-view-all-wrap--simple { border-top: 1px solid var(--wrs-border); margin-top: 30px; padding-top: 19px; }
.wrs-news--card + .wrs-view-all-wrap--simple { margin-top: 20px; }

.wrs-news-card { margin: 0; min-width: 0; }
.wrs-news-card__media { border-radius: 8px; display: block; overflow: hidden; position: relative; }
.wrs-news-card__media::before { content: ""; display: block; padding-top: 70%; }
.wrs-news-card__media img { height: 100%; left: 0; object-fit: cover; position: absolute; top: 0; width: 100%; }

.wrs-news-card__mask {
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.29) 100%);
	inset: 0;
	opacity: 0.3;
	position: absolute;
	transition: opacity 0.5s ease;
}

.wrs-news-card__overlay {
	bottom: 0;
	color: #fff;
	font-size: 20px;
	font-weight: 600;
	left: 0;
	line-height: 1.3;
	padding: 20px 30px;
	position: absolute;
	right: 0;
	transition: transform 0.3s ease;
}

.wrs-news-card__overlay-meta {
	align-items: center;
	bottom: 0;
	box-sizing: border-box;
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 0 13px;
	height: 60px;
	left: 0;
	line-height: 18px;
	padding: 0 30px;
	position: absolute;
	right: 0;
	transform: translateY(60px);
	transition: transform 0.3s ease;
}

/* The old theme's category pill (10 px, 600, 0.1 em; 3 px 15 px; 24 px corners), as measured on the live hover. */
.wrs-news-card__overlay-meta .wrs-news-card__category {
	background: var(--wrs-pink);
	border-radius: 24px;
	color: var(--wrs-accent-text);
	font-size: 10px;
	padding: 3px 15px;
}

.wrs-news-card__overlay:hover { color: #ffb039; }
.wrs-news-card__media:hover .wrs-news-card__mask { opacity: 1; }
.wrs-news-card__media:hover .wrs-news-card__overlay { transform: translateY(-60px); }
.wrs-news-card__media:hover .wrs-news-card__overlay-meta { transform: translateY(0); }

.wrs-news-card__content { margin-top: 16px; }

.wrs-news-card__meta {
	color: var(--wrs-text-light);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 0 12px;
	line-height: 18px;
	margin: 0;
}

.wrs-news-card__category { color: var(--wrs-text-dark); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }

.wrs-news-card__title {
	color: var(--wrs-text-dark);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	margin: 8px 0 0;
}

.wrs-news-card__title a { color: inherit; text-decoration: none; transition: color 0.3s ease; }
.wrs-news-card__title a:hover { color: var(--wrs-hover); }
.wrs-news-card__excerpt { color: var(--wrs-text); font-size: 14px; line-height: 23px; margin: 8px 0 0; }

/* Band (Community News, main column): the image 39.6 % wide on the left, the title and excerpt beside it, centred;
 * a rule between the articles, 30 px above and below. */
.wrs-news--band { gap: 0; }
.wrs-news-card--band, .wrs-news-card--archive { align-items: stretch; display: flex; }
.wrs-news-card--band + .wrs-news-card--band { border-top: 1px solid var(--wrs-border); margin-top: 30px; padding-top: 30px; }
.wrs-news-card--band .wrs-news-card__media, .wrs-news-card--archive .wrs-news-card__media { flex: 0 0 39.6%; }
.wrs-news-card--band .wrs-news-card__media::before, .wrs-news-card--archive .wrs-news-card__media::before { padding-top: 66.25%; }

.wrs-news-card--band .wrs-news-card__content,
.wrs-news-card--archive .wrs-news-card__content { display: flex; flex-direction: column; justify-content: center; min-width: 0; }

.wrs-news-card--band .wrs-news-card__content { margin-top: -6px; padding-left: 30px; }
.wrs-news-card--band .wrs-news-card__title { margin: 0; }

/* Tech News (the old classic blogger item with its header): the date above the image (the author before it left
 * out), 19 px over the image; then the title and a ten-word excerpt (14 px / 23 px, 10 px under the title). */
.wrs-news-card__dateline { color: var(--wrs-text-light); font-size: 12px; line-height: 18px; margin: 0 0 19px; }
.wrs-news-card--card .wrs-news-card__content { margin-top: 18px; }
.wrs-news-card--card .wrs-news-card__title { margin: 0; }
.wrs-news-card--card .wrs-news-card__excerpt { margin-top: 10px; }

/* More Articles (the old `list_simple`): text only — the category and date, the title under them (the h5 size at
 * 600; 17 px from the meta text to the title as measured), the articles 28 px apart (the recovered rhythm less the
 * likes line, which is left out). */
.wrs-news--list { gap: 0; }
.wrs-news-card--list + .wrs-news-card--list { margin-top: 28px; }
.wrs-news-card--list .wrs-news-card__content { margin-top: 0; }
.wrs-news-card--list .wrs-news-card__title { font-size: 18px; line-height: 1.335; margin-top: 8px; }

/* All Posts: the old theme's blog-archive card — the band layout in a white block (30 px; 45 px 44 px from 1680 px),
 * the image a third wide with square corners, the category and date above the title, 30 px between the cards. */
.wrs-news--archive { gap: 30px; }

.wrs-news-card--archive {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	overflow: hidden;
	padding: 30px;
}

.wrs-news-card--archive .wrs-news-card__media { border-radius: 0; flex-basis: 33.4%; }
.wrs-news-card--archive .wrs-news-card__content { margin-top: -13px; padding-left: 30px; }
.wrs-news-card--archive .wrs-news-card__meta + .wrs-news-card__title { margin-top: 9px; }
.wrs-news-card--archive .wrs-news-card__excerpt { margin-top: 11px; }

@media (min-width: 1680px) {
	.wrs-news--list + .wrs-view-all-wrap--simple { margin-top: 33px; }
	.wrs-news-card--archive { padding: 45px 44px; }
	.wrs-news-card--archive .wrs-news-card__content { padding-left: 35px; }
}

@media (max-width: 1439px) {
	.wrs-news-card__title, .wrs-news-card__overlay { font-size: 18px; }
	.wrs-news-card--list .wrs-news-card__title { font-size: 16px; }
}

@media (max-width: 1279px) {
	.wrs-news-card--archive .wrs-news-card__media { flex-basis: 39.6%; }
}

@media (max-width: 600px) {
	.wrs-news-card--band, .wrs-news-card--archive { flex-direction: column; }
	.wrs-news-card--band .wrs-news-card__media, .wrs-news-card--archive .wrs-news-card__media { flex-basis: auto; }
	.wrs-news-card--band .wrs-news-card__content, .wrs-news-card--archive .wrs-news-card__content { margin-top: 10px; padding: 0; }
	.wrs-news-card--archive .wrs-news-card__meta + .wrs-news-card__title { margin-top: 5px; }
}

@media (max-width: 479px) {
	.wrs-news + .wrs-view-all-wrap--simple { margin-top: 25px; }
	.wrs-news--card + .wrs-view-all-wrap--simple { margin-top: 20px; }
	.wrs-news--archive { gap: 25px; }
	.wrs-news-card--band + .wrs-news-card--band { margin-top: 25px; padding-top: 25px; }
	.wrs-news-card--archive { padding: 25px; }
	.wrs-news-card__overlay { padding: 20px 25px; }
	.wrs-news-card__overlay-meta { padding: 0 25px; }
}

/* Recent Topics: a published topic's title is a link (the theme's link blue on hover, as on the still-live site). */
a.wrs-topics__title { text-decoration: none; transition: color 0.3s ease; }
a.wrs-topics__title:hover { color: var(--wrs-hover); }

/*
 * The Topics page list, as the old bbPress list was drawn (the recovered stylesheets and captures): the pagination
 * line above and below (the count in 14 px; the page links beside it on the right, the current one orange), the
 * header row exactly as the empty list's, then white rows (20 px; 28 px / 26 px from 1680 px) with the topic title in
 * the h5 style at 500, the date in light grey, and the empty footer row. One table: it is inset by the list's 19 px, so
 * its columns fall where the header's do (Phase 8L: the topic, then the date in 26 %; 17 % from 1680 px, 40 % on
 * phones, where the list now fits), and the header band and the row rules reach the edges through the first and last
 * cells.
 */
.wrs-topic-index__pagination { display: flow-root; margin-top: 30px; }
.wrs-topic-index__count { color: var(--wrs-text); float: left; font-size: 14px; line-height: 24px; margin: 0; }
.wrs-topic-index__pages { float: right; font-size: 14px; line-height: 24px; }
.wrs-topic-index__pages .page-numbers { color: var(--wrs-text); margin-left: 13px; text-decoration: none; transition: color 0.3s ease; }
.wrs-topic-index__pages .page-numbers.current, .wrs-topic-index__pages a.page-numbers:hover { color: #fb582a; }

.wrs-topic-index__table {
	border-collapse: separate;
	border-spacing: 0;
	margin: 0 19px;
	table-layout: fixed;
	width: calc(100% - 38px);
}

.wrs-topic-index__table th,
.wrs-topic-index__table td { box-sizing: border-box; position: relative; text-align: left; }

.wrs-topic-index__table thead th {
	background: #f9fafc;
	color: var(--wrs-text-dark);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 24px;
	padding: 16px 20px 15px 0;
	text-transform: uppercase;
}

.wrs-topic-index__table thead th:last-child { padding-right: 0; width: 26%; }

.wrs-topic-index__table tbody th,
.wrs-topic-index__table tbody td {
	background: #fff;
	border-top: 1px solid var(--wrs-border);
	color: var(--wrs-text-light);
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	padding: 20px 20px 20px 0;
	vertical-align: top;
}

.wrs-topic-index__table tbody td:last-child { padding-right: 0; }
.wrs-topic-index__table tfoot td { background: #fff; border-top: 1px solid var(--wrs-border); height: 44px; padding: 0; }

.wrs-topic-index__table tr > :first-child::before,
.wrs-topic-index__table tr > :last-child::after {
	background: inherit;
	border-top: inherit;
	bottom: 0;
	content: "";
	position: absolute;
	top: -1px;
	width: 19px;
}

.wrs-topic-index__table thead tr > :first-child::before,
.wrs-topic-index__table thead tr > :last-child::after { top: 0; }

.wrs-topic-index__table tr > :first-child::before { left: -19px; }
.wrs-topic-index__table tr > :last-child::after { right: -19px; }

.wrs-topic-index__topic a {
	color: var(--wrs-text-dark);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.335em;
	text-decoration: none;
	transition: color 0.3s ease;
}

.wrs-topic-index__topic a:hover { color: var(--wrs-hover); }

@media (min-width: 1680px) {
	.wrs-topic-index__table thead th:last-child { width: 17%; }
	.wrs-topic-index__table tbody th, .wrs-topic-index__table tbody td { padding-bottom: 26px; padding-top: 28px; }
}

@media (max-width: 1439px) {
	.wrs-topic-index__topic a { font-size: 16px; }
}

@media (max-width: 767px) {
	.wrs-topic-index__table thead th:last-child { width: 40%; }
	.wrs-topic-index__table tbody td { font-size: 13px; line-height: 19px; }
}

@media (max-width: 479px) {
	.wrs-topic-index__pagination { margin-top: 25px; }
}

/*
 * The recovered testimonial slider: the 17 px stars (#ffb039; the unlit ones at 30 %), the quote (20 px, 1.45), the
 * round photo with the name (15 px, 500) and the role (11 px upper case, 0.1 em, light grey); one slide at a time,
 * the slider as tall as its tallest slide (as the old slider). Positions measured on the homepage and Community News
 * captures: the old icon-font stars sat 4 px higher than the card's 30 px, so the slider starts 4 px up; the quote
 * 20 px below the stars, the author 20 px below the quote. The dots look as the old slider's (Swiper): 6 px #e4e4e4,
 * the current one 8 px green with its soft shadow, left-aligned, 21 px below the slide (29 px from 1680 px), the first
 * at the recovered 4 px. Intentional accessibility improvement (owner decision, 2026-10-03): each dot is the centre of
 * its own 24 × 24 px button (WCAG 2.2 target size), so the dots stand 24 px apart instead of the recovered 14 px; the
 * buttons touch but never overlap, and the card keeps its recovered height.
 */
.wrs-panel--section .wrs-panel__title + .wrs-testimonials { margin-top: -4px; }
.wrs-testimonials { position: relative; }
.wrs-testimonials__viewport { overflow: hidden; }
.wrs-testimonials__track { display: flex; transition: transform 0.6s ease; }
.wrs-testimonials__slide { box-sizing: border-box; flex: 0 0 100%; margin: 0; min-width: 0; }
.wrs-testimonials__figure { margin: 0; } /* the quote and its author; the slide around it is the carousel group */
.wrs-testimonials__rating { display: flex; gap: 5px; margin: 0 0 20px; }
.wrs-testimonials__star { color: #ffb039; height: 17px; opacity: 0.3; width: 17px; }
.wrs-testimonials__star.is-on { opacity: 1; }
.wrs-testimonials__quote { color: var(--wrs-text-dark); font-size: 20px; line-height: 1.45; margin: 0; }
.wrs-testimonials__quote p { margin: 0; }
.wrs-testimonials__author { align-items: center; display: flex; gap: 15px; margin-top: 20px; }
.wrs-testimonials__photo { border-radius: 50%; flex: none; height: 48px; object-fit: cover; width: 48px; }
.wrs-testimonials__who { display: flex; flex-direction: column; min-width: 0; }
.wrs-testimonials__name { color: var(--wrs-text-dark); font-size: 15px; font-weight: 500; line-height: 1.4; }
.wrs-testimonials__role { color: var(--wrs-text-light); font-size: 11px; letter-spacing: 0.1em; line-height: 1.6; text-transform: uppercase; }
.wrs-testimonials__dots { align-items: center; display: flex; height: 24px; margin: 13px 0 -8px -5px; }

.wrs-testimonials__dot {
	align-items: center;
	background: none;
	border: 0;
	cursor: pointer;
	display: flex;
	flex: none;
	height: 24px;
	justify-content: center;
	padding: 0;
	width: 24px;
}

.wrs-testimonials__dot::after {
	background: var(--wrs-border);
	border-radius: 50%;
	content: "";
	height: 6px;
	transition: background-color 0.3s ease;
	width: 6px;
}

.wrs-testimonials__dot.is-active::after { background: var(--wrs-green); box-shadow: 0 3px 6px rgba(140, 200, 12, 0.2); height: 8px; width: 8px; }

@media (min-width: 1680px) {
	.wrs-testimonials__dots { margin-top: 21px; }
}

.wrs-testimonials__pause {
	background: #fff;
	border: 1px solid var(--wrs-border);
	border-radius: 8px;
	color: var(--wrs-text-dark);
	cursor: pointer;
	font-size: 13px;
	padding: 6px 10px;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 3;
}

.wrs-testimonials__pause:not(:focus):not(:focus-visible) {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	padding: 0;
	width: 1px;
}

/*
 * Activity: the old activity stream under the directory frame (the recovered stylesheets): each entry a white block
 * (15 px corners, the card shadow, 30 px; 30 px 45 px from 1680 px), 30 px apart; the 41 px round avatar on the left,
 * 13 px from the header (14 px / 20 px, its names in 600, the time below in 14 px); then, 20 px lower and the full
 * width, the published item's title (15 px).
 */
.wrs-activity__feed { margin-top: 30px; }
.wrs-activity__list { display: flex; flex-direction: column; gap: 30px; list-style: none; margin: 0; padding: 0; }

.wrs-activity__item {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	display: flow-root;
	padding: 30px;
}

.wrs-activity__avatar { border-radius: 50%; float: left; height: 41px; margin-right: 13px; width: 41px; }
.wrs-activity__header { color: var(--wrs-text); font-size: 14px; line-height: 20px; margin: 1px 0 1px 54px; }
.wrs-activity__actor, .wrs-activity__header a { color: var(--wrs-text-dark); font-weight: 600; text-decoration: none; }
.wrs-activity__time { color: #767676; display: block; font-size: 14px; }
.wrs-activity__inner { clear: left; font-size: 15px; line-height: 1.6; margin: 20px 0 0; }
.wrs-activity__title { color: var(--wrs-text-dark); font-weight: 600; text-decoration: none; transition: color 0.3s ease; }
.wrs-activity__title:hover, .wrs-activity__header a:hover { color: var(--wrs-hover); }

@media (min-width: 1680px) {
	.wrs-activity__item { padding: 30px 45px; }
	.wrs-activity__inner { margin-top: 22px; }
}

@media (max-width: 479px) {
	.wrs-activity__list { gap: 25px; }
	.wrs-activity__item { padding: 25px; }
}

/*
 * News article and topic pages: as the sponsor single (the old theme's single post) — from 1440 px its column (the
 * page width − 375 px; Phase 8H: no longer the captures' frozen 875 / 835 px), the content in the recovered white
 * block, then (news) the post navigation in its white block.
 */
.wrs-page--news > *, .wrs-page--topic > * { margin: 0; }
.wrs-page--news, .wrs-page--topic { gap: 30px; }
.wrs-news-header__image { margin: 20px 0 0; }
.wrs-news-header__image img { border-radius: 15px; display: block; height: auto; width: 100%; }
.wrs-topic-header__meta { color: var(--wrs-text-light); font-size: 13px; line-height: 20px; margin: 0; }
.wrs-topic-header .wrs-empty-state__crumbs { padding-top: 0; }

.wrs-news__content,
.wrs-topic__content,
.wrs-adjacent--news {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	padding: 30px;
}

.wrs-news__content > *, .wrs-topic__content > * { margin: 0 0 24px; }
.wrs-news__content > :last-child, .wrs-topic__content > :last-child { margin-bottom: 0; }
.wrs-news__content p, .wrs-topic__content p { color: var(--wrs-text); font-size: 15px; line-height: 24px; }
.wrs-adjacent--news { display: flex; flex-wrap: wrap; }

@media (min-width: 1440px) {
	.wrs-page--news, .wrs-page--topic { max-width: calc(100% - var(--wrs-sidebar-cut)); }
}

@media (min-width: 1680px) {
	.wrs-news__content, .wrs-topic__content, .wrs-adjacent--news { padding: 45px 44px; }
}

@media (max-width: 479px) {
	.wrs-page--news, .wrs-page--topic { gap: 25px; }
	.wrs-news__content, .wrs-topic__content, .wrs-adjacent--news { padding: 25px; }
	.wrs-adjacent--news .wrs-adjacent__post { padding: 0; text-align: left; width: 100%; }
	.wrs-adjacent--news .wrs-adjacent__post--prev + .wrs-adjacent__post--next { margin-top: 15px; }
}

/*
 * News engagement and comments (Phase 8J): new material in the WRS card style — the like toggle and the comment count
 * after the article, then (after the post navigation) the comments card with WordPress's comment form, its fields and
 * button as on the Contacts form. Not a recreation of the old theme's demo blocks. Small texts use --wrs-ink, at least
 * 4.5:1 on the card in both schemes (the recovered body grey is 4.07:1).
 */
.wrs-engagement, .wrs-comments { --wrs-ink: #5b5f66; }

.wrs-engagement__row { align-items: center; display: flex; flex-wrap: wrap; gap: 12px 24px; }
.wrs-engagement__like { margin: 0; position: relative; }
.wrs-engagement__hp { height: 1px; left: -9999px; overflow: hidden; position: absolute; top: 0; width: 1px; }

.wrs-engagement__button {
	align-items: center;
	background: var(--wrs-surface);
	border: 1px solid var(--wrs-border);
	border-radius: 26px;
	box-shadow: var(--wrs-shadow);
	color: var(--wrs-text-dark);
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	gap: 8px;
	letter-spacing: 0.06em;
	line-height: 21px;
	margin: 0;
	padding: 10px 20px;
	text-transform: uppercase;
	transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.wrs-engagement__heart { fill: var(--wrs-pink); flex: 0 0 auto; height: 16px; transition: fill 0.3s; width: 16px; }
.wrs-engagement__count { font-variant-numeric: tabular-nums; letter-spacing: 0; }
.wrs-engagement__button:hover { border-color: var(--wrs-pink); }
.wrs-engagement__button[aria-pressed="true"] { background: var(--wrs-pink); border-color: var(--wrs-pink); color: #fff; }
.wrs-engagement__button[aria-pressed="true"] .wrs-engagement__heart { fill: currentColor; }
.wrs-engagement__button[aria-busy="true"] { cursor: progress; }
.wrs-engagement__button:disabled { cursor: default; }

.wrs-engagement__comments {
	align-items: center;
	color: var(--wrs-ink);
	display: inline-flex;
	font-size: 13px;
	font-weight: 600;
	gap: 8px;
	line-height: 21px;
	text-decoration: none;
	transition: color 0.3s;
}

.wrs-engagement__comments:hover { color: var(--wrs-pink); }
.wrs-engagement__bubble { flex: 0 0 auto; height: 20px; width: 20px; }
.wrs-engagement__status { color: var(--wrs-ink); font-size: 13px; line-height: 20px; margin: 0; }
.wrs-engagement__status:not(:empty) { margin-top: 12px; }

.wrs-comments {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	padding: 30px;
}

.wrs-comments__title {
	align-items: center;
	border-bottom: 1px solid var(--wrs-border);
	color: var(--wrs-text-dark);
	display: flex;
	font-size: 23px;
	font-weight: 600;
	gap: 10px;
	line-height: 1.2;
	margin: -0.2em 0 30px;
	padding-bottom: 19px;
}

.wrs-comments__count {
	background: var(--wrs-pink);
	border-radius: 999px;
	box-sizing: border-box;
	color: #fff;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 22px;
	min-width: 22px;
	padding: 0 7px;
	text-align: center;
}

.wrs-comments__list, .wrs-comments__replies { list-style: none; margin: 0; padding: 0; }
.wrs-comments__list[hidden], .wrs-comments__empty[hidden] { display: none; }
.wrs-comments__replies { border-left: 2px solid var(--wrs-border); margin: 20px 0 0 20px; padding-left: 20px; }
.wrs-comment + .wrs-comment { border-top: 1px solid var(--wrs-border); margin-top: 20px; padding-top: 20px; }
.wrs-comment__header { align-items: center; display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0 0 10px; }
.wrs-comment__avatar { border-radius: 50%; flex: 0 0 auto; height: 40px; width: 40px; }
.wrs-comment__author { color: var(--wrs-text-dark); font-size: 15px; font-weight: 600; line-height: 22px; overflow-wrap: anywhere; }
.wrs-comment__date { color: var(--wrs-ink); font-size: 12px; line-height: 20px; }
.wrs-comment__pending { color: #8a4b00; font-size: 13px; font-style: italic; line-height: 20px; margin: 0 0 8px; }
.wrs-comment__text { color: var(--wrs-ink); font-size: 15px; line-height: 24px; overflow-wrap: anywhere; }
.wrs-comment__text > * { margin: 0 0 12px; }
.wrs-comment__text > :last-child { margin-bottom: 0; }
.wrs-comment__text a { color: var(--wrs-pink); }
.wrs-comments__empty, .wrs-comments__closed { color: var(--wrs-ink); font-size: 15px; line-height: 24px; margin: 0; }

.wrs-comment-form__container { border-top: 1px solid var(--wrs-border); margin-top: 30px; padding-top: 30px; }
.wrs-comment-form__title { color: var(--wrs-text-dark); font-size: 18px; font-weight: 600; line-height: 1.3; margin: 0 0 8px; }
.wrs-comment-form__title small { display: none; }
.wrs-comment-form__notes { color: var(--wrs-ink); font-size: 13px; line-height: 20px; margin: 0 0 20px; }
.wrs-comment-form__row { margin: 0 0 20px; }
.wrs-comment-form__label { color: var(--wrs-text-dark); display: block; font-size: 13px; font-weight: 600; line-height: 20px; margin: 0 0 6px; }
.wrs-comment-form .wrs-contact-form__field { color: var(--wrs-text-dark); margin: 0; }
.wrs-comments__template { display: none; }
.wrs-comment-form .wrs-comment-form__text { border-radius: 15px; height: auto; min-height: 140px; padding: 14px 20px; resize: vertical; }
.wrs-comment-form__consent { color: var(--wrs-ink); font-size: 13px; line-height: 20px; margin: 0 0 20px; padding-left: 30px; position: relative; }
.wrs-comment-form__consent .wrs-contact-form__check { left: 0; top: 0; }
.wrs-comment-form__actions { margin: 0; }
.wrs-comment-form[aria-busy="true"] .wrs-comment-form__submit { cursor: progress; }
.wrs-comments__respond { position: relative; }
.wrs-comments__status { color: var(--wrs-ink); font-size: 13px; line-height: 20px; margin: 0; }
.wrs-comments__status:not(:empty) { margin-top: 15px; }

@media (min-width: 1680px) {
	.wrs-comments { padding: 45px 44px; }
}

@media (max-width: 479px) {
	.wrs-comments { padding: 25px; }
	.wrs-comments__replies { margin-left: 8px; padding-left: 14px; }
	.wrs-comment-form__submit { padding-left: 30px; padding-right: 30px; }
}

/*
 * The public testimonial form (Phase 8K, new launch material, /testimonial/submit/): the recovered Contacts form's card,
 * fields, consent, button, tips and plain message box, with visible labels and hints; the star rating in the
 * testimonial slider's colours. The "Share your experience" link under the slider is the recovered VIEW ALL link.
 */
.wrs-testimonials__cta { margin-top: 22px; }
.wrs-panel__title + .wrs-testimonials__cta { margin-top: 0; }
/* A visitor may type a long unbroken word (a name, a handle, a link): it breaks inside the card instead of being cut off. */
.wrs-testimonials__quote, .wrs-testimonials__name, .wrs-testimonials__role { overflow-wrap: anywhere; }

/* Small texts in an accessible grey (as the 8J engagement): the recovered greys are under 4.5:1 at these sizes. */
.wrs-testimonial-form { --wrs-ink: #5b5f66; }

.wrs-testimonial-form__intro { color: var(--wrs-ink); font-size: 14px; line-height: 1.6; margin: 0 0 26px; }
.wrs-testimonial-form__row { border: 0; margin: 0 0 24px; min-width: 0; padding: 0; }
.wrs-testimonial-form__label { color: var(--wrs-text-dark); display: block; font-size: 13px; font-weight: 600; line-height: 19px; margin: 0 0 8px; padding: 0; }
.wrs-testimonial-form__required { color: var(--wrs-pink); margin-left: 2px; }
.wrs-testimonial-form__optional { color: var(--wrs-ink); font-weight: 400; }
.wrs-testimonial-form .wrs-contact-form__field { color: var(--wrs-text-dark); margin: 0; }
.wrs-testimonial-form__quote { border-radius: 20px; min-height: 140px; padding: 14px 20px 13px; resize: vertical; }
.wrs-testimonial-form__hint { color: var(--wrs-ink); display: block; font-size: 12px; line-height: 1.5; margin: 6px 0 0 20px; }
.wrs-testimonial-form .wrs-contact-form__tip { margin: 4px 0 0 20px; }
.wrs-testimonial-form__rating .wrs-contact-form__tip,
.wrs-testimonial-form .wrs-contact-form__consent-group .wrs-contact-form__tip { margin-left: 0; }

/* The rating: radio buttons, drawn as the slider's stars (lit up to the chosen one) after a "No rating" pill. */
.wrs-testimonial-form__stars { align-items: center; display: flex; flex-wrap: wrap; gap: 2px; position: relative; }
.wrs-testimonial-form__star-input { height: 1px; margin: 0; opacity: 0; position: absolute; width: 1px; }
.wrs-testimonial-form__none { border: 1px solid var(--wrs-border); border-radius: 26px; color: var(--wrs-ink); cursor: pointer; font-size: 12px; line-height: 19px; margin-right: 10px; padding: 5px 14px; transition: border-color 0.3s, color 0.3s; }
.wrs-testimonial-form__star-input:checked + .wrs-testimonial-form__none { border-color: var(--wrs-pink); color: var(--wrs-text-dark); }
.wrs-testimonial-form__star { cursor: pointer; display: inline-flex; padding: 3px; }
.wrs-testimonial-form__star-icon { color: #ffb039; height: 26px; opacity: 0.3; transition: opacity 0.2s; width: 26px; }
/* :focus, not :focus-visible: WebKit drops :focus-visible when the arrow keys move between radios. */
.wrs-testimonial-form__star-input:focus + label { outline: 1px dotted #888; outline-offset: 2px; }
.wrs-testimonial-form__stars:has(input[value="1"]:checked) [data-star="1"] .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has(input[value="2"]:checked) :is([data-star="1"], [data-star="2"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has(input[value="3"]:checked) :is([data-star="1"], [data-star="2"], [data-star="3"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has(input[value="4"]:checked) :is([data-star="1"], [data-star="2"], [data-star="3"], [data-star="4"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has(input[value="5"]:checked) [data-star] .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has([data-star="1"]:hover) [data-star="1"] .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has([data-star="2"]:hover) :is([data-star="1"], [data-star="2"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has([data-star="3"]:hover) :is([data-star="1"], [data-star="2"], [data-star="3"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has([data-star="4"]:hover) :is([data-star="1"], [data-star="2"], [data-star="3"], [data-star="4"]) .wrs-testimonial-form__star-icon,
.wrs-testimonial-form__stars:has([data-star="5"]:hover) [data-star] .wrs-testimonial-form__star-icon { opacity: 1; }
.wrs-testimonial-form__rating[aria-invalid="true"] .wrs-testimonial-form__none { border-color: #db3c11; }

/* The photo: the browser's own file chooser, its button as a small outlined pill. */
.wrs-testimonial-form__file { color: var(--wrs-ink); font-family: inherit; font-size: 13px; max-width: 100%; }
.wrs-testimonial-form__file::file-selector-button { background: var(--wrs-surface); border: 1px solid var(--wrs-border); border-radius: 26px; color: var(--wrs-text-dark); cursor: pointer; font: inherit; font-weight: 600; margin-right: 12px; padding: 9px 18px; transition: border-color 0.3s; }
.wrs-testimonial-form__file:hover::file-selector-button { border-color: var(--wrs-pink); }
.wrs-testimonial-form__file[aria-invalid="true"]::file-selector-button { border-color: #db3c11; }

.wrs-testimonial-form .wrs-contact-form__consent { color: var(--wrs-ink); display: block; line-height: 18px; }
.wrs-testimonial-form .wrs-contact-form__response { color: var(--wrs-ink); }
.wrs-testimonial-form__review { color: var(--wrs-ink); font-size: 12px; line-height: 1.6; margin: 0 0 22px; }

@media (max-width: 479px) {
	.wrs-testimonial-form__hint,
	.wrs-testimonial-form .wrs-contact-form__tip { margin-left: 0; }
	.wrs-testimonial-form .wrs-contact-form__submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.wrs-testimonials__track, .wrs-news-card__mask, .wrs-news-card__overlay, .wrs-news-card__overlay-meta { transition: none; }
}

/*
 * Phase 7D: legal pages (the `page-legal` template) — new launch material, laid out as the news article (the old
 * theme's single post): the column of 875 px (835 px from 1680 px), the text in the recovered white block. Headings
 * in the theme's h4 size; the text in #6b6b6b, the grey approved for new text (the audio notes, 4.76:1 — the recovered
 * #7A7E83 is below 4.5:1); links underlined (pink against grey text needs more than colour); the draft's review box;
 * a plain bordered table sized to its content, and on phones each row stacked as a small block (no sideways
 * scrolling). No recovered capture exists: the old site had no such page.
 */
.wrs-page--legal > * { margin: 0; }
.wrs-page--legal { gap: 30px; }
.wrs-legal__content {
	background: var(--wrs-surface);
	border-radius: 15px;
	box-shadow: var(--wrs-shadow);
	box-sizing: border-box;
	padding: 30px;
}

.wrs-legal__content > * { margin: 0 0 20px; }
.wrs-legal__content > :last-child { margin-bottom: 0; }
.wrs-legal__content p, .wrs-legal__content li { color: #6b6b6b; font-size: 15px; line-height: 24px; }
.wrs-legal__content strong { color: var(--wrs-text-dark); font-weight: 600; }
.wrs-legal__content > h2 { color: var(--wrs-text-dark); font-size: 20px; font-weight: 600; line-height: 1.3; margin: 40px 0 15px; }
.wrs-legal__content > h2:first-child { margin-top: 0; }
.wrs-legal__content ul { padding-left: 20px; }
.wrs-legal__content li + li { margin-top: 6px; }
.wrs-legal__content a { text-decoration: underline; text-underline-offset: 2px; }
.wrs-legal__review { background: #fff6e8; border-left: 4px solid #ffb039; border-radius: 6px; padding: 15px 20px; }
.wrs-legal__review > * { margin: 0; }
.wrs-legal__review > * + * { margin-top: 10px; }
.wrs-legal__review p { color: var(--wrs-text-dark); }
.wrs-legal__content .wp-block-table { overflow-x: auto; }
.wrs-legal__content .wp-block-table table { border-collapse: collapse; table-layout: auto; width: 100%; }
.wrs-legal__content .wp-block-table th,
.wrs-legal__content .wp-block-table td { border: 1px solid var(--wrs-border); color: #6b6b6b; font-size: 14px; line-height: 20px; padding: 8px 10px; text-align: left; vertical-align: top; word-break: normal; }
.wrs-legal__content .wp-block-table th { background: var(--wrs-bg); color: var(--wrs-text-dark); font-weight: 600; }

@media (min-width: 1440px) {
	.wrs-main > .wrs-page--legal { max-width: calc(100% - var(--wrs-sidebar-cut)); } /* as the news article (Phase 8H) */
}

@media (min-width: 1680px) {
	.wrs-legal__content { padding: 45px 44px; }
}

@media (max-width: 599px) {
	.wrs-legal__content .wp-block-table { overflow: visible; }
	.wrs-legal__content .wp-block-table thead { display: none; }
	.wrs-legal__content .wp-block-table table,
	.wrs-legal__content .wp-block-table tbody,
	.wrs-legal__content .wp-block-table tr,
	.wrs-legal__content .wp-block-table td { display: block; }
	.wrs-legal__content .wp-block-table tr { border: 1px solid var(--wrs-border); border-radius: 6px; padding: 10px 12px; }
	.wrs-legal__content .wp-block-table tr + tr { margin-top: 10px; }
	.wrs-legal__content .wp-block-table td { border: 0; padding: 0; }
	.wrs-legal__content .wp-block-table td + td { margin-top: 4px; }
	.wrs-legal__content .wp-block-table td:first-child { color: var(--wrs-text-dark); font-weight: 600; overflow-wrap: anywhere; }
}

@media (max-width: 479px) {
	.wrs-page--legal { gap: 25px; }
	.wrs-legal__content { padding: 25px; }
}

/*
 * Phase 7D: the footer's legal links (new launch material) under the recovered copyright line, in its pink band and
 * type. Rendered only once a legal page is published (`wrs/legal-links`); until then the footer is as recovered.
 */
.wrs-footer__copyright:has(+ .wrs-footer__legal) { padding-bottom: 0; }
.wrs-footer__legal {
	background: var(--wrs-pink);
	color: #fff;
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 24px;
	margin: 0;
	padding: 4px 20px 20px;
	text-align: center;
	text-transform: uppercase;
}

.wrs-footer__legal a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.wrs-footer__legal a:hover { color: inherit; text-decoration-thickness: 2px; }
.wrs-footer__legal a:focus-visible { outline-color: #fff !important; }
