/* Apostle Islands Readability (Plugin)
 * All rules are gated on the body class added by the plugin, so deactivating
 * the plugin removes every change. Values come from the settings page via
 * CSS variables, with safe fallbacks here.
 */

:root {
	--air-font-size: 18px;
	--air-line-height: 1.6;
	--air-measure: 70ch;
	--air-font-body: inherit;
	--air-text-color: #1a1a1a;
	--air-bg-color: #ffffff;
	--air-heading-color: #14110f;
	--air-link-color: #0f5e6e;
	--air-space: 1.5rem;
}

/* ----- Base typography ----- */
body.air-readability {
	font-size: var(--air-font-size);
	line-height: var(--air-line-height);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.air-readability,
body.air-readability p,
body.air-readability li,
body.air-readability .entry-content,
body.air-readability .nv-content-wrap {
	font-family: var(--air-font-body);
}

body.air-readability .entry-content,
body.air-readability .nv-content-wrap,
body.air-readability article,
body.air-readability .post-content {
	font-size: var(--air-font-size);
	line-height: var(--air-line-height);
}

/* ----- Comfortable line length for prose (not grids) ----- */
body.air-readability .entry-content > p,
body.air-readability .entry-content > ul,
body.air-readability .entry-content > ol,
body.air-readability .entry-content > blockquote,
body.air-readability .nv-content-wrap > p,
body.air-readability article > p {
	max-width: var(--air-measure);
}

/* ----- Vertical rhythm ----- */
body.air-readability p {
	margin: 0 0 1.15em;
}

body.air-readability ul,
body.air-readability ol {
	margin: 0 0 1.15em 1.25em;
}

body.air-readability li {
	margin-bottom: 0.4em;
}

/* ----- Heading hierarchy, responsive scale ----- */
body.air-readability h1 {
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	line-height: 1.15;
}

body.air-readability h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.2;
}

body.air-readability h3 {
	font-size: clamp(1.2rem, 2.2vw, 1.45rem);
	line-height: 1.25;
}

body.air-readability h1,
body.air-readability h2,
body.air-readability h3,
body.air-readability h4 {
	margin: 1.6em 0 0.6em;
	font-weight: 700;
}

/* ----- Links: visible and underlined ----- */
body.air-readability a {
	color: var(--air-link-color);
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.air-readability a:hover,
body.air-readability a:focus {
	text-decoration-thickness: 2px;
}

/* ----- Accessible focus ring ----- */
body.air-readability a:focus-visible,
body.air-readability button:focus-visible {
	outline: 3px solid var(--air-link-color);
	outline-offset: 2px;
}

/* ----- Turn off shouty uppercase coming from the theme ----- */
body.air-normalize-caps h1,
body.air-normalize-caps h2,
body.air-normalize-caps h3,
body.air-normalize-caps h4,
body.air-normalize-caps .nv-title-meta-wrap,
body.air-normalize-caps .menu-item > a {
	text-transform: none !important;
	letter-spacing: normal !important;
}

/* ----- Card grid: spacing and legibility ----- */
body.air-cards .nv-index-posts .posts-wrapper,
body.air-cards .nv-post-cnt,
body.air-cards .wp-block-columns,
body.air-cards .wp-block-query .wp-block-post-template {
	gap: var(--air-space) !important;
}

body.air-cards article,
body.air-cards .wp-block-column,
body.air-cards .nv-post-cnt article {
	margin-bottom: var(--air-space);
}

/* Card titles read as headings, underline only on hover */
body.air-cards h3 a,
body.air-cards .entry-title a {
	text-decoration: none;
}

body.air-cards h3 a:hover,
body.air-cards .entry-title a:hover {
	text-decoration: underline;
}

/* ----- Optional forced high contrast ----- */
body.air-force-colors,
body.air-force-colors .entry-content,
body.air-force-colors .nv-content-wrap,
body.air-force-colors p,
body.air-force-colors li {
	color: var(--air-text-color) !important;
}

body.air-force-colors h1,
body.air-force-colors h2,
body.air-force-colors h3,
body.air-force-colors h4 {
	color: var(--air-heading-color) !important;
}

body.air-force-colors {
	background-color: var(--air-bg-color);
}
