/* ============================================================
   Labour Humanists — theme stylesheet
   Lives at assets/css/theme.css, enqueued by functions.php.
   ============================================================ */

/* ---------- DESIGN TOKENS ----------
   Reproduced from the Labour Humanists design system
   (colors_and_type.css). Edit here to retune the theme. */
:root {
	--lh-red:           #e4003b;
	--lh-red-dark:      #b91732;
	--lh-red-deep:      #6e0a20;
	--lh-red-hover:     #c80034;
	--lh-red-press:     #a00f29;
	--lh-red-wash:      #fde6ec;
	--lh-black:         #212427;
	--lh-white:         #ffffff;

	--lh-ink-90:        #2a2d30;
	--lh-ink-70:        #4a4d50;
	--lh-ink-50:        #7a7d80;
	--lh-ink-30:        #b9bcbf;
	--lh-ink-15:        #dee0e2;
	--lh-ink-08:        #eef0f2;
	--lh-ink-04:        #f6f7f8;

	--bg:               var(--lh-white);
	--bg-muted:         var(--lh-ink-04);
	--bg-inverse:       var(--lh-black);
	--bg-brand:         var(--lh-red);

	--fg:               var(--lh-black);
	--fg-muted:         var(--lh-ink-70);
	--fg-subtle:        var(--lh-ink-50);
	--fg-inverse:       var(--lh-white);
	--fg-brand:         var(--lh-red);

	--border:           var(--lh-ink-15);
	--border-strong:    var(--lh-ink-30);
	--link:             var(--lh-red);
	--link-hover:       var(--lh-red-press);

	--font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto,
				 "Helvetica Neue", Arial, sans-serif;

	--radius-sm: 4px;
	--radius-md: 6px;
	--radius-lg: 10px;
	--radius-pill: 999px;

	--shadow-sm:  0 1px 2px rgba(33,36,39,.06);
	--shadow-md:  0 4px 12px rgba(33,36,39,.08);
	--shadow-lg:  0 14px 36px rgba(33,36,39,.12);
	--shadow-focus: 0 0 0 3px rgba(228,0,59,.35);

	--ease-standard: cubic-bezier(.2,.7,.3,1);
	--dur-fast: 120ms;
	--dur-base: 200ms;
}

/* ---------- BASE ---------- */
* { box-sizing: border-box; }
html, body {
	margin: 0;
	padding: 0;
	font-family: var(--font-sans);
	color: var(--fg);
	background: var(--bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-size: 16px;
	line-height: 1.5;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); }
img { display: block; max-width: 100%; height: auto; }

.screen-reader-text {
	position: absolute !important; clip: rect(1px,1px,1px,1px);
	overflow: hidden; height: 1px; width: 1px; word-wrap: normal;
}

/* ---------- LAYOUT PRIMITIVES ---------- */
.container {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 24px;
}
.container.narrow { max-width: 760px; }
.container.wide   { max-width: 1240px; }

/* Apply the same width logic to Gutenberg-inserted Groups so editors
   composing pages get the right column without thinking about it.
   :is(.lh-page, .is-root-container) wraps the_content(); its direct children are top-level blocks. */
:is(.lh-page, .is-root-container) .wp-block-group:not(.alignwide):not(.alignfull),
:is(.lh-page, .is-root-container) .wp-block-cover:not(.alignwide):not(.alignfull) {
	margin-left: auto;
	margin-right: auto;
}

/* ---------- HEADER ---------- */
.site-header {
	background: #fff;
	border-bottom: 1px solid var(--border);
	padding: 18px 0;
	position: sticky;
	top: 0;
	z-index: 10;
}
.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.site-brand {
	display: flex; align-items: center; gap: 12px;
	text-decoration: none;
}
.site-brand img { height: 44px; width: auto; }
.custom-logo-link img { height: 44px; width: auto; }

.site-nav { display: flex; gap: 22px; align-items: center; }
.site-nav a {
	font-size: 14px;
	font-weight: 600;
	color: var(--fg);
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	transition: color var(--dur-fast) var(--ease-standard);
}
.site-nav a:hover { color: var(--lh-red); }
.site-nav a.active {
	color: var(--lh-red);
	border-bottom-color: var(--lh-red);
}
.site-header .right { display: flex; align-items: center; gap: 14px; }
.search-trigger {
	background: none; border: none; cursor: pointer; padding: 6px;
	color: var(--fg); display: flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 500; font-family: inherit;
}
.search-trigger:hover { color: var(--lh-red); }

.header-search {
	border-top: 1px solid var(--border);
	background: var(--bg-muted);
	padding: 14px 0;
}
.header-search.open { display: block; }
.header-search[hidden].open { display: block; }
.header-search .search-form { display: flex; gap: 8px; max-width: 540px; margin: 0 auto; }
.header-search .field { flex: 1; }

/* ---------- BUTTONS ----------
   Two surfaces: our own .btn elements (in templates) AND
   the core/button block (wp-block-button__link) when given is-style-lh-*. */
.btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center; justify-content: center; gap: 8px;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	padding: 11px 22px;
	border-radius: 6px;
	border: 1.5px solid transparent;
	cursor: pointer;
	text-decoration: none;
	line-height: 1;
	transition: background-color var(--dur-fast) var(--ease-standard),
				color var(--dur-fast) var(--ease-standard),
				transform var(--dur-fast) var(--ease-standard);
}
.btn:active,
.wp-block-button__link:active { transform: translateY(1px); }
.btn:focus-visible,
.wp-block-button__link:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

.btn-primary,
.is-style-lh-primary .wp-block-button__link,
.wp-block-button.is-style-lh-primary .wp-block-button__link {
	background: var(--lh-red);
	color: #fff;
}
.btn-primary:hover,
.is-style-lh-primary .wp-block-button__link:hover {
	background: var(--lh-red-hover);
	color: #fff;
}

.btn-secondary,
.is-style-lh-secondary .wp-block-button__link,
.wp-block-button.is-style-lh-secondary .wp-block-button__link {
	background: transparent;
	color: var(--lh-red);
	border-color: var(--lh-red);
}
.btn-secondary:hover,
.is-style-lh-secondary .wp-block-button__link:hover {
	background: rgba(228,0,59,.06);
	color: var(--lh-red);
}

.btn-ink,
.is-style-lh-ink .wp-block-button__link,
.wp-block-button.is-style-lh-ink .wp-block-button__link {
	background: var(--lh-black); color: #fff;
}
.btn-ink:hover,
.is-style-lh-ink .wp-block-button__link:hover {
	background: var(--lh-ink-70); color: #fff;
}

.btn-lg { font-size: 17px; padding: 14px 28px; }
.btn-sm { font-size: 13px; padding: 7px 14px; }
.is-style-lh-primary.is-size-large .wp-block-button__link,
.is-style-lh-secondary.is-size-large .wp-block-button__link {
	font-size: 17px; padding: 14px 28px;
}

/* ---------- HERO ----------
   Emitted by the home-hero / page-hero block patterns as
   <section class="lh-hero">…</section>. */
.lh-hero {
	background: #fff;
	padding-top: 72px;
	padding-bottom: 56px;
	border-bottom: 1px solid var(--border);
	position: relative;
	overflow: hidden;
}
.lh-hero > .wp-block-group__inner-container,
.lh-hero .container { position: relative; z-index: 1; }
.lh-hero .lh-eyebrow {
	font-size: 13px; font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--lh-red);
	margin: 0 0 14px;
}
.lh-hero h1 {
	font-weight: 800;
	font-size: 56px;
	line-height: 1.04;
	letter-spacing: -0.025em;
	margin: 0 0 18px;
	color: var(--fg);
	max-width: 14ch;
	text-wrap: balance;
}
.lh-hero h1 mark,
.lh-hero h1 .has-lh-red-color {
	background: transparent;
	color: var(--lh-red);
}
.lh-hero .lh-lede {
	font-size: 20px;
	line-height: 1.55;
	color: var(--fg-muted);
	max-width: 60ch;
	margin: 0 0 28px;
	font-weight: 400;
}
.lh-hero .wp-block-buttons { display: flex; gap: 12px; flex-wrap: wrap; }

/* Narrow page-hero variant (used by interior pages) */
.lh-hero.is-narrow h1 { max-width: none; }

/* Rose-wash hero — soft radial tint behind the text, faded rose-mark on the
   right. Used on the home page. Add the .has-rose-bg modifier to the hero
   group block. */
.lh-hero.has-rose-bg {
	background:
		radial-gradient(circle at calc(100% - 120px) 50%, rgba(228,0,59,0.06) 0%, transparent 55%),
		#fff;
	padding-top: 96px;
	padding-bottom: 80px;
}
.lh-hero.has-rose-bg::after {
	content: "";
	position: absolute;
	top: 50%; right: -120px;
	width: 620px; height: 620px;
	transform: translateY(-50%);
	background-image: url("../logos/lh-rose.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: right center;
	opacity: 0.10;
	pointer-events: none;
	z-index: 0;
}
@media (max-width: 880px) {
	.lh-hero.has-rose-bg::after { display: none; }
	.lh-hero.has-rose-bg { padding-top: 56px; padding-bottom: 40px; }
}

/* ---------- SECTION-CLOSE ----------
   A plain closing paragraph at the bottom of a section. Body type,
   left-aligned, sat under the priorities grid on the homepage. */
.lh-section-close {
	margin: 36px 0 0;
	font-size: 17px;
	line-height: 1.65;
	color: var(--fg);
}

/* ---------- SECTIONS ----------
   Block patterns emit <section class="lh-section">…</section>, with
   variants .is-muted, .is-red, .is-ink. */
.lh-section { padding-top: 64px; padding-bottom: 64px; }
.lh-section.is-muted { background: var(--bg-muted); }
.lh-section.is-red   { background: var(--lh-red); color: #fff; }
.lh-section.is-ink   { background: var(--lh-black); color: #fff; }

.lh-section-head { margin-bottom: 32px; max-width: 720px; }
.lh-section-head .lh-eyebrow {
	font-size: 13px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.08em;
	color: var(--lh-red); margin: 0 0 10px;
}
.lh-section.is-red .lh-section-head .lh-eyebrow,
.lh-section.is-ink .lh-section-head .lh-eyebrow { color: #fff; opacity: 0.85; }
.lh-section-head h2 {
	font-weight: 800; font-size: 40px; line-height: 1.1;
	letter-spacing: -0.02em; margin: 0 0 12px;
	text-wrap: balance;
}
.lh-section-head p {
	font-size: 17px; line-height: 1.6; color: var(--fg-muted); margin: 0;
}
.lh-section.is-red .lh-section-head p,
.lh-section.is-ink .lh-section-head p { color: rgba(255,255,255,.85); }

/* ---------- PRIORITY GRID ----------
   Emitted as wp-block-columns with our .lh-priority-grid class so we can
   restyle them at 3-up without affecting other column blocks. */
.lh-priority-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	margin: 0;
}
.lh-priority-grid > .wp-block-column { margin: 0 !important; }

.lh-priority-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 26px;
	display: flex; flex-direction: column;
	transition: box-shadow var(--dur-base) var(--ease-standard),
				transform var(--dur-base) var(--ease-standard);
	height: 100%;
}
.lh-priority-card:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
}
.lh-priority-card .lh-priority-card__icon {
	width: 56px; height: 56px;
	background: var(--lh-red-wash);
	color: var(--lh-red);
	border-radius: 999px;
	display: flex; align-items: center; justify-content: center;
	margin: 0 0 18px;
	font-size: 26px;
	font-weight: 800;
}
.lh-priority-card h3 {
	font-weight: 800; font-size: 22px;
	letter-spacing: -0.01em;
	margin: 0 0 8px;
	color: var(--fg);
}
.lh-priority-card p {
	margin: 0 0 16px;
	font-size: 15px; color: var(--fg-muted); line-height: 1.55;
	flex: 1;
}
.lh-priority-card .lh-priority-card__read {
	font-weight: 600; font-size: 14px; color: var(--lh-red);
	display: inline-flex; gap: 4px; align-items: center;
	margin-top: auto;
}

/* Priorities grid variants ---------------------------------------------
   Hide every card's CTA on /campaigns/ by adding .is-bare to the grid.
   Show "Download briefing" pills instead by adding .has-downloads.        */
.lh-priority-grid.is-bare .lh-priority-card__read,
.lh-priority-grid.is-bare .lh-priority-card__download {
	display: none;
}

/* Download-briefing pill — use on a paragraph or link with class
   .lh-priority-card__download. Editors can drop one of these into any
   card on the priorities page to expose a per-priority briefing PDF. */
.lh-priority-card__download a,
a.lh-priority-card__download {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--lh-red);
	color: #fff;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	transition: background var(--dur-fast) var(--ease-standard);
}
.lh-priority-card__download a:hover,
a.lh-priority-card__download:hover { background: var(--lh-red-hover); color: #fff; }
.lh-priority-card__download a:focus-visible,
a.lh-priority-card__download:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* Priorities-page-specific override — the page is reached by the slug
   "priorities", so body.lh-page-campaigns is set by lh_body_classes(). */
body.lh-page-campaigns .lh-priority-grid .lh-priority-card__read {
	display: none;
}

/* ---------- PROSE — long-form pages (History, Privacy) ---------- */
.lh-prose { max-width: 720px; }
.lh-prose .lh-lede {
	font-size: 21px;
	line-height: 1.55;
	font-weight: 500;
	color: var(--fg);
	margin: 0 0 24px;
}
.lh-prose p { font-size: 17px; line-height: 1.65; color: var(--fg); margin: 0 0 16px; }
.lh-prose a { color: var(--lh-red); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.lh-prose h2 { font-weight: 800; font-size: 32px; letter-spacing: -0.015em; margin: 40px 0 14px; }
.lh-prose h3 { font-weight: 700; font-size: 22px; margin: 28px 0 10px; }
.lh-prose ul { padding-left: 22px; }
.lh-prose li { font-size: 17px; line-height: 1.65; margin-bottom: 8px; }

/* ---------- QUOTE ---------- */
.lh-quote {
	background: var(--bg-muted);
	border-radius: 10px;
	padding: 32px 36px;
	border-left: 4px solid var(--lh-red);
}
.lh-quote blockquote,
.lh-quote.wp-block-quote {
	margin: 0; border: 0; padding: 0;
	font-size: 22px; line-height: 1.45;
	font-weight: 500; letter-spacing: -.005em;
	color: var(--fg);
}
.lh-quote cite,
.lh-quote.wp-block-quote cite {
	display: block;
	margin-top: 14px;
	font-style: normal;
	font-size: 13px; color: var(--fg-muted);
	font-weight: 600;
}

/* ---------- BACKERS ---------- */
.lh-backers {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin: 32px 0 0;
}
.lh-backers > .wp-block-column { margin: 0 !important; }
.lh-backer {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 10px;
	padding: 22px;
	text-align: center;
	height: 100%;
}
.lh-backer .lh-backer__avatar {
	width: 64px; height: 64px;
	border-radius: 999px;
	background: var(--lh-red-wash);
	margin: 0 auto 12px;
	color: var(--lh-red);
	display: flex; align-items: center; justify-content: center;
	font-weight: 800; font-size: 22px;
}
.lh-backer .lh-backer__name { font-weight: 700; font-size: 14px; color: var(--fg); margin: 0; }
.lh-backer .lh-backer__role { font-size: 12px; color: var(--fg-muted); margin: 2px 0 0; }

/* Portrait variant — photo slot on top, name + role below. The photo slot is
   a core/image block; when empty it shows Gutenberg's "Add Image" placeholder
   in the editor, and a soft red-wash circle on the front-end. */
.lh-backers.lh-backers--portrait {
	grid-template-columns: repeat(4, 1fr);
}
.lh-backer.lh-backer--portrait {
	padding: 18px 16px 22px;
}
.lh-backer__photo {
	width: 96px;
	height: 96px;
	margin: 0 auto 14px;
	border-radius: 999px;
	overflow: hidden;
	background: var(--lh-red-wash);
	display: flex;
	align-items: center;
	justify-content: center;
}
.lh-backer__photo .wp-block-image,
.lh-backer__photo .wp-block-image figure,
.lh-backer__photo figure { margin: 0; width: 100%; height: 100%; }
.lh-backer__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
/* Empty image fallback — render the silhouette via CSS mask so we never
   ship an extra HTTP request for a placeholder image. */
.lh-backer__photo figure:empty::before,
.lh-backer__photo:has(figure:not(:has(img)))::before {
	content: "";
	display: block;
	width: 100%; height: 100%;
	background: var(--lh-red);
	opacity: .35;
	-webkit-mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%),
			radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
			mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%),
			radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
	-webkit-mask-composite: source-over;
			mask-composite: add;
}

/* ---------- HONORARY PRESIDENT featured panel ---------- */
.lh-honorary {
	background: #fff;
	border: 1px solid var(--border);
	border-left: 4px solid var(--lh-red);
	border-radius: 12px;
	padding: 36px;
	display: grid !important;
	grid-template-columns: 220px 1fr;
	gap: 36px;
	align-items: center;
	box-shadow: var(--shadow-sm);
}
.lh-honorary__photo {
	width: 220px;
	height: 220px;
	border-radius: 999px;
	overflow: hidden;
	background: var(--lh-red-wash);
}
.lh-honorary__photo .wp-block-image,
.lh-honorary__photo figure { margin: 0; width: 100%; height: 100%; }
.lh-honorary__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.lh-honorary__photo figure:empty::before {
	content: "";
	display: block;
	width: 100%; height: 100%;
	background: var(--lh-red);
	opacity: .35;
	-webkit-mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%),
			radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
			mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%),
			radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
}
.lh-honorary__body .lh-eyebrow {
	color: var(--lh-red);
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}
.lh-honorary__body h2 {
	font-weight: 800;
	font-size: 36px;
	letter-spacing: -.02em;
	line-height: 1.1;
	margin: 0 0 6px;
}
.lh-honorary__title {
	font-weight: 600;
	font-size: 15px;
	color: var(--lh-red-dark);
	margin: 0 0 16px;
}
.lh-honorary__bio {
	font-size: 16px;
	line-height: 1.6;
	color: var(--fg);
	margin: 0;
	max-width: 60ch;
	text-wrap: pretty;
}

/* ---------- FORM (Join page — paste-in HTML, or via Contact Form 7 etc.) ---------- */
.lh-form {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 32px;
	max-width: 560px;
	margin: 0 auto;
}
.lh-form .row { display: grid; gap: 14px; }
.lh-form .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lh-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--fg); }
.lh-form .field,
.lh-form input[type="text"],
.lh-form input[type="email"],
.lh-form input[type="search"],
.lh-form select,
.lh-form textarea {
	width: 100%;
	padding: 11px 14px;
	font-family: inherit;
	font-size: 15px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: #fff;
	color: var(--fg);
	transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.lh-form .field:focus,
.lh-form input:focus,
.lh-form select:focus,
.lh-form textarea:focus {
	outline: none;
	border-color: var(--lh-red);
	box-shadow: 0 0 0 3px rgba(228,0,59,.18);
}
.lh-form .check {
	display: flex; gap: 10px; align-items: flex-start;
	font-size: 14px; color: var(--fg-muted); line-height: 1.5;
}
.lh-form .check input { accent-color: var(--lh-red); margin-top: 3px; }
.lh-form .help { font-size: 12px; color: var(--fg-muted); margin-top: 4px; }
.lh-form .submit, .lh-form button[type="submit"] { width: 100%; }

/* ---------- Mailchimp embedded-form styling ----------
   Mailchimp's "Classic" embed code uses #mc_embed_signup as the root and
   .mc-field-group around each label+input. We style those directly so the
   user can paste Mailchimp HTML inside .lh-form--mailchimp without renaming
   anything. */
.lh-form--mailchimp #mc_embed_signup,
.lh-form--mailchimp #mc_embed_signup_scroll {
	background: transparent;
	font: inherit;
}
.lh-form--mailchimp #mc_embed_signup h2 {
	font-weight: 700;
	font-size: 18px;
	color: var(--fg);
	letter-spacing: -.005em;
	margin: 0 0 4px;
}
.lh-form--mailchimp #mc_embed_signup .indicates-required {
	font-size: 12px;
	color: var(--fg-muted);
	margin: 0 0 14px;
	text-align: left;
}
.lh-form--mailchimp #mc_embed_signup .asterisk {
	color: var(--lh-red);
	font-weight: 700;
}
.lh-form--mailchimp .mc-field-group {
	margin: 0 0 14px;
	padding: 0;
	width: 100%;
}
.lh-form--mailchimp .mc-field-group label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 6px;
	color: var(--fg);
}
.lh-form--mailchimp .mc-field-group input,
.lh-form--mailchimp .mc-field-group select,
.lh-form--mailchimp .mc-field-group textarea {
	width: 100%;
	padding: 11px 14px;
	font-family: inherit;
	font-size: 15px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: #fff;
	color: var(--fg);
	transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.lh-form--mailchimp .mc-field-group input:focus,
.lh-form--mailchimp .mc-field-group select:focus,
.lh-form--mailchimp .mc-field-group textarea:focus {
	outline: none;
	border-color: var(--lh-red);
	box-shadow: 0 0 0 3px rgba(228,0,59,.18);
}
/* Mailchimp's address sub-field rows */
.lh-form--mailchimp .mc-address-group { display: grid; gap: 12px; }
.lh-form--mailchimp .mc-address-group .mc-field-group { margin: 0; }
.lh-form--mailchimp .mc-address-group .mc-field-group.size1of2 { width: 100%; }
@media (min-width: 560px) {
	.lh-form--mailchimp .mc-address-group { grid-template-columns: 1fr 1fr; }
	.lh-form--mailchimp .mc-address-group .mc-field-group:first-child,
	.lh-form--mailchimp .mc-address-group .mc-field-group.mc-address {
		grid-column: 1 / -1;
	}
}
/* Birthday split fields */
.lh-form--mailchimp .datefield input { display: inline-block; width: auto; min-width: 64px; }
/* Yes/No (radio) groups */
.lh-form--mailchimp .mc-field-group.input-group ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 24px;
}
.lh-form--mailchimp .mc-field-group.input-group li {
	margin: 0;
}
.lh-form--mailchimp .mc-field-group.input-group label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 500;
	font-size: 15px;
	margin: 0;
	cursor: pointer;
}
.lh-form--mailchimp .mc-field-group.input-group input[type="radio"],
.lh-form--mailchimp .mc-field-group.input-group input[type="checkbox"] {
	accent-color: var(--lh-red);
	width: auto;
	padding: 0;
	margin: 0;
}
/* GDPR consent section */
.lh-form--mailchimp #mergeRow-gdpr,
.lh-form--mailchimp .mergeRow-gdpr {
	background: var(--bg-muted);
	border-radius: 6px;
	padding: 14px;
	margin: 14px 0;
}
.lh-form--mailchimp .content__gdprLegend {
	font-size: 13px;
	font-weight: 700;
	color: var(--fg);
	margin: 0 0 8px;
}
.lh-form--mailchimp .content__gdprBlock {
	font-size: 13px;
	color: var(--fg-muted);
	margin: 0 0 8px;
}
/* Submit button — Mailchimp emits #mc-embedded-subscribe */
.lh-form--mailchimp #mc-embedded-subscribe,
.lh-form--mailchimp input[type="submit"].button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	font-family: inherit;
	font-weight: 600;
	font-size: 17px;
	padding: 14px 28px;
	border-radius: 6px;
	border: 1.5px solid transparent;
	background: var(--lh-red);
	color: #fff;
	cursor: pointer;
	line-height: 1;
	transition: background-color var(--dur-fast) var(--ease-standard);
	height: auto;
	margin-top: 8px;
}
.lh-form--mailchimp #mc-embedded-subscribe:hover,
.lh-form--mailchimp input[type="submit"].button:hover {
	background: var(--lh-red-hover);
}
/* Mailchimp's small print under the submit */
.lh-form--mailchimp #mc_embed_signup .brandingLogo,
.lh-form--mailchimp #mc_embed_signup #mc-embedded-subscribe-form .small-meta { display: none; }
.lh-form--mailchimp #mce-responses {
	font-size: 14px;
	margin: 14px 0 0;
}

/* ---------- TIMELINE (history page) ---------- */
.lh-timeline { border-left: 2px solid var(--lh-red); padding-left: 24px; margin-top: 24px; }
.lh-timeline__entry { position: relative; padding-bottom: 28px; }
.lh-timeline__entry::before {
	content: ''; position: absolute; left: -32px; top: 4px;
	width: 14px; height: 14px; border-radius: 999px;
	background: var(--lh-red); border: 3px solid #fff;
	box-shadow: 0 0 0 1px var(--lh-red);
}
.lh-timeline__year { font-weight: 800; font-size: 14px; color: var(--lh-red); letter-spacing: .04em; }
.lh-timeline__entry h4 { font-weight: 700; font-size: 18px; margin: 4px 0; }
.lh-timeline__entry p { font-size: 15px; line-height: 1.55; color: var(--fg-muted); margin: 0; }

/* ---------- FOOTER ---------- */
.site-footer {
	background: #fff;
	border-top: 3px solid var(--lh-red);
	color: var(--fg);
	padding: 56px 0 28px;
	margin-top: 0;
}
.site-footer .logo img { height: 52px; width: auto; }
.site-footer h3 {
	font-weight: 800; font-size: 28px; letter-spacing: -.015em;
	margin: 22px 0 10px; max-width: 30ch;
	color: var(--fg);
}
.site-footer p { font-size: 15px; max-width: 56ch; color: var(--fg-muted); margin: 0 0 24px; line-height: 1.55; }
.site-footer .row {
	display: flex; justify-content: space-between; align-items: flex-end; gap: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--border);
}
.site-footer .links { display: flex; gap: 22px; flex-wrap: wrap; }
.site-footer .links a { color: var(--fg); font-weight: 500; font-size: 14px; }
.site-footer .links a:hover { color: var(--lh-red); text-decoration: underline; }
.site-footer .copy { font-size: 13px; color: var(--fg-muted); }
.site-footer .social { display: flex; gap: 10px; margin-bottom: 20px; }
.site-footer .social a {
	width: 36px; height: 36px;
	border: 1px solid var(--border);
	border-radius: 999px;
	display: flex; align-items: center; justify-content: center;
	color: var(--fg);
}
.site-footer .social a:hover { color: var(--lh-red); border-color: var(--lh-red); }

/* ---------- SKIP LINK ---------- */
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
	left: 8px; top: 8px; z-index: 99;
	background: #fff; color: var(--lh-red); padding: 8px 14px;
	border-radius: 6px; font-weight: 700;
}

/* ---------- WP CORE BLOCK NORMALISATION ----------
   Ensure stock blocks placed outside our patterns still feel on-brand. */
body { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1 0 auto; }
:is(.lh-page, .is-root-container) > :first-child:not(.lh-hero):not(.lh-section):not(.wp-block-group) { margin-top: 64px; }
:is(.lh-page, .is-root-container) > :last-child:not(.lh-hero):not(.lh-section):not(.wp-block-group) { margin-bottom: 64px; }
:is(.lh-page, .is-root-container) > p { margin-top: 0; margin-bottom: 16px; }
:is(.lh-page, .is-root-container) p,
:is(.lh-page, .is-root-container) li { font-size: 17px; line-height: 1.55; }
:is(.lh-page, .is-root-container) > .wp-block-paragraph,
:is(.lh-page, .is-root-container) > .wp-block-heading,
:is(.lh-page, .is-root-container) > p,
:is(.lh-page, .is-root-container) > h2,
:is(.lh-page, .is-root-container) > h3 {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

/* The Gutenberg cover block respects our red palette without extra work. */
.wp-block-cover.is-style-lh-red-block {
	background: var(--lh-red);
	color: #fff;
	min-height: auto;
	padding: 88px 24px 80px;
}
.wp-block-cover.is-style-lh-red-block .wp-block-cover__inner-container { max-width: 1080px; margin: 0 auto; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 880px) {
	.lh-hero h1 { font-size: 42px; }
	.lh-priority-grid { grid-template-columns: 1fr 1fr; }
	.lh-backers,
	.lh-backers.lh-backers--portrait { grid-template-columns: 1fr 1fr; }
	.lh-section-head h2 { font-size: 30px; }
	.lh-honorary {
		grid-template-columns: 1fr;
		gap: 20px;
		text-align: center;
		padding: 28px;
	}
	.lh-honorary__photo { margin: 0 auto; width: 160px; height: 160px; }
	.lh-honorary__body h2 { font-size: 28px; }
	.lh-honorary__bio { max-width: none; text-align: left; }
}
@media (max-width: 560px) {
	.lh-priority-grid { grid-template-columns: 1fr; }
	.lh-backers { grid-template-columns: 1fr; }
	.lh-hero { padding-top: 48px; padding-bottom: 36px; }
	.lh-hero h1 { font-size: 32px; }
	.site-header .container { gap: 12px; flex-wrap: wrap; }
	.site-nav { font-size: 13px; gap: 14px; flex-wrap: wrap; }
	.site-footer .row { flex-direction: column; align-items: flex-start; }
	.lh-section { padding-top: 48px; padding-bottom: 48px; }
}


/* ============================================================
   WORDPRESS LAYOUT COMPATIBILITY (v1.0.2)
   Classic themes get (a) .wp-block-group__inner-container wrappers on
   default/constrained groups and (b) "constrained" layout rules that
   centre narrower children with margin:auto !important. Both break the
   left-aligned, gridded design — normalised here.
   ============================================================ */

/* Our sections own their content width via side padding. */
.lh-hero, .lh-section {
	--lh-w: 1080px;
	padding-left: max(24px, calc((100% - var(--lh-w)) / 2));
	padding-right: max(24px, calc((100% - var(--lh-w)) / 2));
}
.lh-hero.is-narrow,
.lh-section:has(.lh-quote),
.lh-section:has(.lh-prose),
.lh-section:has(.lh-form),
.lh-section:has(.lh-timeline) { --lh-w: 760px; }

/* Stop WP centring narrow children — keep everything left-aligned. */
:is(.lh-page, .is-root-container) :is(.lh-hero, .lh-section).is-layout-constrained > *,
:is(.lh-page, .is-root-container) :is(.lh-hero, .lh-section) > .wp-block-group__inner-container,
:is(.lh-page, .is-root-container) :is(.lh-hero, .lh-section) .is-layout-constrained > *,
:is(.lh-page, .is-root-container) :is(.lh-hero, .lh-section) .wp-block-group__inner-container > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
:is(.lh-page, .is-root-container) :is(.lh-hero, .lh-section) > .wp-block-group__inner-container { max-width: none; }

/* Grids: apply the grid to the inner wrapper when WP adds one. */
.lh-priority-grid:has(> .wp-block-group__inner-container),
.lh-backers:has(> .wp-block-group__inner-container) { display: block !important; }
.lh-priority-grid > .wp-block-group__inner-container {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px;
}
.lh-backers > .wp-block-group__inner-container {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px;
}
.lh-priority-grid > *, .lh-backers > *,
.lh-priority-grid > .wp-block-group__inner-container > *,
.lh-backers > .wp-block-group__inner-container > * { margin: 0 !important; max-width: none !important; }

/* Cards: keep the flex column (CTA pinned to bottom) through the wrapper. */
.lh-priority-card > .wp-block-group__inner-container {
	display: flex; flex-direction: column; height: 100%;
}
.lh-priority-card > .wp-block-group__inner-container > p:not(.lh-priority-card__read):not(.lh-priority-card__download) { flex: 1; }

@media (max-width: 880px) {
	.lh-priority-grid > .wp-block-group__inner-container,
	.lh-backers > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.lh-priority-grid > .wp-block-group__inner-container,
	.lh-backers > .wp-block-group__inner-container { grid-template-columns: 1fr; }
}


/* ============================================================
   v1.0.3 — real-content components + legacy content tidy
   ============================================================ */
/* Priority card icon images (your existing line-art PNGs) */
.lh-priority-card .lh-priority-card__img { margin: 0 0 18px !important; }
.lh-priority-card .lh-priority-card__img img { width: 64px; height: 64px; object-fit: contain; }
.lh-priority-card .lh-priority-card__intro { color: var(--fg); font-weight: 500; flex: 0 0 auto; margin-bottom: 10px; }
.lh-priority-card p { flex: 0 0 auto; }

/* Backer photo slot = core/image block with class lh-backer__photo */
figure.lh-backer__photo { margin: 0 auto 14px !important; position: relative; }
figure.lh-backer__photo img:not([src]), figure.lh-backer__photo img[src=""] { display: none; }
figure.lh-backer__photo:not(:has(img[src]))::before {
	content: ""; position: absolute; inset: 0;
	background: var(--lh-red); opacity: .35;
	-webkit-mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%), radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
	        mask: radial-gradient(circle at 50% 38%, #000 22%, transparent 23%), radial-gradient(ellipse 56% 50% at 50% 110%, #000 60%, transparent 61%);
}
.lh-backer .lh-backer__name { font-size: 15px; line-height: 1.3; }
.lh-backer .lh-backer__role { line-height: 1.4; margin-top: 4px; }

/* Video inside prose */
.lh-video, .lh-prose .wp-block-video { margin: 8px 0 28px !important; }
.lh-video video, .lh-prose .wp-block-video video { width: 100%; border-radius: 10px; display: block; background: var(--lh-black); }

/* Legacy (unconverted) page content: keep it in a readable column
   instead of bleeding to the window edges. */
:is(.lh-page, .is-root-container) > :not(.lh-hero):not(.lh-section):not(.wp-block-group) {
	box-sizing: border-box;
	max-width: 768px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px;
	padding-right: 24px;
}
:is(.lh-page, .is-root-container) > .alignwide, :is(.lh-page, .is-root-container) > .alignfull,
:is(.lh-page, .is-root-container) > .wp-block-columns, :is(.lh-page, .is-root-container) > .wp-block-media-text { max-width: 1128px; }
:is(.lh-page, .is-root-container) > .wp-block-media-text { gap: 32px; }
:is(.lh-page, .is-root-container) > .wp-block-media-text .wp-block-media-text__content { padding: 0; }
:is(.lh-page, .is-root-container) > h1, :is(.lh-page, .is-root-container) > h2, :is(.lh-page, .is-root-container) > h3 { line-height: 1.2; letter-spacing: -.015em; }


/* ============================================================
   v1.0.4 — match prototype on live content
   (WP prints its layout rules after this file, so selectors here
   are deliberately more specific.)
   ============================================================ */

/* 1. Interior hero aligns with the grid that follows it */
:is(.lh-page, .is-root-container) .lh-hero.is-narrow:has(+ .lh-section .lh-priority-grid),
:is(.lh-page, .is-root-container) .lh-hero.is-narrow:has(+ .lh-section .lh-backers) { --lh-w: 1080px; }
:is(.lh-page, .is-root-container) .lh-hero .lh-lede { max-width: 60ch; }

/* Section intro keeps a readable measure */
:is(.lh-page, .is-root-container) .lh-section .lh-section-head { max-width: 720px; }

/* 2. Priority cards */
:is(.lh-page, .is-root-container) .lh-priority-card .wp-block-group__inner-container > p,
:is(.lh-page, .is-root-container) .lh-priority-card > p { flex: 0 0 auto !important; }
:is(.lh-page, .is-root-container) .lh-priority-card .lh-priority-card__img {
	width: 64px !important; height: 64px !important; max-width: none !important;
	border-radius: 999px; background: var(--lh-red-wash);
	display: flex !important; align-items: center; justify-content: center;
	margin: 0 0 18px !important; flex: 0 0 auto;
}
:is(.lh-page, .is-root-container) .lh-priority-card .lh-priority-card__img img {
	width: 40px !important; height: 40px !important; max-width: none !important;
	object-fit: contain;
}
:is(.lh-page, .is-root-container) .lh-priority-card .lh-priority-card__intro {
	font-size: 15px; font-weight: 500; color: var(--fg); margin: 0 0 10px;
}
:is(.lh-page, .is-root-container) .lh-priority-card h3 { margin: 0 0 10px; }

/* 3. Backer photo placeholder when no photo uploaded yet */
:is(.lh-page, .is-root-container) .lh-backer--portrait:not(:has(img)):not(:has(> .wp-block-group__inner-container))::before,
:is(.lh-page, .is-root-container) .lh-backer--portrait:not(:has(img)) > .wp-block-group__inner-container::before {
	content: ""; display: block;
	width: 96px; height: 96px; margin: 0 auto 14px; border-radius: 999px;
	background:
		radial-gradient(circle at 50% 38%, rgba(228,0,59,.32) 21%, transparent 22%),
		radial-gradient(ellipse 56% 50% at 50% 110%, rgba(228,0,59,.32) 60%, transparent 61%),
		var(--lh-red-wash);
}
:is(.lh-page, .is-root-container) .lh-backer--portrait { padding: 22px 16px 22px; }
:is(.lh-page, .is-root-container) figure.lh-backer__photo { width: 96px !important; height: 96px !important; max-width: none !important; }


/* ============================================================
   v1.0.6 — final prototype parity
   ============================================================ */
/* Backer photo: centred circle */
:is(.lh-page, .is-root-container) .lh-backer figure.lh-backer__photo,
:is(.lh-page, .is-root-container) .lh-backer .wp-block-group__inner-container > figure.lh-backer__photo {
	margin: 0 auto 14px !important;
	width: 96px !important; height: 96px !important;
	border-radius: 999px; overflow: hidden; display: block;
}
:is(.lh-page, .is-root-container) .lh-backer figure.lh-backer__photo img {
	width: 100% !important; height: 100% !important; object-fit: cover; display: block;
}
:is(.lh-page, .is-root-container) .lh-backer { text-align: center; }

/* Priority card icon (inline SVG) */
:is(.lh-page, .is-root-container) .lh-priority-card .lh-priority-card__icon {
	width: 56px; height: 56px; border-radius: 999px;
	background: var(--lh-red-wash); color: var(--lh-red);
	display: flex; align-items: center; justify-content: center;
	margin: 0 0 18px !important; flex: 0 0 auto;
}

/* Priority card text — one consistent body style */
:is(.lh-page, .is-root-container) .lh-priority-card p {
	font-size: 15px !important; line-height: 1.55 !important;
	color: var(--fg-muted); font-weight: 400; margin: 0 0 12px !important;
}
:is(.lh-page, .is-root-container) .lh-priority-card p.lh-priority-card__intro { color: var(--fg); font-weight: 500; }
:is(.lh-page, .is-root-container) .lh-priority-card h3 {
	font-size: 22px; font-weight: 800; letter-spacing: -.01em; margin: 0 0 10px !important;
}

/* Section intro paragraphs keep their spacing */
:is(.lh-page, .is-root-container) .lh-section-head p {
	font-size: 17px !important; line-height: 1.6 !important; color: var(--fg-muted);
	margin: 0 0 12px !important;
}
:is(.lh-page, .is-root-container) .lh-section-head p:last-child { margin-bottom: 0 !important; }
:is(.lh-page, .is-root-container) .lh-section-head .lh-eyebrow {
	font-size: 13px !important; color: var(--lh-red); margin: 0 0 10px !important;
}


/* v1.0.7 — rose wash on every page hero (matches prototype) */
:is(.lh-page, .is-root-container) .lh-hero {
	position: relative; overflow: hidden;
	background: radial-gradient(circle at calc(100% - 120px) 50%, rgba(228,0,59,0.06) 0%, transparent 55%), #fff;
}
:is(.lh-page, .is-root-container) .lh-hero::after {
	content: ""; position: absolute; top: 50%; right: -120px;
	width: 620px; height: 620px; transform: translateY(-50%);
	background: url("../logos/lh-rose.png") no-repeat right center / contain;
	opacity: 0.10; pointer-events: none; z-index: 0;
}
:is(.lh-page, .is-root-container) .lh-hero > * { position: relative; z-index: 1; }
@media (max-width: 880px) {
	:is(.lh-page, .is-root-container) .lh-hero::after { display: none; }
}


/* v1.0.8 — Mailchimp embed: beat Mailchimp's classic CSS (ID selectors) */
.lh-form--mailchimp { background:#fff; border:1px solid var(--border); border-radius:12px; padding:32px; }
.lh-form--mailchimp .lh-form__heading { font-size:18px !important; font-weight:700; color:var(--fg) !important; margin:0 0 4px !important; }
.lh-form--mailchimp #mc_embed_signup { width:auto !important; font:inherit !important; background:transparent !important; clear:none !important; }
.lh-form--mailchimp #mc_embed_signup form { padding:0 !important; }
.lh-form--mailchimp #mc_embed_signup .indicates-required { text-align:left !important; font-size:12px !important; color:var(--fg-muted); margin:0 0 16px !important; }
.lh-form--mailchimp #mc_embed_signup .asterisk { color:var(--lh-red) !important; top:0 !important; font-size:inherit !important; }
.lh-form--mailchimp #mc_embed_signup .mc-field-group { width:100% !important; padding-bottom:0 !important; margin:0 0 14px !important; min-height:0 !important; }
.lh-form--mailchimp #mc_embed_signup .mc-field-group label, .lh-form--mailchimp #mc_embed_signup .mc-field-group > strong {
	display:block !important; font-size:13px !important; font-weight:600 !important; color:var(--fg) !important; margin:0 0 6px !important; padding:0 !important;
}
.lh-form--mailchimp #mc_embed_signup .mc-field-group input[type=text], .lh-form--mailchimp #mc_embed_signup .mc-field-group input[type=email], .lh-form--mailchimp #mc_embed_signup .mc-field-group select {
	width:100% !important; box-sizing:border-box; padding:11px 14px !important; text-indent:0 !important;
	font-family:inherit !important; font-size:15px !important; color:var(--fg) !important;
	background:#fff !important; border:1px solid var(--border) !important; border-radius:6px !important; height:auto !important;
}
.lh-form--mailchimp #mc_embed_signup .mc-field-group input:focus, .lh-form--mailchimp #mc_embed_signup .mc-field-group select:focus {
	outline:none !important; border-color:var(--lh-red) !important; box-shadow:0 0 0 3px rgba(228,0,59,.18) !important;
}
.lh-form--mailchimp #mc_embed_signup .mc-address-group { display:block; }
.lh-form--mailchimp #mc_embed_signup .mc-address-fields-group { display:grid !important; grid-template-columns:1fr 1fr 1fr; gap:12px; margin:0 0 14px; }
.lh-form--mailchimp #mc_embed_signup .mc-address-fields-group .mc-field-group { margin:0 !important; }
.lh-form--mailchimp #mc_embed_signup .datefield { display:flex !important; align-items:center; gap:8px; color:var(--fg-muted); }
.lh-form--mailchimp #mc_embed_signup .datefield .subfield { display:block; }
.lh-form--mailchimp #mc_embed_signup .datefield input { width:64px !important; text-align:center; }
.lh-form--mailchimp #mc_embed_signup .datefield .small-meta { display:inline !important; font-size:12px !important; color:var(--fg-muted); }
.lh-form--mailchimp #mc_embed_signup .size1of2 { width:100% !important; margin-right:0 !important; }
.lh-form--mailchimp #mc_embed_signup .input-group ul { list-style:none !important; padding:0 !important; margin:0 !important; display:flex !important; gap:24px; }
.lh-form--mailchimp #mc_embed_signup .input-group ul li { display:flex !important; align-items:center; gap:8px; padding:0 !important; margin:0 !important; }
.lh-form--mailchimp #mc_embed_signup .input-group input[type=radio] { accent-color:var(--lh-red); margin:0 !important; width:auto !important; }
.lh-form--mailchimp #mc_embed_signup .input-group label { display:inline !important; margin:0 !important; font-weight:500 !important; font-size:15px !important; }
.lh-form--mailchimp #mc_embed_signup #mc-embedded-subscribe, .lh-form--mailchimp #mc_embed_signup .button {
	width:100% !important; height:auto !important; margin:10px 0 0 !important; padding:14px 28px !important;
	background:var(--lh-red) !important; color:#fff !important; border:0 !important; border-radius:6px !important;
	font-family:inherit !important; font-size:17px !important; font-weight:600 !important; line-height:1 !important; cursor:pointer;
}
.lh-form--mailchimp #mc_embed_signup #mc-embedded-subscribe:hover, .lh-form--mailchimp #mc_embed_signup .button:hover { background:var(--lh-red-hover) !important; }
.lh-form--mailchimp #mc_embed_signup #mce-responses { margin:12px 0 0 !important; padding:0 !important; width:100% !important; }
.lh-form--mailchimp #mc_embed_signup #mce-responses .response { margin:0 !important; padding:12px 14px !important; border-radius:6px; font-size:14px; width:auto !important; }
.lh-form--mailchimp #mc_embed_signup #mce-error-response { background:var(--lh-red-wash) !important; color:var(--lh-red-dark) !important; }
.lh-form--mailchimp #mc_embed_signup #mce-success-response { background:#e8f5ee !important; color:#1f6b46 !important; }
.lh-form--mailchimp #mc_embed_signup div.mce_inline_error { background:transparent !important; color:var(--lh-red) !important; padding:4px 0 0 !important; font-weight:500 !important; }
@media (max-width:560px){ .lh-form--mailchimp #mc_embed_signup .mc-address-fields-group { grid-template-columns:1fr; } .lh-form--mailchimp { padding:22px; } }


/* v1.0.9 — History page parity with prototype */
/* Hero sits on the main 1080 grid (like the prototype), prose stays a narrow column */
:is(.lh-page, .is-root-container) .lh-hero.is-narrow:has(+ .lh-section .lh-timeline),
:is(.lh-page, .is-root-container) .lh-hero.is-narrow:has(+ .lh-section .lh-prose) { --lh-w: 1080px; }
:is(.lh-page, .is-root-container) .lh-hero.is-narrow h1 { max-width: 20ch; }
/* Prose lede as in prototype */
:is(.lh-page, .is-root-container) .lh-prose .lh-lede { font-size: 21px !important; line-height: 1.55 !important; font-weight: 500; color: var(--fg); margin: 0 0 24px !important; }
:is(.lh-page, .is-root-container) .lh-prose p:not(.lh-lede) { font-size: 17px !important; line-height: 1.65 !important; }
/* Video: left-aligned, sensible size */
:is(.lh-page, .is-root-container) .lh-prose .wp-block-video,
:is(.lh-page, .is-root-container) .lh-prose .lh-video {
	max-width: 560px !important; margin: 0 auto 28px 0 !important;
}


/* v1.0.11 — header search bar */
.header-search { padding: 16px 0 !important; }
.header-search .search-form {
	display: flex !important; align-items: stretch; gap: 10px;
	width: 100% !important; max-width: 640px !important; margin: 0 auto !important;
}
.header-search .search-form input[type="search"],
.header-search .search-form .field {
	flex: 1 1 auto !important; width: auto !important; min-width: 0 !important;
	padding: 11px 16px !important; font-family: inherit !important; font-size: 15px !important;
	color: var(--fg); background: #fff !important;
	border: 1px solid var(--border-strong) !important; border-radius: 6px !important;
	-webkit-appearance: none; appearance: none;
}
.header-search .search-form input[type="search"]::placeholder { color: var(--fg-subtle); opacity: 1; }
.header-search .search-form input[type="search"]:focus {
	outline: none !important; border-color: var(--lh-red) !important; box-shadow: 0 0 0 3px rgba(228,0,59,.18) !important;
}
.header-search .search-form .btn { flex: 0 0 auto; padding: 11px 22px; font-size: 15px; }

/* ---------- MOBILE NAV (v1.0.12) ---------- */
.nav-toggle{display:none}
@media (max-width:960px){
.site-header .container{flex-wrap:nowrap;gap:12px}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:none;border:1px solid var(--border);border-radius:8px;color:var(--fg);cursor:pointer;flex-shrink:0}
.nav-toggle:hover{color:var(--lh-red);border-color:var(--lh-red)}
.nav-toggle .bars{position:relative;width:18px;height:2px;background:currentColor;border-radius:2px;transition:background-color var(--dur-fast)}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform var(--dur-fast) var(--ease-standard)}
.nav-toggle .bars::before{top:-6px}.nav-toggle .bars::after{top:6px}
.nav-toggle[aria-expanded="true"] .bars{background:transparent}
.nav-toggle[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
.site-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 12px 24px rgba(0,0,0,.08);padding:6px 0;z-index:20}
.site-nav.open{display:flex}
.site-nav a{font-size:16px;padding:14px 24px;border-bottom:none;border-left:3px solid transparent}
.site-nav a.active{border-left-color:var(--lh-red);background:rgba(228,0,59,.05)}
.site-header .right{gap:8px}
.search-trigger{width:44px;height:44px;justify-content:center;padding:0}
.search-trigger span{display:none}
}
@media (max-width:400px){
.site-brand img,.custom-logo-link img{height:36px}
.site-header .right .btn-sm{padding-left:14px;padding-right:14px}
}
.site-header .right .btn{white-space:nowrap;flex-shrink:0}
.site-header .site-brand,.site-header .custom-logo-link{min-width:0;flex-shrink:1}
.site-header .site-brand img,.site-header .custom-logo-link img{max-width:100%;object-fit:contain;object-position:left center}

/* v1.0.13 — rose wash on mobile: smaller mark, top-right, faint */
@media (max-width:880px){
.lh-hero.has-rose-bg::after,:is(.lh-page, .is-root-container) .lh-hero::after{display:block;width:340px;height:340px;top:-40px;right:-110px;transform:none;opacity:.08;background-position:right top}
.lh-hero.has-rose-bg,:is(.lh-page, .is-root-container) .lh-hero{background:radial-gradient(circle at 100% 0%, rgba(228,0,59,0.08) 0%, transparent 60%),#fff}
}
@media (max-width:400px){
.lh-hero.has-rose-bg::after,:is(.lh-page, .is-root-container) .lh-hero::after{width:280px;height:280px;right:-100px}
}

/* v1.0.16 — footer credit drawn by CSS so it isn't part of the indexed page text */
.lh-credit::after{content:attr(data-credit)}
