/**
 * LBO typography — single source of truth
 *
 * Token layers (in order):
 * 1. Primitive scale   — --lbo-text-sm … --lbo-text-6xl (major-third-ish steps)
 * 2. Editorial         — --lbo-text-body, --lbo-text-h4-display (Freight exceptions)
 * 3. Component         — --lbo-text-card-title, --lbo-text-slider-lg, --lbo-text-caption
 * 4. Semantic          — --lbo-h1-size … --lbo-nav-size (maps elements → tokens)
 *
 * Replaces Salient Theme Options typography (salient-dynamic-styles.css).
 * Do not change font sizes in wp-admin → Salient → Typography; edit tokens here.
 *
 * Load order: dynamic-css → lbo-typography → style.css (components override base).
 */

:root {
	/*
	 * Primitive scale — steps from 16px (sm), roughly major third (~1.2–1.25).
	 * Add new sizes here only if they fit the ladder; otherwise use editorial or component tokens below.
	 */
	--lbo-text-2xs: 0.8125rem; /* 13px */
	--lbo-text-xs: 0.875rem; /* 14px — footnotes, tooltips, h6 mobile */
	--lbo-text-sm: 1rem; /* 16px */
	--lbo-text-md: 1.125rem; /* 18px */
	--lbo-text-lg: 1.25rem; /* 20px */
	--lbo-text-xl: 1.5rem; /* 24px */
	--lbo-text-2xl: 1.875rem; /* 30px */
	--lbo-text-3xl: 2.25rem; /* 36px */
	--lbo-text-4xl: 2.8125rem; /* 45px */
	--lbo-text-5xl: 3.75rem; /* 60px */
	--lbo-text-6xl: 4.5rem; /* 72px */
	--lbo-text-7xl: 9rem; /* 144px — case study hero max */

	/* Editorial exceptions — Freight long-form; between primitive steps by design. */
	--lbo-text-body: 1.375rem; /* 22px — desktop body (between lg and xl) */
	--lbo-text-h4-display: 1.75rem; /* 28px — freight h4 (between xl and 2xl) */

	/* Component tokens — layout-specific; may sit between primitive steps. */
	--lbo-text-card-title: 2rem; /* 32px — Directory cards (between 2xl and 3xl) */
	--lbo-text-slider-lg: 2.5rem; /* 40px — home sliders (between 3xl and 4xl) */
	--lbo-text-caption: var(--lbo-text-sm); /* 16px — mono captions, Directory meta, fine labels */
	--lbo-caption-leading: var(--lbo-leading-mono);
	--lbo-caption-gap: calc(var(--lbo-text-caption) * var(--lbo-caption-leading) / 2);

	/* Line-height ratios (unitless — proportional to each font-size) */
	--lbo-leading-display: 1.1;
	--lbo-leading-heading: 1.15;
	--lbo-leading-ui: 1.25; /* cards, blockquotes, excerpts, buttons */
	--lbo-leading-body: 1.5;
	--lbo-leading-body-tight: 1.375; /* 22/16, 30/22 */
	--lbo-leading-tight: 1; /* display headings, nav, meta labels — not mono */
	--lbo-leading-mono: 1.2; /* captions / sidebar / all Founders Mono — Jimmy: 1.2 */

	/* Rhythm spacing */
	--lbo-space-paragraph: 1.5rem;
	--lbo-space-heading: 1.875rem;

	/*
	 * Freight Text Pro weights (Typekit ceo4aos — 300–900).
	 * Body emphasis uses bold (700); set --lbo-freight-weight-strong to
	 * var(--lbo-freight-weight-semibold) for 600.
	 */
	--lbo-freight-weight-light: 300;
	--lbo-freight-weight-regular: 400;
	--lbo-freight-weight-semibold: 600;
	--lbo-freight-weight-bold: 700;
	--lbo-freight-weight-strong: var(--lbo-freight-weight-bold);

	/* Semantic scale — maps elements to tokens above; edit to change site-wide type. */
	--lbo-body-size: var(--lbo-text-body);
	--lbo-body-leading: var(--lbo-leading-body-tight);
	--lbo-h1-size: var(--lbo-text-6xl);
	--lbo-h1-leading: var(--lbo-leading-tight);
	--lbo-h2-size: var(--lbo-text-4xl);
	--lbo-h2-leading: var(--lbo-leading-tight);
	--lbo-h3-size: var(--lbo-text-2xl);
	--lbo-h3-leading: var(--lbo-leading-tight);
	--lbo-h3-intro-leading: var(--lbo-leading-ui); /* long Founders intro openers; 1.25 between tight (1) and body-tight (1.375) */
	--lbo-h4-size: var(--lbo-text-h4-display);
	--lbo-h4-leading: var(--lbo-leading-ui);
	--lbo-h5-size: var(--lbo-text-xl);
	--lbo-h5-leading: var(--lbo-leading-ui);
	--lbo-h6-size: var(--lbo-text-caption);
	/*
	 * h6 is caption/attribution mono on LBO (not a display heading).
	 * Keep --lbo-h6-leading on the mono scale only — never --lbo-leading-ui /
	 * --lbo-leading-heading — so quote/caption h6 cannot pick up 1.25 / 1.15.
	 */
	--lbo-h6-leading: var(--lbo-leading-mono);
	--lbo-nav-size: var(--lbo-text-lg);
	--lbo-nav-leading: var(--lbo-leading-tight);
}

/* --- Base stacks (family, colour, rhythm — not Salient sizes) --- */

body,
p {
	font-family: 'freight-text-pro', serif;
	font-weight: var(--lbo-freight-weight-regular);
	overflow-wrap: break-word;
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-word;
}

body,
h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--lbo-black);
}

.bold,
strong,
b {
	font-family: inherit;
	font-weight: var(--lbo-freight-weight-strong);
}

/* Freight body copy — never use Black (900); explicit semibold/bold from Typekit. */
.post-content :where(p, li, td, th, blockquote, figcaption) :is(strong, b, .bold),
.post-content :where(p, li, td, th, blockquote, figcaption) strong,
.post-content :where(p, li, td, th, blockquote, figcaption) b {
	font-family: inherit;
	font-weight: var(--lbo-freight-weight-strong) !important;
}

h1 b,
h1 strong,
h2 b,
h2 strong,
h3 b,
h3 strong,
h5 b,
h5 strong {
	font-family: 'FoundersGroteskMedium', Sans-serif;
	font-weight: bold;
}

h1,
h3,
h5 {
	font-family: 'FoundersGroteskRegular', Sans-serif;
	font-weight: 400;
}

h2 {
	font-family: 'FoundersGroteskMedium', Sans-serif;
	font-weight: bold;
}

h2,
h3,
h5 {
	margin-bottom: var(--lbo-space-heading) !important;
}

h3 em {
	font-family: 'FoundersGroteskRegularItalic', Sans-serif;
	font-style: italic;
}

.large h4,
.largewhite h4 {
	font-family: 'freight-text-pro', serif;
	font-weight: var(--lbo-freight-weight-light) !important;
	font-size: var(--lbo-text-3xl) !important;
	line-height: var(--lbo-leading-ui) !important;
	margin-bottom: var(--lbo-text-4xl) !important;
}

h4 {
	font-family: 'freight-text-pro', serif;
	font-weight: var(--lbo-freight-weight-light) !important;
	margin-bottom: 2.25rem !important;
}

.boxtitle h5 {
	margin-bottom: 0 !important;
	margin-top: -1.5625rem !important;
	padding-bottom: 1.125rem !important;
}

blockquote p {
	font-family: 'freight-text-pro', serif;
	font-weight: var(--lbo-freight-weight-light);
	font-style: italic;
	/* Body is --lbo-text-body (22px); next Freight step is --lbo-text-h4-display (28px). */
	font-size: var(--lbo-text-h4-display);
	line-height: var(--lbo-leading-ui);
	hanging-punctuation: first;
}

blockquote {
	border-top: 1px solid;
	border-color: var(--lbo-black);
	padding-top: var(--lbo-space-paragraph);
}

.post-content blockquote {
	margin-top: 3rem;
	margin-bottom: var(--lbo-space-paragraph);
}

body.single .post .wpb_text_column h5 {
	margin-top: 0;
}

body.single .post .wpb_text_column h6 {
	margin-bottom: var(--lbo-space-paragraph);
}

/*
 * New motif / quote attribution only. Legacy .imagecaption h5/h6 sit under Dot
 * SVG rows (WPBakery −30px/−36px) — a 22px top margin knocks the first line
 * off the circle centre.
 */
.lbo-caption-motif :is(h5, h6, p),
.post-content blockquote + h6,
.quoteauthor {
	margin-top: 22px !important;
	margin-bottom: 0 !important;
}

/*
 * Legacy Dot + .imagecaption.
 * Text case studies: 10px. Context / Film (.span_12.light / .white) use
 * WPBakery −36px on the caption row — 22px so the first line centres on
 * the circle and sits clear of the image above.
 */
.imagecaption:not(.lbo-caption-motif) h5,
.imagecaption:not(.lbo-caption-motif) h6,
.imagecaption:not(.lbo-caption-motif) p {
	margin-top: 10px !important;
	margin-bottom: 0 !important;
}

.white.imagecaption:not(.lbo-caption-motif) :is(h5, h6, p),
.white .imagecaption:not(.lbo-caption-motif) :is(h5, h6, p),
.light .imagecaption:not(.lbo-caption-motif) :is(h5, h6, p),
.span_12.light .imagecaption:not(.lbo-caption-motif) :is(h5, h6, p),
.wpb_row:has(img[src*="Dot"]) + .wpb_row .light .imagecaption:not(.lbo-caption-motif) :is(h5, h6, p),
body.lbo-form-film .imagecaption:not(.lbo-caption-motif) :is(h5, h6, p) {
	margin-top: 22px !important;
	margin-bottom: 0 !important;
}

/*
 * New CSS motif only. Do NOT put --lbo-caption-gap on legacy .imagecaption —
 * those sit under Dot SVG rows whose WPBakery -36px / 24px offsets assume
 * zero extra margin on the caption block (first line ↔ 9px Dot centre).
 */
.wpb_content_element.lbo-caption-motif,
.lbo-caption-motif {
	margin-top: var(--lbo-caption-gap) !important;
	margin-bottom: var(--lbo-caption-gap) !important;
}

.lbo-directory-card-meta li {
	margin-bottom: var(--lbo-caption-gap);
}

.lbo-directory-card-meta li:last-child {
	margin-bottom: 0;
}

.post-content blockquote + h6,
.quoteauthor {
	margin-bottom: 3rem !important;
}

h6:before {
	content: "—";
	padding: 0 8px 0 0;
}

.imagecaption h6:before {
	display: none;
}

.white blockquote {
	border-color: var(--lbo-white) !important;
}

h6 {
	font-family: var(--lbo-font-mono, 'FoundersGroteskRegular', sans-serif);
	font-weight: 400;
	margin-top: 1.25rem;
	margin-bottom: 1.25rem !important;
}

ul li {
	margin-bottom: var(--lbo-space-heading);
	list-style: circle;
	padding-left: 6px;
	margin-left: -6px;
}

ol li {
	margin-bottom: var(--lbo-space-heading);
}

/* Inline body links — thin underline, full opacity, fade on hover. */
.post-content :where(p, li, td, th, blockquote, figcaption) a:not(.nectar-button):not(.wp-block-button__link),
.wpb_text_column :where(p, li, td, th, blockquote, figcaption) a:not(.nectar-button):not(.wp-block-button__link) {
	text-decoration: underline;
	text-decoration-thickness: 0.05em;
	text-underline-offset: 0.12em;
	text-decoration-color: currentColor;
	text-decoration-skip-ink: auto;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.post-content :where(p, li, td, th, blockquote, figcaption) a:not(.nectar-button):not(.wp-block-button__link):hover,
.wpb_text_column :where(p, li, td, th, blockquote, figcaption) a:not(.nectar-button):not(.wp-block-button__link):hover {
	text-decoration: underline;
	text-decoration-thickness: 0.05em;
	opacity: 0.5;
}

/*
 * Light-on-dark body links — beat Salient
 * `.span_12.light .wpb_text_column a:not(:hover) { opacity: 0.7 }`.
 * Rest 100%, hover/focus 50%.
 */
.span_12.light .wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link),
.span_12.light .wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link),
.white.wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link),
.white.wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link) {
	color: inherit;
	opacity: 1 !important;
	text-decoration: underline;
	text-decoration-thickness: 0.05em;
	text-underline-offset: 0.12em;
	text-decoration-color: currentColor;
	transition: opacity 0.3s ease;
}

.span_12.light .wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link):hover,
.span_12.light .wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link):focus-visible,
.span_12.light .wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link):hover,
.span_12.light .wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link):focus-visible,
.white.wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link):hover,
.white.wpb_text_column p a:not(.nectar-button):not(.wp-block-button__link):focus-visible,
.white.wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link):hover,
.white.wpb_text_column li a:not(.nectar-button):not(.wp-block-button__link):focus-visible {
	opacity: 0.5 !important;
}

/* Caption / attribution links (h6, motif) — full opacity, fade on hover. */
.post-content h6 a,
.wpb_text_column h6 a,
.imagecaption h6 a,
.lbo-caption-motif a,
.span_12.light .wpb_text_column h6 a,
.white.wpb_text_column h6 a {
	color: var(--lbo-white, #fff) !important;
	opacity: 1 !important;
	transition: opacity 0.3s ease;
}

.post-content h6 a:hover,
.wpb_text_column h6 a:hover,
.imagecaption h6 a:hover,
.lbo-caption-motif a:hover,
.span_12.light .wpb_text_column h6 a:hover,
.white.wpb_text_column h6 a:hover {
	opacity: 0.5 !important;
}

/* --- Salient typography reset (tokens above are authoritative) --- */

body,
body .toggle h3 a,
body .ui-widget,
#ajax-content-wrap .nectar-sticky-tabs .wpb_tabs_nav li .menu-content > a {
	font-size: var(--lbo-body-size);
	line-height: var(--lbo-body-leading);
}

p,
ul li,
ol li {
	font-size: var(--lbo-body-size);
	line-height: var(--lbo-body-leading);
}

/*
 * Salient zeros padding on p:last-child (.row .col p:last-child, .wpb_text_column
 * p:last-child). Restore paragraph spacing when another WPBakery block still follows
 * in the same column (e.g. body copy block → caption intro block).
 */
.post-content .wpb_wrapper > .wpb_text_column:not(:last-child) p:last-child {
	padding-bottom: var(--lbo-space-paragraph) !important;
}

body h1,
#page-header-bg h1,
body .row .col.section-title h1,
.full-width-content .nectar-recent-posts-slider .recent-post-container .inner-wrap h2,
body #error-404 h1,
[data-inherit-heading-family="h1"] {
	font-size: var(--lbo-h1-size);
	line-height: var(--lbo-h1-leading);
}

body h2,
#page-header-bg h2,
article.post .post-header h2,
.row .col.section-title h2,
#ajax-content-wrap .nectar-inherit-h2,
[data-inherit-heading-family="h2"] {
	font-size: var(--lbo-h2-size);
	line-height: var(--lbo-h2-leading);
}

body h3,
.row .col h3,
.toggle > h3.toggle-title a,
#ajax-content-wrap .nectar-inherit-h3,
[data-inherit-heading-family="h3"] {
	font-size: var(--lbo-h3-size);
	line-height: var(--lbo-h3-leading);
}

/*
 * Case study intro h3 — long Founders Grotesk opener in main-column text blocks.
 * Scoped via body.lbo-case-study (functions.php); excludes sidebar, captions, mono.
 */
body.lbo-case-study .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h3 {
	line-height: var(--lbo-h3-intro-leading);
}

/*
 * H2 top rule — case study, news, and events body content. Same exclusion
 * list as the intro h3 rule above (excludes sidebar meta, captions, mono).
 * Off-black border with a clear gap up from the preceding paragraph
 * (margin-top, matching the blockquote's own margin-top) and a shorter gap
 * down to the heading text (padding-top, matching the blockquote's
 * border-to-text gap). Film's dark page swaps the border to --lbo-film-fg
 * (white) in style.css — same pattern as the existing Film blockquote
 * border override.
 */
body.lbo-case-study .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2,
body.category-news .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2,
body.category-events .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2 {
	border-top: 1px solid var(--lbo-black) !important;
	margin-top: 3rem !important;
	padding-top: var(--lbo-space-paragraph) !important;
}

body h4,
.row .col h4,
#ajax-content-wrap .nectar-inherit-h4,
[data-inherit-heading-family="h4"] {
	font-size: var(--lbo-h4-size);
	line-height: var(--lbo-h4-leading);
}

body h5,
.row .col h5,
#ajax-content-wrap .nectar-inherit-h5,
[data-inherit-heading-family="h5"] {
	font-size: var(--lbo-h5-size);
	line-height: var(--lbo-h5-leading);
}

body h6,
.row .col h6,
#ajax-content-wrap .nectar-inherit-h6,
[data-inherit-heading-family="h6"] {
	font-size: var(--lbo-h6-size);
	/* LBO h6 = mono caption/attribution — use mono leading only (not UI 1.25 / heading 1.15). */
	line-height: var(--lbo-leading-mono, 1.2) !important;
}

.lbo-directory-card-meta,
.lbo-directory-card-meta li {
	list-style: none !important;
	list-style-type: none !important;
}

.lbo-directory-card-meta li::marker {
	content: none !important;
}

/* Mono captions & fine meta — beats global ul li body size on Directory cards. */
.lbo-directory-card-meta,
.lbo-directory-card-meta li,
.lbo-directory-card-meta a,
.lbo-case-study-sidebar h5,
.lbo-case-study-sidebar h6,
.lbo-case-study-sidebar p,
.lbo-case-study-sidebar li,
.lbo-case-study-sidebar a,
.lbo-case-study-sidebar .casestudydetails h5,
.lbo-case-study-sidebar .casestudydetails ul li,
.lbo-case-study-sidebar .post-meta-block h5,
.lbo-case-study-sidebar .post-meta-block ul li,
.lbo-case-study-sidebar ul li,
/*
 * Legacy sidebars (no .lbo-case-study-sidebar Extra class) — same caption size /
 * leading as the new compact sidebar. Dot + .imagecaption left to caption CSS.
 */
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails h5,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails ul li,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails a,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block h5,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block ul li,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block a,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group h5,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group ul li,
body.lbo-form-text .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group a,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails h5,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails ul li,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails a,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block h5,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block ul li,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block a,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group h5,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group ul li,
body.lbo-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group a,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails h5,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails ul li,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .casestudydetails a,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block h5,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block ul li,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .post-meta-block a,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group h5,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group ul li,
body.category-case-study .wpb_column:not(.lbo-case-study-sidebar):has(.wpb_wrapper > .wpb_text_column.casestudydetails) .acf-meta-group a {
	font-size: var(--lbo-text-caption);
	line-height: var(--lbo-leading-mono, 1.2) !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

/*
 * Mono surfaces — caption size + --lbo-leading-mono on containers AND children.
 *
 * Antigua-style sidebars set li/h5 to display:inline inside .casestudydetails.
 * Unitless line-height on the li alone is not enough: the block’s strut uses the
 * parent’s font-size. Leaving .casestudydetails at body 22px made 1.2 compute to
 * 26.4px used line boxes while .imagecaption h6 (block, 16px parent) stayed 19.2px.
 * Force --lbo-text-caption on these containers so 1.2 always → same px ratio.
 */
.casestudydetails,
.casestudydetails ul,
.casestudydetails li,
.casestudydetails p,
.casestudydetails a,
.casestudydetails h5,
.post-meta-block,
.post-meta-block ul,
.post-meta-block li,
.post-meta-block a,
.post-meta-block h5,
.acf-meta-group,
.acf-meta-group ul,
.acf-meta-group li,
.acf-meta-group a,
.acf-meta-group h5,
.lbo-directory-card-meta,
.lbo-directory-card-meta li,
.lbo-directory-card-meta a,
.lbo-font-mono,
.lbo-caption-motif,
.wpb_content_element.lbo-caption-motif,
.lbo-caption-motif h5,
.lbo-caption-motif h6,
.lbo-caption-motif p,
.wpb_content_element.imagecaption,
.imagecaption,
.imagecaption h5,
.imagecaption h6,
.imagecaption p,
.wpb_text_column h6,
.post-content blockquote + h6,
.quoteauthor,
body.lbo-form-text .img-with-aniamtion-wrap p.img-caption,
body.lbo-case-study .img-with-aniamtion-wrap p.img-caption,
.lbo-case-study-sidebar .lbo-sidebar-featured-caption p.img-caption {
	font-size: var(--lbo-text-caption) !important;
	line-height: var(--lbo-leading-mono, 1.2) !important;
}

/*
 * Mono never bold — caption / sidebar / directory mono surfaces stay Regular.
 * Beats Salient `h5 strong` and body `strong`/`b` (often wrapping Author labels).
 */
.casestudydetails,
.casestudydetails :is(h5, h6, strong, b, .bold, a, li, p, em),
.post-meta-block,
.post-meta-block :is(h5, h6, strong, b, .bold, a, li, p, em),
.acf-meta-group,
.acf-meta-group :is(h5, h6, strong, b, .bold, a, li, p, em),
.lbo-font-mono,
.lbo-font-mono :is(strong, b, .bold),
.lbo-caption-motif,
.lbo-caption-motif :is(h5, h6, strong, b, .bold, a, p, em),
.imagecaption,
.imagecaption :is(h5, h6, strong, b, .bold, a, p, em),
.wpb_text_column h6,
.wpb_text_column h6 :is(strong, b, .bold),
.post-content blockquote + h6,
.post-content blockquote + h6 :is(strong, b, .bold),
.quoteauthor,
.quoteauthor :is(strong, b, .bold),
.lbo-directory-card-meta,
.lbo-directory-card-meta :is(strong, b, .bold, a, li),
.lbo-directory-card-featured-label,
.lbo-case-study-sidebar,
.lbo-case-study-sidebar :is(h5, h6, strong, b, .bold, a, li, p, em) {
	font-weight: 400 !important;
}

/*
 * Mono never italic — Founders Grotesk Mono has no italic face; <em>/<i>
 * would synthesise a faux slant. Force normal style on mono surfaces.
 */
.casestudydetails,
.casestudydetails :is(em, i, cite),
.post-meta-block,
.post-meta-block :is(em, i, cite),
.acf-meta-group,
.acf-meta-group :is(em, i, cite),
.lbo-font-mono,
.lbo-font-mono :is(em, i, cite),
.lbo-caption-motif,
.lbo-caption-motif :is(em, i, cite),
.imagecaption,
.imagecaption :is(em, i, cite),
.wpb_text_column h6,
.wpb_text_column h6 :is(em, i, cite),
.post-content blockquote + h6,
.post-content blockquote + h6 :is(em, i, cite),
.quoteauthor,
.quoteauthor :is(em, i, cite),
.lbo-directory-card-meta,
.lbo-directory-card-meta :is(em, i, cite),
.lbo-case-study-sidebar,
.lbo-case-study-sidebar :is(em, i, cite) {
	font-style: normal !important;
}

/*
 * Hide empty <h2><code></code></h2> leftovers (show as grey boxes in
 * WPBakery + front end). Prefer removing from content; this is a safety net.
 */
.post-content h2:has(> code:only-child:empty),
.wpb_text_column h2:has(> code:only-child:empty),
.composer-inner-wrap h2:has(> code:only-child:empty),
.post-content code:empty,
.wpb_text_column code:empty {
	display: none !important;
}

#top nav > ul > li > a,
.span_3 .pull-left-wrap > ul > li > a,
#header-outer #mobile-menu ul li > a,
.nectar-mobile-only.mobile-header a {
	font-size: var(--lbo-nav-size);
	line-height: var(--lbo-nav-leading);
}

/* --- Responsive semantic scale --- */

@media only screen and (max-width: 1300px) and (min-width: 1000px) {
	:root {
		--lbo-h1-size: var(--lbo-text-5xl);
		--lbo-h2-size: var(--lbo-text-3xl);
	}
}

@media only screen and (max-width: 999px) and (min-width: 691px) {
	:root {
		--lbo-h1-size: var(--lbo-text-5xl);
		--lbo-h2-size: var(--lbo-text-3xl);
		--lbo-h3-size: var(--lbo-text-xl);
	}
}

@media only screen and (max-width: 690px) {
	:root {
		--lbo-body-size: var(--lbo-text-md);
		--lbo-body-leading: var(--lbo-leading-body-tight);
		--lbo-h1-size: var(--lbo-text-4xl);
		--lbo-h2-size: var(--lbo-text-2xl);
		--lbo-h2-leading: var(--lbo-leading-heading);
		--lbo-h3-size: var(--lbo-text-xl);
		--lbo-h3-leading: var(--lbo-leading-tight);
		--lbo-h4-size: var(--lbo-text-body);
		--lbo-h5-size: var(--lbo-text-md);
		--lbo-h5-leading: var(--lbo-leading-ui);
		--lbo-h6-size: var(--lbo-text-caption);
		--lbo-h6-leading: var(--lbo-leading-mono);
	}

	p,
	ul li,
	ol li {
		font-size: var(--lbo-text-md);
		line-height: var(--lbo-leading-body-tight);
	}

	p {
		padding-bottom: 1.375rem;
	}

	ul li,
	ol li {
		margin-bottom: 1.375rem;
	}

	h3 {
		margin-bottom: var(--lbo-space-paragraph) !important;
	}

	h4,
	.large h4,
	.largewhite h4 {
		margin-bottom: var(--lbo-space-paragraph) !important;
		font-size: var(--lbo-text-body) !important;
		line-height: var(--lbo-leading-ui) !important;
	}

	h5 {
		margin-bottom: var(--lbo-space-paragraph) !important;
	}

	blockquote p {
		font-size: var(--lbo-text-body);
		line-height: var(--lbo-leading-ui);
	}

	.post-content blockquote {
		margin-top: 2.5rem;
		margin-bottom: 1.25rem;
	}

	.post-content blockquote + h6,
	.quoteauthor {
		margin-bottom: 2.25rem !important;
	}

	h6 {
		margin-bottom: 1.125rem;
	}

	.casestudydetails ul li,
	.post-meta-block ul li {
		font-size: var(--lbo-text-sm) !important;
		line-height: var(--lbo-leading-mono) !important;
	}

	.easy-footnote-title h4 {
		padding-top: 0.75rem !important;
		font-size: var(--lbo-text-md) !important;
		line-height: var(--lbo-leading-ui) !important;
	}

	/* Match .post-content blockquote's mobile margin-top reduction (3rem → 2.5rem). */
	body.lbo-case-study .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2,
	body.category-news .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2,
	body.category-events .post-content .wpb_text_column:not(.casestudydetails):not(.lbo-caption-motif):not(.imagecaption):not(.lbo-sidebar-featured-caption) h2 {
		margin-top: 2.5rem !important;
	}

	.post-content .nectar-button.small,
	.nectar-button.medium {
		font-size: var(--lbo-text-lg) !important;
		line-height: var(--lbo-leading-tight) !important;
		padding: 10px 15px 12px 15px !important;
		transition: 0.3s !important;
	}

	body .nectar-slider-wrap[data-fullscreen="true"] .swiper-slide .content h2,
	body .vc_col-sm-3 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-4 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-6 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-8 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-9 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2 {
		font-size: var(--lbo-text-slider-lg) !important;
		line-height: var(--lbo-leading-heading) !important;
	}

	body .nectar-slider-wrap[data-fullscreen="true"] .swiper-slide .content p,
	body .vc_col-sm-3 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content p,
	body .vc_col-sm-4 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content p,
	body .vc_col-sm-6 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content p,
	body .vc_col-sm-8 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content p,
	body .vc_col-sm-9 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content p {
		font-size: var(--lbo-text-lg) !important;
		line-height: var(--lbo-leading-tight) !important;
	}

	.blog-recent.related-posts h3.title {
		font-size: var(--lbo-text-xl) !important;
		line-height: var(--lbo-leading-heading) !important;
		margin-bottom: 0.9375rem !important;
	}

	.related-posts .article-content-wrap .excerpt,
	.nectar-post-grid .nectar-post-grid-item .item-meta-extra,
	.nectar-post-grid .nectar-post-grid-item .meta-excerpt {
		font-size: var(--lbo-text-md) !important;
		line-height: var(--lbo-leading-heading) !important;
	}

	.related-posts[data-style="material"] .grav-wrap .text,
	.masonry.material .masonry-blog-item .meta-category a,
	.related-posts[data-style="material"] .meta-category a,
	.nectar-recent-posts-slider_multiple_visible .recent-post-container.container .strong a,
	.auto_meta_overlaid_spaced .masonry-blog-item .meta-category a,
	.masonry.material .masonry-blog-item .grav-wrap .text span,
	.related-posts[data-style="material"] .grav-wrap .text span,
	.nectar-post-grid[data-cat-click="static"] .nectar-post-grid-item .content .meta-category,
	.nectar-post-grid .meta-date {
		font-size: var(--lbo-text-xs) !important;
		line-height: var(--lbo-leading-tight) !important;
	}

	.ascend .related-post-wrap h3.related-title,
	.material .related-post-wrap h3.related-title {
		font-size: var(--lbo-text-2xl) !important;
		line-height: var(--lbo-leading-heading) !important;
	}
}

@media only screen and (min-width: 690px) and (max-width: 999px) {
	.ascend .related-post-wrap h3.related-title,
	.material .related-post-wrap h3.related-title {
		font-size: var(--lbo-text-4xl);
		line-height: var(--lbo-leading-heading);
	}

	.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content p,
	#boxed .swiper-slide .content h2 p {
		font-size: var(--lbo-text-lg) !important;
		line-height: var(--lbo-leading-tight) !important;
	}

	body .nectar-slider-wrap[data-fullscreen="true"] .swiper-slide .content h2,
	body .vc_col-sm-3 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-4 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-6 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-8 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2,
	body .vc_col-sm-9 .nectar-slider-wrap[data-flexible-height="true"] .swiper-slide .content h2 {
		font-size: var(--lbo-text-slider-lg) !important;
		line-height: var(--lbo-leading-heading) !important;
	}
}

@media only screen and (min-width: 1000px) {
	.ascend .related-post-wrap h3.related-title,
	.material .related-post-wrap h3.related-title {
		font-size: var(--lbo-text-5xl);
		line-height: var(--lbo-leading-heading);
	}

	.swiper-slide .content p {
		font-size: var(--lbo-text-2xl) !important;
		line-height: var(--lbo-leading-heading) !important;
	}

	.large h4,
	.largewhite h4 {
		font-size: var(--lbo-text-3xl) !important;
		line-height: var(--lbo-leading-ui) !important;
		margin-bottom: var(--lbo-text-4xl) !important;
	}
}

@media only screen and (min-width: 1000px) and (max-width: 1300px) {
	.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content h2,
	#boxed .nectar-slider-wrap[data-full-width="false"] .swiper-slide .content h2 {
		font-size: var(--lbo-text-slider-lg) !important;
		line-height: var(--lbo-leading-heading) !important;
	}

	.swiper-slide .content h2 {
		line-height: var(--lbo-leading-tight) !important;
	}

	.swiper-slide .content p {
		font-size: var(--lbo-text-2xl) !important;
		line-height: var(--lbo-leading-heading) !important;
	}

	.large h4,
	.largewhite h4 {
		font-family: 'freight-text-pro', serif;
		font-weight: var(--lbo-freight-weight-light) !important;
		font-size: var(--lbo-text-3xl) !important;
		line-height: var(--lbo-leading-ui) !important;
		margin-bottom: var(--lbo-text-4xl) !important;
	}
}
