/* ==========================================================================
   Base — text, links and the content elements every page shares.
   ========================================================================== */

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1, h2, h3 { letter-spacing: -0.018em; }
h4, h5, h6 { letter-spacing: -0.008em; }

::selection { color: #fff; }

/* Keyboard focus: one visible ring everywhere. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--dl-accent);
	outline-offset: 2px;
	border-radius: 3px;
}

/* Links inside running text: accent colour, quiet underline that firms up on hover. */
.entry-content :where(p, li, td, th, dd, figcaption, blockquote) a:where(:not(.wp-block-button__link):not(.kb-button)),
.ct-comment-content a {
	color: var(--dl-accent);
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	text-decoration-color: color-mix(in srgb, var(--dl-accent) 40%, transparent);
	transition: color var(--dl-ease), text-decoration-color var(--dl-ease);
}

.entry-content :where(p, li, td, th, dd, figcaption, blockquote) a:where(:not(.wp-block-button__link):not(.kb-button)):hover,
.ct-comment-content a:hover {
	color: var(--dl-accent-hover);
	text-decoration-color: currentColor;
}

.entry-content strong, .entry-content b { color: var(--dl-ink); }

/* Lists in running text (not the TOC, Query Loop or Kadence Posts grids, which are <ul>s too). */
.entry-content :where(ul, ol):not([class*="ez-toc"]):not(.wp-block-post-template):not(.kb-posts) > li + li { margin-top: 0.4em; }
.entry-content ul:not([class*="ez-toc"]):not(.wp-block-post-template):not(.kb-posts) > li::marker { color: var(--dl-accent-bright); }
.entry-content ol:not([class*="ez-toc"]) > li::marker { color: var(--dl-muted); font-weight: 600; }

/* Quotes */
.entry-content blockquote.wp-block-quote,
.entry-content > blockquote {
	padding: 18px 22px;
	border: 0;
	border-left: 4px solid var(--dl-accent-bright);
	border-radius: 0 var(--dl-radius) var(--dl-radius) 0;
	background: var(--dl-accent-tint);
	color: var(--dl-ink);
	font-style: normal;
}

.entry-content blockquote.wp-block-quote > :last-child { margin-bottom: 0; }

/* Inline code and code blocks */
.entry-content :not(pre) > code {
	padding: 0.12em 0.4em;
	border-radius: 4px;
	background: var(--dl-soft);
	color: var(--dl-ink);
	font-size: 0.9em;
}

.entry-content pre.wp-block-code {
	padding: 18px 20px;
	border: 1px solid var(--dl-border);
	border-radius: var(--dl-radius);
	background: var(--dl-soft);
	font-size: 14px;
	line-height: 1.6;
	overflow-x: auto;
}

/* Tables: readable on phones (scroll sideways instead of squashing). */
.entry-content .wp-block-table { overflow-x: auto; }

.entry-content .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.5;
}

.entry-content .wp-block-table :is(th, td) {
	padding: 10px 14px;
	border: 1px solid var(--dl-border);
	text-align: left;
	vertical-align: top;
}

.entry-content .wp-block-table thead th,
.entry-content .wp-block-table tr:first-child th {
	background: var(--dl-soft);
	color: var(--dl-ink);
	font-weight: 600;
}

.entry-content .wp-block-table tbody tr:nth-child(even) td { background: #fbfcfe; }

/* Images and separators */
.entry-content .wp-block-image img { border-radius: var(--dl-radius); }
.entry-content .wp-block-image figcaption { color: var(--dl-muted); font-size: var(--dl-size-small); }

.entry-content hr.wp-block-separator:not(.is-style-dots) {
	border: 0;
	border-top: 1px solid var(--dl-border);
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	* { transition-duration: 0.01ms !important; }
}
