/* Public site styling. Keep base rules before the Lark layout rules. */
/* LARK_FRONTEND_BASE_START */
:root {
	--lark-navy: #17324d;
	--lark-blue: #255c8b;
	--lark-blue-dark: #19466d;
	--lark-gold: #b08a3e;
	--lark-ink: #263238;
	--lark-muted: #667685;
	--lark-border: #dce3e8;
	--lark-surface: #f3f5f7;
	--lark-white: #ffffff;
	--lark-radius: 4px;
	--lark-shadow: 0 12px 30px rgba(23, 50, 77, 0.08);
}

body {
	color: var(--lark-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 18px;
	line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6,
.site-branding {
	color: var(--lark-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	line-height: 1.2;
}

a {
	color: var(--lark-blue);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
}

a:hover,
a:focus-visible {
	color: var(--lark-blue-dark);
}

:focus-visible {
	outline: 3px solid var(--lark-gold);
	outline-offset: 3px;
}

.site-header {
	border-bottom: 1px solid var(--lark-border);
}

.site-description {
	color: var(--lark-muted);
}

.main-navigation {
	background: var(--lark-navy);
}

.main-navigation .main-nav ul li a,
.menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--lark-white);
	font-weight: 600;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	background: var(--lark-blue-dark);
	color: var(--lark-white);
}

/* Keep GeneratePress desktop dropdowns legible on every legacy page. */
.main-navigation .main-nav ul ul,
.main-navigation .main-nav ul ul li,
.main-navigation .main-nav ul ul li a {
	background: var(--lark-navy);
	color: var(--lark-white);
}

.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li:focus-within > a,
.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
	background: var(--lark-blue-dark);
	color: var(--lark-white);
}

.main-navigation .main-nav ul ul .dropdown-menu-toggle,
.main-navigation .main-nav ul ul .dropdown-menu-toggle .gp-icon {
	color: var(--lark-white);
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-element-button,
.wp-block-button__link,
.edd-submit {
	background: var(--lark-blue);
	border: 2px solid var(--lark-blue);
	border-radius: var(--lark-radius);
	color: var(--lark-white);
	font-weight: 700;
	line-height: 1.2;
	padding: 0.75rem 1.15rem;
	text-decoration: none;
}

button:hover,
button:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible,
.button:hover,
.button:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.edd-submit:hover,
.edd-submit:focus-visible {
	background: var(--lark-blue-dark);
	border-color: var(--lark-blue-dark);
	color: var(--lark-white);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select {
	background: var(--lark-white);
	border: 1px solid #aebac4;
	border-radius: var(--lark-radius);
	color: var(--lark-ink);
	font: inherit;
	padding: 0.65rem 0.75rem;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--lark-blue);
	box-shadow: 0 0 0 3px rgba(37, 92, 139, 0.15);
	outline: 0;
}

.entry-content > * + * {
	margin-block-start: 1.25em;
}

.lark-eyebrow {
	color: var(--lark-blue);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.lark-hero {
	background: linear-gradient(135deg, var(--lark-navy), var(--lark-blue-dark));
	color: var(--lark-white);
	padding: clamp(2.5rem, 7vw, 5.5rem) clamp(1.25rem, 5vw, 4rem);
}

.lark-hero h1,
.lark-hero h2,
.lark-hero p,
.lark-hero a:not(.wp-block-button__link) {
	color: inherit;
}

.lark-hero .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--lark-white);
	color: var(--lark-white);
}

.lark-card {
	background: var(--lark-white);
	border: 1px solid var(--lark-border);
	border-radius: var(--lark-radius);
	box-shadow: var(--lark-shadow);
	height: 100%;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.lark-report-callout {
	background: var(--lark-surface);
	border: 1px solid var(--lark-border);
	border-left: 5px solid var(--lark-gold);
	border-radius: var(--lark-radius);
	margin-block: 2rem;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.lark-report-callout h2,
.lark-report-callout h3 {
	margin-top: 0;
}

.lark-report-meta {
	color: var(--lark-muted);
	font-size: 0.9rem;
}

.lark-disclosure {
	border-top: 1px solid var(--lark-border);
	color: var(--lark-muted);
	font-size: 0.82rem;
	margin-top: 2.5rem;
	padding-top: 1.25rem;
}

.edd_download,
.edd-blocks__download {
	background: var(--lark-white);
	border: 1px solid var(--lark-border);
	border-radius: var(--lark-radius);
	padding: 1.25rem;
}

#edd_checkout_cart,
.edd-table {
	border-collapse: collapse;
	width: 100%;
}

#edd_checkout_cart th,
#edd_checkout_cart td,
.edd-table th,
.edd-table td {
	border-bottom: 1px solid var(--lark-border);
	padding: 0.8rem;
	text-align: left;
}

.site-footer {
	border-top: 1px solid var(--lark-border);
}

.site-info {
	background: var(--lark-navy);
	color: var(--lark-white);
}

.site-info a {
	color: var(--lark-white);
}

@media (max-width: 768px) {
	body {
		font-size: 17px;
	}

	.main-navigation.toggled,
	.main-navigation.toggled .main-nav,
	.main-navigation.toggled .main-nav > ul,
	.main-navigation.toggled .main-nav ul ul {
		background: var(--lark-navy);
	}

	.main-navigation.toggled .main-nav ul li a,
	.main-navigation.toggled .main-nav ul ul li a,
	.main-navigation.toggled .menu-toggle,
	.main-navigation.toggled .dropdown-menu-toggle {
		background: var(--lark-navy);
		color: var(--lark-white);
	}

	.main-navigation.toggled .main-nav ul li:hover > a,
	.main-navigation.toggled .main-nav ul li:focus-within > a,
	.main-navigation.toggled .main-nav ul li[class*="current-menu-"] > a,
	.main-navigation.toggled .main-nav ul ul li:hover > a,
	.main-navigation.toggled .main-nav ul ul li:focus-within > a {
		background: var(--lark-blue-dark);
		color: var(--lark-white);
	}

	.menu-toggle,
	.menu-toggle:hover,
	.menu-toggle:focus,
	.menu-toggle:focus-visible {
		background: var(--lark-navy);
		color: var(--lark-white);
	}

	.menu-toggle .gp-icon,
	.menu-toggle .gp-icon svg,
	.menu-toggle .gp-icon svg path,
	.menu-toggle .gp-icon svg line,
	.dropdown-menu-toggle .gp-icon,
	.dropdown-menu-toggle .gp-icon svg,
	.dropdown-menu-toggle .gp-icon svg path,
	.dropdown-menu-toggle .gp-icon svg line {
		color: var(--lark-white);
		fill: var(--lark-white);
		stroke: var(--lark-white);
	}

	.lark-hero {
		padding-inline: 1.25rem;
	}

	.wp-block-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.wp-block-buttons .wp-block-button,
	.wp-block-buttons .wp-block-button__link {
		width: 100%;
	}
}

/* Three homepage cards should not leave an empty half-row on smaller screens.
 * Keep this small override in GeneratePress's file-versioned child stylesheet. */
@media (max-width: 1050px) {
	.home .lark-post-grid { grid-template-columns: minmax(0,1fr); }
	.home .lark-post-card { min-height: 0; padding: 20px; }
	.home .lark-post-card h3 { margin: 16px 0 12px; }
	.home .lark-post-card p { margin-bottom: 16px; }
}

/* LARK_FRONTEND_BASE_END */

/* Lark layouts and components (also used by the Elements editor). */
:root {
	--lark-navy-950: #081d2f;
	--lark-navy-900: #0f2e46;
	--lark-navy-800: #173f5f;
	--lark-blue: #1f5f8b;
	--lark-gold: #c49a4a;
	--lark-gold-light: #e3c98f;
	--lark-cream: #f7f3ea;
	--lark-cream-light: #fcfaf5;
	--lark-ink: #17232c;
	--lark-muted: #40515e;
	--lark-soft: #697984;
	--lark-line: #d9e0e4;
	--lark-white: #fff;
	--lark-shell: 1180px;
	--lark-serif: Georgia, "Times New Roman", serif;
	--lark-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

/* Native blocks use the original Lark layout; these adapters add no new design. */
.lark-native-group { margin-block: 0; }
.lark-inline-paragraph, .lark-editor-homepage { display: contents; }
.lark-footer-bottom .lark-footer-legal { margin: 0; }
.lark-proof-grid .lark-proof-heading { color: var(--lark-navy-900); font-family: var(--lark-serif); font-size: clamp(1.25rem,2.3vw,2rem); font-weight: 700; line-height: 1.05; margin: 0; }
.lark-proof-grid .lark-proof-description { color: var(--lark-muted); font-size: .8rem; line-height: 1.35; margin: 0; }
.lark-utility-item { margin: 0; }
@media (max-width: 700px) { .lark-utility-inner .lark-utility-item:last-child { display: none; } }

.lark-main *, .lark-site-header *, .lark-site-footer * { box-sizing: border-box; }
.lark-main { background: var(--lark-white); color: var(--lark-ink); font-family: var(--lark-sans); font-size: 17px; line-height: 1.65; }
.lark-main h1, .lark-main h2, .lark-main h3, .lark-site-footer .lark-brand-name { color: var(--lark-navy-950); font-family: var(--lark-serif); font-weight: 700; line-height: 1.12; }
.lark-main h1 { font-size: clamp(2.7rem, 4.4vw, 4.2rem); letter-spacing: -.035em; }
.lark-main h2 { font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.035em; }
.lark-main h3 { font-size: 1.45rem; }
.lark-shell { margin-inline: auto; max-width: var(--lark-shell); padding-inline: 24px; width: 100%; }
.lark-section-pad {
	padding-top: clamp(70px, 9vw, 116px);
	padding-bottom: clamp(70px, 9vw, 116px);
}
.lark-eyebrow { color: var(--lark-blue); font-size: .77rem; font-weight: 800; letter-spacing: .13em; margin: 0 0 18px; text-transform: uppercase; }
.lark-skip-link { background: var(--lark-gold); left: 12px; padding: 10px 14px; position: fixed; top: -100px; z-index: 9999; }
.lark-skip-link:focus { top: 12px; }

.lark-utility-bar { background: var(--lark-navy-950); color: #dce7ee; font-family: var(--lark-sans); font-size: .78rem; }
.lark-utility-inner { display: flex; justify-content: space-between; padding-block: 8px; }
.lark-site-header { background: rgba(255,255,255,.98); border-bottom: 1px solid var(--lark-line); font-family: var(--lark-sans); position: sticky; top: 0; z-index: 50; }
.lark-header-inner { align-items: center; display: flex; gap: 30px; justify-content: space-between; min-height: 92px; }
.lark-brand { align-items: center; display: inline-flex; gap: 13px; text-decoration: none; }
.lark-brand-mark { align-items: center; background: var(--lark-navy-900); color: var(--lark-gold-light); display: inline-flex; font-family: var(--lark-serif); font-size: 1.4rem; height: 44px; justify-content: center; width: 44px; }
.lark-brand-copy { display: flex; flex-direction: column; line-height: 1.05; }
.lark-brand-name { color: var(--lark-navy-950); font-family: var(--lark-serif); font-size: 1.55rem; font-weight: 700; }
.lark-brand-tagline { color: var(--lark-soft); font-size: .75rem; letter-spacing: .07em; margin-top: 2px; text-transform: uppercase; text-wrap: balance; }
.lark-menu { align-items: center; display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; }
.lark-menu a { color: var(--lark-navy-900); font-size: .875rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.lark-desktop-nav .lark-menu > li > a { font-size: .9375rem; }
.lark-menu a:hover, .lark-menu a:focus { color: var(--lark-blue); }
.lark-menu .menu-item-has-children { position: relative; }
.lark-submenu-toggle { align-items: center; background: transparent; border: 0; color: var(--lark-navy-900); cursor: pointer; display: inline-flex; height: 32px; justify-content: center; padding: 6px; vertical-align: middle; width: 28px; }
.lark-submenu-toggle span { border-bottom: 1.5px solid currentColor; border-right: 1.5px solid currentColor; display: block; height: 7px; transform: rotate(45deg) translateY(-2px); width: 7px; }
.lark-submenu-toggle[aria-expanded="true"] span { transform: rotate(225deg) translate(-2px,-1px); }
.lark-desktop-nav .sub-menu { background: var(--lark-white); border-top: 3px solid var(--lark-gold); box-shadow: 0 15px 35px rgba(15,31,55,.18); display: none; left: -16px; list-style: none; margin: 0; max-width: min(420px, calc(100vw - 32px)); min-width: 300px; padding: 7px; position: absolute; top: calc(100% + 18px); width: max-content; z-index: 50; }
.lark-desktop-nav .sub-menu::before { content: ""; height: 21px; left: 0; position: absolute; right: 0; top: -21px; }
.lark-desktop-nav .sub-menu a { border-bottom: 1px solid var(--lark-line); display: block; padding: 12px; white-space: normal; }
/* A dropdown that would run past the window opens leftward instead (navigation.js adds the class). */
.lark-desktop-nav .sub-menu.lark-submenu-left { left: auto; right: -16px; }
.lark-desktop-nav .sub-menu.lark-submenu-left .sub-menu { left: auto; right: calc(100% + 7px); }
.lark-desktop-nav .sub-menu li:last-child > a { border-bottom: 0; }
.lark-desktop-nav .sub-menu .sub-menu { left: calc(100% + 7px); top: -10px; }
.lark-desktop-nav .menu-item-has-children:hover > .sub-menu,
.lark-desktop-nav .menu-item-has-children:focus-within > .sub-menu,
.lark-desktop-nav .menu-item-has-children.is-open > .sub-menu { display: block; }
.lark-desktop-nav .lark-submenu-toggle { display: none; }
.lark-menu-button { align-items: center; background: var(--lark-navy-900); border: 0; color: var(--lark-white); cursor: pointer; display: none; height: 48px; justify-content: center; padding: 0; width: 48px; }
.lark-menu-icon, .lark-menu-icon::before, .lark-menu-icon::after { background: currentColor; content: ""; display: block; height: 2px; position: relative; transition: .2s; width: 22px; }
.lark-menu-icon::before { position: absolute; top: -7px; }.lark-menu-icon::after { position: absolute; top: 7px; }
.lark-menu-button[aria-expanded="true"] .lark-menu-icon { background: transparent; }
.lark-menu-button[aria-expanded="true"] .lark-menu-icon::before { top: 0; transform: rotate(45deg); }
.lark-menu-button[aria-expanded="true"] .lark-menu-icon::after { top: 0; transform: rotate(-45deg); }
.lark-mobile-nav { background: var(--lark-navy-900); padding: 10px 24px 22px; }
.lark-mobile-nav[hidden] { display: none; }
.lark-mobile-nav .lark-menu { align-items: stretch; flex-direction: column; gap: 0; }
.lark-mobile-nav .lark-menu a { border-bottom: 1px solid rgba(255,255,255,.16); color: var(--lark-white); display: block; font-size: 1rem; padding: 15px 4px; }
.lark-mobile-nav .menu-item-has-children > a { padding-right: 48px; }
.lark-mobile-nav .lark-submenu-toggle { color: var(--lark-white); position: absolute; right: 0; top: 7px; }
.lark-mobile-nav .sub-menu { display: block; list-style: none; margin: 0; padding: 0 0 0 18px; }
.lark-submenus-ready .lark-mobile-nav .sub-menu { display: none; }
.lark-submenus-ready .lark-mobile-nav .menu-item-has-children.is-open > .sub-menu { display: block; }
.lark-mobile-nav .sub-menu a { font-size: .9375rem; padding-block: 12px; }

.lark-construction-notice { background: var(--lark-gold); border-bottom: 1px solid rgba(8,29,47,.2); color: var(--lark-navy-950); }
.lark-construction-notice-inner { align-items: center; display: flex; gap: 12px; justify-content: center; min-height: 48px; padding-block: 10px; text-align: center; }
.lark-construction-notice strong { font-family: var(--lark-sans); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.lark-construction-notice span { font-size: .92rem; }
.lark-hero { background: var(--lark-navy-900); color: var(--lark-white); overflow: hidden; position: relative; }
.lark-hero::after { border: 1px solid rgba(227,201,143,.18); border-radius: 50%; content: ""; height: 620px; position: absolute; right: -190px; top: -220px; width: 620px; }
.lark-hero-grid { align-items: center; display: grid; gap: clamp(42px,6vw,78px); grid-template-columns: minmax(0,1.3fr) minmax(310px,.7fr); position: relative; z-index: 1; }
.lark-hero .lark-eyebrow { color: var(--lark-gold-light); }
.lark-hero h1 { color: var(--lark-white); font-size: clamp(2.5rem,4vw,3.8rem); line-height: 1.04; margin-bottom: 24px; max-width: 720px; text-wrap: balance; }
.lark-hero-lede { color: #dce7ee; font-size: 1.2rem; max-width: 700px; }
.lark-button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.lark-button, .lark-main .edd-submit.button { align-items: center; border: 2px solid transparent; border-radius: 0; display: inline-flex; font-size: .88rem; font-weight: 800; justify-content: center; min-height: 50px; padding: 12px 20px; text-decoration: none; }
.lark-button-gold { background: var(--lark-gold); color: var(--lark-navy-950); }
.lark-button-ghost { border-color: rgba(255,255,255,.45); color: var(--lark-white); }
.lark-button-navy, .lark-main .edd-submit.button { background: var(--lark-navy-900); color: var(--lark-white); }
.lark-button-outline { background: var(--lark-white); border-color: var(--lark-navy-900); color: var(--lark-navy-900); }
.lark-featured-brief { background: var(--lark-cream); box-shadow: 0 24px 80px rgba(0,0,0,.25); color: var(--lark-ink); padding: 30px; }
.lark-brief-topline { border-bottom: 1px solid #d6c8aa; color: var(--lark-soft); display: flex; font-size: .72rem; font-weight: 800; justify-content: space-between; letter-spacing: .08em; padding-bottom: 14px; text-transform: uppercase; }
.lark-ticker { color: var(--lark-gold); font-family: var(--lark-serif); font-size: 3.4rem; font-weight: 700; line-height: 1; margin: 28px 0 8px; }
.lark-featured-brief h2 { font-size: 2rem; margin-bottom: 16px; }
.lark-featured-brief .lark-ticker { font-family: var(--lark-sans); font-size: .85rem; line-height: 1.4; margin: 24px 0 8px; letter-spacing: .08em; }
.lark-brief-topline + h2 { margin-top: 24px; }
.lark-text-link { color: var(--lark-blue); font-size: .87rem; font-weight: 800; text-decoration: none; }
.lark-text-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.lark-proof-strip { background: var(--lark-cream); border-bottom: 1px solid #e6dfd0; }
.lark-hero + .lark-proof-strip { margin-block-start: 16px; }
.lark-proof-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.lark-proof-grid > div { align-items: center; display: flex; gap: 16px; padding: 30px; }
.lark-proof-grid > div + div { border-left: 1px solid #ddd3bd; }
.lark-proof-grid strong { color: var(--lark-navy-900); font-family: var(--lark-serif); font-size: clamp(1.25rem,2.3vw,2rem); line-height: 1.05; }
.lark-proof-grid span { color: var(--lark-muted); font-size: .8rem; line-height: 1.35; }
.lark-section-heading { align-items: end; display: flex; gap: 40px; justify-content: space-between; margin-bottom: 40px; }
.lark-section-heading h2 { margin-bottom: 0; }
.lark-section-intro { color: var(--lark-muted); margin: 18px 0 0; max-width: 650px; }
.lark-post-grid, .lark-report-grid { display: grid; gap: 22px; grid-template-columns: repeat(3,1fr); }
.lark-post-card { border: 1px solid var(--lark-line); border-top: 4px solid var(--lark-navy-900); display: flex; flex-direction: column; min-height: 355px; padding: 25px 24px; }
.lark-card-meta { color: var(--lark-soft); display: flex; flex-wrap: wrap; font-size: .72rem; font-weight: 700; gap: 12px 22px; justify-content: space-between; letter-spacing: .04em; text-transform: uppercase; }.lark-card-meta a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }.lark-card-meta a:hover, .lark-card-meta a:focus { color: var(--lark-blue); }
.lark-post-card h3 { font-size: 1.55rem; margin: 26px 0 14px; }.lark-post-card h3 a, .lark-report-card h3 a { text-decoration: none; }
.lark-post-card p, .lark-report-card p { color: var(--lark-muted); font-size: .91rem; }.lark-post-card .lark-text-link { margin-top: auto; }
.lark-reports-section { background: var(--lark-cream-light); border-block: 1px solid #eee8dc; }
.lark-report-card { background: var(--lark-white); border: 1px solid var(--lark-line); border-top: 4px solid var(--lark-navy-900); display: flex; flex-direction: column; padding: 25px; }
.lark-report-card-top { align-items: center; display: flex; justify-content: space-between; }.lark-report-ticker { background: var(--lark-navy-900); color: var(--lark-white); font-family: var(--lark-serif); font-weight: 700; padding: 7px 10px; }.lark-report-date { color: var(--lark-soft); font-size: .74rem; }
/* In report lists the type is a small label; the product page keeps the solid tag. */
.lark-report-card .lark-report-ticker { background: transparent; color: var(--lark-blue); font-family: var(--lark-sans); font-size: .72rem; font-weight: 800; letter-spacing: .1em; padding: 0; text-transform: uppercase; }
.lark-report-card h3 { margin: 25px 0 12px; }.lark-report-card .lark-report-pages { color: var(--lark-soft); font-size: .76rem; font-weight: 800; margin-top: 16px; text-transform: uppercase; }.lark-report-card-bottom { align-items: center; border-top: 1px solid var(--lark-line); display: flex; justify-content: space-between; margin-top: auto; padding-top: 18px; }.lark-price { color: var(--lark-navy-950); display: block; font-family: var(--lark-serif); font-size: 1.35rem; font-weight: 700; }.lark-pagination { margin-top: 32px; }.lark-pagination .page-numbers { display: inline-flex; margin-right: 6px; padding: 8px 11px; }.lark-pagination .current { background: var(--lark-navy-900); color: var(--lark-white); }
.lark-empty-state { background: var(--lark-white); border: 1px solid var(--lark-line); padding: 30px; }
.lark-institutional-panel { align-items: center; background: var(--lark-navy-950); color: var(--lark-white); display: grid; gap: 70px; grid-template-columns: 1fr 1fr; padding-block: clamp(45px,7vw,78px); padding-inline: clamp(28px,6vw,74px); }.lark-institutional-panel h2 { color: var(--lark-white); }.lark-institutional-panel .lark-eyebrow { color: var(--lark-gold-light); }.lark-institutional-panel p { color: #ccdae3; }

.lark-page-hero { background: var(--lark-cream); border-bottom: 1px solid #e4dccb; padding-block: 72px; }.lark-page-hero h1 { font-size: clamp(2.7rem,5vw,4.5rem); margin-bottom: 18px; }.lark-page-hero p:last-child { color: var(--lark-muted); font-size: 1.1rem; max-width: 740px; }
.lark-filter-row { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-bottom: 32px; }.lark-filter-chip { border-bottom: 3px solid transparent; color: var(--lark-navy-900); font-size: .86rem; font-weight: 800; padding: 6px 0; text-decoration: none; }.lark-filter-chip:hover, .lark-filter-chip:focus-visible, .lark-filter-chip.is-active { border-bottom-color: var(--lark-gold); color: var(--lark-navy-950); }
/* Risk/Reward uses the homepage palette without changing other page heroes. */
.lark-risk-reward .lark-page-hero {
	background: var(--lark-navy-900);
	border-bottom: 0;
	color: var(--lark-white);
}
.lark-risk-reward .lark-page-hero h1 { color: var(--lark-white); }
.lark-risk-reward .lark-page-hero p { color: #dce7ee; }
.lark-risk-reward .lark-page-hero .lark-eyebrow { color: var(--lark-gold-light); }
.lark-risk-reward .lark-archive-item {
	background: var(--lark-white);
	border: 1px solid var(--lark-line);
	border-top: 3px solid var(--lark-navy-900);
	padding: clamp(20px, 2.5vw, 28px);
}
.lark-risk-reward .lark-sidebar-box {
	border: 1px solid #e4dccb;
	border-top: 4px solid var(--lark-gold);
}
.lark-archive-layout { align-items: start; column-gap: 58px; display: grid; grid-template-areas: "posts filters" "posts secondary"; grid-template-columns: minmax(0,1fr) 270px; grid-template-rows: max-content 1fr; row-gap: 22px; }.lark-archive-list { display: grid; gap: 24px; grid-area: posts; }.lark-blog-filters { grid-area: filters; }.lark-blog-sidebar { grid-area: secondary; }.lark-archive-item { border-bottom: 1px solid var(--lark-line); padding-bottom: 28px; }.lark-archive-item h2 { font-size: 2rem; margin: 10px 0 12px; }.lark-archive-item h2 a { text-decoration: none; }.lark-archive-item p { color: var(--lark-muted); }
.lark-sidebar-box { background: var(--lark-cream-light); border-top: 4px solid var(--lark-gold); padding: 24px; }.lark-sidebar-box + .lark-sidebar-box { margin-top: 22px; }.lark-sidebar-box h2 { font-size: 1.3rem; }.lark-sidebar-list { list-style: none; margin: 0; padding: 0; }.lark-sidebar-list li { border-top: 1px solid #e3ded4; padding-block: 10px; }.lark-sidebar-list a { color: var(--lark-blue); font-size: .86rem; font-weight: 700; text-decoration: none; }.lark-sidebar-tree .children { list-style: none; margin: 8px 0 0; padding-left: 14px; }.lark-sidebar-tree .children li { padding-bottom: 0; }.lark-blog-filter-label { color: var(--lark-navy-950); display: block; font-family: var(--lark-serif); font-size: 1.3rem; font-weight: 700; line-height: 1.2; margin-bottom: 14px; }.lark-blog-filter-select { background: var(--lark-white); border: 1px solid #aebbc4; color: var(--lark-ink); min-height: 48px; padding: 9px 36px 9px 11px; width: 100%; }.lark-archive-index h2 { margin-bottom: 12px; }.lark-archive-index details { border-top: 1px solid #ddd6c8; }.lark-archive-index summary { color: var(--lark-blue); cursor: pointer; font-size: .86rem; font-weight: 800; padding-block: 12px; }.lark-archive-index details[open] summary { color: var(--lark-navy-950); }.lark-archive-index details > ul, .lark-archive-index .wp-tag-cloud { margin-bottom: 12px; }.lark-archive-index .wp-tag-cloud { list-style: none; margin-left: 0; padding-left: 0; }.lark-archive-index .wp-tag-cloud li { border-top: 1px solid #e3ded4; padding-block: 10px; }.lark-archive-index .wp-tag-cloud a { color: var(--lark-blue); font-size: .86rem !important; font-weight: 700; text-decoration: none; }
.lark-article-shell { column-gap: 62px; display: grid; grid-template-columns: minmax(0,760px) 300px; }.lark-article-shell-no-report { display: block; max-width: 840px; }.lark-article-header, .lark-article-body, .lark-disclosure { grid-column: 1; }.lark-related-report { grid-column: 2; grid-row: 1 / span 4; }.lark-article-header { border-bottom: 1px solid var(--lark-line); margin-bottom: 32px; padding-bottom: 28px; }.lark-article-header h1 { font-size: clamp(2.6rem,5vw,4.2rem); }.lark-article-body { font-size: 1.04rem; }.lark-article-body p { margin-bottom: 1.4em; }.lark-report-callout { background: var(--lark-cream); border-left: 5px solid var(--lark-gold); padding: 26px; position: sticky; top: 124px; }.lark-report-callout h2 { font-size: 1.65rem; }.lark-report-callout .lark-price { margin-block: 18px; }.lark-report-callout-actions { display: grid; gap: 16px; }.lark-report-callout-actions .edd_download_purchase_form, .lark-report-callout-actions .edd-submit { margin: 0; width: 100%; }.lark-disclosure { border-top: 1px solid var(--lark-line); color: var(--lark-soft); font-size: .74rem; margin-top: 48px; padding-top: 22px; }
.lark-product-layout { display: grid; gap: 70px; grid-template-columns: minmax(0,1.25fr) minmax(310px,.75fr); }.lark-product-kicker { align-items: center; display: flex; gap: 12px; margin-bottom: 18px; }.lark-product-layout h1 { font-size: clamp(2.7rem,5vw,4.4rem); }.lark-product-content { color: var(--lark-muted); font-size: 1.05rem; }.lark-product-content .edd_download_purchase_form { display: none; }.lark-purchase-card { background: var(--lark-cream); border-top: 5px solid var(--lark-gold); box-shadow: 0 18px 45px rgba(15,46,70,.12); padding: 30px; }.lark-purchase-card > .lark-price { font-size: 2.4rem; }.lark-purchase-card .edd-submit { margin-block: 22px; width: 100%; }.lark-purchase-meta { color: var(--lark-soft); font-size: .78rem; }.lark-purchase-meta div { border-top: 1px solid #dcd1bb; display: flex; justify-content: space-between; padding-block: 11px; }
.lark-checkout-content { max-width: 900px; }.lark-checkout-policy { background: var(--lark-cream-light); border-left: 4px solid var(--lark-gold); margin-bottom: 28px; padding: 18px 20px; }.lark-checkout-policy a { font-weight: 800; }.lark-checkout-content #edd_checkout_form_wrap { display: grid; gap: 22px; }.lark-checkout-content fieldset { border: 1px solid var(--lark-line); padding: 28px; }.lark-checkout-content input[type="text"], .lark-checkout-content input[type="email"], .lark-checkout-content input[type="password"] { border: 1px solid #aebbc4; min-height: 48px; padding: 10px 12px; }
.wpcf7 { margin-top: 32px; max-width: 720px; }
.wpcf7-form > p { margin-bottom: 20px; }
.wpcf7-form label { color: var(--lark-navy-950); display: block; font-family: var(--lark-sans); font-size: .84rem; font-weight: 800; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form textarea { background: var(--lark-white); border: 1px solid #aebbc4; color: var(--lark-ink); display: block; font: inherit; margin-top: 7px; min-height: 48px; padding: 10px 12px; width: 100%; }
.wpcf7-form textarea { min-height: 190px; resize: vertical; }
.wpcf7-form input[type="checkbox"] { margin-right: 8px; }
.wpcf7-form .wpcf7-list-item { margin: 8px 0 0; }
.wpcf7-form input[type="submit"] { background: var(--lark-navy-900); border: 2px solid var(--lark-navy-900); border-radius: 0; color: var(--lark-white); cursor: pointer; font-family: var(--lark-sans); font-weight: 800; min-height: 50px; padding: 12px 24px; }
.wpcf7-form input[type="submit"]:hover, .wpcf7-form input[type="submit"]:focus-visible { background: var(--lark-blue); border-color: var(--lark-blue); }
.wpcf7-not-valid-tip { color: #a12622; display: block; font-size: .82rem; margin-top: 6px; }
.wpcf7 form .wpcf7-response-output { border-color: var(--lark-gold); margin: 24px 0 0; padding: 14px 16px; }
.lark-edd-system-content { max-width: 980px; }.lark-edd-system-content > :first-child { margin-top: 0; }.lark-edd-system-content table { width: 100%; }.lark-edd-system-content .edd-submit { background: var(--lark-navy-900); border-radius: 0; color: var(--lark-white); }
.lark-not-found { max-width: 760px; }.lark-not-found h2 { font-size: 2rem; }.lark-search-form { border-top: 1px solid var(--lark-line); margin-top: 40px; padding-top: 30px; }.lark-search-form .search-form { display: flex; max-width: 520px; }.lark-search-form .search-field { border: 1px solid #aebbc4; flex: 1; min-height: 50px; padding: 10px 12px; }.lark-search-form .search-submit { background: var(--lark-navy-900); border: 0; border-radius: 0; color: var(--lark-white); font-weight: 800; padding-inline: 20px; }

.lark-site-footer { background: var(--lark-navy-950); color: #c8d6df; font-family: var(--lark-sans); padding-top: 66px; }.lark-footer-grid { display: grid; gap: 50px; grid-template-columns: 1.4fr 1fr 1fr; padding-bottom: 52px; }.lark-site-footer .lark-brand-name { color: var(--lark-white); }.lark-footer-brand p { color: #aebfca; font-size: .85rem; margin-top: 18px; max-width: 390px; }.lark-footer-contact a { color: #c8d6df; }.lark-site-footer h2 { color: var(--lark-white); font-family: var(--lark-sans); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }.lark-footer-links { list-style: none; margin: 0; padding: 0; }.lark-footer-links li { margin-block: 9px; }.lark-footer-links a { color: #c8d6df; font-size: .84rem; text-decoration: none; }.lark-footer-bottom { border-top: 1px solid rgba(255,255,255,.13); display: flex; font-size: .72rem; gap: 25px; justify-content: space-between; padding-block: 19px; }
.lark-footer-brand p:first-of-type:not(.lark-footer-contact) { margin-top: 8px; }

body.lark-research-custom-layout .site-content { display: none; }
/* GeneratePress lays out .site-content as a flex row; let theme templates fill it. */
.site-content > .lark-main { flex: 1 1 auto; min-width: 0; width: 100%; }
/* Narrow shells keep the shared left edge instead of centering in the wider main. */
.lark-shell:is(.lark-edd-system-content, .lark-checkout-content, .lark-not-found) { margin-left: max(0px, calc((100% - var(--lark-shell)) / 2)); }

/* Ordinary pages (page.php): text in a readable column; images, figures and tables keep the full width. */
.lark-page-content > * { max-width: 760px; }
.lark-page-content > :is(figure, table, .wp-block-image, .wp-block-table, .wp-block-gallery, .wp-block-columns, .wp-block-embed) { max-width: none; }
.lark-page-content > :first-child { margin-top: 0; }
.lark-page-content > :last-child { margin-bottom: 0; }
.lark-page-content h2 { font-size: clamp(1.6rem, 2.6vw, 2rem); letter-spacing: -.02em; margin: 1.6em 0 .6em; }
.lark-page-content h3 { font-size: 1.35rem; margin: 1.4em 0 .5em; }
.separate-containers .site-main { margin: 0; }

/* The 15px menu needs about 813px; switch to the menu button before it squeezes the logo. */
@media (max-width: 1150px) { .lark-desktop-nav { display: none; }.lark-menu-button { display: inline-flex; } }
@media (max-width: 1050px) { .lark-hero-grid, .lark-product-layout { grid-template-columns: 1fr; }.lark-featured-brief { max-width: 580px; }.lark-post-grid, .lark-report-grid { grid-template-columns: repeat(2,1fr); }.lark-archive-layout, .lark-article-shell { grid-template-columns: 1fr; }.lark-archive-layout { grid-template-areas: "filters" "posts" "secondary"; grid-template-rows: auto; row-gap: 36px; }.lark-article-header, .lark-article-body, .lark-related-report, .lark-disclosure { grid-column: 1; grid-row: auto; }.lark-related-report { margin: 10px 0 34px; }.lark-report-callout { position: static; } }
@media (min-width: 1051px) {
	.lark-hero.lark-section-pad {
		padding-top: clamp(68px, 6vw, 88px);
		padding-bottom: clamp(68px, 6vw, 88px);
	}
}
@media (max-width: 700px) { .lark-main { font-size: 16px; }.lark-utility-inner span:last-child, .lark-brand-tagline { display: none; }.lark-header-inner { min-height: 76px; }.lark-brand-name { font-size: 1.3rem; }.lark-brand-mark { height: 38px; width: 38px; }.lark-hero::after { display: none; }.lark-proof-grid, .lark-post-grid, .lark-report-grid, .lark-institutional-panel, .lark-footer-grid { grid-template-columns: 1fr; }.lark-proof-grid > div + div { border-left: 0; border-top: 1px solid #ddd3bd; }.lark-section-heading { align-items: start; flex-direction: column; }.lark-institutional-panel { gap: 28px; }.lark-footer-bottom { flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; } }
@media (max-width: 700px) { .lark-construction-notice-inner { align-items: center; flex-direction: column; gap: 2px; } }
/* Long page titles stay to two or three lines on phones; matches the prototype's 52px band. */
@media (max-width: 700px) { .lark-page-hero { padding-block: 52px; }.lark-page-hero h1 { font-size: 2.1rem; } }
/* Ordinary and EDD pages: a plain title on white with a gold rule. Section landing pages keep their band. */
.lark-page-hero-compact { background: transparent; border-bottom: 0; padding: 56px 0 0; }
.lark-page-hero-compact h1 { font-size: clamp(2rem, 3.2vw, 2.75rem); margin: 0; }
.lark-page-hero-compact .lark-shell > :last-child { border-bottom: 3px solid var(--lark-gold); max-width: 760px; padding-bottom: 20px; }
.lark-page-body { padding-top: 32px; }
@media (max-width: 700px) { .lark-page-hero-compact { padding: 36px 0 0; }.lark-page-hero-compact h1 { font-size: 1.75rem; }.lark-page-hero-compact .lark-shell > :last-child { padding-bottom: 16px; }.lark-page-body { padding-top: 24px; } }
/* Research Reports, the report archives and 404 (saved Elements or fallbacks) use the same gold-rule title; their label and intro stay. */
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero { background: transparent; border-bottom: 0; padding: 56px 0 0; }
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero h1 { font-size: clamp(2rem, 3.2vw, 2.75rem); }
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero .lark-shell > :last-child { border-bottom: 3px solid var(--lark-gold); max-width: 760px; padding-bottom: 20px; }
/* Report lists sit on white straight under the rule, with no separate pale section. */
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category) .lark-page-hero { padding-bottom: 28px; }
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category) .lark-reports-section { background: transparent; border-block: 0; }
:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category) .lark-page-hero + .lark-section-pad { padding-top: 0; }
.error404 .lark-page-hero + .lark-section-pad { padding-top: 32px; }
@media (max-width: 700px) {
	:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero { padding-top: 36px; }
	:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero h1 { font-size: 1.75rem; }
	:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category, .error404) .lark-page-hero .lark-shell > :last-child { padding-bottom: 16px; }
	:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category) .lark-page-hero { padding-bottom: 24px; }
	:is(.page-template-templatesreports-php, .post-type-archive-download, .tax-download_category) .lark-page-hero + .lark-section-pad { padding-top: 0; }
	.error404 .lark-page-hero + .lark-section-pad { padding-top: 24px; }
}

/* A standalone text section uses its outer Group padding for vertical space.
 * Also covers copies inserted before the pattern specified paragraph margins. */
.lark-native-group > .lark-shell > p:only-child {
    margin-block: 0;
}

/* Match the hero outer gutters without changing the hero itself. */
.lark-text-section { box-sizing: border-box; padding-inline: clamp(1.25rem, 5vw, 4rem); }
.lark-text-section *, .lark-text-section *::before, .lark-text-section *::after { box-sizing: border-box; }
@media (max-width: 768px) { .lark-text-section { padding-inline: 1.25rem; } }

/* Homepage rhythm: one and a quarter section gaps between plain sections (145px
 * desktop, 115px at 1024, 88px phone, inside the usual 96-160 / 64-96 range;
 * 1.1.29 gave 174/105 and 1.1.17 gave 116/70), hero text on the
 * same left edge as the header and cards, and the dark panel as wide as the hero.
 * Coloured bands (hero, reports) keep their own padding. */
.home .lark-hero { padding-inline: 0; }
.home .lark-section-pad:not(.lark-hero, .lark-reports-section) + .lark-section-pad:not(.lark-reports-section) { padding-top: clamp(18px, 2.25vw, 29px); }
/* The last homepage section sits a little closer to the footer. Spacing lives here, not in the Element. */
.home :is(.lark-editor-homepage, main.lark-main) > .lark-section-pad:last-child { padding-bottom: 64px; }
/* Resources cards: category label directly above the title, link at the foot of the card. */
.lark-resources h2 { margin: 0 0 32px; }
.lark-resources .lark-post-card .lark-eyebrow { margin: 0; }
.lark-resources .lark-post-card .lark-resource-link { margin: auto 0 0; }
.home .lark-section-pad > .lark-institutional-panel { max-width: none; }
/* Banner descriptions sit under their headings instead of in a narrow side column. */
.lark-proof-grid > div { align-items: flex-start; flex-direction: column; gap: 6px; justify-content: center; }
@media (max-width: 700px) {
	.home .lark-hero.lark-section-pad { padding-block: 60px; }
	.home .lark-hero-grid { gap: 36px; }
	.home .lark-hero-lede { font-size: 1.05rem; }
	.lark-proof-grid > div { padding: 26px 24px; }
}
