/*
 * On Dating Journal — main stylesheet.
 * Mobile first; desktop layout from 961px. Styles every .odj-* class
 * produced by the On Dating Journal Core plugin (its base CSS is dequeued).
 */

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
	--odjt-ink: #0a0a0a;
	--odjt-paper: #fff;
	--odjt-red: #d7141a;
	--odjt-red-dark: #a80f14;
	--odjt-red-ondark: #ff4a4f;
	--odjt-stone: #f2f0ed;
	--odjt-stone-rule: #cfcac4;
	--odjt-rule: #d9d9d9;
	--odjt-track: #efefef;
	--odjt-text: #0a0a0a;
	--odjt-text-soft: #222;
	--odjt-text-mid: #333;
	--odjt-muted: #444;
	--odjt-muted-2: #555;
	--odjt-ondark-soft: #cfcfcf;
	--odjt-ondark-muted: #bdbdbd;

	--odjt-serif: "Bodoni Moda", "Bodoni 72", Didot, "Didot LT STD", "Libre Bodoni", Georgia, serif;
	--odjt-serif-text: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
	--odjt-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	--odjt-wrap: 1320px;
	--odjt-gutter: 16px;
	--odjt-sidebar: 320px;
	--odjt-gap: 56px;
	--odjt-prose: 720px;

	--odjt-h1: 38px;
	--odjt-h1-news: 32px;
	--odjt-h2: 30px;
	--odjt-h2-section: 32px;
	--odjt-standfirst: 18px;
	--odjt-body: 17px;

	--odjt-header-h: 56px;
	--odjt-focus: 0 0 0 2px var(--odjt-paper), 0 0 0 4px var(--odjt-red);
	--odjt-photo-filter: grayscale(1) contrast(1.1);
}

@media (min-width: 961px) {
	:root {
		--odjt-gutter: 32px;
		--odjt-h1: 60px;
		--odjt-h1-news: 46px;
		--odjt-h2: 36px;
		--odjt-h2-section: 44px;
		--odjt-standfirst: 21px;
		--odjt-body: 18px;
		--odjt-header-h: 64px;
	}
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--odjt-header-h) + 16px);
}

body {
	margin: 0;
	background: var(--odjt-paper);
	color: var(--odjt-text);
	font-family: var(--odjt-sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.odjt-menu-open {
	overflow: hidden;
}

img,
svg,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
	display: block;
}

a {
	color: var(--odjt-ink);
	text-decoration: none;
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

a:hover {
	color: var(--odjt-red);
}

:focus-visible {
	outline: 2px solid var(--odjt-red);
	outline-offset: 2px;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

button {
	cursor: pointer;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: 400;
}

p,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

hr {
	border: 0;
	border-top: 1px solid var(--odjt-ink);
	margin: 32px 0;
}

.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;
}

.odjt-skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	left: 16px;
	top: 16px;
	z-index: 1000;
	padding: 12px 18px;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.odjt-site-main:focus {
	outline: 0;
}

/* Monochrome photography (Customizer toggle, body.odjt-mono). */
.odjt-mono .odjt-photo img,
.odjt-mono img.odjt-photo,
.odjt-mono .odjt-content figure img,
.odjt-mono .odjt-content .wp-block-image img,
.odjt-mono .odjt-content p > img,
.odjt-mono .odjt-content a > img {
	filter: var(--odjt-photo-filter);
}

/* App icons, logos and App Store screenshots stay in colour. */
.odjt-mono .odjt-content .odj-shots img,
.odjt-mono .odjt-content .odj-card img,
.odjt-mono .odjt-content .odj-scorebox img,
.odjt-mono .odjt-content .odj-table img,
.odjt-mono .odjt-content img.odjt-keep-colour,
.odjt-mono .odjt-content .is-style-colour img {
	filter: none;
}

/* ==========================================================================
   3. Layout
   ========================================================================== */
.odjt-wrap {
	width: 100%;
	max-width: var(--odjt-wrap);
	margin: 0 auto;
	padding: 0 var(--odjt-gutter);
}

.odjt-page {
	padding-top: 24px;
	padding-bottom: 56px;
}

.odjt-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}

.odjt-main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.odjt-sidebar {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin: 48px calc(var(--odjt-gutter) * -1) -56px;
	padding: 32px var(--odjt-gutter);
	background: var(--odjt-stone);
}

@media (min-width: 961px) {
	.odjt-page {
		padding-top: 28px;
		padding-bottom: 64px;
	}

	.odjt-layout {
		grid-template-columns: minmax(0, 1fr) var(--odjt-sidebar);
		gap: var(--odjt-gap);
		align-items: start;
	}

	.odjt-layout--full {
		grid-template-columns: minmax(0, 1fr);
	}

	.odjt-sidebar {
		margin: 0;
		padding: 0;
		background: transparent;
		gap: 36px;
	}
}

/* ==========================================================================
   4. Shared type & UI atoms
   ========================================================================== */
.odjt-kicker {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-family: var(--odjt-sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 3px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--odjt-red);
}

.odjt-kicker--sm {
	font-size: 10px;
	letter-spacing: 2px;
}

.odjt-kicker--ondark {
	color: var(--odjt-red-ondark);
}

@media (min-width: 961px) {
	.odjt-kicker {
		font-size: 11px;
	}

	.odjt-kicker--sm {
		font-size: 10px;
		letter-spacing: 2.2px;
	}
}

.odjt-h1 {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: var(--odjt-h1);
	line-height: 1;
	letter-spacing: -0.02em;
	overflow-wrap: break-word;
	hyphens: manual;
}

.odjt-h1 i,
.odjt-h1 em,
.odjt-h2 i,
.odjt-sechead__title i {
	font-style: italic;
}

.odjt-h2 {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: calc(var(--odjt-h2) - 2px);
	line-height: 1.1;
	letter-spacing: -0.01em;
}

.odjt-standfirst {
	font-family: var(--odjt-serif-text);
	font-size: var(--odjt-standfirst);
	line-height: 1.5;
	color: var(--odjt-text-soft);
	max-width: 820px;
}

.odjt-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--odjt-red);
	color: var(--odjt-paper);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 6px 9px;
	line-height: 1.2;
}

@media (min-width: 961px) {
	.odjt-badge {
		top: 18px;
		left: 18px;
		padding: 7px 10px;
	}
}

.odjt-badge-outline {
	display: inline-block;
	border: 1px solid currentColor;
	color: var(--odjt-red-ondark);
	padding: 4px 8px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Theme buttons (plugin buttons are .odj-btn, styled in section 12). */
.odjt-btn-ink,
.odjt-btn-outline,
.odjt-morelink {
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.2px;
	text-transform: uppercase;
	line-height: 1.2;
}

.odjt-btn-ink {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 11px 16px;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	border: 1px solid var(--odjt-ink);
}

.odjt-btn-ink:hover {
	background: var(--odjt-red);
	border-color: var(--odjt-red);
	color: var(--odjt-paper);
}

.odjt-btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 14px 22px;
	border: 1px solid var(--odjt-ink);
	color: var(--odjt-ink);
	background: transparent;
}

.odjt-btn-outline:hover {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odjt-btn-block {
	display: flex;
	width: 100%;
	min-height: 48px;
}

.odjt-morelink {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	white-space: nowrap;
}

.odjt-iconbtn {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--odjt-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.odjt-iconbtn:hover {
	color: var(--odjt-red);
}

/* Chips (section filters, hub child pages, tags). */
.odjt-chips ul,
.odjt-taglist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.odjt-chip {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 10px 14px;
	border: 1px solid var(--odjt-ink);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.2;
	text-transform: uppercase;
}

.odjt-chip:hover,
.odjt-chip.is-current {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odjt-chips--dark .odjt-chip {
	border-color: var(--odjt-paper);
	color: var(--odjt-paper);
}

.odjt-chips--dark .odjt-chip:hover,
.odjt-chips--dark .odjt-chip.is-current {
	background: var(--odjt-paper);
	color: var(--odjt-ink);
}

@media (max-width: 600px) {
	.odjt-chips ul {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin: 0 calc(var(--odjt-gutter) * -1);
		padding: 0 var(--odjt-gutter);
	}

	.odjt-chips ul::-webkit-scrollbar {
		display: none;
	}

	.odjt-chips li {
		flex: none;
	}
}

/* ==========================================================================
   5. Header
   ========================================================================== */
.odjt-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--odjt-paper);
	border-bottom: 1px solid var(--odjt-ink);
}

.admin-bar .odjt-header {
	top: 46px;
}

@media (min-width: 783px) {
	.admin-bar .odjt-header {
		top: 32px;
	}
}

@media (max-width: 600px) {
	.admin-bar .odjt-header {
		top: 0;
	}
}

.odjt-header__bar {
	height: var(--odjt-header-h);
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
}

.odjt-header__burger {
	margin-left: -10px;
}

.odjt-header__burger .odjt-icon-menu__top,
.odjt-header__burger .odjt-icon-menu__bottom {
	transition: transform 0.2s ease;
	transform-origin: center;
}

.odjt-header__burger[aria-expanded="true"] .odjt-icon-menu__top {
	transform: translateY(4px) rotate(45deg);
}

.odjt-header__burger[aria-expanded="true"] .odjt-icon-menu__bottom {
	transform: translateY(-4px) rotate(-45deg);
}

.odjt-wordmark {
	font-family: var(--odjt-serif-text);
	font-weight: 500;
	font-size: 25px;
	line-height: 1;
	letter-spacing: -0.6px;
	color: var(--odjt-ink);
	white-space: nowrap;
}

.odjt-header .odjt-wordmark {
	justify-self: center;
}

.odjt-wordmark i {
	color: var(--odjt-red);
	font-style: italic;
}

.odjt-wordmark:hover {
	color: var(--odjt-ink);
}

.odjt-header__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	justify-self: end;
}

.odjt-header__search {
	margin-right: -10px;
}

.odjt-header__subscribe {
	display: none;
}

/* Primary nav: drawer on mobile. */
.odjt-nav {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	max-height: calc(100vh - var(--odjt-header-h));
	overflow-y: auto;
	background: var(--odjt-paper);
	border-bottom: 3px solid var(--odjt-ink);
	padding: 8px var(--odjt-gutter) 24px;
}

.odjt-header.is-menu-open .odjt-nav {
	display: block;
}

.odjt-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.odjt-nav .odjt-menu a {
	display: flex;
	align-items: center;
	min-height: 52px;
	border-bottom: 1px solid var(--odjt-rule);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2.2px;
	text-transform: uppercase;
}

.odjt-nav .current-menu-item > a,
.odjt-nav .current-menu-ancestor > a,
.odjt-nav .current-page-ancestor > a,
.odjt-nav .current_page_parent > a {
	color: var(--odjt-red);
}

.odjt-nav__subscribe {
	margin-top: 20px;
	width: 100%;
	min-height: 48px;
}

@media (min-width: 961px) {
	.odjt-header__bar {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 24px;
	}

	.odjt-header__burger {
		display: none;
	}

	.odjt-wordmark {
		font-size: 30px;
		letter-spacing: -0.8px;
	}

	.odjt-header .odjt-wordmark {
		justify-self: start;
	}

	.odjt-nav {
		display: block;
		position: static;
		max-height: none;
		overflow: visible;
		background: transparent;
		border: 0;
		padding: 0;
		justify-self: center;
	}

	.odjt-nav .odjt-menu {
		display: flex;
		gap: 26px;
	}

	.odjt-nav .odjt-menu a {
		min-height: 44px;
		border: 0;
		font-size: 11px;
		letter-spacing: 2.2px;
		white-space: nowrap;
	}

	.odjt-nav__subscribe {
		display: none;
	}

	.odjt-header__search {
		margin-right: 0;
	}

	.odjt-header__subscribe {
		display: inline-flex;
		letter-spacing: 2px;
	}
}

/* Sub-menus (two-level primary menu). */
.odjt-menu > li.menu-item-has-children {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 52px;
	align-items: stretch;
}

.odjt-subtoggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--odjt-rule);
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.odjt-subtoggle svg {
	transition: transform 0.2s ease;
}

.odjt-subtoggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

.odjt-subtoggle:focus-visible {
	outline: 2px solid var(--odjt-red);
	outline-offset: -2px;
}

.odjt-nav .sub-menu {
	grid-column: 1 / -1;
	display: none;
	list-style: none;
	margin: 0;
	padding: 4px 0 12px 14px;
	border-bottom: 1px solid var(--odjt-rule);
	border-left: 2px solid var(--odjt-ink);
}

.odjt-nav .is-sub-open > .sub-menu {
	display: block;
}

.odjt-nav .odjt-menu .sub-menu a {
	min-height: 44px;
	border-bottom: 0;
	font-family: var(--odjt-serif-text);
	font-size: 17px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.odjt-nav .sub-menu .current-menu-item > a {
	color: var(--odjt-red);
}

@media (min-width: 961px) {
	.odjt-menu > li.menu-item-has-children {
		position: relative;
		display: flex;
		align-items: center;
		gap: 2px;
	}

	.odjt-subtoggle {
		min-height: 44px;
		width: 18px;
		border: 0;
	}

	.odjt-nav .sub-menu {
		position: absolute;
		top: 100%;
		left: -20px;
		z-index: 60;
		min-width: 250px;
		padding: 10px 0;
		background: var(--odjt-paper);
		border: 1px solid var(--odjt-rule);
		border-top: 3px solid var(--odjt-ink);
		box-shadow: 0 18px 40px rgba(10, 10, 10, 0.12);
	}

	.odjt-nav .sub-menu .current-menu-item > a {
		color: var(--odjt-red);
	}

	.odjt-nav .sub-menu:has(> li:nth-child(7)) {
		columns: 2;
		column-gap: 0;
		min-width: 420px;
	}

	.odjt-nav .sub-menu li {
		break-inside: avoid;
	}

	.odjt-nav .menu-item-has-children:hover > .sub-menu,
	.odjt-nav .menu-item-has-children:focus-within > .sub-menu,
	.odjt-nav .is-sub-open > .sub-menu {
		display: block;
	}

	.odjt-nav .odjt-menu .sub-menu a {
		display: flex;
		min-height: 38px;
		padding: 0 20px;
		font-size: 16px;
		white-space: nowrap;
	}

	.odjt-nav .odjt-menu .sub-menu a:hover,
	.odjt-nav .odjt-menu .sub-menu a:focus-visible {
		background: var(--odjt-stone);
		color: var(--odjt-red);
	}
}

/* Search panel. */
.odjt-search-panel {
	border-top: 1px solid var(--odjt-rule);
	background: var(--odjt-paper);
	padding: 16px 0;
}

.odjt-search-panel[hidden] {
	display: none;
}

.odjt-search-panel .odjt-searchform {
	max-width: 720px;
	margin: 0 auto;
}

/* Section chips under the header (mobile only). */
.odjt-sections {
	border-bottom: 1px solid var(--odjt-rule);
}

.odjt-sections__list {
	list-style: none;
	margin: 0;
	padding: 0 var(--odjt-gutter);
	height: 44px;
	display: flex;
	align-items: center;
	gap: 20px;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.odjt-sections__list::-webkit-scrollbar {
	display: none;
}

.odjt-sections__list li {
	flex: none;
}

.odjt-sections__list a {
	display: flex;
	align-items: center;
	height: 44px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	white-space: nowrap;
}

.odjt-sections .current-menu-item > a,
.odjt-sections .current-menu-ancestor > a,
.odjt-sections .current-page-ancestor > a,
.odjt-sections .current_page_parent > a {
	color: var(--odjt-red);
}

@media (min-width: 961px) {
	.odjt-sections {
		display: none;
	}
}

/* ==========================================================================
   6. Search form
   ========================================================================== */
.odjt-searchform {
	display: flex;
	border: 1px solid var(--odjt-ink);
	background: var(--odjt-paper);
}

.odjt-searchform__input {
	flex: 1;
	min-width: 0;
	height: 46px;
	border: 0;
	border-radius: 0;
	padding: 0 14px;
	font-size: 16px;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
}

.odjt-searchform__input:focus {
	outline: 0;
}

.odjt-searchform:focus-within {
	box-shadow: var(--odjt-focus);
}

.odjt-searchform__btn {
	width: 46px;
	flex: none;
	border: 0;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	display: flex;
	align-items: center;
	justify-content: center;
}

.odjt-searchform__btn:hover {
	background: var(--odjt-red);
}

@media (min-width: 961px) {
	.odjt-searchform__input {
		font-size: 14px;
	}
}

/* ==========================================================================
   7. Section headings & modules
   ========================================================================== */
.odjt-sechead {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px 16px;
	border-bottom: 3px solid var(--odjt-ink);
	padding-bottom: 12px;
}

.odjt-sechead__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	flex: 1 1 420px;
}

.odjt-sechead__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: var(--odjt-h2-section);
	line-height: 1.04;
	letter-spacing: -0.02em;
}

.odjt-sechead__title a {
	color: inherit;
}

.odjt-sechead__intro {
	font-size: 14px;
	line-height: 1.6;
	color: var(--odjt-muted);
	max-width: 640px;
}

@media (min-width: 961px) {
	.odjt-sechead {
		padding-bottom: 14px;
	}

	.odjt-sechead__text {
		gap: 8px;
	}
}

.odjt-home {
	gap: 40px;
}

@media (min-width: 961px) {
	.odjt-home {
		gap: 72px;
	}
}

.odjt-module {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.odjt-module--list {
	gap: 8px;
}

.odjt-module--list .odjt-btn-block {
	margin-top: 14px;
}

.odjt-module--news {
	gap: 6px;
}

@media (min-width: 961px) {
	.odjt-module {
		gap: 24px;
	}

	.odjt-module--list {
		gap: 8px;
	}

	.odjt-module--list .odjt-btn-block {
		display: inline-flex;
		width: auto;
		align-self: flex-start;
		margin-top: 20px;
	}

	.odjt-module--news {
		gap: 6px;
	}
}

/* App list grid: two columns of odj-card rows. */
.odjt-applist {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 961px) {
	.odjt-applist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 40px;
	}
}

/* ==========================================================================
   8. Cover (front page)
   ========================================================================== */
.odjt-cover {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}

.odjt-cover__figure {
	position: relative;
	margin: 0;
}

.odjt-cover__figure a {
	display: block;
}

.odjt-cover__img,
.odjt-cover__figure img {
	width: 100%;
	height: 440px;
	object-fit: cover;
	object-position: center 62%;
}

.odjt-mono .odjt-cover__figure img {
	filter: grayscale(1) contrast(1.12);
}

.odjt-cover__body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 28px;
}

.odjt-cover__main {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: flex-start;
}

.odjt-cover__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: 40px;
	line-height: 1;
	letter-spacing: -0.8px;
}

.odjt-cover__title a {
	color: inherit;
}

.odjt-cover__main .odjt-standfirst {
	font-size: 17px;
}

.odjt-cover__main .odjt-btn-outline {
	width: 100%;
}

.odjt-coverlines {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--odjt-ink);
}

.odjt-coverlines li {
	border-bottom: 1px solid var(--odjt-rule);
}

.odjt-coverlines li:last-child {
	border-bottom: 0;
}

.odjt-coverlines a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 0;
}

.odjt-coverlines__title {
	font-family: var(--odjt-serif-text);
	font-size: 19px;
	line-height: 1.25;
}

@media (min-width: 961px) {
	.odjt-cover {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		gap: 36px;
	}

	.odjt-cover--noimg {
		grid-template-columns: minmax(0, 1fr);
	}

	.odjt-cover__img,
	.odjt-cover__figure img {
		height: 620px;
	}

	.odjt-cover__main {
		gap: 18px;
	}

	.odjt-cover__title {
		font-size: 58px;
		line-height: 0.98;
		letter-spacing: -1.2px;
	}

	.odjt-cover__main .odjt-standfirst {
		font-size: 19px;
	}

	.odjt-cover__main .odjt-btn-outline {
		width: auto;
	}

	.odjt-coverlines__title {
		font-size: 20px;
	}
}

/* ==========================================================================
   9. AI band (black)
   ========================================================================== */
.odjt-band {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	margin: 0 calc(var(--odjt-gutter) * -1);
	padding: 32px var(--odjt-gutter);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}

.odjt-band__copy {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.odjt-band__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: 32px;
	line-height: 1.04;
	color: var(--odjt-paper);
}

.odjt-band__title a,
.odjt-band__title a:hover {
	color: var(--odjt-paper);
}

.odjt-band__title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}

.odjt-band__standfirst {
	font-family: var(--odjt-serif-text);
	font-size: 17px;
	line-height: 1.5;
	color: var(--odjt-ondark-soft);
}

.odjt-band__link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 48px;
	border-top: 1px solid var(--odjt-paper);
	color: var(--odjt-paper);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.odjt-band__link:hover {
	color: var(--odjt-red-ondark);
}

.odjt-band__media {
	order: -1;
}

.odjt-band__copy .odjt-kicker {
	order: -2;
}

.odjt-band__media img {
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.odjt-mono .odjt-band__media img {
	filter: grayscale(1) contrast(1.2);
}

/* On mobile the mockup puts the image between heading and links. */
@media (max-width: 960px) {
	.odjt-band {
		display: flex;
		flex-direction: column;
	}

	.odjt-band__copy {
		display: contents;
	}

	.odjt-band__copy .odjt-kicker {
		order: 1;
	}

	.odjt-band__title {
		order: 2;
	}

	.odjt-band__standfirst {
		order: 3;
	}

	.odjt-band__media {
		order: 4;
	}

	.odjt-band__link {
		order: 5;
	}
}

@media (min-width: 961px) {
	.odjt-band {
		margin: 0;
		padding: 44px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px;
		align-items: center;
	}

	.odjt-band--noimg {
		grid-template-columns: minmax(0, 1fr);
	}

	.odjt-band__copy {
		gap: 16px;
	}

	.odjt-band__media {
		order: 0;
	}

	.odjt-band__title {
		font-size: 42px;
		line-height: 1.02;
	}

	.odjt-band__standfirst {
		font-size: 18px;
	}

	.odjt-band__link {
		min-height: 0;
		padding-top: 14px;
		letter-spacing: 2.2px;
	}

	.odjt-band__media img {
		height: 420px;
	}
}

/* ==========================================================================
   10. Story cards, rows, lead
   ========================================================================== */
.odjt-grid3 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
}

.odjt-card {
	min-width: 0;
}

.odjt-card__link {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.odjt-card__media {
	display: block;
	overflow: hidden;
}

.odjt-card__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.odjt-card__link:hover .odjt-card__media img {
	transform: scale(1.02);
}

.odjt-card__title {
	font-family: var(--odjt-serif-text);
	font-weight: 400;
	font-size: 23px;
	line-height: 1.18;
	color: var(--odjt-ink);
}

.odjt-card__link:hover .odjt-card__title {
	color: var(--odjt-red);
}

.odjt-card__excerpt {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--odjt-muted);
}

/* Mobile: first card large, others as compact thumb rows (as in the mockup). */
@media (max-width: 960px) {
	.odjt-grid3 > .odjt-card + .odjt-card {
		border-top: 1px solid var(--odjt-rule);
		padding-top: 14px;
	}

	.odjt-grid3 > .odjt-card + .odjt-card .odjt-card__link {
		display: grid;
		grid-template-columns: 100px minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		column-gap: 14px;
		row-gap: 5px;
		align-items: start;
	}

	.odjt-grid3 > .odjt-card + .odjt-card .odjt-card__media {
		grid-row: 1 / span 2;
	}

	.odjt-grid3 > .odjt-card + .odjt-card .odjt-card__media img {
		width: 100px;
		height: 100px;
		aspect-ratio: auto;
	}

	.odjt-grid3 > .odjt-card + .odjt-card .odjt-kicker {
		align-self: end;
	}

	.odjt-grid3 > .odjt-card + .odjt-card .odjt-card__title {
		font-size: 18px;
		line-height: 1.2;
	}
}

@media (min-width: 961px) {
	.odjt-grid3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 28px;
	}

	.odjt-card__link {
		gap: 12px;
	}

	.odjt-card__media img {
		aspect-ratio: 1 / 1;
	}
}

/* Rows. */
.odjt-rows {
	display: flex;
	flex-direction: column;
}

.odjt-row {
	border-bottom: 1px solid var(--odjt-rule);
}

.odjt-rows > .odjt-row:last-child {
	border-bottom: 0;
}

.odjt-row__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
	padding: 14px 0;
	align-items: center;
}

.odjt-row--thumb .odjt-row__link {
	grid-template-columns: 100px minmax(0, 1fr);
}

.odjt-row__media img {
	width: 100px;
	height: 80px;
	object-fit: cover;
}

.odjt-row__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.odjt-row__title {
	font-family: var(--odjt-serif-text);
	font-weight: 400;
	font-size: 19px;
	line-height: 1.3;
	color: var(--odjt-ink);
}

.odjt-row__link:hover .odjt-row__title {
	color: var(--odjt-red);
}

.odjt-row__excerpt {
	display: none;
	font-size: 14px;
	line-height: 1.6;
	color: var(--odjt-muted);
}

@media (min-width: 961px) {
	.odjt-row__link {
		gap: 22px;
		padding: 18px 0;
	}

	.odjt-row--thumb .odjt-row__link {
		grid-template-columns: 180px minmax(0, 1fr);
	}

	.odjt-row__media img {
		width: 180px;
		height: 120px;
	}

	.odjt-row__body {
		gap: 6px;
	}

	.odjt-row__title {
		font-size: 22px;
		line-height: 1.25;
	}

	.odjt-row__excerpt {
		display: block;
	}
}

/* Lead story. */
.odjt-mag {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.odjt-lead {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	padding-bottom: 24px;
	border-bottom: 3px solid var(--odjt-ink);
}

.odjt-lead__media {
	display: block;
}

.odjt-lead__media img {
	width: 100%;
	height: 300px;
	object-fit: cover;
}

.odjt-lead__body {
	display: flex;
	flex-direction: column;
	gap: 14px;
	justify-content: center;
}

.odjt-lead__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: 32px;
	line-height: 1.04;
	letter-spacing: -0.02em;
}

.odjt-lead__title a {
	color: inherit;
}

.odjt-lead__title a:hover {
	color: var(--odjt-red);
}

.odjt-lead .odjt-standfirst {
	font-size: 17px;
}

@media (min-width: 961px) {
	.odjt-lead {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
		gap: 36px;
		padding-bottom: 32px;
	}

	.odjt-lead--noimg {
		grid-template-columns: minmax(0, 1fr);
	}

	.odjt-lead__media img {
		height: 460px;
	}

	.odjt-lead__body {
		gap: 18px;
	}

	.odjt-lead__title {
		font-size: 44px;
		line-height: 1.02;
	}

	.odjt-lead .odjt-standfirst {
		font-size: 19px;
	}
}

.odjt-more {
	margin-top: 16px;
}

/* Pagination. */
.odjt-pagination {
	margin-top: 24px;
	border-top: 3px solid var(--odjt-ink);
	padding-top: 16px;
}

.odjt-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

.odjt-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--odjt-rule);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

.odjt-pagination .page-numbers.current,
.odjt-pagination a.page-numbers:hover {
	background: var(--odjt-ink);
	border-color: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odjt-pagination .page-numbers.dots {
	border: 0;
}

/* ==========================================================================
   11. Archive / page / single headers
   ========================================================================== */
.odjt-archive-head {
	display: flex;
	flex-direction: column;
	gap: 14px;
	border-bottom: 3px solid var(--odjt-ink);
	padding-bottom: 20px;
	margin-bottom: 28px;
}

.odjt-archive-head__count {
	font-size: 12px;
	color: var(--odjt-muted);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.odjt-archive-head__search {
	max-width: 560px;
}

@media (min-width: 961px) {
	.odjt-archive-head {
		gap: 18px;
		padding-bottom: 28px;
		margin-bottom: 40px;
	}

	.odjt-archive-head .odjt-h1 {
		max-width: 1000px;
	}
}

.odjt-archive-copy {
	margin-top: 24px;
	border-top: 1px solid var(--odjt-ink);
	padding-top: 24px;
}

.odjt-entry {
	display: flex;
	flex-direction: column;
	gap: 28px;
	min-width: 0;
}

@media (min-width: 961px) {
	.odjt-entry {
		gap: 36px;
	}

	.odjt-entry--app {
		gap: 44px;
	}
}

.odjt-entry__head {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.odjt-entry__head--ruled {
	border-bottom: 3px solid var(--odjt-ink);
	padding-bottom: 20px;
}

@media (min-width: 961px) {
	.odjt-entry__head {
		gap: 18px;
	}

	.odjt-entry__head--ruled {
		padding-bottom: 24px;
	}
}

/* News: compact header. */
.odjt-entry--news .odjt-h1 {
	font-size: var(--odjt-h1-news);
	line-height: 1.04;
}

.odjt-entry--news .odjt-standfirst {
	font-size: calc(var(--odjt-standfirst) - 2px);
}

.odjt-entry--news .odjt-entry__head {
	gap: 12px;
}

.odjt-entry--news .odjt-figure img {
	max-height: 460px;
}

.odjt-byline {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--odjt-muted);
}

.odjt-byline b {
	color: var(--odjt-ink);
	font-weight: 700;
}

.odjt-byline--ruled {
	border-top: 1px solid var(--odjt-ink);
	padding-top: 14px;
}

.odjt-entry--news .odjt-byline--ruled {
	border-top-color: var(--odjt-rule);
}

.odjt-byline__disc {
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #e6e6e6;
	color: var(--odjt-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--odjt-serif-text);
	font-size: 16px;
	font-weight: 500;
}

.odjt-figure {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.odjt-figure img {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
}

.odjt-figure figcaption {
	font-size: 10px;
	letter-spacing: 1.6px;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
}

.odjt-figure--hero img {
	max-height: 480px;
	object-position: center 30%;
}

/* App header: icon + kicker. */
.odjt-apphead {
	display: flex;
	align-items: center;
	gap: 14px;
}

.odjt-apphead__icon img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 13px;
	border: 1px solid var(--odjt-rule);
}

.odjt-entry__foot {
	border-top: 1px solid var(--odjt-rule);
	padding-top: 16px;
}

/* Hub header (listing pages): black band. */
.odjt-hubhead {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odjt-hubhead__inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 24px;
	padding-bottom: 36px;
}

.odjt-hubhead__title {
	color: var(--odjt-paper);
	max-width: 980px;
}

.odjt-hubhead__standfirst {
	color: var(--odjt-ondark-soft);
	max-width: 760px;
}

.odjt-hubhead__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}

.odjt-hubhead .odjt-byline {
	color: var(--odjt-ondark-muted);
}

.odjt-hubhead .odjt-byline b {
	color: var(--odjt-paper);
}

.odjt-hubhead .odjt-byline__disc {
	background: #2a2a2a;
	color: var(--odjt-paper);
}

.odjt-hubhead .odj-breadcrumbs,
.odjt-hubhead .odj-breadcrumbs a {
	color: var(--odjt-ondark-muted);
}

.odjt-hubhead .odj-breadcrumbs a:hover {
	color: var(--odjt-paper);
}

.odjt-hubhead .odj-breadcrumbs {
	margin-bottom: 0;
}

.odjt-page--listing {
	padding-top: 32px;
}

@media (min-width: 961px) {
	.odjt-hubhead__inner {
		gap: 18px;
		padding-top: 28px;
		padding-bottom: 48px;
	}

	.odjt-hubhead__title {
		font-size: 64px;
		line-height: 0.98;
	}

	.odjt-hubhead__standfirst {
		font-size: 20px;
	}

	.odjt-page--listing {
		padding-top: 48px;
	}
}

/* 404. */
.odjt-404 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	padding: 24px 0 40px;
}

.odjt-404__num {
	font-family: var(--odjt-serif);
	font-size: 140px;
	line-height: 0.8;
	color: var(--odjt-red);
	letter-spacing: -0.04em;
}

.odjt-404__body {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 640px;
}

.odjt-linklist {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 3px solid var(--odjt-ink);
}

.odjt-linklist a {
	display: flex;
	align-items: center;
	min-height: 48px;
	border-bottom: 1px solid var(--odjt-rule);
	font-family: var(--odjt-serif-text);
	font-size: 19px;
}

@media (min-width: 961px) {
	.odjt-404 {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 56px;
		padding: 48px 0 64px;
		align-items: start;
	}

	.odjt-404__num {
		font-size: 260px;
	}
}

.odjt-none {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px 0;
	max-width: 560px;
}

.odjt-none__title {
	font-family: var(--odjt-serif);
	font-size: 30px;
	line-height: 1.1;
}

/* Related. */
.odjt-related {
	margin-top: 24px;
}

/* ==========================================================================
   12. Entry content typography (imported HTML lives here)
   ========================================================================== */
.odjt-content {
	font-size: var(--odjt-body);
	line-height: 1.75;
	color: var(--odjt-ink);
	overflow-wrap: break-word;
	min-width: 0;
}

.odjt-content--article {
	max-width: var(--odjt-prose);
}

.odjt-content > * {
	margin-top: 0;
	margin-bottom: 1.1em;
}

.odjt-content > *:last-child {
	margin-bottom: 0;
}

.odjt-content p {
	margin-top: 0;
}

.odjt-content a:not([class]):not(:where([class^="odj-"] a, [class*=" odj-"] a)) {
	color: var(--odjt-ink);
	text-decoration: underline;
	text-decoration-color: var(--odjt-red);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.odjt-content a:not([class]):not(:where([class^="odj-"] a, [class*=" odj-"] a)):hover {
	color: var(--odjt-red);
}

.odjt-content strong,
.odjt-content b {
	font-weight: 700;
}

.odjt-content h2 {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: var(--odjt-h2);
	line-height: 1.1;
	letter-spacing: -0.01em;
	margin: 1.5em 0 0.55em;
	scroll-margin-top: calc(var(--odjt-header-h) + 16px);
}

.odjt-content > h2:first-child {
	margin-top: 0;
}

.odjt-content h2 i,
.odjt-content h2 em,
.odjt-content h3 i,
.odjt-content h3 em {
	font-style: italic;
}

.odjt-content h3 {
	font-family: var(--odjt-sans);
	font-weight: 700;
	font-size: 19px;
	line-height: 1.35;
	letter-spacing: -0.005em;
	margin: 1.6em 0 0.5em;
	scroll-margin-top: calc(var(--odjt-header-h) + 16px);
}

.odjt-content h4,
.odjt-content h5,
.odjt-content h6 {
	font-family: var(--odjt-sans);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	margin: 1.8em 0 0.6em;
}

.odjt-content h2 + h3 {
	margin-top: 0.8em;
}

.odjt-content ul,
.odjt-content ol {
	padding-left: 1.3em;
}

.odjt-content li {
	margin-bottom: 0.45em;
	padding-left: 0.2em;
}

.odjt-content li > ul,
.odjt-content li > ol {
	margin-top: 0.45em;
	margin-bottom: 0;
}

.odjt-content ul > li::marker {
	color: var(--odjt-red);
}

.odjt-content ol > li::marker {
	font-family: var(--odjt-serif);
	font-weight: 500;
	color: var(--odjt-ink);
}

.odjt-content blockquote,
.odjt-content .wp-block-quote,
.odjt-content .wp-block-pullquote {
	margin: 1.6em 0;
	padding: 18px 0;
	border: 0;
	border-top: 1px solid var(--odjt-ink);
	border-bottom: 1px solid var(--odjt-ink);
	font-family: var(--odjt-serif-text);
	font-style: italic;
	font-size: 24px;
	line-height: 1.35;
	text-align: left;
}

.odjt-content blockquote p {
	margin-bottom: 0.5em;
}

.odjt-content blockquote p:last-of-type {
	margin-bottom: 0;
}

.odjt-content blockquote cite,
.odjt-content blockquote footer,
.odjt-content .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--odjt-sans);
	font-style: normal;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
}

@media (min-width: 961px) {
	.odjt-content blockquote,
	.odjt-content .wp-block-quote,
	.odjt-content .wp-block-pullquote {
		font-size: 30px;
		line-height: 1.3;
	}
}

.odjt-content figure,
.odjt-content .wp-block-image {
	margin: 1.6em 0;
}

.odjt-content figure img,
.odjt-content .wp-block-image img {
	width: 100%;
	height: auto;
}

.odjt-content figcaption,
.odjt-content .wp-caption-text,
.odjt-content .wp-element-caption {
	margin-top: 8px;
	font-size: 10px;
	letter-spacing: 1.6px;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
	text-align: left;
}

.odjt-content .wp-caption {
	max-width: 100%;
}

.odjt-content .alignleft,
.odjt-content .alignright {
	max-width: 50%;
	margin-bottom: 1em;
}

.odjt-content .alignleft {
	float: left;
	margin-right: 24px;
}

.odjt-content .alignright {
	float: right;
	margin-left: 24px;
}

.odjt-content .aligncenter {
	margin-left: auto;
	margin-right: auto;
}

.odjt-content .alignwide,
.odjt-content .alignfull {
	max-width: 100%;
}

.odjt-content::after {
	content: "";
	display: table;
	clear: both;
}

.odjt-content hr,
.odjt-content .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--odjt-ink);
	margin: 2em 0;
	opacity: 1;
}

.odjt-content code,
.odjt-content kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.88em;
	background: var(--odjt-stone);
	padding: 0.1em 0.35em;
}

.odjt-content pre {
	background: var(--odjt-stone);
	padding: 16px;
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.6;
}

.odjt-content iframe,
.odjt-content embed,
.odjt-content video {
	max-width: 100%;
}

/* Drop cap on long-form features. */
.odjt-entry--feature .odjt-content--article > p:first-of-type:not([class])::first-letter {
	float: left;
	font-family: var(--odjt-serif);
	font-size: 4.2em;
	line-height: 0.8;
	padding: 0.08em 0.12em 0 0;
	color: var(--odjt-ink);
}

/* Tables (imported HTML and core table blocks). */
.odjt-content table,
.odj-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--odjt-ink);
	font-size: 14px;
	line-height: 1.5;
	margin: 1.6em 0;
}

.odjt-content th,
.odjt-content td,
.odj-table th,
.odj-table td {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--odjt-rule);
	text-align: left;
	vertical-align: top;
}

.odjt-content thead th,
.odj-table thead th,
.odjt-content tr:first-child th {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	border-bottom: 1px solid var(--odjt-ink);
	vertical-align: bottom;
}

.odjt-content tbody th,
.odj-table tbody th {
	font-weight: 700;
}

.odjt-content tbody tr:last-child td,
.odjt-content tbody tr:last-child th,
.odj-table tbody tr:last-child td,
.odj-table tbody tr:last-child th {
	border-bottom: 0;
}

.odjt-content tbody tr:nth-child(even) td,
.odj-table tbody tr:nth-child(even) td {
	background: #fafaf9;
}

.odjt-content table a,
.odj-table a {
	font-weight: 600;
}

.odjt-content .wp-block-table {
	margin: 1.6em 0;
	overflow-x: auto;
}

.odjt-content .wp-block-table table {
	margin: 0;
}

.odjt-content .wp-block-table thead {
	border-bottom: 0;
}

.odjt-content .wp-block-table figcaption {
	margin-top: 8px;
}

@media (max-width: 960px) {
	.odjt-content table,
	.odj-table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		font-size: 13px;
	}

	.odjt-content th,
	.odjt-content td,
	.odj-table th,
	.odj-table td {
		min-width: 120px;
		padding: 10px 12px;
	}
}

.odj-table-wrap,
.odj-table__wrap {
	overflow-x: auto;
	margin: 1.6em 0;
}

.odj-table-wrap .odj-table,
.odj-table__wrap .odj-table {
	margin: 0;
}

/* FAQ disclosure blocks (if imported as <details>). */
.odjt-content details {
	border-bottom: 1px solid var(--odjt-rule);
	padding: 16px 0;
	margin: 0;
}

.odjt-content details summary {
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	min-height: 28px;
}

.odjt-content details summary::-webkit-details-marker {
	display: none;
}

.odjt-content details summary::after {
	content: "+";
	font-family: var(--odjt-serif-text);
	font-size: 22px;
	line-height: 1;
	color: var(--odjt-red);
}

.odjt-content details[open] summary::after {
	content: "\2212";
}

.odjt-content details > *:not(summary) {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--odjt-text-mid);
}

/* "Sources" lists: the final H2 + list, when marked or detectable. */
.odjt-content .odjt-sources,
.odjt-content .sources {
	background: var(--odjt-stone);
	padding: 24px;
	font-size: 14px;
	line-height: 1.7;
}

/* Listing pages: H2 per app, then [odj_app_card]. */
.odjt-content--listing > h2 {
	border-top: 3px solid var(--odjt-ink);
	padding-top: 18px;
	margin-top: 1.4em;
}

.odjt-content--listing > h2:first-child {
	margin-top: 0;
}

.odjt-content--listing p,
.odjt-content--listing ul,
.odjt-content--listing ol {
	max-width: var(--odjt-prose);
}

.odjt-content--listing .odj-card {
	margin: 0.6em 0 1.4em;
}

.odjt-pagelinks {
	margin-top: 24px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

/* ==========================================================================
   13. On Dating Journal Core components (.odj-*)
   ========================================================================== */

/* Buttons. */
.odj-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 12px 18px;
	border: 1px solid var(--odjt-ink);
	background: transparent;
	color: var(--odjt-ink);
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.2px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	border-radius: 0;
}

.odj-btn:hover {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odj-btn--visit {
	background: var(--odjt-red);
	border-color: var(--odjt-red);
	color: var(--odjt-paper);
}

.odj-btn--visit::after {
	content: "\2197";
	content: "\2197" / "";
	font-size: 1.15em;
	line-height: 1;
	letter-spacing: 0;
}

.odj-btn--visit:hover,
.odj-btn--visit:focus-visible {
	background: var(--odjt-red-dark);
	border-color: var(--odjt-red-dark);
	color: var(--odjt-paper);
}

.odj-btn--ghost {
	background: transparent;
	border-color: var(--odjt-ink);
	color: var(--odjt-ink);
}

.odj-btn--ghost:hover {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odj-btn--sm {
	min-height: 40px;
	padding: 9px 12px;
	font-size: 10px;
	letter-spacing: 1.6px;
}

.odj-btn--md {
	min-height: 48px;
	padding: 14px 22px;
}

.odj-btn--lg {
	min-height: 50px;
	padding: 15px 24px;
	letter-spacing: 2.4px;
	width: 100%;
}

.odjt-content a.odj-btn {
	text-decoration: none;
}

.odjt-content a.odj-btn--visit {
	color: var(--odjt-paper);
}

/* Cards. Robust to the plugin's inner wrappers: name / best / actions are
   placed by class; an optional wrapper (__body/__main/__info/__text) is
   flattened with display: contents. */
.odj-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"name score"
		"best score"
		"meta score"
		"actions score";
	align-items: center;
	column-gap: 12px;
	row-gap: 3px;
	padding: 16px 0;
	border-bottom: 1px solid var(--odjt-rule);
	font-family: var(--odjt-sans);
	line-height: 1.4;
	min-width: 0;
}

.odj-card:has(.odj-card__icon) {
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"icon name score"
		"icon best score"
		"icon meta score"
		"icon actions score";
}

.odj-card__body,
.odj-card__main,
.odj-card__info,
.odj-card__text,
.odj-card__content,
.odj-card__head {
	display: contents;
}

.odj-card__icon {
	grid-area: icon;
	align-self: start;
}

.odj-card__icon img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 11px;
	border: 1px solid var(--odjt-rule);
}

.odj-card__name {
	grid-area: name;
	margin: 0;
	font-family: var(--odjt-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.3;
	text-transform: uppercase;
	scroll-margin-top: calc(var(--odjt-header-h) + 16px);
}

.odj-card__name a {
	color: var(--odjt-ink);
	text-decoration: none;
}

.odj-card__name a:hover {
	color: var(--odjt-red);
}

.odj-card__best {
	grid-area: best;
	font-family: var(--odjt-serif-text);
	font-style: italic;
	font-size: 16px;
	line-height: 1.35;
	color: var(--odjt-text-mid);
}

.odj-card__meta,
.odj-card__facts {
	grid-area: meta;
	font-size: 12px;
	color: var(--odjt-muted-2);
}

.odj-card__score {
	grid-area: score;
	font-family: var(--odjt-serif);
	font-size: 27px;
	font-weight: 400;
	line-height: 1;
	color: var(--odjt-ink);
	text-align: right;
	white-space: nowrap;
}

.odj-card__score small,
.odj-card__score span {
	font-size: 0.45em;
	color: var(--odjt-muted-2);
	font-family: var(--odjt-sans);
	letter-spacing: 0.5px;
}

.odj-card__actions {
	grid-area: actions;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 18px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

/* Row cards (default): text links as in the mockup. */
.odj-card__actions a:not(.odj-btn),
.odj-card--row .odj-card__actions .odj-btn,
.odj-card:not([class*="odj-card--"]) .odj-card__actions .odj-btn {
	display: inline-flex;
	align-items: flex-end;
	min-height: 40px;
	padding: 10px 0 2px;
	border: 0;
	border-bottom: 1px solid var(--odjt-ink);
	background: transparent;
	color: var(--odjt-ink);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
}

.odj-card--row .odj-card__actions .odj-btn--visit,
.odj-card:not([class*="odj-card--"]) .odj-card__actions .odj-btn--visit {
	color: var(--odjt-red);
	border-bottom-color: var(--odjt-red);
}

.odj-card--row .odj-card__actions .odj-btn:hover,
.odj-card:not([class*="odj-card--"]) .odj-card__actions .odj-btn:hover,
.odj-card__actions a:not(.odj-btn):hover {
	background: transparent;
	color: var(--odjt-red-dark);
	border-bottom-color: var(--odjt-red-dark);
}

@media (min-width: 961px) {
	.odj-card {
		column-gap: 16px;
		row-gap: 4px;
		padding: 20px 0;
	}

	.odj-card__name {
		font-size: 13px;
		letter-spacing: 2.2px;
	}

	.odj-card__best {
		font-size: 18px;
	}

	.odj-card__score {
		font-size: 30px;
	}

	.odj-card__actions a:not(.odj-btn),
	.odj-card--row .odj-card__actions .odj-btn,
	.odj-card:not([class*="odj-card--"]) .odj-card__actions .odj-btn {
		padding-top: 6px;
		min-height: 32px;
	}
}

/* Cards inside content: a little air, black top rule. */
.odjt-content .odj-card {
	border-top: 1px solid var(--odjt-ink);
	border-bottom: 1px solid var(--odjt-ink);
}

.odjt-content .odj-card__name {
	margin: 0;
	font-family: var(--odjt-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.3;
}

.odjt-content :where([class^="odj-"], [class*=" odj-"]) li {
	margin-bottom: 0;
	padding-left: 0;
}

/* Box cards: bordered, buttons solid. */
.odj-card--box {
	border: 1px solid var(--odjt-ink);
	padding: 20px;
	row-gap: 6px;
}

.odjt-content .odj-card--box {
	border-width: 1px;
}

.odj-card--box .odj-card__name {
	font-size: 13px;
}

.odj-card--box .odj-card__score {
	font-size: 40px;
	align-self: start;
}

.odj-card--box .odj-card__actions {
	margin-top: 10px;
	gap: 10px;
}

.odj-card--box .odj-card__actions a:not(.odj-btn) {
	min-height: 44px;
	padding: 12px 18px;
	border: 1px solid var(--odjt-ink);
	align-items: center;
}

.odj-card--box .odj-card__actions a:not(.odj-btn):hover {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	border-color: var(--odjt-ink);
}

@media (min-width: 961px) {
	.odj-card--box {
		padding: 24px 28px;
	}
}

/* Sidebar cards (Editors' picks): name bold, ghost VISIT. */
.odj-card--sidebar {
	grid-template-areas:
		"name actions"
		"best actions"
		"meta actions";
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 13px 0;
	row-gap: 2px;
}

.odj-card--sidebar:has(.odj-card__icon) {
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"icon name actions"
		"icon best actions"
		"icon meta actions";
}

.odj-card--sidebar .odj-card__icon img {
	width: 36px;
	height: 36px;
	border-radius: 8px;
}

.odj-card--sidebar .odj-card__name {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.odj-card--sidebar .odj-card__best {
	font-size: 14px;
	color: var(--odjt-muted);
}

.odj-card--sidebar .odj-card__score {
	display: none;
}

.odj-card--sidebar .odj-card__actions {
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
}

.odj-card--sidebar .odj-card__actions a:not(.odj-btn) {
	display: none;
}

.odj-card--sidebar .odj-btn,
.odj-card--sidebar .odj-btn--visit {
	min-height: 44px;
	padding: 9px 12px;
	background: transparent;
	border: 1px solid var(--odjt-ink);
	color: var(--odjt-ink);
	font-size: 10px;
	letter-spacing: 1.6px;
}

.odj-card--sidebar .odj-btn:hover {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
}

.odjt-sidebar .odj-card {
	border-bottom-color: var(--odjt-rule);
}

@media (max-width: 960px) {
	.odjt-sidebar .odj-card {
		border-bottom-color: var(--odjt-stone-rule);
	}
}

/* Score box (review verdict + sidebar app box). */
.odj-scorebox {
	border: 1px solid var(--odjt-ink);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--odjt-paper);
	font-family: var(--odjt-sans);
}

.odj-scorebox__head,
.odj-scorebox__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.odj-scorebox__name,
.odj-scorebox__title,
.odj-scorebox h2,
.odj-scorebox h3 {
	margin: 0;
	font-family: var(--odjt-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.4px;
	line-height: 1.3;
	text-transform: uppercase;
}

.odj-scorebox__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2.4px;
	text-transform: uppercase;
}

.odj-scorebox__score,
.odj-scorebox__value {
	font-family: var(--odjt-serif);
	font-size: 44px;
	font-weight: 400;
	line-height: 0.9;
	color: var(--odjt-ink);
}

.odj-scorebox__out,
.odj-scorebox__outof,
.odj-scorebox__score small,
.odj-scorebox__score span {
	font-family: var(--odjt-sans);
	font-size: 12px;
	color: var(--odjt-muted);
	letter-spacing: 0;
}

.odj-scorebox__best {
	font-family: var(--odjt-serif-text);
	font-style: italic;
	font-size: 17px;
	line-height: 1.4;
	margin: 0;
}

.odj-scorebox dl {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px 14px;
	margin: 0;
	padding-top: 12px;
	border-top: 1px solid var(--odjt-rule);
	font-size: 13px;
	line-height: 1.45;
}

.odj-scorebox dt {
	color: var(--odjt-muted-2);
}

.odj-scorebox dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
}

.odj-scorebox .odj-btn {
	width: 100%;
	min-height: 50px;
	letter-spacing: 2.4px;
}

.odj-scorebox__note,
.odj-scorebox__small,
.odj-scorebox > small {
	font-size: 11px;
	color: var(--odjt-muted-2);
	text-align: center;
}

/* Criteria bars, if the plugin outputs them. */
.odj-scorebox__criteria {
	display: flex;
	flex-direction: column;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.odj-scorebox__criterion {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 36px;
	gap: 4px 14px;
	align-items: center;
	font-size: 13px;
}

.odj-scorebox__bar {
	grid-column: 1 / -1;
	height: 3px;
	background: #e6e6e6;
}

.odj-scorebox__bar > * {
	display: block;
	height: 3px;
	background: var(--odjt-red);
}

/* In the review's main column the box reads as a wide verdict panel. */
.odjt-verdict .odj-scorebox {
	padding: 24px;
}

.odjt-verdict .odj-scorebox__score,
.odjt-verdict .odj-scorebox__value {
	font-size: 64px;
}

@media (min-width: 961px) {
	.odjt-verdict .odj-scorebox {
		padding: 28px;
		gap: 16px;
	}

	.odjt-verdict .odj-scorebox__score,
	.odjt-verdict .odj-scorebox__value {
		font-size: 84px;
	}

	.odjt-verdict .odj-scorebox__best {
		font-size: 22px;
	}

	.odjt-verdict .odj-scorebox dl {
		grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
		column-gap: 20px;
	}

	.odjt-verdict .odj-scorebox dd {
		text-align: left;
	}

	.odjt-verdict .odj-scorebox .odj-btn {
		width: auto;
		align-self: flex-start;
		padding-left: 32px;
		padding-right: 32px;
	}
}

.odjt-sidebar .odj-scorebox {
	padding: 22px;
}

.odjt-sidebar .odj-scorebox__score,
.odjt-sidebar .odj-scorebox__value {
	font-size: 36px;
	line-height: 1;
}

/* Pros and cons. */
.odj-proscons {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
}

.odj-proscons > * {
	border-top: 3px solid var(--odjt-ink);
	padding-top: 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.odj-proscons > *:nth-child(2),
.odj-proscons .odj-proscons__cons {
	border-top-color: var(--odjt-red);
}

.odj-proscons h2,
.odj-proscons h3,
.odj-proscons h4,
.odj-proscons__title {
	margin: 0;
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.6px;
	line-height: 1.4;
	text-transform: uppercase;
}

.odj-proscons > *:nth-child(2) h2,
.odj-proscons > *:nth-child(2) h3,
.odj-proscons > *:nth-child(2) h4,
.odj-proscons .odj-proscons__cons .odj-proscons__title {
	color: var(--odjt-red);
}

.odj-proscons ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.odj-proscons li {
	position: relative;
	margin: 0;
	padding: 0 0 10px 1.1em;
	border-bottom: 1px solid var(--odjt-rule);
	font-family: var(--odjt-serif-text);
	font-size: 18px;
	line-height: 1.45;
}

.odj-proscons li::before {
	content: "+";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--odjt-ink);
}

.odj-proscons > *:nth-child(2) li::before,
.odj-proscons .odj-proscons__cons li::before {
	content: "\2212";
	color: var(--odjt-red);
}

.odjt-content .odj-proscons ul {
	padding: 0;
}

.odjt-content .odj-proscons li::marker {
	content: "";
}

@media (min-width: 961px) {
	.odj-proscons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Screenshot strip. */
.odjt-shots-wrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.odj-shots {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	margin: 0 calc(var(--odjt-gutter) * -1);
	padding: 0 var(--odjt-gutter) 8px;
	scrollbar-width: thin;
	scrollbar-color: var(--odjt-ink) var(--odjt-track);
	list-style: none;
}

.odj-shots > * {
	flex: 0 0 44%;
	scroll-snap-align: start;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.odj-shots img {
	width: 100%;
	height: auto;
	aspect-ratio: 9 / 19.5;
	object-fit: cover;
	background: var(--odjt-stone);
	border: 1px solid var(--odjt-rule);
}

.odj-shots figcaption {
	font-family: var(--odjt-serif-text);
	font-style: italic;
	font-size: 14px;
	line-height: 1.35;
	color: var(--odjt-text-mid);
}

@media (min-width: 961px) {
	.odj-shots {
		margin: 0;
		padding: 0 0 8px;
		gap: 14px;
	}

	.odj-shots > * {
		flex-basis: calc((100% - 42px) / 4);
	}
}

/* Key findings. */
.odj-findings {
	border-top: 3px solid var(--odjt-ink);
	border-bottom: 1px solid var(--odjt-ink);
	font-family: var(--odjt-sans);
}

.odj-findings > h2,
.odj-findings > h3,
.odj-findings__title {
	margin: 0;
	padding: 14px 0;
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.6px;
	line-height: 1.4;
	text-transform: uppercase;
	border-bottom: 1px solid var(--odjt-rule);
}

.odj-findings ul,
.odj-findings ol,
.odj-findings__list,
.odj-findings__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.odj-findings li,
.odj-findings__item {
	margin: 0;
	padding: 20px 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	border-bottom: 1px solid var(--odjt-rule);
}

.odj-findings li:last-child,
.odj-findings__item:last-child {
	border-bottom: 0;
}

.odj-findings__figure,
.odj-findings li > strong:first-child,
.odj-findings__item > strong:first-child {
	display: block;
	font-family: var(--odjt-serif);
	font-size: 44px;
	font-weight: 400;
	line-height: 1;
	color: var(--odjt-red);
}

.odj-findings__text {
	font-size: 14px;
	line-height: 1.5;
}

.odj-findings li,
.odj-findings__item {
	font-size: 14px;
	line-height: 1.5;
}

.odj-findings a,
.odj-findings__source {
	align-self: flex-start;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--odjt-ink);
	border-bottom: 1px solid var(--odjt-ink);
	text-decoration: none;
	line-height: 1.6;
}

.odj-findings a:hover {
	color: var(--odjt-red);
	border-bottom-color: var(--odjt-red);
}

@media (min-width: 961px) {
	.odj-findings ul,
	.odj-findings ol,
	.odj-findings__list,
	.odj-findings__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.odj-findings li,
	.odj-findings__item {
		padding: 22px 22px 22px 0;
		border-bottom: 0;
	}

	.odj-findings li + li,
	.odj-findings__item + .odj-findings__item {
		padding-left: 22px;
		border-left: 1px solid var(--odjt-rule);
	}

	.odj-findings__figure,
	.odj-findings li > strong:first-child,
	.odj-findings__item > strong:first-child {
		font-size: 52px;
	}
}

/* Chart. */
.odj-chart {
	margin: 0;
	border: 1px solid var(--odjt-ink);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: var(--odjt-prose);
	font-family: var(--odjt-sans);
}

.odj-chart > figcaption:first-child,
.odj-chart__title {
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--odjt-ink);
}

.odj-chart__rows,
.odj-chart ul,
.odj-chart ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.odj-chart__row {
	display: grid;
	grid-template-columns: minmax(64px, 30%) minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	font-size: 13px;
	margin: 0;
}

.odj-chart__label {
	font-weight: 600;
	line-height: 1.3;
}

.odj-chart__bar,
.odj-chart__track {
	display: block;
	height: 14px;
	background: var(--odjt-track);
	position: relative;
	overflow: hidden;
}

.odj-chart__fill,
.odj-chart__bar > span,
.odj-chart__track > span {
	display: block;
	height: 100%;
	background: var(--odjt-ink);
}

.odj-chart__value {
	font-weight: 700;
	text-align: right;
	min-width: 48px;
	white-space: nowrap;
}

.odj-chart__source,
.odj-chart > figcaption:last-child:not(:first-child) {
	font-size: 11px;
	line-height: 1.5;
	color: var(--odjt-muted-2);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
}

.odj-chart__source a,
.odj-chart figcaption a {
	color: var(--odjt-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (min-width: 961px) {
	.odj-chart {
		padding: 24px;
	}

	.odj-chart__row {
		grid-template-columns: minmax(64px, 26%) minmax(0, 1fr) 56px;
		gap: 14px;
	}
}

/* Breadcrumbs. */
.odj-breadcrumbs {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
	margin-bottom: 20px;
}

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

.odj-breadcrumbs li {
	display: inline-flex;
	gap: 8px;
	margin: 0;
}

.odj-breadcrumbs li + li::before {
	content: "/";
	color: inherit;
}

.odj-breadcrumbs a {
	color: var(--odjt-muted-2);
}

.odj-breadcrumbs a:hover {
	color: var(--odjt-red);
}

.odj-breadcrumbs [aria-current] {
	color: var(--odjt-ink);
}

.odjt-hubhead .odj-breadcrumbs [aria-current] {
	color: var(--odjt-paper);
}

@media (min-width: 961px) {
	.odj-breadcrumbs {
		margin-bottom: 24px;
	}
}

/* Table of contents. */
.odj-toc {
	display: flex;
	flex-direction: column;
	font-family: var(--odjt-sans);
}

.odj-toc > h2,
.odj-toc > h3,
.odj-toc__title {
	margin: 0 0 4px;
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.6px;
	line-height: 1.4;
	text-transform: uppercase;
	border-bottom: 3px solid var(--odjt-ink);
	padding-bottom: 10px;
}

.odj-toc ol,
.odj-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.odj-toc li {
	margin: 0;
	padding: 0;
}

.odj-toc a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 0;
	border-bottom: 1px solid var(--odjt-rule);
	font-size: 14px;
	line-height: 1.4;
}

.odjt-content .odj-toc {
	border: 1px solid var(--odjt-ink);
	padding: 18px 20px 8px;
	margin: 1.6em 0;
	font-size: 14px;
}

.odjt-content .odj-toc a {
	text-decoration: none;
}

.odjt-content .odj-toc li:last-child a {
	border-bottom: 0;
}

/* Disclosure notice. */
.odj-disclosure {
	font-family: var(--odjt-sans);
	font-size: 12px;
	line-height: 1.6;
	color: var(--odjt-muted-2);
	padding: 10px 0 10px 12px;
	border-left: 3px solid var(--odjt-red);
	margin: 0 0 1.4em;
	max-width: var(--odjt-prose);
}

.odj-disclosure p {
	margin: 0;
}

.odj-disclosure a {
	color: var(--odjt-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.odjt-hubhead .odj-disclosure {
	color: var(--odjt-ondark-muted);
}

.odjt-hubhead .odj-disclosure a {
	color: var(--odjt-paper);
}

/* Newsletter form (default: on light). */
.odj-newsletter {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-family: var(--odjt-sans);
}

.odj-newsletter label,
.odj-newsletter__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.odj-newsletter p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
}

.odj-newsletter input[type="email"],
.odj-newsletter input[type="text"] {
	width: 100%;
	height: 46px;
	border: 1px solid var(--odjt-ink);
	border-radius: 0;
	padding: 0 12px;
	font-size: 16px;
	background: var(--odjt-paper);
	color: var(--odjt-ink);
	-webkit-appearance: none;
	appearance: none;
}

.odj-newsletter input:focus {
	outline: 2px solid var(--odjt-red);
	outline-offset: 0;
}

.odj-newsletter button,
.odj-newsletter [type="submit"] {
	height: 46px;
	border: 0;
	background: var(--odjt-red);
	color: var(--odjt-paper);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.2px;
	text-transform: uppercase;
	border-radius: 0;
	cursor: pointer;
}

.odj-newsletter button:hover,
.odj-newsletter [type="submit"]:hover {
	background: var(--odjt-red-dark);
}

/* ==========================================================================
   14. Widgets
   ========================================================================== */
.odjt-widget {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.odjt-widget__title {
	margin: 0 0 4px;
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.6px;
	line-height: 1.4;
	text-transform: uppercase;
	border-bottom: 3px solid var(--odjt-ink);
	padding-bottom: 10px;
}

.odjt-widget__title--display,
.widget_odj_newsletter .odjt-widget__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.05;
	letter-spacing: 0;
	text-transform: none;
	border: 0;
	padding: 0;
	margin: 0;
}

.odjt-widget__text {
	font-size: 13px;
	line-height: 1.6;
	color: var(--odjt-ondark-soft);
}

.odjt-widget ul,
.odjt-widget ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.odjt-widget li {
	margin: 0;
	border-bottom: 1px solid var(--odjt-rule);
}

.odjt-widget li > a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 11px 0;
	font-size: 14px;
	line-height: 1.4;
}

.odjt-widget .odjt-widget__more,
.odjt-widget a.odj-widget__more,
.odjt-widget .odj-compare-link,
.odjt-widget > a:last-child:not(.odj-btn) {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-top: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}

@media (max-width: 960px) {
	.odjt-sidebar .odjt-widget li,
	.odjt-sidebar .odj-toc a {
		border-bottom-color: var(--odjt-stone-rule);
	}
}

/* Links widget ("AI companion guides"): Bodoni links. */
.widget_odj_links li > a {
	font-family: var(--odjt-serif-text);
	font-size: 18px;
	line-height: 1.3;
	padding: 13px 0;
}

/* Posts widget thumbs: see "Sidebar story lists" below. */
.odjt-mono .widget_odj_posts img {
	filter: var(--odjt-photo-filter);
}

/* Newsletter widget: black box. */
.widget_odj_newsletter,
.odjt-widget--dark {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	padding: 22px;
	gap: 10px;
}

.widget_odj_newsletter .odjt-widget__title,
.odjt-widget--dark .odjt-widget__title {
	color: var(--odjt-paper);
}

.widget_odj_newsletter .odj-newsletter label,
.odjt-widget--dark .odj-newsletter label,
.widget_odj_newsletter p,
.odjt-widget--dark p {
	color: var(--odjt-paper);
}

.widget_odj_newsletter p,
.odjt-widget--dark p {
	color: var(--odjt-ondark-soft);
	font-size: 13px;
	line-height: 1.6;
}

.widget_odj_newsletter .odj-newsletter input[type="email"],
.odjt-widget--dark .odj-newsletter input[type="email"] {
	border-color: var(--odjt-paper);
}

.widget_odj_newsletter .odj-newsletter input:focus,
.odjt-widget--dark .odj-newsletter input:focus {
	outline-color: var(--odjt-red-ondark);
}

/* App box widget. */
.widget_odj_app_box .odj-scorebox {
	margin: 0;
}

/* Search widget. */
.widget_search .wp-block-search__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.6px;
	text-transform: uppercase;
}

.odjt-sidebar__note {
	font-size: 11px;
	line-height: 1.7;
	color: var(--odjt-muted-2);
}

.odjt-sidebar__note a {
	text-decoration: underline;
}

/* ==========================================================================
   15. Newsletter band & footer
   ========================================================================== */
.odjt-newsband {
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	scroll-margin-top: var(--odjt-header-h);
}

.odjt-newsband__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	padding-top: 36px;
	padding-bottom: 36px;
}

.odjt-newsband__title {
	font-family: var(--odjt-serif);
	font-weight: 400;
	font-size: 32px;
	line-height: 1.05;
	color: var(--odjt-paper);
}

.odjt-newsband__text {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--odjt-ondark-soft);
	max-width: 520px;
}

.odjt-newsband .odj-newsletter label {
	color: var(--odjt-paper);
}

.odjt-newsband .odj-newsletter input[type="email"] {
	border-color: var(--odjt-paper);
}

@media (min-width: 961px) {
	.odjt-newsband__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
		gap: 56px;
		align-items: end;
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.odjt-newsband__title {
		font-size: 44px;
	}

	.odjt-newsband .odj-newsletter {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 10px 0;
	}

	.odjt-newsband .odj-newsletter label,
	.odjt-newsband .odj-newsletter p {
		grid-column: 1 / -1;
	}

	.odjt-newsband .odj-newsletter button,
	.odjt-newsband .odj-newsletter [type="submit"] {
		padding: 0 22px;
	}
}

.odjt-footer {
	border-top: 3px solid var(--odjt-ink);
	background: var(--odjt-paper);
}

.odjt-newsband + .odjt-footer {
	border-top: 0;
}

.odjt-footer__inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 24px;
	padding-bottom: 32px;
}

.odjt-footer .odjt-wordmark {
	font-size: 24px;
}

.odjt-footer__top {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.odjt-footer__tagline {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--odjt-muted-2);
}

.odjt-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
}

.odjt-footer__menu a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

/* Column layout when the footer menu has second-level items. */
.odjt-footer__menu:has(.sub-menu) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 20px;
}

.odjt-footer__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.odjt-footer__menu > li > a {
	min-height: 36px;
	border-bottom: 1px solid var(--odjt-ink);
	margin-bottom: 4px;
	width: 100%;
}

.odjt-footer__menu .sub-menu a {
	min-height: 34px;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.35;
	text-transform: none;
	color: var(--odjt-text-mid);
}

.odjt-footer__menu .sub-menu a:hover,
.odjt-footer__menu > li > a:hover {
	color: var(--odjt-red);
}

.odjt-footer__legal-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
}

.odjt-footer__legal-menu a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

.odjt-footer__bottom {
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-top: 1px solid var(--odjt-rule);
	padding-top: 16px;
}

.odjt-footer__disclosure {
	font-size: 12px;
	line-height: 1.7;
	color: var(--odjt-muted-2);
	max-width: 760px;
}

.odjt-footer__disclosure a {
	color: var(--odjt-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.odjt-footer__copy {
	font-size: 10px;
	letter-spacing: 1.2px;
	line-height: 1.8;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
}

@media (min-width: 961px) {
	.odjt-footer__inner {
		padding-top: 32px;
		padding-bottom: 36px;
		gap: 20px;
	}

	.odjt-footer .odjt-wordmark {
		font-size: 26px;
	}

	.odjt-footer__top {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 48px;
	}

	.odjt-footer__brand {
		flex: 0 0 240px;
	}

	.odjt-footer__nav {
		flex: 1;
	}

	.odjt-footer__menu:has(.sub-menu) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 24px 28px;
	}

	.odjt-footer__menu {
		gap: 0 22px;
	}

	.odjt-footer__menu a {
		font-size: 11px;
		letter-spacing: 1.8px;
	}

	.odjt-footer__bottom {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 32px;
	}

	.odjt-footer__copy {
		font-size: 11px;
		letter-spacing: 1.4px;
		white-space: nowrap;
	}
}

/* ==========================================================================
   16. Sticky review CTA (mobile)
   ========================================================================== */
.odjt-sticky-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px var(--odjt-gutter);
	padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
	background: var(--odjt-paper);
	border-top: 1px solid var(--odjt-ink);
	transform: translateY(110%);
	visibility: hidden;
	transition: transform 0.25s ease, visibility 0s linear 0.25s;
}

.odjt-sticky-cta.is-visible {
	transform: translateY(0);
	visibility: visible;
	transition: transform 0.25s ease, visibility 0s;
}

.odjt-sticky-cta__info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.odjt-sticky-cta__name {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.odjt-sticky-cta__score {
	font-family: var(--odjt-serif-text);
	font-size: 16px;
	line-height: 1.2;
}

.odjt-sticky-cta .odj-btn {
	flex: none;
	min-height: 48px;
}

body.single-odj_app {
	padding-bottom: 72px;
}

@media (min-width: 961px) {
	.odjt-sticky-cta {
		display: none;
	}

	body.single-odj_app {
		padding-bottom: 0;
	}
}

/* ==========================================================================
   17. Comments
   ========================================================================== */
.odjt-comments {
	border-top: 3px solid var(--odjt-ink);
	padding-top: 16px;
	max-width: var(--odjt-prose);
}

.odjt-comments__title {
	font-family: var(--odjt-serif);
	font-size: 28px;
	line-height: 1.1;
	margin-bottom: 16px;
}

.odjt-comments__list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.odjt-comments__list .comment {
	border-bottom: 1px solid var(--odjt-rule);
	padding: 16px 0;
	font-size: 15px;
}

.odjt-comments__list .children {
	list-style: none;
	padding-left: 24px;
}

.odjt-comments .comment-meta {
	font-size: 12px;
	color: var(--odjt-muted);
}

.odjt-comments .avatar {
	border-radius: 50%;
	float: left;
	margin-right: 12px;
}

.odjt-comments label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 6px;
}

.odjt-comments input[type="text"],
.odjt-comments input[type="email"],
.odjt-comments input[type="url"],
.odjt-comments textarea {
	width: 100%;
	border: 1px solid var(--odjt-ink);
	border-radius: 0;
	padding: 10px 12px;
	font-size: 16px;
}

.odjt-comments p {
	margin-bottom: 14px;
}

/* ==========================================================================
   18. Motion & print
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.odjt-header,
	.odjt-sections,
	.odjt-sidebar,
	.odjt-newsband,
	.odjt-sticky-cta,
	.odjt-footer__nav,
	.odjt-related {
		display: none !important;
	}

	.odjt-layout {
		display: block;
	}

	.odjt-content a:not([class])::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		color: var(--odjt-muted-2);
	}
}

/* ==========================================================================
   Integration fixes (QA pass)
   ========================================================================== */

/* Sidebar picks: name + best-for left, one compact Visit button right. */
.odj-card--sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
}
.odj-card--sidebar .odj-card__score,
.odj-card--sidebar .odj-card__actions .odj-btn--ghost {
	display: none;
}
.odj-card--sidebar .odj-card__actions {
	margin: 0;
	justify-content: flex-end;
}
.odj-card--sidebar .odj-btn--visit {
	white-space: nowrap;
}

/* Row cards: magazine-size score in Bodoni. */
.odj-card--row .odj-card__score-num,
.odj-card:not(.odj-card--sidebar) .odj-card__score-num {
	font-family: var(--odjt-serif);
	font-size: 30px;
	line-height: 1;
	font-weight: 400;
	letter-spacing: -0.5px;
	color: var(--odjt-ink);
}
.odj-card__score-max {
	font-size: 11px;
	color: var(--odjt-muted-2);
	margin-left: 2px;
}

/* Latest posts widget: title, then date on its own line. */
.odj-widget-posts__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.odj-widget-posts__title {
	display: block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}
.odj-widget-posts__date {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--odjt-muted-2);
}
.odj-widget-posts__item {
	padding: 12px 0;
	border-bottom: 1px solid var(--odjt-rule);
	list-style: none;
}
.odj-widget-posts {
	margin: 0;
	padding: 0;
}

/* Score box: big Bodoni score, tidy facts grid; single column in the sidebar. */
.odj-scorebox .odj-scorebox__score { display: flex; align-items: baseline; gap: 4px; }
.odj-scorebox .odj-scorebox__num { font-family: var(--odjt-serif); font-size: 84px; line-height: 0.9; font-weight: 400; letter-spacing: -2px; }
.odj-scorebox .odj-scorebox__max { font-size: 13px; color: var(--odjt-muted-2); }
.odj-scorebox .odj-scorebox__label { margin: 6px 0 0; font-size: 10px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; }
.odj-scorebox .odj-scorebox__best { margin: 6px 0 16px; font-family: var(--odjt-serif-text); font-size: 19px; }
.odj-scorebox .odj-scorebox__best span { font-family: var(--odjt-sans); font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-right: 6px; }
.odj-scorebox .odj-scorebox__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 0 0 20px; }
.odj-scorebox .odj-scorebox__fact { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-top: 1px solid var(--odjt-rule); min-width: 0; }
.odj-scorebox .odj-scorebox__fact dt { font-size: 10px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--odjt-muted-2); }
.odj-scorebox .odj-scorebox__fact dd { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; text-align: left; }
.odjt-sidebar .odj-scorebox .odj-scorebox__num { font-size: 56px; }
.odjt-sidebar .odj-scorebox .odj-scorebox__facts { grid-template-columns: minmax(0, 1fr); }
.odjt-sidebar .odj-scorebox .odj-scorebox__fact { flex-direction: row; justify-content: space-between; gap: 12px; }
.odjt-sidebar .odj-scorebox .odj-scorebox__fact dd { text-align: right; font-size: 13px; }
.odjt-sidebar .odj-scorebox .odj-btn--visit { display: flex; justify-content: center; width: 100%; box-sizing: border-box; }
@media (max-width: 600px) {
	.odj-scorebox .odj-scorebox__facts { grid-template-columns: minmax(0, 1fr); }
}

/* /reviews/ archive lead: top-scoring app as a black feature panel. */
.odjt-applead {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 32px;
	align-items: center;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	padding: 36px;
	margin: 0 0 12px;
}
.odjt-applead .odjt-kicker { color: var(--odjt-red-ondark); }
.odjt-applead__title { margin: 10px 0 6px; font-family: var(--odjt-serif); font-weight: 400; font-size: 48px; line-height: 1; }
.odjt-applead__title a { color: var(--odjt-paper); }
.odjt-applead__best { margin: 0 0 14px; font-family: var(--odjt-serif-text); font-style: italic; font-size: 20px; color: var(--odjt-ondark-soft); }
.odjt-applead__excerpt { margin: 0 0 22px; font-family: var(--odjt-serif-text); font-size: 18px; line-height: 1.5; color: var(--odjt-ondark-soft); max-width: 560px; }
.odjt-applead__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.odjt-applead .odjt-btn-outline { border-color: var(--odjt-paper); color: var(--odjt-paper); }
.odjt-applead__score { display: flex; flex-direction: column; align-items: center; gap: 6px; border-left: 1px solid #333; padding-left: 32px; }
.odjt-applead__scorelabel, .odjt-applead__scoreof { font-size: 10px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; color: var(--odjt-ondark-muted); }
.odjt-applead__scorevalue { font-family: var(--odjt-serif); font-size: 96px; line-height: 0.9; }
@media (max-width: 700px) {
	.odjt-applead { grid-template-columns: minmax(0, 1fr); padding: 24px; }
	.odjt-applead__score { border-left: 0; border-top: 1px solid #333; padding: 18px 0 0; flex-direction: row; justify-content: flex-start; align-items: baseline; }
	.odjt-applead__scorevalue { font-size: 56px; }
	.odjt-applead__title { font-size: 36px; }
}

/* Sidebar thumbnails follow the monochrome setting. */
.odjt-mono .odj-widget-posts img, .odjt-mono .odjt-sidebar img:not(.odj-card__icon img):not(.odj-pick__icon) { filter: grayscale(1) contrast(1.1); }

/* ==========================================================================
   Homepage tool bands: app quiz + star sign matcher
   ========================================================================== */
.odjt-tool {
	position: relative;
	color: var(--odjt-paper);
	background-color: var(--odjt-ink);
	background-size: cover;
	background-position: center 40%;
	padding: 56px 44px;
	overflow: hidden;
}
.odjt-tool.has-img {
	background-image: linear-gradient(90deg, rgba(10, 10, 10, 0.93) 0%, rgba(10, 10, 10, 0.8) 50%, rgba(10, 10, 10, 0.6) 100%), var(--odjt-band-img);
}
.odjt-tool--stars.has-img {
	background-image: linear-gradient(180deg, rgba(10, 10, 10, 0.84) 0%, rgba(10, 10, 10, 0.92) 55%, rgba(10, 10, 10, 0.97) 100%), var(--odjt-band-img);
	background-position: center 55%;
}
.odjt-tool__inner { display: flex; flex-direction: column; gap: 32px; }
.odjt-tool__head { display: flex; flex-direction: column; gap: 14px; max-width: 680px; }
.odjt-tool--stars .odjt-tool__head { align-items: center; text-align: center; margin: 0 auto; }
.odjt-tool__title { margin: 0; font-family: var(--odjt-serif); font-weight: 400; font-size: 48px; line-height: 1; letter-spacing: -1px; color: var(--odjt-paper); }
.odjt-tool__intro { margin: 0; font-family: var(--odjt-serif-text); font-size: 19px; line-height: 1.55; color: #e6e6e6; }
.odjt-tool__facts { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--odjt-ondark-soft); }

/* Quiz card */
.odj-quiz__card {
	background: var(--odjt-paper);
	color: var(--odjt-ink);
	padding: 32px;
	min-height: 440px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 20px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
}
.odj-quiz__progress { display: flex; flex-direction: column; gap: 10px; }
.odj-quiz__meta { display: flex; justify-content: space-between; font-size: 10px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; }
.odj-quiz__pct, .odj-quiz__hit { color: var(--odjt-red); }
.odj-quiz__bar { height: 3px; background: #e6e6e6; }
.odj-quiz__bar span { display: block; height: 3px; background: var(--odjt-red); transition: width 0.35s ease; }
.odj-quiz__q { margin: 0; font-family: var(--odjt-serif); font-weight: 400; font-size: 36px; line-height: 1.1; outline: 0; }
.odj-quiz__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.odj-quiz__opt {
	min-height: 76px;
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	text-align: left;
	padding: 16px 18px;
	border: 1px solid var(--odjt-ink);
	background: var(--odjt-paper);
	color: var(--odjt-ink);
	font-family: var(--odjt-sans);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.odj-quiz__opt:hover, .odj-quiz__opt:focus-visible { background: var(--odjt-ink); color: var(--odjt-paper); }
.odj-quiz__opt:hover .odj-quiz__label small, .odj-quiz__opt:focus-visible .odj-quiz__label small { color: #cfcfcf; }
.odj-quiz__mark { font-family: var(--odjt-serif); font-style: italic; font-size: 26px; color: var(--odjt-red); }
.odj-quiz__label { display: flex; flex-direction: column; gap: 2px; }
.odj-quiz__label strong { font-size: 15px; font-weight: 700; }
.odj-quiz__label small { font-size: 12px; color: var(--odjt-muted-2); }
.odj-quiz__back, .odj-quiz__again {
	align-self: flex-start;
	border: 0;
	border-bottom: 1px solid var(--odjt-ink);
	background: transparent;
	padding: 10px 0;
	font-family: var(--odjt-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	color: var(--odjt-ink);
}
.odj-quiz__winner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; border-bottom: 3px solid var(--odjt-ink); padding-bottom: 16px; }
.odj-quiz__name { margin: 0 0 6px; font-family: var(--odjt-serif); font-weight: 400; font-size: 64px; line-height: 0.9; letter-spacing: -1.5px; outline: 0; }
.odj-quiz__best { font-family: var(--odjt-serif-text); font-style: italic; font-size: 20px; color: var(--odjt-text-mid); }
.odj-quiz__score b { font-family: var(--odjt-serif); font-weight: 400; font-size: 72px; line-height: 0.85; }
.odj-quiz__score small { font-size: 12px; color: var(--odjt-muted-2); }
.odj-quiz__whyt { margin: 0; font-size: 10px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; }
.odj-quiz__why { margin: 0; padding: 0; list-style: none; counter-reset: odjwhy; display: flex; flex-direction: column; gap: 12px; }
.odj-quiz__why li { counter-increment: odjwhy; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; font-family: var(--odjt-serif-text); font-size: 18px; line-height: 1.45; }
.odj-quiz__why li::before { content: counter(odjwhy, lower-roman); font-style: italic; font-size: 22px; color: var(--odjt-red); }
.odj-quiz__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.odj-quiz__ctas .odj-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; font-size: 11px; font-weight: 700; letter-spacing: 2.2px; text-transform: uppercase; }
.odj-quiz__ctas .odj-btn--visit { background: var(--odjt-red); color: var(--odjt-paper); border: 1px solid var(--odjt-red); }
.odj-quiz__ctas .odj-btn--visit:hover { background: var(--odjt-red-dark); color: var(--odjt-paper); }
.odj-quiz__ctas .odj-btn--ghost { border: 1px solid var(--odjt-ink); color: var(--odjt-ink); background: transparent; }
.odj-quiz__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--odjt-muted); }
.odj-quiz__foot a { font-weight: 700; border-bottom: 1px solid var(--odjt-ink); color: var(--odjt-ink); }

/* Star sign matcher */
.odj-stars { display: flex; flex-direction: column; gap: 28px; }
.odj-stars__tabs { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.odj-stars__tab { min-height: 48px; padding: 0 22px; border: 1px solid var(--odjt-paper); background: transparent; color: var(--odjt-paper); font-family: var(--odjt-sans); font-size: 11px; font-weight: 700; letter-spacing: 2.2px; text-transform: uppercase; cursor: pointer; }
.odj-stars__tab.is-on { background: var(--odjt-paper); color: var(--odjt-ink); }
.odj-stars__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.odj-stars__sign {
	aspect-ratio: 1 / 1.08;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 8px 4px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	background: rgba(255, 255, 255, 0.04);
	color: var(--odjt-paper);
	font-family: var(--odjt-sans);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.odj-stars__sign:hover, .odj-stars__sign:focus-visible { border-color: var(--odjt-paper); }
.odj-stars__sign.is-on { border-color: var(--odjt-red-ondark); background: rgba(215, 20, 26, 0.18); }
.odj-stars__glyph { font-family: "Segoe UI Symbol", "Noto Sans Symbols 2", "Apple Symbols", var(--odjt-serif); font-size: 40px; line-height: 1; }
.odj-stars__name { font-family: var(--odjt-serif-text); font-size: 18px; }
.odj-stars__range { font-size: 9px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--odjt-ondark-muted); }
.odj-stars__tag { font-size: 9px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #8a8a8a; }
.odj-stars__sign.is-on .odj-stars__tag { color: var(--odjt-red-ondark); }
.odj-stars__dobs { display: flex; justify-content: center; align-items: center; gap: 12px 16px; flex-wrap: wrap; }
.odj-stars__dobs label { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--odjt-ondark-muted); }
.odj-stars__dobs input { height: 46px; border: 0; padding: 0 12px; font-family: var(--odjt-sans); font-size: 15px; color: var(--odjt-ink); background: var(--odjt-paper); }
.odj-stars__result { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 24px; align-items: center; border-top: 1px solid rgba(255, 255, 255, 0.25); padding-top: 32px; }
.odj-stars__side { display: flex; flex-direction: column; gap: 4px; }
.odj-stars__side--you { align-items: flex-end; text-align: right; }
.odj-stars__big { font-family: "Segoe UI Symbol", "Noto Sans Symbols 2", "Apple Symbols", var(--odjt-serif); font-size: 88px; line-height: 1; }
.odj-stars__sname { font-family: var(--odjt-serif); font-size: 28px; }
.odj-stars__el { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--odjt-red-ondark); }
.odj-stars__mid { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 220px; }
.odj-stars__amp { font-family: var(--odjt-serif); font-style: italic; font-size: 40px; line-height: 1; }
.odj-stars__label { font-size: 10px; font-weight: 700; letter-spacing: 2.4px; text-transform: uppercase; color: var(--odjt-ondark-muted); }
.odj-stars__bars { display: flex; gap: 6px; }
.odj-stars__bars i { display: block; width: 52px; height: 6px; background: rgba(255, 255, 255, 0.2); }
.odj-stars__bars[data-n="1"] i:nth-child(-n+1),
.odj-stars__bars[data-n="2"] i:nth-child(-n+2),
.odj-stars__bars[data-n="3"] i { background: var(--odjt-red-ondark); }
.odj-stars__level { font-family: var(--odjt-serif); font-size: 32px; }
.odj-stars__text { margin: 0 auto; max-width: 680px; text-align: center; font-family: var(--odjt-serif-text); font-size: 20px; line-height: 1.55; color: #e6e6e6; }
.odj-stars__note { margin: 0 auto; max-width: 680px; text-align: center; font-size: 12px; line-height: 1.6; color: var(--odjt-ondark-muted); }
.odj-stars__note a { color: var(--odjt-paper); border-bottom: 1px solid var(--odjt-paper); }

@media (max-width: 960px) {
	.odjt-tool { padding: 40px 20px; margin-left: calc(-1 * var(--odjt-gutter)); margin-right: calc(-1 * var(--odjt-gutter)); }
	.odjt-tool__title { font-size: 36px; }
	.odj-quiz__card { padding: 22px; min-height: 0; }
	.odj-quiz__opts { grid-template-columns: minmax(0, 1fr); }
	.odj-quiz__q { font-size: 28px; }
	.odj-quiz__name { font-size: 46px; }
	.odj-quiz__score b { font-size: 52px; }
	.odj-stars__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.odj-stars__result { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.odj-stars__mid { grid-column: 1 / -1; grid-row: 2; }
	.odj-stars__side--them { align-items: flex-start; text-align: left; }
	.odj-stars__big { font-size: 64px; }
}

/* ==========================================================================
   HTML sitemap ([odj_html_sitemap])
   ========================================================================== */
.odj-sitemap {
	display: grid;
	gap: 28px;
	margin-top: 8px;
}

.odj-sitemap__title {
	margin: 0 0 6px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--odjt-ink);
	font-family: var(--odjt-serif-text);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.2;
}

.odj-sitemap__title a {
	color: inherit;
	text-decoration: none;
}

.odj-sitemap__title a:hover {
	color: var(--odjt-red);
}

.odj-sitemap__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.odj-sitemap__list li {
	margin: 0;
	border-bottom: 1px solid var(--odjt-rule);
}

.odj-sitemap__list a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 6px 0;
	font-size: 15px;
	line-height: 1.4;
	color: var(--odjt-text);
	text-decoration: none;
}

.odj-sitemap__list a:hover {
	color: var(--odjt-red);
}

@media (min-width: 783px) {
	.odj-sitemap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 36px 40px;
	}
}

/* Header: keep six sections clear of the logo on smaller desktops. */
@media (min-width: 961px) and (max-width: 1279px) {
	.odjt-header__bar {
		gap: 16px;
	}

	.odjt-header .odjt-wordmark {
		font-size: 24px;
	}

	.odjt-nav .odjt-menu {
		gap: 14px;
	}

	.odjt-nav .odjt-menu > li > a {
		font-size: 10px;
		letter-spacing: 1.4px;
	}

	.odjt-subtoggle {
		width: 14px;
	}

	.odjt-header__subscribe {
		display: none;
	}
}

@media (min-width: 961px) {
	.odjt-footer__disclosure {
		flex: 1 1 auto;
	}

	.odjt-footer__legal {
		flex: 0 0 auto;
	}

	.odjt-footer__legal-menu {
		flex-wrap: nowrap;
		gap: 0 18px;
	}

	.odjt-footer__legal-menu a {
		min-height: 0;
		line-height: 1.8;
	}
}

.odj-sitemap .odj-sitemap__list {
	padding-left: 0;
	margin-left: 0;
}

.odj-sitemap .odj-sitemap__list li::before {
	content: none;
}

.odj-sitemap .odj-sitemap__title {
	margin-top: 0;
}

/* Hub/listing header with featured photo. */
.odjt-hubhead__copy {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.odjt-hubhead__media {
	margin: 4px 0 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #1a1a1a;
}

.odjt-hubhead__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (min-width: 961px) {
	.odjt-hubhead--photo .odjt-hubhead__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
		align-items: end;
		gap: 48px;
		padding-top: 28px;
		padding-bottom: 44px;
	}

	.odjt-hubhead__media {
		margin: 0;
		aspect-ratio: 4 / 3;
	}
}

/* ==========================================================================
   Readability: text serif for long-form copy, sturdier display headings.
   ========================================================================== */
.odjt-content > p,
.odjt-content > ul,
.odjt-content > ol,
.odjt-content > blockquote,
.odjt-content .wp-block-list,
.odjt-content .wp-block-quote {
	font-family: var(--odjt-serif-text);
	font-size: 18px;
	line-height: 1.65;
	color: #1c1c1c;
	font-optical-sizing: auto;
}

.odjt-content > ul li,
.odjt-content > ol li {
	margin-bottom: 0.45em;
}

.odjt-content h2,
.odjt-h2,
.odjt-sechead__title {
	font-weight: 500;
	letter-spacing: -0.01em;
}

.odjt-h1 {
	font-weight: 500;
}

.odjt-standfirst {
	font-weight: 400;
	color: #2b2b2b;
}

.odjt-hubhead .odjt-standfirst {
	color: #e2e2e2;
}

body {
	color: #1c1c1c;
	font-size: 16px;
	letter-spacing: 0;
}

@media (min-width: 961px) {
	.odjt-content > p,
	.odjt-content > ul,
	.odjt-content > ol,
	.odjt-content > blockquote,
	.odjt-content .wp-block-list,
	.odjt-content .wp-block-quote {
		font-size: 19px;
	}
}

/* Bodoni at heading sizes: use a display optical size so letters sit closer together. */
.odjt-h1,
.odjt-h2,
.odjt-content h2,
.odjt-sechead__title {
	font-optical-sizing: none;
	font-variation-settings: "opsz" 72;
}

/* ==========================================================================
   v1.2 · Split cover hero (listings and guides), two-line byline,
   full-width article column, "Best dating apps" picks, full-width sidebar photos.
   ========================================================================== */

/* Byline: name, then dates line. */
.odjt-byline__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.odjt-byline__name {
	font-size: 13px;
}

.odjt-byline__name b {
	font-weight: 600;
}

.odjt-byline__dates {
	display: flex;
	flex-wrap: wrap;
	column-gap: 6px;
	font-size: 13px;
	color: var(--odjt-muted-2);
}

.odjt-byline__dates span {
	white-space: nowrap;
}

.odjt-byline__sep {
	color: #999;
}

.odjt-entry__head .odjt-byline {
	margin-top: 4px;
}

.odjt-hubhead .odjt-byline__dates {
	color: var(--odjt-ondark-muted);
}

.odjt-hubhead .odjt-byline__sep {
	color: #666;
}

/* Hub head: shared. */
.odjt-hubhead__top,
.odjt-hubhead__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.odjt-hubhead__top {
	gap: 14px;
}

.odjt-hubhead__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding-top: 24px;
	padding-bottom: 36px;
}

.odjt-hubhead__rule {
	display: block;
	width: 64px;
	height: 3px;
	background: var(--odjt-red);
}

.odjt-hubhead__standfirst {
	max-width: 640px;
}

/* Split cover: mobile = photo on top, copy overlapping its foot. */
.odjt-hubhead--split {
	display: flex;
	flex-direction: column;
}

.odjt-hubhead--split .odjt-hubhead__media {
	order: -1;
	position: relative;
	margin: 0;
	aspect-ratio: 16 / 10;
	max-height: 320px;
	width: 100%;
	overflow: hidden;
	background: #1a1a1a;
}

.odjt-hubhead--split .odjt-hubhead__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(10, 10, 10, 0.9), rgba(10, 10, 10, 0) 48%);
	pointer-events: none;
}

.odjt-hubhead--split .odjt-hubhead__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.odjt-hubhead--split .odjt-hubhead__copy {
	position: relative;
	z-index: 1;
	margin-top: -40px;
	padding: 0 var(--odjt-gutter) 32px;
}

.odjt-hubhead--split .odj-breadcrumbs {
	display: none;
}

@media (min-width: 961px) {
	.odjt-hubhead--split {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 46%;
		min-height: 560px;
	}

	.odjt-hubhead--split .odjt-hubhead__media {
		order: 0;
		aspect-ratio: auto;
		max-height: none;
		height: 100%;
	}

	.odjt-hubhead--split .odjt-hubhead__media::after {
		background: linear-gradient(90deg, rgba(10, 10, 10, 0.55), rgba(10, 10, 10, 0) 30%);
	}

	.odjt-hubhead--split .odjt-hubhead__copy {
		margin: 0;
		justify-content: space-between;
		gap: 32px;
		padding: 36px 56px 48px max(var(--odjt-gutter), calc((100vw - var(--odjt-wrap)) / 2 + var(--odjt-gutter)));
	}

	.odjt-hubhead--split .odj-breadcrumbs {
		display: flex;
	}

	.odjt-hubhead--split .odjt-hubhead__title {
		font-size: clamp(44px, 4.4vw, 64px);
	}

	.odjt-hubhead__body {
		gap: 20px;
	}
}

/* Article column: one width for photo, findings, chart and text. */
@media (min-width: 961px) {
	:root {
		--odjt-sidebar: 340px;
		--odjt-gap: 64px;
	}
}

.odjt-content--article,
.odjt-main .odj-chart,
.odjt-main .odjt-content > p,
.odjt-main .odjt-content > ul,
.odjt-main .odjt-content > ol,
.odjt-main .odjt-entry__head .odjt-standfirst {
	max-width: none;
}

/* Picks widget: rows with icon, name, best for and score. */
.odj-picks__intro {
	margin: 8px 0 2px;
	font-family: var(--odjt-serif-text);
	font-style: italic;
	font-size: 14px;
	line-height: 1.4;
	color: var(--odjt-muted-2);
}

.odj-picks--rows {
	display: flex;
	flex-direction: column;
	border-top: 3px solid var(--odjt-ink);
	margin-top: 10px;
}

.odjt-widget__title + .odj-picks__intro + .odj-picks--rows,
.odjt-widget__title + .odj-picks--rows {
	border-top: 0;
	margin-top: 0;
}

.odjt-widget:has(.odj-picks__intro) .odjt-widget__title {
	border-bottom: 0;
	padding-bottom: 0;
}

.odjt-widget:has(.odj-picks__intro) .odj-picks__intro {
	padding-bottom: 12px;
	border-bottom: 3px solid var(--odjt-ink);
	margin-bottom: 0;
}

.odj-pick {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--odjt-rule);
	color: var(--odjt-ink);
	text-decoration: none;
}

.odj-pick__icon {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 10px;
}

.odj-pick__icon--letter {
	display: grid;
	place-items: center;
	border-radius: 0;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	font-family: var(--odjt-serif);
	font-size: 20px;
}

.odj-pick__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.odj-pick__name {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
}

.odj-pick__best {
	font-family: var(--odjt-serif-text);
	font-size: 14px;
	line-height: 1.3;
	color: var(--odjt-muted-2);
}

.odj-pick__score {
	font-family: var(--odjt-serif);
	font-size: 22px;
	line-height: 1;
	white-space: nowrap;
}

.odj-pick__score small {
	font-family: var(--odjt-sans);
	font-size: 11px;
	color: #777;
}

.odj-pick:hover .odj-pick__name {
	color: var(--odjt-red);
}

.odj-picks__more {
	margin: 16px 0 0;
}

.odj-picks__more .odj-btn {
	display: flex;
	width: 100%;
	justify-content: center;
	background: var(--odjt-ink);
	color: var(--odjt-paper);
	border-color: var(--odjt-ink);
}

.odj-picks__more .odj-btn:hover {
	background: var(--odjt-red);
	border-color: var(--odjt-red);
}

/* Sidebar story lists: photo fills the box, headline and date below. */
.odj-widget-posts__item {
	padding: 16px 0;
}

.odj-widget-posts__item:has(.odj-widget-posts__thumb) {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.odjt-sidebar .odj-widget-posts__thumb,
.odj-widget-posts__thumb {
	display: block;
	padding: 0;
	min-height: 0;
	border: 0;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--odjt-stone);
}

.odj-widget-posts__thumb img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}

.odj-widget-posts__item:has(.odj-widget-posts__thumb) .odj-widget-posts__title {
	font-family: var(--odjt-serif-text);
	font-size: 19px;
	font-weight: 500;
	line-height: 1.25;
}

.odj-widget-posts__item:has(.odj-widget-posts__thumb) .odj-widget-posts__date {
	margin-top: 4px;
}

/* Footer: copyright + design credit. */
.odjt-footer__end {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.odjt-footer__credit {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 11px;
	letter-spacing: 0.4px;
	color: var(--odjt-muted-2);
}

.odjt-footer__heart {
	flex: none;
	display: block;
}

@media (min-width: 961px) {
	.odjt-footer__end {
		align-items: flex-end;
		text-align: right;
	}
}

/* Review score box facts: always label-over-value cells, never the old dt/dd 4-track grid. */
.odjt-verdict .odj-scorebox .odj-scorebox__facts,
.odjt-main .odj-scorebox .odj-scorebox__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 28px;
	padding-top: 0;
	border-top: 0;
}

.odjt-verdict .odj-scorebox .odj-scorebox__fact dd,
.odjt-main .odj-scorebox .odj-scorebox__fact dd {
	text-align: left;
}

@media (min-width: 1100px) {
	.odjt-verdict .odj-scorebox .odj-scorebox__facts,
	.odjt-main .odj-scorebox .odj-scorebox__facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.odjt-verdict .odj-scorebox .odj-scorebox__facts,
	.odjt-main .odj-scorebox .odj-scorebox__facts {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Reviews: the score box already sits under the headline, so don't repeat it in the sidebar. */
.odjt-layout:has(.odjt-main .odj-scorebox) .odj-widget--appbox,
.odjt-layout:has(.odjt-main .odj-scorebox) .widget_odj_app_box {
	display: none;
}
