/**
 * Doctor Portfolio: section pattern styles (homepage and reusable sections).
 * Tokens come from theme.json custom properties; accent and muted colours
 * follow the section through --dp-accent / --dp-muted (see theme.css).
 *
 * Contents: shared helpers · hero and page intro · facts · index cards and
 * lists · publication list · presentation cards · about
 * (prose, career timeline, interests) · expertise (areas, related
 * publications, notice) · publications (archive, publication page) ·
 * blog (article cards, article page).
 *
 * The homepage gallery preview and the Gallery page's galleries are styled
 * in assets/css/blocks/gallery.css (loaded only where a gallery is shown).
 */

/* Shared helpers. */

/* Bound details that may be empty for a record (e.g. no year): hide the empty line. */
.dp-optional:empty {
	display: none;
}

/* Section header: title block on the left, "all items" link on the right. */
.dp-section-head {
	row-gap: var(--wp--preset--spacing--30);
}

.dp-section-head :is(h2, p) {
	margin-block: 0;
}

/* "Workplace · Location": a dot between bound values. */
.dp-meta-line > p {
	margin: 0;
}

.dp-meta-line > p + p::before {
	content: "·";
	padding-inline-end: var(--wp--preset--spacing--10);
}

/* Placeholders in tight groups: keep the dashed outline clear of the label above. */
:is(.dp-fact, .dp-meta-line, .dp-timeline-item) .dsc-placeholder {
	outline-offset: 2px;
}

.dp-fact > p + p {
	margin-block-start: 0.35rem;
}

/* Mono index numbers ("01") in the section accent. */
.dp-index {
	color: var(--dp-accent);
	letter-spacing: 0.08em;
	margin: 0;
}

/* Hero. */
.dp-hero {
	position: relative;
	overflow: hidden;
	background-image: radial-gradient(60% 55% at 78% 42%, rgba(95, 212, 230, 0.09), transparent 70%);
}

.dp-hero .wp-block-heading {
	letter-spacing: -0.02em;
}

.dp-hero-title {
	color: var(--wp--preset--color--ice);
	line-height: 1.3;
}

.dp-hero-intro {
	max-width: 36em;
}

/*
 * Hero composition: text | airway graphic | portrait.
 * From 782px (where core columns stop stacking) the two columns become a grid,
 * giving the visual column room for both elements; the column width setting
 * in the editor does not apply to these two columns.
 */
@media (min-width: 782px) {
	.dp-hero > .wp-block-columns {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	}
}

/*
 * Visual column: the abstract airway graphic (decorative, CSS only, drawn by
 * ::before) in its own cell on the left, the portrait image block on the
 * right. They never overlap. Below 600px they stack: graphic, then portrait.
 */
.dp-hero-visual {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}

/*
 * The graphic is drawn larger than its cell with a transform, so the layout
 * (cell, portrait, text) stays exactly as it is. The origin sits right of
 * centre: the tree grows into the gap towards the text, away from the
 * portrait. The narrow mask crops only the outermost twigs.
 */
.dp-hero-visual::before {
	content: "";
	width: 100%;
	aspect-ratio: 600 / 720;
	background: url("../svg/airways.svg") center / contain no-repeat;
	opacity: 0.95;
	pointer-events: none;
	transform: scale(var(--dp-airway-scale, 1));
	transform-origin: var(--dp-airway-origin, 50% 50%);
	/* Soft edges: the outer branches fade out instead of ending at a hard border. */
	-webkit-mask-image: radial-gradient(ellipse 38% 50% at 50% 50%, #000 60%, transparent 100%);
	mask-image: radial-gradient(ellipse 38% 50% at 50% 50%, #000 60%, transparent 100%);
}

/* Visual below the text (600–781px): grow to the portrait's height, into the left gutter. */
@media (min-width: 600px) {
	.dp-hero-visual {
		--dp-airway-scale: 1.3;
		--dp-airway-origin: 56% 50%;
	}
}

/* Visual beside the text (782px+): grow into the gap between the columns. */
@media (min-width: 782px) {
	.dp-hero-visual {
		--dp-airway-scale: 1.65;
		--dp-airway-origin: 75% 50%;
	}
}

.dp-hero-visual > * {
	min-width: 0;
	margin: 0;
}

.dp-portrait {
	width: 100%;
	max-width: 24rem;
	justify-self: end;
}

@media (max-width: 599px) {
	.dp-hero-visual {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Stacked: the cell itself grows (no room to draw beyond it). */
	.dp-hero-visual::before {
		width: auto;
		height: 22rem;
		justify-self: center;
		-webkit-mask-image: radial-gradient(ellipse 58% 56% at 50% 50%, #000 72%, transparent 100%);
		mask-image: radial-gradient(ellipse 58% 56% at 50% 50%, #000 72%, transparent 100%);
	}

	.dp-portrait {
		max-width: 20rem;
		justify-self: center;
	}
}

.dp-portrait img {
	/* Any portrait fills the 4:5 frame (cropped), whatever its own size. */
	width: 100%;
	border: 1px solid rgba(207, 239, 245, 0.16);
	border-radius: var(--wp--preset--border-radius--sm);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.7);
}

/* Portrait placeholder frame (rendered by Doctor Site Core while no portrait is set). */
.dsc-placeholder-image {
	box-sizing: border-box;
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 5;
	margin: 0;
	padding: var(--wp--preset--spacing--40);
	text-align: center;
	background: rgba(11, 23, 38, 0.6);
}

/* Reduced motion: the same tree without the airflow paths. */
@media (prefers-reduced-motion: reduce) {
	.dp-hero-visual::before {
		background-image: url("../svg/airways-still.svg");
	}
}

@media (prefers-reduced-motion: no-preference) {
	.dp-hero-visual {
		animation: dp-fade-in 1200ms var(--wp--custom--motion--ease) 150ms both;
	}
}

/* Page intro (About): same treatment as the hero, one step smaller. */
.dp-page-intro .dp-portrait {
	max-width: 20rem;
}

/*
 * Expertise intro: the airway graphic on its own (no portrait), drawn at its
 * cell size inside two hairline rings, which give the page its own motif.
 */
.dp-hero-solo {
	--dp-airway-scale: 1;
	position: relative;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
}

.dp-hero-solo::before {
	width: min(100%, 26rem);
	height: auto;
	-webkit-mask-image: radial-gradient(ellipse 58% 56% at 50% 50%, #000 72%, transparent 100%);
	mask-image: radial-gradient(ellipse 58% 56% at 50% 50%, #000 72%, transparent 100%);
}

.dp-hero-solo::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(92%, 25rem);
	aspect-ratio: 1;
	translate: -50% -50%;
	border: 1px solid rgba(207, 239, 245, 0.16);
	border-radius: 50%;
	outline: 1px solid rgba(207, 239, 245, 0.07);
	outline-offset: 2rem;
	pointer-events: none;
}

@media (max-width: 599px) {
	.dp-hero-solo::before {
		width: min(100%, 17rem);
		height: auto;
	}

	.dp-hero-solo::after {
		width: min(80%, 16rem);
		outline-offset: 1.25rem;
	}
}

@keyframes dp-fade-in {
	from {
		opacity: 0;
	}
}

/* Key facts (label above value) with hairlines. */
.dp-fact {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--30);
	padding-inline-end: var(--wp--preset--spacing--40);
}

.dp-fact > p {
	margin-block: 0;
}

.dp-fact-label {
	color: var(--dp-muted);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Numbered list rows (research interests). */
.dp-index-row {
	gap: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--40);
}

.dp-index-row:last-child {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.dp-index-row > .dp-index {
	flex: 0 0 2rem;
	padding-top: 0.35em;
}

.dp-index-row h3 {
	margin: 0;
}

/* Publication list: year column + details, hairlines between rows. */
.dp-pub-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dp-pub-list > li {
	margin-block-start: 0;
}

.dp-pub-row {
	display: grid;
	grid-template-columns: 5.5rem minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--40);
}

.dp-pub-list > li:last-child .dp-pub-row {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.dp-pub-row > * {
	margin-block: 0;
}

.dp-pub-year {
	grid-column: 1;
	color: var(--dp-accent);
	padding-top: 0.2em;
}

.dp-pub-body {
	grid-column: 2;
}

.dp-pub-body > :first-child {
	margin-block-start: 0;
}

/* Titles read as headings (section link colour only on hover). */
:is(.dp-pub-body, .dp-related-row) .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

:is(.dp-pub-body, .dp-related-row) .wp-block-post-title a:hover {
	color: var(--dp-accent);
	text-decoration: underline;
}

@media (max-width: 599px) {
	.dp-pub-row {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--wp--preset--spacing--10);
	}

	.dp-pub-year,
	.dp-pub-body {
		grid-column: 1;
	}
}

/* Presentation cards: cover on top, details below. */
.dp-talk-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dp-talk {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	transition: border-color var(--dp-transition), transform var(--dp-transition);
}

.dp-talk:hover {
	transform: translateY(-2px);
}

.dp-talk-cover {
	margin: 0;
	overflow: hidden;
	border-bottom: 1px solid rgba(207, 239, 245, 0.12);
}

.dp-talk-cover img {
	transition: transform 600ms var(--wp--custom--motion--ease);
}

.dp-talk:hover .dp-talk-cover img {
	transform: scale(1.03);
}

.dp-talk-body {
	flex: 1;
}

.dp-talk-body > :first-child,
.dp-talk-body p {
	margin-block-end: 0;
}

.dp-talk-body .wp-block-post-title {
	margin-block-start: var(--wp--preset--spacing--20);
}

/* "Upcoming" / "Current" label. */
.dp-badge {
	width: fit-content;
	margin: 0;
	padding: 0.1em 0.6em;
	border: 1px solid currentColor;
	border-radius: var(--wp--preset--border-radius--xs);
	color: var(--dp-accent);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Long-form text column: comfortable measure. */
.dp-prose > * {
	max-width: 40em;
}

/*
 * Career timeline: a vertical line with a marker per entry; period on the
 * left from 782px (where core columns stop stacking), above the entry below.
 */
.dp-timeline {
	border-left: 1px solid var(--wp--preset--color--line-dark);
	margin-left: 0.3rem;
}

.dp-timeline-item {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	row-gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.dp-timeline-item + .dp-timeline-item {
	margin-block-start: 0;
	border-top: 1px solid var(--wp--preset--color--line-dark);
}

.dp-timeline-item > *,
.dp-timeline-item h3 {
	margin-block: 0;
}

.dp-timeline-item::before {
	content: "";
	position: absolute;
	left: calc(-0.3rem - 1px);
	top: calc(var(--wp--preset--spacing--40) + 0.35rem);
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--line-dark);
}

.dp-timeline-item.is-current::before {
	background: var(--dp-accent);
	box-shadow: 0 0 0 4px rgba(95, 212, 230, 0.15);
}

@media (min-width: 782px) {
	.dp-timeline-item {
		grid-template-columns: 12rem minmax(0, 1fr);
		column-gap: var(--wp--preset--spacing--50);
	}
}

/* Interests: open grid with hairlines instead of boxed cards. */
.dp-interest {
	border-top: 1px solid var(--wp--preset--color--line);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) 0;
}

.dp-interest > *,
.dp-interest h3 {
	margin-block-end: 0;
}

/*
 * Expertise areas: illustration beside the text in a card; on wide screens
 * every second card puts the illustration on the right. Stacked below 782px.
 */
.dp-area-image {
	margin: 0;
}

.dp-area-image img {
	display: block;
	width: 100%;
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--midnight);
}

.dp-area-body > * {
	margin-block-end: 0;
}

@media (min-width: 782px) {
	.dp-areas > .dp-area:nth-child(even) .dp-area-media {
		order: 2;
	}
}

/*
 * Expertise on the About page: three cards side by side from 1024px, each
 * with the illustration above the text. Below 1024px one card per row, as
 * above (illustration beside the text from 782px, above it on phones).
 */
@media (min-width: 1024px) {
	.dp-areas {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--40);
	}

	.dp-areas > .dp-area {
		margin-block: 0;
	}

	.dp-area > .wp-block-columns {
		flex-direction: column;
		align-items: stretch;
	}

	.dp-area > .wp-block-columns > .wp-block-column {
		flex-basis: auto !important; /* Overrides the 44% / 56% split used when side by side. */
	}

	.dp-areas > .dp-area:nth-child(even) .dp-area-media {
		order: 0;
	}
}

/* Related publications: year and title rows with hairlines. */
.dp-related-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dp-related-row {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--30);
	align-items: baseline;
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--20);
}

.dp-related-row > * {
	margin-block: 0;
}

.dp-related-row .wp-block-post-title {
	grid-column: 2;
	line-height: 1.4;
}

/* Footer Contact (#contact): profile links styled like the footer menu. */
.dp-footer-contact > p {
	max-width: 18rem;
	margin: 0;
}

.dp-footer-links .wp-block-button__link {
	padding: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-align: left;
	text-decoration: none;
}

.dp-footer-links .wp-block-button__link:hover,
.dp-footer-links .wp-block-button__link:focus-visible {
	color: var(--dp-accent);
	text-decoration: underline;
}

/* Expertise notice: a comfortable measure. */
.dp-note > * {
	max-width: 48em;
}

/*
 * Publications: archive and publication headers without a visual column. The
 * text keeps a readable measure but stays aligned with the content below
 * (the constrained layout would centre a narrower group).
 */
:is(.dp-pub-intro, .dp-pub-header) .dp-hero-text > * {
	max-width: 52rem;
}

.dp-pub-intro .wp-block-query-title {
	margin-block: 0;
}

/* Author lists read as the citation: full names, no truncation. */
.dp-pub-authors {
	margin: 0;
}

.dp-pub-row .dp-pub-authors {
	color: var(--wp--preset--color--slate);
}

.dp-pub-summary {
	max-width: 46em;
}

.dp-pub-summary p {
	margin: 0;
}

/* Link rows (DOI, PubMed, publisher page, PDF): left out when no link is filled in. */
:is(.dp-pub-links, .dp-pub-actions):not(:has(.wp-block-button)) {
	display: none;
}

.dp-pub-links {
	gap: var(--wp--preset--spacing--30);
	margin-block-start: var(--wp--preset--spacing--10);
}

.dp-pub-links .wp-block-button__link {
	font-size: var(--wp--preset--font-size--small);
}

.dp-pub-actions {
	margin-block-start: var(--wp--preset--spacing--20);
}

/* "All publications" link above a publication's title. */
.dp-back-link {
	margin: 0;
}

.dp-back-link a {
	color: var(--dp-muted);
	text-decoration: none;
}

.dp-back-link a::before {
	content: "←";
	padding-inline-end: 0.4em;
}

.dp-back-link a:hover {
	color: var(--dp-accent);
	text-decoration: underline;
}

/* Topic chips: Terms List on the archive, the publication's Topics in its header. */
.dp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10);
	margin: 0;
	padding: 0;
	list-style: none;
}

.dp-chips li {
	margin: 0;
}

.dp-chips a {
	display: inline-block;
	padding: 0.2em 0.75em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--xs);
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	transition: border-color var(--dp-transition), color var(--dp-transition);
}

.is-style-section-midnight .dp-chips a {
	border-color: rgba(207, 239, 245, 0.24);
}

.dp-chips a:hover {
	border-color: var(--dp-accent);
	color: var(--dp-accent);
}

.dp-topic-nav > * {
	margin-block: 0;
}

/* Presentations: a wider date column (full dates) with the "Upcoming" badge below. */
.dp-talk-row {
	grid-template-columns: 9.5rem minmax(0, 1fr);
}

.dp-talk-when {
	grid-column: 1;
}

.dp-talk-when > * {
	margin-block: 0;
}

/* "With …" co-presenters line: left out when there are none. */
.dp-with > p {
	margin: 0;
}

.dp-with:has(> .dp-optional:empty) {
	display: none;
}

/*
 * Date · venue and place: the dot only between two filled-in values (an empty
 * date or venue leaves no stray dot), never before the "Upcoming" badge.
 */
.dp-meta-line.dp-talk-meta > p::before {
	content: none;
}

.dp-meta-line.dp-talk-meta > p:not(:empty):not(.dp-badge) ~ p:not(:empty):not(.dp-badge)::before {
	content: "·";
	padding-inline-end: var(--wp--preset--spacing--10);
}

.dp-talk-meta .dp-badge {
	margin-inline-start: var(--wp--preset--spacing--10);
}

/* Cover image (poster or title slide) on a presentation page. */
.dp-talk-figure {
	margin: 0;
}

.dp-talk-figure img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--sm);
}

/* The abstract right below the cover: one gap, not two. */
.dp-talk-cover-section + .is-style-section-paper {
	padding-top: 0 !important;
}

/* Empty state of the publication list. */
.dp-empty {
	max-width: 40em;
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block-start: var(--wp--preset--spacing--40);
}

.dp-empty > * {
	margin-block: 0;
}

/*
 * Blog: article cards (Blog, category and tag archives, related articles,
 * homepage). Light cards with their own colours, so they read the same on
 * paper, frost and the charcoal homepage band.
 */
.dp-article-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.dp-article-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.dp-article-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.dp-article-grid > li {
	margin: 0;
}

.dp-article {
	--dp-accent: var(--wp--preset--color--teal);
	--dp-muted: var(--wp--preset--color--slate);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--sm);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--midnight);
	transition: box-shadow var(--dp-transition), transform var(--dp-transition);
}

.dp-article:hover {
	box-shadow: var(--wp--preset--shadow--lifted);
	transform: translateY(-2px);
}

.dp-article > * {
	margin: 0;
}

/* Image area: a fixed 3:2 frame; without a featured image, a calm midnight panel with the airway motif. */
.dp-article-media {
	aspect-ratio: 3 / 2;
	background: var(--wp--preset--color--midnight) url("../svg/airways-still.svg") center / auto 80% no-repeat;
}

.dp-article-media:has(img) {
	background: none;
}

.dp-article-image {
	height: 100%;
	margin: 0;
}

.dp-article-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dp-article-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--wp--preset--spacing--40);
}

.dp-article-body > * {
	margin-block: 0;
}

.dp-article-meta > * {
	margin: 0;
}

.dp-article-date {
	color: var(--dp-muted);
}

/* Category label (cards and article header): mono, small capitals, section accent. */
.dp-article-category {
	color: var(--dp-accent);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.dp-article-category a {
	display: inline-flex;
	align-items: center;
	min-height: 24px; /* WCAG 2.2 target size: 24px tall, without changing the label's look. */
	color: inherit;
	text-decoration: none;
}

.dp-article-category a:hover {
	text-decoration: underline;
}

.dp-article .wp-block-post-title {
	color: var(--wp--preset--color--midnight); /* Dark sections colour headings light; the card is light. */
	line-height: max(1.3em, 24px); /* Each title line is a target of at least 24px (WCAG 2.2). */
}

.dp-article .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.dp-article .wp-block-post-title a:hover {
	color: var(--dp-accent);
	text-decoration: underline;
}

.dp-article-excerpt,
.dp-article-excerpt p {
	margin: 0;
	color: var(--wp--preset--color--slate);
}

/* "Read article": at the bottom of the card. */
.dp-read-more {
	margin-block-start: auto !important;
	padding-block-start: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--teal);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
}

.dp-read-more::after {
	content: " →";
}

.dp-read-more:hover {
	text-decoration: underline;
}

/* Article page: cover image and the reading column. */
.dp-article-figure {
	margin: 0;
}

.dp-article-figure img {
	display: block;
	width: 100%;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--sm);
}

.dp-article-prose {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.7;
}

.dp-article-prose > * + * {
	margin-block-start: 1.1em;
}

.dp-article-prose :is(h2, h3, h4) {
	line-height: 1.25;
}

.dp-article-prose h2 {
	margin-block-start: 2em;
	font-size: var(--wp--preset--font-size--large);
}

.dp-article-prose h3 {
	margin-block-start: 1.6em;
	font-size: var(--wp--preset--font-size--medium);
}

.dp-article-prose :is(ul, ol):not(.wp-block-footnotes) {
	padding-inline-start: 1.3em;
}

.dp-article-prose li + li {
	margin-block-start: 0.4em;
}

.dp-article-prose .wp-block-quote {
	margin-inline: 0;
	padding-inline-start: var(--wp--preset--spacing--40);
	border-inline-start: 2px solid var(--wp--preset--color--teal);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
}

.dp-article-prose .wp-block-quote cite {
	display: block;
	margin-block-start: 0.6em;
	color: var(--wp--preset--color--slate);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
}

.dp-article-prose figure {
	margin-inline: 0;
}

.dp-article-prose figure img {
	border-radius: var(--wp--preset--border-radius--sm);
}

.dp-article-prose figcaption {
	margin-block-start: 0.6em;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
	text-align: left;
}

/* References (core Footnotes block). */
.dp-article-prose .wp-block-footnotes {
	margin-block-start: 2.5em;
	padding-block-start: var(--wp--preset--spacing--30);
	padding-inline-start: 1.3em;
	border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.dp-article-prose sup.fn a {
	color: var(--wp--preset--color--teal);
	text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
	.dp-article:hover,
	.dp-talk:hover,
	.dp-talk:hover .dp-talk-cover img {
		transform: none;
	}
}
