/* nplusoneai theme styles. Tokens come from theme.json; V4 reference pages are in
   nplusoneai-design-kit/reference/ (colours changed to the black palette). */

:root {
	--n-ink: var(--wp--preset--color--ink);
	--n-panel: var(--wp--preset--color--panel);
	--n-raised: var(--wp--preset--color--panel-raised);
	--n-line: var(--wp--preset--color--line);
	--n-text: var(--wp--preset--color--text);
	--n-soft: var(--wp--preset--color--text-soft);
	--n-body: var(--wp--preset--color--text-body);
	--n-muted: var(--wp--preset--color--muted);
	--n-accent: var(--wp--preset--color--accent);
	--n-sans: var(--wp--preset--font-family--sans);
	--n-serif: var(--wp--preset--font-family--serif);
	--n-separator: #3A4766;
	--n-search-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */

body {
	background: var(--n-ink);
	color: var(--n-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a:where(:not(.wp-element-button)) {
	text-decoration-color: var(--n-line);
	text-underline-offset: 3px;
}

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--n-accent);
	outline-offset: 3px;
}

.n1ai-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1288px; /* 1240px content + 24px side padding */
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

.wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wp-block-post-template > li {
	margin: 0;
}

/* Tabular figures for tile numbers and page numbers only: in Schibsted Grotesk
   they also widen commas, colons and full stops, which looks wrong in text and dates. */
.n1ai-tile-num,
.n1ai-pager {
	font-variant-numeric: tabular-nums;
}

.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: 24px;
}

/* ---------- Topic colours (8px dot beside the topic name, never text colour) ---------- */

.n1ai-topic { --topic: var(--n-muted); }
.n1ai-topic-models { --topic: var(--wp--preset--color--topic-models); }
.n1ai-topic-research { --topic: var(--wp--preset--color--topic-research); }
.n1ai-topic-tools { --topic: var(--wp--preset--color--topic-tools); }
.n1ai-topic-policy { --topic: var(--wp--preset--color--topic-policy); }
.n1ai-topic-business { --topic: var(--wp--preset--color--topic-business); }

.n1ai-kicker::before,
.n1ai-card-meta .n1ai-topic::before,
.n1ai-topics-nav .n1ai-topic > a::before,
.n1ai-tile-name::before,
.n1ai-page-title.n1ai-topic::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--topic);
}

/* Small labels: 12px caps. */
.n1ai-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--n-muted);
}

.n1ai-eyebrow--accent {
	color: var(--n-accent);
}

/* Serif summaries. */
.n1ai-summary,
.n1ai-summary p {
	margin: 0;
	font-family: var(--n-serif);
	color: var(--n-muted);
}

.n1ai-summary .wp-block-post-excerpt__more-text {
	display: none;
}

/* ---------- Header ---------- */

.n1ai-header {
	background: var(--n-panel);
	border-bottom: 1px solid var(--n-line);
}

.n1ai-header-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 28px;
	min-height: 68px;
	padding-top: 12px;
	padding-bottom: 12px;
}

.n1ai-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--n-text);
	font-size: 21px;
	font-weight: 850;
	letter-spacing: -0.02em;
	text-decoration: none;
}

.n1ai-brand:hover {
	color: var(--n-text);
}

.n1ai-mark {
	flex: none;
	color: var(--n-text);
}

.n1ai-topics-nav {
	flex: 1 1 auto;
	min-width: 0;
}

.n1ai-topics-nav .wp-block-navigation__container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px !important;
}

.n1ai-topics-nav .wp-block-navigation-item__content {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	box-sizing: border-box;
	padding: 0 14px !important;
	border: 1px solid var(--n-line);
	border-radius: 999px;
	color: var(--n-text);
	font-size: 15px;
	font-weight: 550;
	text-decoration: none;
}

.n1ai-topics-nav .n1ai-pill-all > .wp-block-navigation-item__content {
	border-color: transparent;
	color: var(--n-muted);
	font-weight: 650;
}

.n1ai-topics-nav .wp-block-navigation-item__content:hover {
	border-color: var(--n-accent);
	color: var(--n-text);
}

.n1ai-topics-nav .current-menu-item > .wp-block-navigation-item__content {
	background: var(--n-raised);
	border-color: var(--n-accent);
	color: var(--n-text);
}

.n1ai-topics-nav .n1ai-pill-all.current-menu-item > .wp-block-navigation-item__content {
	border-color: transparent;
}

/* Search: a field that looks like the V4 search button (icon, text, "/" hint). */
.n1ai-search.wp-block-search {
	margin: 0;
}

.n1ai-search .wp-block-search__inside-wrapper {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	box-sizing: border-box;
	width: 240px !important;
	min-height: 44px;
	padding: 0 10px 0 12px !important;
	background: var(--n-ink);
	border: 1px solid var(--n-line) !important;
	border-radius: 10px;
	color: var(--n-muted);
}

.n1ai-search .wp-block-search__inside-wrapper::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--n-search-icon) center / contain no-repeat;
	mask: var(--n-search-icon) center / contain no-repeat;
}

.n1ai-search .wp-block-search__inside-wrapper::after {
	content: "/";
	flex: none;
	padding: 0 6px;
	border: 1px solid var(--n-line);
	border-radius: 5px;
	font-size: 12px;
	line-height: 18px;
}

.n1ai-search .wp-block-search__input {
	flex: 1;
	min-width: 0;
	min-height: 42px;
	padding: 0 !important;
	background: transparent;
	border: 0 !important;
	color: var(--n-text);
	font-family: inherit;
	font-size: 14px;
}

.n1ai-search .wp-block-search__input::placeholder {
	color: var(--n-muted);
	opacity: 1;
}

.n1ai-search .wp-block-search__input:focus-visible {
	outline: none;
}

.n1ai-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--n-accent) !important;
	outline: 2px solid var(--n-accent);
	outline-offset: 2px;
}

/* ---------- Buttons ---------- */

.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	box-sizing: border-box;
	text-decoration: none;
}

.is-style-n1ai-secondary .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--n-line);
	color: var(--n-text);
}

.is-style-n1ai-secondary .wp-block-button__link:hover {
	background: var(--n-raised);
	border-color: var(--n-accent);
	color: var(--n-text);
}

/* ---------- Homepage: lead story and Latest signals ---------- */

.n1ai-lead-row {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	padding: 40px 0 48px;
	border-bottom: 1px solid var(--n-line);
}

.n1ai-lead-query {
	flex: 1.55 1 480px;
	min-width: 0;
}

.n1ai-kicker {
	display: inline-flex;
	align-items: center;
	color: var(--n-muted);
	font-size: 14px;
	font-weight: 650;
}

.n1ai-kicker::before {
	margin-right: 7px;
}

.n1ai-kicker a {
	text-decoration: none;
}

.n1ai-lead .n1ai-kicker {
	margin-bottom: 14px;
}

.n1ai-lead-title {
	max-width: 18ch;
	margin: 0 0 18px;
	font-size: var(--wp--preset--font-size--lead-title);
	font-weight: 820;
	line-height: 1.02;
	letter-spacing: -0.035em;
}

.n1ai-lead-title a,
.n1ai-card .wp-block-post-title a,
.n1ai-signal .wp-block-post-title a,
.n1ai-more-item .wp-block-post-title a {
	text-decoration: none;
}

.n1ai-lead-summary {
	max-width: 56ch;
	margin: 0 0 18px;
	font-size: 21px;
	line-height: 1.45;
}

.n1ai-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	color: var(--n-muted);
	font-size: 14px;
}

.n1ai-lead-glance {
	margin-top: 28px;
	padding: 22px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
}

.n1ai-lead-glance .n1ai-eyebrow {
	margin-bottom: 6px;
}

/* Key numbers: label in dt, number in dd; the number shows first. */
.n1ai-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
}

.n1ai-stat {
	flex: 1 1 160px;
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: 6px;
	min-width: 0;
}

.n1ai-stat dt {
	color: var(--n-muted);
	font-size: 14px;
	line-height: 1.4;
}

.n1ai-stat dd {
	margin: 0;
	font-size: 44px;
	font-weight: 820;
	line-height: 1;
	letter-spacing: -0.03em;
	overflow-wrap: anywhere;
}

.n1ai-signals {
	flex: 1 1 320px;
	align-self: flex-start;
	min-width: 0;
	overflow: hidden;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
}

.n1ai-signals-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	border-bottom: 1px solid var(--n-line);
	color: var(--n-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.n1ai-feed {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--n-accent);
}

.n1ai-feed::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--n-accent);
}

.n1ai-signals .wp-block-post-template > li + li .n1ai-signal {
	border-top: 1px solid var(--n-line);
}

.n1ai-signal {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 18px;
}

.n1ai-signal:hover {
	background: var(--n-raised);
}

.n1ai-signal-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	color: var(--n-muted);
	font-size: 13px;
}

.n1ai-signal-meta .wp-block-post-terms::before {
	content: "·";
	margin-right: 6px;
}

/* Only the headline is a link target; it covers the whole row. The topic link sits above it. */
.n1ai-signal-meta .wp-block-post-terms a {
	position: relative;
	z-index: 1;
	text-decoration: none;
}

.n1ai-signal .wp-block-post-title {
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: normal;
}

.n1ai-signal .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* ---------- Sections ---------- */

.n1ai-section {
	padding: 48px 0;
}

.n1ai-section--ruled {
	border-bottom: 1px solid var(--n-line);
}

.n1ai-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.n1ai-section-head:has(+ .n1ai-section-intro) {
	margin-bottom: 8px;
}

.n1ai-section-title {
	font-size: var(--wp--preset--font-size--section);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.n1ai-section-link {
	font-size: 15px;
	font-weight: 600;
}

.n1ai-section-link a {
	text-decoration: underline;
}

.n1ai-section-intro {
	margin: 0 0 22px;
	color: var(--n-muted);
	font-size: 15px;
}

/* ---------- Story cards ---------- */

.n1ai-cards .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 460px), 1fr));
	gap: 20px;
}

.n1ai-cards .wp-block-post-template > li {
	display: flex;
	min-width: 0;
}

.n1ai-card {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	padding: 22px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
}

.n1ai-card-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	color: var(--n-muted);
	font-size: 14px;
	font-weight: 650;
}

.n1ai-card-meta .wp-block-post-terms {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.n1ai-card-meta .wp-block-post-terms a {
	text-decoration: none;
}

.n1ai-card-meta .wp-block-post-date {
	font-weight: 400;
}

.n1ai-card-meta .wp-block-post-date::before {
	content: "·";
	margin-right: 7px;
	font-weight: 650;
}

.n1ai-card .wp-block-post-title {
	font-size: var(--wp--preset--font-size--card);
	font-weight: 720;
	line-height: 1.2;
	letter-spacing: -0.015em;
}

.n1ai-card .n1ai-summary {
	font-size: var(--wp--preset--font-size--summary);
	line-height: 1.45;
}

.n1ai-card-source {
	margin-top: auto !important;
	padding-top: 12px;
	border-top: 1px solid var(--n-line);
	color: var(--n-muted);
	font-size: 14px;
}

/* A card with no source still keeps its bottom edge tidy. */
.n1ai-card .n1ai-summary:last-child {
	margin-bottom: 0;
}

/* ---------- Browse by topic ---------- */

.n1ai-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 16px;
}

.n1ai-tile {
	margin: 0;
}

.n1ai-tile a {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 28px 8px;
	height: 100%;
	box-sizing: border-box;
	padding: 20px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
	color: var(--n-text);
	text-decoration: none;
}

.n1ai-tile a:hover {
	border-color: var(--n-accent);
	color: var(--n-text);
}

.n1ai-tile-num {
	grid-column: 1 / -1;
	color: var(--n-muted);
	font-size: 13px;
}

.n1ai-tile-name {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 19px;
	font-weight: 700;
}

.n1ai-tile-arrow {
	color: var(--n-accent);
	font-weight: 700;
}

/* ---------- Footer ---------- */

.n1ai-footer {
	padding: 48px 0 40px;
	border-top: 1px solid var(--n-line);
	color: var(--n-muted);
	font-size: 15px;
}

.n1ai-footer-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 24px;
}

.n1ai-footer-name {
	font-size: 21px;
	font-weight: 850;
	letter-spacing: -0.02em;
}

.n1ai-footer-name a {
	color: var(--n-text);
	text-decoration: none;
}

.n1ai-footer-brand p + p {
	max-width: 30ch;
	margin-top: 10px;
}

.n1ai-footer-title {
	margin: 0 0 10px !important;
	color: var(--n-text);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: normal;
}

.n1ai-footer-nav .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px !important;
}

.n1ai-footer a {
	text-decoration: none;
}

.n1ai-footer a:hover {
	color: var(--n-accent);
}

.n1ai-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 32px;
	padding-top: 18px;
	border-top: 1px solid var(--n-line);
	font-size: 14px;
}

.n1ai-footer-legal .wp-block-navigation__container {
	display: flex;
	flex-wrap: wrap;
	gap: 16px !important;
}

.n1ai-footer-legal a {
	text-decoration: underline;
}

/* ---------- Breadcrumbs (core/breadcrumbs) ---------- */

.n1ai-breadcrumbs {
	color: var(--n-muted);
	font-size: 14px;
}

.n1ai-breadcrumbs ol,
.n1ai-breadcrumbs ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.n1ai-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

.n1ai-breadcrumbs li::before,
.n1ai-breadcrumbs li::after {
	margin: 0 !important;
	color: var(--n-separator);
}

.n1ai-breadcrumbs a {
	text-decoration: underline;
}

/* ---------- Story page ---------- */

.n1ai-story-page > .n1ai-breadcrumbs {
	padding-top: 28px;
}

.n1ai-story-grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px;
	padding: 12px 0 56px;
}

.n1ai-rail-slot {
	position: sticky;
	top: 24px;
	flex: 0 0 220px;
	padding-top: 12px;
	font-size: 14px;
}

.admin-bar .n1ai-rail-slot {
	top: 56px;
}

.n1ai-rail-title {
	margin-bottom: 10px;
	font-weight: 700;
}

.n1ai-rail ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 2px solid var(--n-line);
}

.n1ai-rail a {
	display: block;
	margin-left: -2px;
	padding: 2px 0 2px 12px;
	border-left: 2px solid transparent;
	color: var(--n-muted);
	text-decoration: none;
}

.n1ai-rail a:hover {
	color: var(--n-text);
}

.n1ai-rail a.is-current {
	border-left-color: var(--n-accent);
	color: var(--n-text);
	font-weight: 650;
}

.n1ai-story {
	flex: 1 1 520px;
	min-width: 0;
	max-width: 680px;
}

.n1ai-story-title {
	margin: 12px 0 16px;
	font-size: var(--wp--preset--font-size--story-title);
	font-weight: 820;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.n1ai-standfirst,
.n1ai-standfirst p {
	margin: 0;
	color: var(--n-muted);
	font-family: var(--n-serif);
	font-size: var(--wp--preset--font-size--standfirst);
	line-height: 1.45;
}

.n1ai-standfirst {
	margin-bottom: 20px;
}

.n1ai-standfirst .wp-block-post-excerpt__more-text {
	display: none;
}

.n1ai-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 28px;
	padding: 14px 0;
	border-top: 1px solid var(--n-line);
	border-bottom: 1px solid var(--n-line);
	color: var(--n-muted);
	font-size: 14px;
}

.n1ai-avatar {
	flex: 0 0 40px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--n-raised);
}

.n1ai-byline-name {
	color: var(--n-text);
	font-size: 15px;
	font-weight: 700;
}

.n1ai-byline-side {
	margin-left: auto;
	text-align: right;
}

/* "At a glance" panel. */
.n1ai-glance {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0 0 28px;
	padding: 20px 22px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-left: 4px solid var(--n-accent);
	border-radius: 10px;
}

.n1ai-glance-title {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal;
}

.n1ai-glance .n1ai-stats {
	gap: 12px;
}

.n1ai-glance .n1ai-stat {
	flex-basis: 160px;
	padding: 14px 16px;
	background: var(--n-ink);
	border: 1px solid var(--n-line);
	border-radius: 10px;
}

.n1ai-glance .n1ai-stat dd {
	font-size: 36px;
}

.n1ai-glance-notes {
	display: grid;
	gap: 14px;
	margin: 0;
	font-size: 16px;
}

.n1ai-glance-note dt {
	margin-bottom: 2px;
	font-weight: 700;
}

.n1ai-glance-note dd {
	margin: 0;
	color: var(--n-soft);
}

/* Story body: serif, H2s in the UI face. */
.n1ai-story-body > * {
	margin-top: 0;
	margin-bottom: 20px;
}

.n1ai-story-body h2 {
	margin: 36px 0 10px;
	color: var(--n-text);
	scroll-margin-top: 24px;
}

.n1ai-story-body > h2:first-child {
	margin-top: 0;
}

.n1ai-story-body h3 {
	margin: 28px 0 8px;
	font-size: 21px;
}

/* Original source card. */
.n1ai-source-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 12px;
	padding: 24px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
	scroll-margin-top: 24px;
}

.n1ai-source-title {
	font-size: 22px;
	font-weight: 720;
	line-height: 1.25;
	letter-spacing: -0.015em;
}

.n1ai-source-pub {
	color: var(--n-muted);
	font-size: 14px;
}

.n1ai-source-card .wp-block-buttons {
	align-self: flex-start;
}

.n1ai-summary-note {
	margin-top: 32px;
	padding-top: 18px;
	border-top: 1px solid var(--n-line);
	color: var(--n-muted);
	font-size: 15px;
}

.n1ai-summary-note strong {
	color: var(--n-text);
}

.n1ai-summary-note a {
	color: var(--n-text);
	text-decoration: underline;
}

/* "More in [Topic]". */
.n1ai-story-aside {
	flex: 1 1 220px;
	min-width: 0;
	padding-top: 12px;
}

.n1ai-more {
	padding: 18px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
}

.n1ai-more-title {
	margin-bottom: 6px !important;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal;
}

.n1ai-more .wp-block-post-template > li + li .n1ai-more-item {
	border-top: 1px solid var(--n-line);
}

.n1ai-more-item {
	padding: 12px 0;
}

.n1ai-more .wp-block-post-template > li:last-child .n1ai-more-item {
	padding-bottom: 4px;
}

.n1ai-more-item .wp-block-post-title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: normal;
}

.n1ai-more-source {
	margin-top: 4px;
	color: var(--n-muted);
	font-size: 13px;
}

/* ---------- Archives, search, 404 and pages ---------- */

.n1ai-page-head {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 28px 0 32px;
}

.n1ai-page-title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--story-title);
	font-weight: 820;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.n1ai-page-title.n1ai-topic::before {
	width: 14px;
	height: 14px;
}

.n1ai-page-desc,
.n1ai-page-desc p {
	max-width: 62ch;
	margin: 0;
	color: var(--n-muted);
	font-family: var(--n-serif);
	font-size: 20px;
	line-height: 1.45;
}

.n1ai-page-desc .wp-block-post-excerpt__more-text {
	display: none;
}

.n1ai-archive {
	padding-bottom: 56px;
}

.n1ai-empty {
	color: var(--n-muted);
}

/* Pagination. */
.n1ai-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 32px;
	font-size: 15px;
}

.n1ai-pager .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.n1ai-pager a,
.n1ai-pager .page-numbers,
.n1ai-pager .is-disabled {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0 14px;
	border: 1px solid var(--n-line);
	border-radius: 10px;
	text-decoration: none;
}

.n1ai-pager .page-numbers.current {
	background: var(--n-raised);
	border-color: var(--n-accent);
	font-weight: 650;
}

.n1ai-pager .page-numbers.dots {
	border-color: transparent;
}

.n1ai-pager a:hover {
	border-color: var(--n-accent);
}

.n1ai-pager .is-disabled {
	color: var(--n-separator);
}

/* Search form on the search and 404 pages. */
.n1ai-search-form .wp-block-search__inside-wrapper {
	display: flex;
	gap: 10px;
	max-width: 560px;
}

.n1ai-search-form .wp-block-search__input {
	flex: 1;
	min-height: 48px;
	padding: 0 14px;
	background: var(--n-ink);
	border: 1px solid var(--n-line);
	border-radius: 10px;
	color: var(--n-text);
	font: inherit;
}

.n1ai-search-form .wp-block-search__input:focus {
	border-color: var(--n-accent);
}

.n1ai-search-form .wp-block-search__button {
	min-height: 48px;
	margin: 0;
	padding: 0 18px;
	background: var(--n-accent);
	border: 0;
	border-radius: 10px;
	color: var(--wp--preset--color--on-accent);
	font: inherit;
	font-weight: 650;
	cursor: pointer;
}

/* Inner pages: one 680px reading column. */
.n1ai-page {
	padding-bottom: 56px;
}

.n1ai-page .n1ai-page-head,
.n1ai-page-body {
	max-width: 680px;
}

.n1ai-page--wide .n1ai-page-head,
.n1ai-page--wide .n1ai-page-body {
	max-width: none;
}

.n1ai-page-body > * {
	margin-top: 0;
	margin-bottom: 20px;
}

.n1ai-page-body h2 {
	margin: 36px 0 10px;
}

.n1ai-page-body h3 {
	margin: 28px 0 8px;
	font-size: 21px;
}

.n1ai-page-body :is(ul, ol) {
	padding-left: 1.2em;
}

/* Page content components (About, How we summarise news, Contact). The soai-
   names are the current pages' markup, kept so they look right until rewritten. */
:is(.n1ai-panel, .soai-short, .soai-promise, .soai-note-card, .soai-process, .soai-form-panel) {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 22px;
	background: var(--n-panel);
	border: 1px solid var(--n-line);
	border-radius: 14px;
	font-family: var(--n-sans);
	font-size: 17px;
	line-height: 1.55;
}

:is(.n1ai-panel, .soai-short, .soai-promise, .soai-note-card, .soai-process, .soai-form-panel) > * {
	margin: 0 !important;
}

.n1ai-panel--accent,
.soai-short {
	border-left: 4px solid var(--n-accent);
	border-radius: 10px;
}

.n1ai-page-body :is(.n1ai-label, .soai-label, .soai-section-label, .soai-signals-head p) {
	color: var(--n-muted);
	font-family: var(--n-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: normal;
	text-transform: uppercase;
}

.n1ai-page-body :is(.soai-label, .soai-signals-head .soai-feed) {
	color: var(--n-accent);
}

.soai-process {
	gap: 0;
	padding: 0;
	overflow: hidden;
}

.soai-signals-head {
	display: flex;
	justify-content: space-between;
	padding: 14px 18px;
	border-bottom: 1px solid var(--n-line);
}

.soai-process-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px;
	border-bottom: 1px solid var(--n-line);
}

.soai-process-row:last-child {
	border-bottom: 0;
}

.soai-process-row > * {
	margin: 0 !important;
}

.n1ai-page-body p.soai-process-meta {
	display: flex;
	gap: 12px;
	color: var(--n-muted);
	font-size: 13px;
}

.soai-process-step {
	color: var(--n-accent);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.n1ai-page-body p.soai-process-text {
	color: var(--n-text);
	font-weight: 500;
	line-height: 1.4;
}

.n1ai-page-body :is(p.soai-promise-title, .n1ai-panel-title) {
	color: var(--n-text);
	font-size: 22px;
	font-weight: 720;
	line-height: 1.25;
	letter-spacing: -0.015em;
}

.n1ai-page-body p.soai-promise-text {
	color: var(--n-muted);
	font-size: 15px;
}

/* Contact: form panel and side cards. */
.n1ai-contact :is(.n1ai-contact-row, .soai-contact-row) {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 24px;
}

.n1ai-contact :is(.n1ai-contact-row, .soai-contact-row) > * {
	margin: 0 !important;
}

.n1ai-contact :is(.n1ai-form-panel, .soai-form-panel) {
	flex: 2 1 520px;
	min-width: 0;
}

.n1ai-contact :is(.n1ai-contact-aside, .soai-contact-aside) {
	flex: 1 1 300px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* WPForms, restyled to the design (dark fields, hairline borders, accent button). */
.n1ai-page-body .wpforms-container {
	margin: 0 !important;
}

.n1ai-page-body .wpforms-field-container {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.n1ai-page-body .wpforms-field {
	flex: 1 1 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}

.n1ai-page-body :is(.wpforms-field-name, .wpforms-field-email) {
	flex: 1 1 240px;
}

.n1ai-page-body .wpforms-field-label {
	margin: 0 0 8px !important;
	color: var(--n-soft) !important;
	font-family: var(--n-sans);
	font-size: 14px !important;
	font-weight: 550 !important;
}

/* Visible labels, even when a form is set to hide them. */
.n1ai-page-body .wpforms-field-label.wpforms-label-hide {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
}

.n1ai-page-body .wpforms-required-label {
	color: var(--n-accent) !important;
}

.n1ai-page-body .wpforms-field-row {
	display: flex;
	gap: 12px;
	max-width: none !important;
}

.n1ai-page-body .wpforms-field-row-block {
	flex: 1;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.n1ai-page-body .wpforms-field-sublabel {
	margin-top: 6px;
	color: var(--n-muted);
	font-size: 12px;
}

.n1ai-page-body :is(input[type="text"], input[type="email"], textarea) {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	min-height: 48px;
	height: auto !important;
	padding: 0 14px !important;
	background: var(--n-ink) !important;
	border: 1px solid var(--n-line) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	color: var(--n-text) !important;
	font-family: var(--n-sans) !important;
	font-size: 16px !important;
}

.n1ai-page-body textarea {
	min-height: 180px !important;
	padding: 12px 14px !important;
	line-height: 1.6;
	resize: vertical;
}

.n1ai-page-body :is(input, textarea):focus {
	border-color: var(--n-accent) !important;
	outline: 2px solid var(--n-accent) !important;
	outline-offset: 2px;
}

.n1ai-page-body .wpforms-submit-container {
	margin: 18px 0 0 !important;
	padding: 0 !important;
}

.n1ai-page-body button.wpforms-submit {
	display: inline-flex !important;
	align-items: center;
	min-height: 44px;
	height: auto !important;
	padding: 0 18px !important;
	background: var(--n-accent) !important;
	border: 0 !important;
	border-radius: 10px !important;
	color: var(--wp--preset--color--on-accent) !important;
	font-family: var(--n-sans) !important;
	font-size: 15px !important;
	font-weight: 650 !important;
	cursor: pointer;
}

.n1ai-page-body button.wpforms-submit:hover {
	background: var(--n-text) !important;
}

.n1ai-page-body :is(label.wpforms-error, em.wpforms-error) {
	margin-top: 6px;
	color: var(--wp--preset--color--topic-policy) !important;
	font-size: 13px;
	font-style: normal;
}

.n1ai-page-body .wpforms-confirmation-container-full {
	margin: 0;
	padding: 16px 18px;
	background: var(--n-ink) !important;
	border: 1px solid var(--n-line) !important;
	border-radius: 10px;
	color: var(--n-text) !important;
}

/* ---------- Touch screens: 44px targets ---------- */

@media (pointer: coarse) {
	.n1ai-topics-nav .wp-block-navigation-item__content,
	.n1ai-footer-nav .wp-block-navigation-item__content,
	.n1ai-footer-legal .wp-block-navigation-item__content,
	.n1ai-breadcrumbs a {
		min-height: 44px;
		display: inline-flex !important;
		align-items: center;
	}
}

/* ---------- Tablet and phone ---------- */

@media (max-width: 1100px) {
	/* Logo and search on the first row, the topic pills on their own row. */
	.n1ai-brand { order: 1; }
	.n1ai-search { order: 2; margin-left: auto !important; }
	.n1ai-topics-nav { order: 3; flex-basis: 100%; }
}

@media (max-width: 960px) {
	/* Story page: one column; "On this page" is only for wide screens. */
	.n1ai-rail-slot { display: none; }
	.n1ai-story { max-width: none; }
	.n1ai-story-grid { gap: 32px; }
}

@media (max-width: 700px) {
	.n1ai-header-row { gap: 12px; }

	.n1ai-search { flex: 1 1 100%; order: 3; margin-left: 0 !important; }
	.n1ai-search .wp-block-search__inside-wrapper { width: 100% !important; }
	.n1ai-search .wp-block-search__inside-wrapper::after { display: none; }
	.n1ai-topics-nav { order: 2; }

	.n1ai-lead-row { gap: 32px; padding: 28px 0 36px; }
	.n1ai-lead-query { flex-basis: 100%; }
	.n1ai-lead-summary { font-size: 19px; }
	.n1ai-stat dd { font-size: 36px; }
	.n1ai-glance .n1ai-stat dd { font-size: 32px; }

	.n1ai-section { padding: 36px 0; }

	.n1ai-byline-side { margin-left: 52px; text-align: left; }

	.n1ai-story-body { font-size: 19px; }

	.n1ai-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.n1ai-tile a { gap: 18px 8px; padding: 16px; }
	.n1ai-tile-name { font-size: 17px; }

	.n1ai-page-desc,
	.n1ai-page-desc p { font-size: 18px; }

	.n1ai-pager { justify-content: center; }
}
