/* ==========================================================================
   Pressline — main stylesheet

   MOBILE FIRST. Every base rule below is the small-screen rule; wider layouts
   are layered on with min-width media queries at the end of each section and
   in the breakpoint section (18). Breakpoints: 540, 720, 900, 1024, 1180.

   1.  Design tokens
   2.  Reset & base
   3.  Typography
   4.  Layout
   5.  Buttons & forms
   6.  Brand bar & header
   7.  Navigation (mobile drawer first, desktop bar at 900)
   8.  Search
   9.  Panels & section rules
   10. Cards (hero, row, grid, compact)
   11. Ranked lists & tags
   12. Sidebar widgets
   13. Ads & promos
   14. Newsletter band
   15. Single post & pages
   16. Comments
   17. Pagination & breadcrumbs
   18. Breakpoints (progressive enhancement)
   19. Footer
   20. Blocks & editor output
   21. Utilities, a11y, no-JS, motion, print
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
	/* Brand colours — override from Appearance > Customize > Colors */
	--pl-accent: #e0202a;
	--pl-accent-dark: #b3161e;
	--pl-brand: #3b3b8f;
	--pl-brand-dark: #2c2c72;

	/* Neutrals */
	--pl-ink: #16161a;
	--pl-ink-soft: #33333b;
	--pl-muted: #5c5c68;
	--pl-line: #e3e3e8;
	--pl-line-strong: #c9c9d2;
	--pl-bg: #ffffff;
	--pl-bg-alt: #f5f5f9;
	--pl-bg-dark: #26262b;
	--pl-bg-dark-soft: #35353c;

	/* Typography */
	--pl-font-sans: "Helvetica Neue", Helvetica, Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--pl-font-serif: Georgia, "Iowan Old Style", "Times New Roman", Times, serif;
	--pl-fs-xs: 0.75rem;
	--pl-fs-sm: 0.8125rem;
	--pl-fs-base: 1rem;
	--pl-fs-md: 1.0625rem;
	--pl-fs-lg: 1.25rem;
	--pl-fs-xl: 1.5rem;
	--pl-fs-2xl: 1.875rem;
	--pl-fs-3xl: 2.25rem;
	--pl-fs-4xl: 2.75rem;

	/* Space */
	--pl-space-1: 0.25rem;
	--pl-space-2: 0.5rem;
	--pl-space-3: 0.75rem;
	--pl-space-4: 1rem;
	--pl-space-5: 1.5rem;
	--pl-space-6: 2rem;
	--pl-space-7: 2.75rem;
	--pl-space-8: 3.5rem;

	/* Structure — mobile values; widened in section 18 */
	--pl-container: 1280px;
	--pl-rail: 300px;
	--pl-gutter: 1rem;
	--pl-radius: 3px;
	--pl-radius-lg: 8px;
	--pl-shadow: 0 1px 2px rgba(20, 20, 30, 0.06), 0 6px 20px rgba(20, 20, 30, 0.06);
	--pl-focus: 0 0 0 2px #fff, 0 0 0 4px var(--pl-brand);
	--pl-transition: 160ms ease;
}

/* --------------------------------------------------------------------------
   2. Reset & base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--pl-bg);
	color: var(--pl-ink);
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-base);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

body.pl-nav-open {
	overflow: hidden;
}

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object {
	display: block;
	max-width: 100%;
}

img,
video {
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--pl-transition);
}

a:hover,
a:focus-visible {
	color: var(--pl-accent);
}

:where(.entry-content, .comment-content) a {
	color: var(--pl-brand);
	text-decoration: underline;
	text-underline-offset: 2px;
}

:where(.entry-content, .comment-content) a:hover {
	color: var(--pl-accent);
}

:focus-visible {
	outline: 2px solid var(--pl-brand);
	outline-offset: 2px;
}

hr {
	border: 0;
	border-top: 1px solid var(--pl-line);
	margin: var(--pl-space-6) 0;
}

table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--pl-fs-sm);
}

th,
td {
	border: 1px solid var(--pl-line);
	padding: var(--pl-space-2) var(--pl-space-3);
	text-align: left;
}

/* Wide content must scroll inside itself, never the page. */
.entry-content table,
.entry-content pre,
.wp-block-table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

/* --------------------------------------------------------------------------
   3. Typography
   -------------------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--pl-space-3);
	font-family: var(--pl-font-serif);
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: -0.006em;
	color: var(--pl-ink);
}

/* Fluid type: scales continuously between the smallest and largest viewport,
   so there is no size jump at any breakpoint. */
h1 {
	font-size: clamp(1.9rem, 1.35rem + 1.9vw, var(--pl-fs-4xl));
}

h2 {
	font-size: clamp(1.5rem, 1.2rem + 1.1vw, var(--pl-fs-2xl));
}

h3 {
	font-size: var(--pl-fs-xl);
}

h4 {
	font-size: var(--pl-fs-lg);
}

h5,
h6 {
	font-size: var(--pl-fs-md);
}

p {
	margin: 0 0 var(--pl-space-4);
}

blockquote {
	margin: var(--pl-space-6) 0;
	padding: var(--pl-space-2) 0 var(--pl-space-2) var(--pl-space-5);
	border-left: 3px solid var(--pl-accent);
	font-family: var(--pl-font-serif);
	font-size: var(--pl-fs-lg);
	line-height: 1.4;
}

blockquote cite {
	display: block;
	margin-top: var(--pl-space-3);
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-sm);
	font-style: normal;
	color: var(--pl-muted);
}

code,
kbd,
pre,
samp {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
}

pre {
	overflow-x: auto;
	padding: var(--pl-space-4);
	background: var(--pl-bg-alt);
	border-radius: var(--pl-radius);
}

figure {
	margin: 0 0 var(--pl-space-5);
}

figcaption {
	margin-top: var(--pl-space-2);
	color: var(--pl-muted);
	font-size: var(--pl-fs-sm);
	line-height: 1.4;
}

.eyebrow {
	display: block;
	margin-bottom: var(--pl-space-2);
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-xs);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--pl-muted);
}

.eyebrow--sponsored strong {
	color: var(--pl-ink);
}

/* --------------------------------------------------------------------------
   4. Layout — single column by default
   -------------------------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--pl-container);
	margin-inline: auto;
	padding-inline: var(--pl-gutter);
}

.site-main {
	padding-block: var(--pl-space-5) var(--pl-space-7);
}

.layout {
	display: grid;
	gap: var(--pl-space-6);
	align-items: start;
	grid-template-columns: minmax(0, 1fr);
}

.layout__main {
	min-width: 0;
}

/* Rail stacks under the story list on small screens. */
.layout__rail {
	min-width: 0;
	padding-top: var(--pl-space-6);
	border-top: 1px solid var(--pl-line);
}

.stack > * + * {
	margin-top: var(--pl-space-6);
}

.section + .section {
	margin-top: var(--pl-space-7);
}

/* --------------------------------------------------------------------------
   5. Buttons & forms
   -------------------------------------------------------------------------- */
.btn,
.wp-block-button__link,
button,
input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pl-space-2);
	padding: 0.7em 1.35em;
	border: 1px solid transparent;
	border-radius: var(--pl-radius);
	background: var(--pl-brand);
	color: #fff;
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-sm);
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	transition: background-color var(--pl-transition), color var(--pl-transition), border-color var(--pl-transition);
}

.btn:hover,
.btn:focus-visible,
button:hover,
input[type="submit"]:hover {
	background: var(--pl-brand-dark);
	color: #fff;
}

.btn--accent {
	background: var(--pl-accent);
}

.btn--accent:hover,
.btn--accent:focus-visible {
	background: var(--pl-accent-dark);
	color: #fff;
}

.btn--ghost {
	background: transparent;
	border-color: var(--pl-line-strong);
	color: var(--pl-ink);
}

.btn--ghost:hover,
.btn--ghost:focus-visible {
	background: var(--pl-ink);
	border-color: var(--pl-ink);
	color: #fff;
}

.btn--dark {
	background: var(--pl-ink);
}

.btn--dark:hover,
.btn--dark:focus-visible {
	background: #000;
	color: #fff;
}

.btn--block {
	width: 100%;
}

.btn--sm {
	padding: 0.5em 0.9em;
	font-size: var(--pl-fs-xs);
}

.btn__icon {
	width: 1em;
	height: 1em;
	fill: currentColor;
	flex: none;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea {
	width: 100%;
	padding: 0.72em 0.85em;
	border: 1px solid var(--pl-line-strong);
	border-radius: var(--pl-radius);
	background: #fff;
	color: var(--pl-ink);
	font-family: inherit;
	/* 16px on mobile stops iOS Safari zooming the viewport on focus. */
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color var(--pl-transition), box-shadow var(--pl-transition);
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--pl-brand);
	box-shadow: 0 0 0 3px rgba(59, 59, 143, 0.14);
	outline: none;
}

::placeholder {
	color: #8a8a96;
	opacity: 1;
}

label {
	display: block;
	margin-bottom: var(--pl-space-1);
	font-size: var(--pl-fs-sm);
	font-weight: 600;
}

fieldset {
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius);
	padding: var(--pl-space-4);
}

/* --------------------------------------------------------------------------
   6. Brand bar & header
   -------------------------------------------------------------------------- */
.brandbar {
	background: var(--pl-bg-dark);
	color: #fff;
	font-size: var(--pl-fs-sm);
}

.brandbar a {
	color: #e7e7ec;
}

.brandbar a:hover,
.brandbar a:focus-visible {
	color: #fff;
}

.brandbar__inner {
	display: flex;
	align-items: center;
	gap: var(--pl-space-4);
	min-height: 40px;
}

.brandbar__mark {
	display: inline-flex;
	align-items: center;
	padding-right: var(--pl-space-4);
	border-right: 1px solid var(--pl-bg-dark-soft);
	line-height: 0;
}

.brandbar__mark svg {
	width: 20px;
	height: 20px;
	fill: #fff;
	opacity: 0.85;
}

/* Sister-title links are secondary: they appear from 720 up. */
.brandbar__nav {
	display: none;
}

.brandbar__nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.brandbar__aside {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--pl-space-1);
	white-space: nowrap;
}

.brandbar__aside svg {
	width: 12px;
	height: 12px;
	fill: currentColor;
}

.site-header {
	position: relative;
	z-index: 60;
	background: #fff;
	border-bottom: 1px solid var(--pl-line);
}

.site-header--sticky {
	position: sticky;
	top: 0;
}

.site-header.is-pinned {
	box-shadow: 0 2px 12px rgba(20, 20, 30, 0.08);
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--pl-space-3);
	min-height: 62px;
	padding-block: var(--pl-space-3);
}

.site-branding {
	flex: none;
	display: flex;
	align-items: center;
	max-width: 190px;
}

.site-branding a {
	display: block;
	line-height: 0;
}

.site-branding img,
.site-branding svg {
	max-height: 30px;
	width: auto;
}

.site-title {
	margin: 0;
	font-size: var(--pl-fs-lg);
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.site-description {
	margin: 0;
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
}

.site-header__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: var(--pl-space-2);
}

/* Icon-only CTA on phones; the label appears from 720 up. */
.site-header__actions .btn {
	padding-inline: 0.85em;
	font-size: 0.9375rem;
}

.site-header__actions .btn span {
	display: none;
}

.icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: var(--pl-radius);
	background: transparent;
	color: var(--pl-ink);
}

.icon-btn:hover,
.icon-btn:focus-visible {
	background: var(--pl-bg-alt);
	color: var(--pl-accent);
}

.icon-btn svg {
	width: 21px;
	height: 21px;
	fill: currentColor;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   7. Navigation — drawer is the default, bar takes over at 900
   -------------------------------------------------------------------------- */
.nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav--primary,
.topics-bar {
	display: none;
}

.menu-toggle {
	display: inline-flex;
}

.nav .menu-item-has-children {
	position: relative;
}

.nav .submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
}

.nav .submenu-toggle svg {
	width: 11px;
	height: 11px;
	fill: currentColor;
	transition: transform var(--pl-transition);
}

.nav .submenu-toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Mobile drawer */
.mobile-nav {
	position: fixed;
	inset: 0 0 0 auto;
	z-index: 90;
	width: min(88vw, 380px);
	padding: var(--pl-space-5) var(--pl-space-5) var(--pl-space-8);
	background: #fff;
	overflow-y: auto;
	overscroll-behavior: contain;
	visibility: hidden;
	transform: translateX(100%);
	transition: transform 220ms ease, visibility 220ms ease;
	box-shadow: -8px 0 30px rgba(20, 20, 30, 0.16);
}

.mobile-nav.is-open {
	visibility: visible;
	transform: translateX(0);
}

.mobile-nav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pl-space-4);
	margin-bottom: var(--pl-space-4);
	padding-bottom: var(--pl-space-4);
	border-bottom: 1px solid var(--pl-line);
}

.mobile-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mobile-nav li {
	border-bottom: 1px solid var(--pl-line);
}

.mobile-nav li > a {
	display: block;
	padding: var(--pl-space-3) 0;
	font-size: var(--pl-fs-md);
	font-weight: 700;
}

.mobile-nav .menu-item-has-children {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
}

.mobile-nav .menu-item-has-children > .sub-menu {
	grid-column: 1 / -1;
	display: none;
	padding: 0 0 var(--pl-space-3) var(--pl-space-4);
}

.mobile-nav .menu-item-has-children > .sub-menu.is-open {
	display: block;
}

.mobile-nav .sub-menu li {
	border: 0;
}

.mobile-nav .sub-menu a {
	display: block;
	padding: var(--pl-space-2) 0;
	font-size: var(--pl-fs-sm);
	font-weight: 500;
}

.mobile-nav__cta {
	margin-top: var(--pl-space-5);
}

.nav-overlay {
	position: fixed;
	inset: 0;
	z-index: 80;
	background: rgba(18, 18, 24, 0.5);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--pl-transition), visibility var(--pl-transition);
}

.nav-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

/* --------------------------------------------------------------------------
   8. Search
   -------------------------------------------------------------------------- */
.search-panel {
	border-top: 1px solid var(--pl-line);
	background: var(--pl-bg-alt);
}

.search-panel[hidden] {
	display: none;
}

.search-panel__inner {
	padding-block: var(--pl-space-4);
}

.search-form {
	display: flex;
	flex-direction: column;
	gap: var(--pl-space-2);
	max-width: 640px;
	margin-inline: auto;
}

.search-form label {
	flex: 1;
	margin: 0;
}

.search-form .search-field {
	height: 100%;
}

.search-form .search-submit {
	flex: none;
}

/* --------------------------------------------------------------------------
   9. Panels & section rules
   -------------------------------------------------------------------------- */
.panel__title,
.widget__title,
.section-title {
	position: relative;
	margin: 0 0 var(--pl-space-4);
	padding-top: var(--pl-space-4);
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-sm);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pl-ink);
}

.panel__title::before,
.widget__title::before,
.section-title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 96px;
	height: 4px;
	background: var(--pl-accent);
}

.panel--boxed {
	padding: var(--pl-space-5);
	background: var(--pl-bg-alt);
	border-radius: var(--pl-radius-lg);
}

.panel + .panel {
	margin-top: var(--pl-space-6);
}

/* --------------------------------------------------------------------------
   10. Cards — stacked by default, side-by-side from 720
   -------------------------------------------------------------------------- */
.card {
	position: relative;
	min-width: 0;
}

.card__media {
	display: block;
	position: relative;
	overflow: hidden;
	background: var(--pl-bg-alt);
	border-radius: var(--pl-radius);
	aspect-ratio: 16 / 9;
}

.card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
}

.card:hover .card__media img {
	transform: scale(1.035);
}

.card__title {
	margin: 0 0 var(--pl-space-2);
	font-size: var(--pl-fs-lg);
	line-height: 1.2;
}

.card__title a:hover,
.card__title a:focus-visible {
	color: var(--pl-accent);
}

.card__dek {
	margin: 0;
	color: var(--pl-ink-soft);
	font-family: var(--pl-font-serif);
	font-size: var(--pl-fs-base);
	line-height: 1.45;
}

.card__more {
	color: var(--pl-accent);
	white-space: nowrap;
	font-weight: 600;
}

.card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pl-space-3);
	margin-top: var(--pl-space-3);
}

/* Hero card */
.card--hero .card__media {
	margin-bottom: var(--pl-space-4);
}

.card--hero .card__title {
	font-size: clamp(1.5rem, 1.05rem + 2.1vw, 2.5rem);
	line-height: 1.1;
}

/* Row / media-list card */
.card--row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pl-space-3);
	align-items: start;
	padding-block: var(--pl-space-5);
	border-top: 1px solid var(--pl-line);
}

.card--row:first-child {
	border-top: 0;
	padding-top: 0;
}

/* Grid card */
.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--pl-space-6) var(--pl-space-5);
}

.card--grid .card__media {
	margin-bottom: var(--pl-space-3);
}

/* Compact card (sidebar) */
.card--compact {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: var(--pl-space-3);
	align-items: start;
	padding-block: var(--pl-space-4);
	border-top: 1px solid var(--pl-line);
}

.card--compact:first-child {
	border-top: 0;
	padding-top: 0;
}

.card--compact .card__media {
	aspect-ratio: 4 / 3;
}

.card--compact .card__title {
	margin: 0;
	font-size: var(--pl-fs-base);
	line-height: 1.25;
}

/* --------------------------------------------------------------------------
   11. Ranked lists, tags & bylines
   -------------------------------------------------------------------------- */
.ranked {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pl-rank;
}

.ranked__item {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: var(--pl-space-2);
	padding-block: var(--pl-space-4);
	border-top: 1px solid var(--pl-line);
	counter-increment: pl-rank;
}

.ranked__item:first-child {
	border-top: 0;
	padding-top: 0;
}

.ranked__item::before {
	content: counter(pl-rank) ".";
	font-family: var(--pl-font-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--pl-ink);
}

.ranked__link {
	font-family: var(--pl-font-serif);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
}

.tag {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: var(--pl-fs-sm);
	color: var(--pl-muted);
}

.tag svg {
	width: 13px;
	height: 13px;
	fill: currentColor;
	flex: none;
}

.tag:hover,
.tag:focus-visible {
	color: var(--pl-accent);
}

.byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pl-space-2) var(--pl-space-3);
	font-size: var(--pl-fs-sm);
	color: var(--pl-muted);
}

.byline__sep {
	color: var(--pl-line-strong);
}

.byline a {
	font-weight: 600;
	color: var(--pl-ink-soft);
}

.byline__avatar img {
	border-radius: 50%;
}

/* --------------------------------------------------------------------------
   12. Sidebar widgets
   -------------------------------------------------------------------------- */
.widget {
	margin-bottom: var(--pl-space-7);
	font-size: var(--pl-fs-sm);
}

.widget:last-child {
	margin-bottom: 0;
}

.widget ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget > ul > li {
	padding-block: var(--pl-space-3);
	border-top: 1px solid var(--pl-line);
}

.widget > ul > li:first-child {
	border-top: 0;
	padding-top: 0;
}

.widget select {
	max-width: 100%;
}

.widget_search .widget__title {
	margin-bottom: var(--pl-space-3);
}

.newsletter-box {
	padding: var(--pl-space-5);
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius-lg);
	background: #fff;
}

.newsletter-box .widget__title {
	padding-top: 0;
}

.newsletter-box .widget__title::before {
	display: none;
}

.newsletter-box__heading {
	margin: 0 0 var(--pl-space-2);
	font-size: var(--pl-fs-xl);
}

.newsletter-box__text {
	margin-bottom: var(--pl-space-4);
	color: var(--pl-ink-soft);
}

.newsletter-form {
	display: grid;
	gap: var(--pl-space-3);
}

.newsletter-form__note {
	margin: 0;
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
	line-height: 1.4;
}

.resource-list li {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: var(--pl-space-3);
	align-items: start;
}

.resource-list__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--pl-bg-alt);
}

.resource-list__icon svg {
	width: 18px;
	height: 18px;
	fill: var(--pl-ink-soft);
}

.resource-list__kicker {
	display: block;
	font-size: var(--pl-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pl-muted);
	margin-bottom: 2px;
}

.resource-list__title {
	display: block;
	font-family: var(--pl-font-serif);
	font-size: var(--pl-fs-md);
	font-weight: 700;
	line-height: 1.25;
}

.resource-list__source {
	display: block;
	margin-top: var(--pl-space-1);
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
}

.announce-list__title {
	display: block;
	font-family: var(--pl-font-serif);
	font-size: var(--pl-fs-md);
	font-weight: 700;
	line-height: 1.3;
}

.announce-list__source {
	display: block;
	margin-top: var(--pl-space-1);
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
}

.widget__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-2) var(--pl-space-3);
	margin-top: var(--pl-space-4);
	padding-top: var(--pl-space-4);
	border-top: 1px solid var(--pl-line);
	font-weight: 600;
}

.widget__links a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   13. Ads & promos
   -------------------------------------------------------------------------- */
.ad-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--pl-space-1);
	margin-inline: auto;
	text-align: center;
	overflow-x: auto;
}

.ad-slot__label {
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #9a9aa6;
}

.ad-slot--leaderboard {
	padding-block: var(--pl-space-3);
	background: repeating-linear-gradient(135deg, #fafafc, #fafafc 8px, #f2f2f6 8px, #f2f2f6 16px);
}

.ad-slot--infeed {
	margin-block: var(--pl-space-6);
	padding-block: var(--pl-space-4);
	border-block: 1px solid var(--pl-line);
}

.ad-slot img {
	margin-inline: auto;
}

.promo-card {
	padding: var(--pl-space-5);
	background: var(--pl-bg-alt);
	border-radius: var(--pl-radius-lg);
}

.promo-card .widget__title {
	padding-top: 0;
}

.promo-card .widget__title::before {
	display: none;
}

.promo-card__heading {
	margin: 0 0 var(--pl-space-4);
	font-size: var(--pl-fs-xl);
	line-height: 1.2;
}

.promo-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pl-space-3);
	margin-top: var(--pl-space-4);
}

.promo-card__logo img {
	max-height: 30px;
	width: auto;
}

/* --------------------------------------------------------------------------
   14. Newsletter band
   -------------------------------------------------------------------------- */
.newsletter-band {
	background: var(--pl-bg-alt);
	padding-block: var(--pl-space-6);
}

.newsletter-band__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pl-space-6);
	align-items: center;
}

.newsletter-band__title {
	margin: 0 0 var(--pl-space-3);
	padding-top: var(--pl-space-4);
	position: relative;
	font-size: clamp(1.5rem, 1.2rem + 1.3vw, var(--pl-fs-2xl));
}

.newsletter-band__title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 96px;
	height: 4px;
	background: var(--pl-accent);
}

.newsletter-band__text {
	margin-bottom: var(--pl-space-5);
	font-size: var(--pl-fs-md);
	color: var(--pl-ink-soft);
}

.newsletter-band .newsletter-form {
	max-width: 420px;
}

/* The illustration is decorative — it only loads visual weight from 1024 up. */
.newsletter-band__media {
	display: none;
}

.newsletter-band__media img,
.newsletter-band__media svg {
	margin-inline: auto;
	max-height: 300px;
	width: auto;
}

/* --------------------------------------------------------------------------
   15. Single post & pages
   -------------------------------------------------------------------------- */
.entry-header {
	margin-bottom: var(--pl-space-5);
}

.entry-header .entry-title {
	margin-bottom: var(--pl-space-3);
}

.entry-dek {
	margin: 0 0 var(--pl-space-4);
	font-family: var(--pl-font-serif);
	font-size: var(--pl-fs-md);
	line-height: 1.45;
	color: var(--pl-ink-soft);
}

.entry-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--pl-space-3);
	padding-block: var(--pl-space-4);
	border-block: 1px solid var(--pl-line);
}

.entry-media {
	margin-bottom: var(--pl-space-5);
}

.entry-media img {
	width: 100%;
	border-radius: var(--pl-radius);
}

.entry-content {
	font-family: var(--pl-font-serif);
	font-size: 1.0625rem;
	line-height: 1.65;
	max-width: 46rem;
}

.entry-content > * + * {
	margin-top: var(--pl-space-5);
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin-top: var(--pl-space-7);
	margin-bottom: var(--pl-space-3);
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.35em;
}

.entry-content li + li {
	margin-top: var(--pl-space-2);
}

.entry-footer {
	margin-top: var(--pl-space-6);
	padding-top: var(--pl-space-5);
	border-top: 1px solid var(--pl-line);
}

.entry-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-2);
}

.entry-tags a {
	display: inline-block;
	padding: 0.35em 0.75em;
	border: 1px solid var(--pl-line-strong);
	border-radius: 999px;
	font-size: var(--pl-fs-xs);
	font-weight: 600;
}

.entry-tags a:hover {
	border-color: var(--pl-accent);
	color: var(--pl-accent);
}

.share-list {
	display: flex;
	align-items: center;
	gap: var(--pl-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.share-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--pl-line-strong);
	border-radius: 50%;
}

.share-list a:hover {
	background: var(--pl-ink);
	border-color: var(--pl-ink);
	color: #fff;
}

.share-list svg {
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.author-box {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pl-space-4);
	align-items: start;
	margin-top: var(--pl-space-6);
	padding: var(--pl-space-5);
	background: var(--pl-bg-alt);
	border-radius: var(--pl-radius-lg);
}

.author-box img {
	border-radius: 50%;
}

.author-box__name {
	margin: 0 0 var(--pl-space-2);
	font-size: var(--pl-fs-lg);
}

.author-box__bio {
	margin: 0;
	font-size: var(--pl-fs-sm);
	color: var(--pl-ink-soft);
}

.post-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--pl-space-4);
	margin-top: var(--pl-space-6);
}

.post-nav__link {
	display: block;
	padding: var(--pl-space-4);
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius);
}

.post-nav__link:hover {
	border-color: var(--pl-line-strong);
}

.post-nav__label {
	display: block;
	margin-bottom: var(--pl-space-1);
	font-size: var(--pl-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pl-muted);
}

.post-nav__title {
	font-family: var(--pl-font-serif);
	font-weight: 700;
	line-height: 1.25;
}

.page-header {
	margin-bottom: var(--pl-space-6);
	padding-bottom: var(--pl-space-4);
	border-bottom: 2px solid var(--pl-ink);
}

.page-header .page-title {
	margin-bottom: var(--pl-space-2);
}

.page-header .archive-description {
	margin: 0;
	max-width: 44rem;
	color: var(--pl-muted);
	font-size: var(--pl-fs-md);
}

.error-404 {
	max-width: 42rem;
	margin-inline: auto;
	padding-block: var(--pl-space-7);
	text-align: center;
}

.error-404 .search-form {
	margin-top: var(--pl-space-5);
}

/* --------------------------------------------------------------------------
   16. Comments
   -------------------------------------------------------------------------- */
.comments-area {
	margin-top: var(--pl-space-7);
	padding-top: var(--pl-space-6);
	border-top: 1px solid var(--pl-line);
}

.comment-list {
	margin: 0 0 var(--pl-space-6);
	padding: 0;
	list-style: none;
}

.comment-list .children {
	margin: 0;
	padding-left: var(--pl-space-4);
	list-style: none;
}

.comment-body {
	padding-block: var(--pl-space-4);
	border-top: 1px solid var(--pl-line);
}

.comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pl-space-2) var(--pl-space-3);
	margin-bottom: var(--pl-space-2);
	font-size: var(--pl-fs-sm);
	color: var(--pl-muted);
}

.comment-meta img {
	border-radius: 50%;
}

.comment-form {
	display: grid;
	gap: var(--pl-space-4);
	max-width: 46rem;
}

.comment-form .form-submit {
	margin: 0;
}

/* --------------------------------------------------------------------------
   17. Pagination & breadcrumbs
   -------------------------------------------------------------------------- */
.pagination {
	margin-top: var(--pl-space-7);
	padding-top: var(--pl-space-5);
	border-top: 1px solid var(--pl-line);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-2);
	align-items: center;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding-inline: var(--pl-space-2);
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius);
	font-size: var(--pl-fs-sm);
	font-weight: 600;
}

.pagination .page-numbers:hover {
	border-color: var(--pl-ink);
}

.pagination .page-numbers.current {
	background: var(--pl-ink);
	border-color: var(--pl-ink);
	color: #fff;
}

.pagination .page-numbers.dots {
	border-color: transparent;
}

.breadcrumbs {
	margin-bottom: var(--pl-space-4);
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-1) var(--pl-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs li::after {
	content: "/";
	margin-left: var(--pl-space-2);
	color: var(--pl-line-strong);
}

.breadcrumbs li:last-child::after {
	content: none;
}

/* --------------------------------------------------------------------------
   18. Breakpoints — progressive enhancement
   -------------------------------------------------------------------------- */

/* --- 540px: roomier phones / small tablets ------------------------------ */
@media (min-width: 540px) {
	.search-form {
		flex-direction: row;
	}

	.card--compact {
		grid-template-columns: 92px minmax(0, 1fr);
	}

	.newsletter-band {
		padding-block: var(--pl-space-8);
	}

	.footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --- 720px: tablets — media lists go side-by-side ----------------------- */
@media (min-width: 720px) {
	:root {
		--pl-gutter: 1.25rem;
	}

	.brandbar__nav {
		display: block;
	}

	.site-header__actions .btn {
		padding-inline: 1.35em;
	}

	.site-header__actions .btn span {
		display: inline;
	}

	.card__title {
		font-size: var(--pl-fs-xl);
	}

	.card__dek {
		font-size: var(--pl-fs-md);
	}

	.card--grid .card__title {
		font-size: var(--pl-fs-lg);
	}

	.card--grid .card__dek {
		font-size: var(--pl-fs-base);
	}

	.card--compact .card__title {
		font-size: var(--pl-fs-base);
	}

	.card--row {
		grid-template-columns: 240px minmax(0, 1fr);
		gap: var(--pl-space-5);
		padding-block: var(--pl-space-6);
	}

	.card--row.card--no-media {
		grid-template-columns: minmax(0, 1fr);
	}

	.card--hero .card__dek {
		font-size: var(--pl-fs-lg);
	}

	.entry-content {
		font-size: 1.125rem;
	}

	.entry-dek {
		font-size: var(--pl-fs-lg);
	}

	.entry-meta {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: var(--pl-space-4);
	}

	.author-box {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.comment-list .children {
		padding-left: var(--pl-space-5);
	}

	.card-grid {
		grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	}

	.ad-slot--leaderboard {
		padding-block: var(--pl-space-4);
	}

	.error-404 {
		padding-block: var(--pl-space-8);
	}
}

/* --- 900px: desktop navigation replaces the drawer ---------------------- */
@media (min-width: 900px) {
	.site-header__inner {
		min-height: 72px;
		gap: var(--pl-space-5);
	}

	.site-branding {
		max-width: 240px;
	}

	.site-branding img,
	.site-branding svg {
		max-height: 34px;
	}

	.site-title {
		font-size: var(--pl-fs-xl);
	}

	.site-header__actions {
		gap: var(--pl-space-3);
	}

	.menu-toggle {
		display: none;
	}

	.nav--primary {
		display: block;
	}

	.nav--primary > ul {
		display: flex;
		align-items: center;
		gap: var(--pl-space-4);
	}

	.nav--primary a {
		display: inline-flex;
		align-items: center;
		gap: 0.35em;
		padding-block: var(--pl-space-2);
		font-size: var(--pl-fs-md);
		font-weight: 700;
		letter-spacing: -0.01em;
	}

	.nav--primary .current-menu-item > a,
	.nav--primary .current-menu-ancestor > a {
		color: var(--pl-accent);
	}

	/* Dropdowns only exist where there is a pointer and room for them. */
	.nav--primary .sub-menu {
		position: absolute;
		top: calc(100% + 6px);
		left: -12px;
		z-index: 40;
		min-width: 232px;
		padding: var(--pl-space-2) 0;
		background: #fff;
		border: 1px solid var(--pl-line);
		border-radius: var(--pl-radius);
		box-shadow: var(--pl-shadow);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-4px);
		transition: opacity var(--pl-transition), transform var(--pl-transition), visibility var(--pl-transition);
	}

	.nav--primary .sub-menu .sub-menu {
		top: -9px;
		left: 100%;
	}

	.nav--primary li:hover > .sub-menu,
	.nav--primary li:focus-within > .sub-menu,
	.nav--primary .sub-menu.is-open {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.nav--primary .sub-menu a {
		display: block;
		padding: var(--pl-space-2) var(--pl-space-4);
		font-family: var(--pl-font-sans);
		font-size: var(--pl-fs-sm);
		font-weight: 600;
	}

	.nav--primary .sub-menu a:hover,
	.nav--primary .sub-menu a:focus-visible {
		background: var(--pl-bg-alt);
	}

	.topics-bar {
		display: block;
		background: var(--pl-bg-alt);
		border-top: 1px solid var(--pl-line);
	}

	.nav--topics > ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: var(--pl-space-5);
		min-height: 46px;
	}

	.nav--topics a {
		font-size: 0.9375rem;
		font-weight: 500;
		color: var(--pl-ink-soft);
	}

	.nav--topics .current-menu-item > a {
		color: var(--pl-accent);
	}

	.site-main {
		padding-block: var(--pl-space-6) var(--pl-space-8);
	}
}

/* --- 1024px: the sidebar rail appears ----------------------------------- */
@media (min-width: 1024px) {
	.layout {
		gap: var(--pl-space-7);
	}

	.layout--sidebar {
		grid-template-columns: minmax(0, 1fr) var(--pl-rail);
	}

	.layout--wide {
		grid-template-columns: minmax(0, 1fr);
	}

	.layout__rail {
		position: sticky;
		top: var(--pl-space-4);
		padding-top: 0;
		border-top: 0;
	}

	/* Clear the sticky header when one is enabled. */
	.has-sticky-header .layout__rail {
		top: 8.5rem;
	}

	.newsletter-band__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
		gap: var(--pl-space-7);
	}

	.newsletter-band__media {
		display: block;
	}

	.partner-strip__inner {
		grid-template-columns: 260px minmax(0, 1fr);
	}

	.footer-grid {
		grid-template-columns: 300px repeat(3, minmax(0, 1fr));
	}

	.nav--topics > ul {
		gap: var(--pl-space-6);
	}
}

/* --- 1180px: full-width desktop ----------------------------------------- */
@media (min-width: 1180px) {
	:root {
		--pl-rail: 340px;
	}

	.nav--primary > ul {
		gap: var(--pl-space-5);
	}

	.card--row {
		grid-template-columns: 290px minmax(0, 1fr);
	}

	.site-header__inner {
		gap: var(--pl-space-6);
	}
}

/* --------------------------------------------------------------------------
   19. Footer
   -------------------------------------------------------------------------- */
.partner-strip {
	padding-block: var(--pl-space-6);
	border-top: 1px solid var(--pl-line);
	font-size: var(--pl-fs-sm);
	color: var(--pl-ink-soft);
}

.partner-strip__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pl-space-5);
	align-items: start;
}

.partner-strip img,
.partner-strip svg {
	max-height: 40px;
	width: auto;
}

.partner-strip p {
	margin-bottom: var(--pl-space-3);
}

.partner-strip p:last-child {
	margin-bottom: 0;
}

.partner-strip a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer {
	padding-block: var(--pl-space-7);
	border-top: 1px solid var(--pl-line);
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pl-space-6);
	align-items: start;
}

.footer-brand img,
.footer-brand svg {
	max-height: 32px;
	width: auto;
	margin-bottom: var(--pl-space-4);
}

.footer-col__title {
	margin: 0 0 var(--pl-space-4);
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-sm);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.footer-col ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: var(--pl-space-3);
	font-size: var(--pl-fs-sm);
	color: var(--pl-ink-soft);
}

.social-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.social-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	color: var(--pl-ink);
}

.social-list a:hover {
	color: var(--pl-accent);
}

.social-list svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.footer-legal {
	margin-top: var(--pl-space-6);
	padding-top: var(--pl-space-4);
	border-top: 1px solid var(--pl-line);
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-2) var(--pl-space-4);
	align-items: center;
	justify-content: space-between;
	font-size: var(--pl-fs-xs);
	color: var(--pl-muted);
}

.footer-legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-2) var(--pl-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.to-top {
	position: fixed;
	right: var(--pl-space-4);
	bottom: var(--pl-space-4);
	z-index: 50;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	background: var(--pl-ink);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--pl-transition), visibility var(--pl-transition);
}

.to-top.is-visible {
	opacity: 1;
	visibility: visible;
}

.to-top svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

/* --------------------------------------------------------------------------
   20. Blocks & editor output
   -------------------------------------------------------------------------- */
.alignwide {
	width: min(100%, 1100px);
	margin-inline: auto;
	max-width: none;
}

.alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.aligncenter {
	margin-inline: auto;
}

.wp-caption-text,
.wp-block-image figcaption {
	font-family: var(--pl-font-sans);
	font-size: var(--pl-fs-sm);
	color: var(--pl-muted);
}

.sticky .card__title::after {
	content: "\2605";
	margin-left: 0.35em;
	color: var(--pl-accent);
	font-size: 0.7em;
	vertical-align: super;
}

.wp-block-pullquote,
.wp-block-quote {
	font-family: var(--pl-font-serif);
}

.wp-block-separator {
	border-top: 1px solid var(--pl-line);
}

.has-accent-color {
	color: var(--pl-accent);
}

.has-accent-background-color {
	background-color: var(--pl-accent);
}

.has-brand-color {
	color: var(--pl-brand);
}

.has-brand-background-color {
	background-color: var(--pl-brand);
}

/* Floats only once there is room for text beside the image. */
@media (min-width: 720px) {
	.alignleft {
		float: left;
		margin: 0 var(--pl-space-5) var(--pl-space-4) 0;
	}

	.alignright {
		float: right;
		margin: 0 0 var(--pl-space-4) var(--pl-space-5);
	}
}

/* --------------------------------------------------------------------------
   21. Utilities, a11y, no-JS, motion, print
   -------------------------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: var(--pl-space-4);
	z-index: 200;
	padding: var(--pl-space-3) var(--pl-space-4);
	background: var(--pl-ink);
	color: #fff;
	font-size: var(--pl-fs-sm);
	font-weight: 700;
	transition: top var(--pl-transition);
}

.skip-link:focus {
	top: var(--pl-space-2);
	color: #fff;
}

.stretched-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.text-center {
	text-align: center;
}

.mt-0 {
	margin-top: 0;
}

.mb-0 {
	margin-bottom: 0;
}

.is-hidden {
	display: none !important;
}

.no-results {
	padding: var(--pl-space-6) 0;
}

/* Reserve space for late-loading media to protect CLS */
.card__media,
.entry-media img {
	background-color: var(--pl-bg-alt);
}

/* Graceful degradation without JavaScript: the toggles do nothing, so expose
   what they would have opened. */
.pl-no-js .search-toggle,
.pl-no-js .menu-toggle,
.pl-no-js .to-top {
	display: none;
}

.pl-no-js .search-panel[hidden] {
	display: block;
}

.pl-no-js .nav--primary,
.pl-no-js .topics-bar {
	display: block;
}

.pl-no-js .site-header__inner {
	flex-wrap: wrap;
}

.pl-no-js .nav--primary > ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pl-space-4);
}

.pl-no-js .nav--primary .sub-menu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	border: 0;
}

.pl-no-js .submenu-toggle {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.brandbar,
	.site-header__actions,
	.topics-bar,
	.layout__rail,
	.ad-slot,
	.newsletter-band,
	.site-footer,
	.to-top,
	.comments-area {
		display: none !important;
	}

	body {
		color: #000;
		font-size: 12pt;
	}

	.layout--sidebar {
		grid-template-columns: minmax(0, 1fr);
	}

	a[href]::after {
		content: " (" attr(href) ")";
		font-size: 9pt;
		color: #555;
	}
}
