/* Midwest Sustainability Group — site styles
   Palette drawn from Lake County prairie and wetland: sedge, marsh, big bluestem,
   compass-plant yellow, open water. Type: Overpass (descended from Highway
   Gothic, the road-sign face) for headings; Source Serif 4 for reading. */

/* Colors and fonts come from Kadence's global settings (Appearance > Customize >
   Colors & Fonts), so changing them there changes the whole site. */
:root {
	--paper: var(--global-palette8, #F2F4EF);
	--paper-2: var(--global-palette7, #E4E9DF);
	--ink: var(--global-palette3, #1E2B24);
	--ink-soft: var(--global-palette5, #4A574F);
	--marsh: var(--global-palette6, #2F5D46);
	--bluestem: var(--global-palette1, #7A3B52);
	--bluestem-dk: var(--global-palette2, #5F2C3F);
	--compass: var(--global-palette10, #E2B33C);
	--water: var(--global-palette11, #3E6E8E);
	--rule: #C9D1C3;
	--sans: var(--global-heading-font-family, "Overpass", "Helvetica Neue", Arial, sans-serif);
	--serif: var(--global-body-font-family, "Source Serif 4", Georgia, "Times New Roman", serif);
	--wide: 1120px;
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--measure: 66ch;
}

/* ---------- Base ---------- */

html { background: var(--paper); }
body,
body.content-style-unboxed .site,
.site {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.125rem;
	line-height: 1.65;
	font-optical-sizing: auto;
}

.entry-content p,
.entry-content li { max-width: var(--measure); }

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.entry-title, .msg-foot__h {
	font-family: var(--sans);
	color: var(--ink);
	letter-spacing: -0.005em;
}
.entry-content h1, .entry-title {
	font-weight: 800;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
	line-height: 1.02;
	max-width: 20ch;
	margin: 0 0 1.25rem;
}
.entry-content h2 {
	font-weight: 800;
	font-size: clamp(1.65rem, 3.2vw, 2.5rem);
	line-height: 1.1;
	max-width: 26ch;
	margin: 0 0 1rem;
}
.entry-content h3 {
	font-weight: 700;
	font-size: 1.3rem;
	line-height: 1.25;
	margin: 2rem 0 0.5rem;
}

.entry-content a { color: var(--marsh); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.entry-content a:hover { color: var(--bluestem); }
.entry-content a[href^="tel:"] { white-space: nowrap; }

:focus-visible {
	outline: 3px solid var(--compass) !important;
	outline-offset: 3px;
}

.msg-lede {
	font-size: clamp(1.2rem, 2vw, 1.4rem);
	line-height: 1.5;
	color: var(--ink);
}
.msg-quiet { color: var(--ink-soft); font-size: 1rem; }
/* MSG's motto, under the main heading on Home and About. */
.entry-content p.msg-motto {
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(1.1rem, 1.8vw, 1.3rem);
	line-height: 1.45;
	color: inherit;
	border-left: 4px solid var(--compass);
	padding-left: 1rem;
	margin: 0.25rem 0 1.25rem;
	max-width: 46rem;
}
.entry-content .msg-hero h1 + .msg-subhead { margin-top: -0.4rem; }
.entry-content p.msg-subhead {
	font-family: var(--sans);
	font-weight: 700;
	font-size: clamp(1.3rem, 2.6vw, 1.9rem);
	line-height: 1.2;
	letter-spacing: -0.005em;
	color: var(--bluestem);
	max-width: 30ch;
	margin-bottom: 1.25rem;
}

/* ---------- Kadence wrappers: let our bands run edge to edge ---------- */

body.page .content-area { margin-top: 0; margin-bottom: 0; }
body.page .entry-content-wrap { padding: 0; }
body.page .content-container.site-container,
body.page .content-container { max-width: none; padding: 0; }
body.page .entry { box-shadow: none; background: transparent; border-radius: 0; }
body.page .entry-content > .alignfull { margin-left: 0; margin-right: 0; max-width: none; width: 100%; }

/* ---------- Bands ---------- */

.entry-content .msg-band,
.msg-band {
	padding-block: clamp(3rem, 7vw, 6rem);
	padding-inline: max(var(--gutter), calc((100% - var(--wide)) / 2));
	margin-block: 0 !important;
}
.msg-band > * + * { margin-block-start: 1.1rem; }
.msg-band > h2 + * { margin-block-start: 0.5rem; }
.msg-tint { background: var(--paper-2); }
.msg-ink { background: var(--ink); color: #E8EDE6; }
.msg-ink h2, .msg-ink h3 { color: #FFFFFF; }
.msg-ink a { color: #F1D27E; }
.msg-ink a:hover { color: #FFFFFF; }
.entry-content .msg-tight { padding-block: clamp(2rem, 4vw, 3rem); }

.entry-content .msg-hero { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(2rem, 4vw, 3rem); }
.msg-hero .msg-kicker {
	font-family: var(--sans);
	font-weight: 700;
	font-size: 1rem;
	color: var(--bluestem);
	margin-bottom: 0.75rem;
}

/* ---------- Giving band ---------- */

.entry-content .msg-give { background: var(--bluestem); color: #FFFFFF; }
.entry-content .msg-give h1, .entry-content .msg-give h2, .entry-content .msg-give .msg-lede { color: #FFFFFF; }
.msg-give a:not(.wp-block-button__link) { color: #FFFFFF; }
.entry-content .msg-give .wp-block-button__link { background: #FFFFFF; border-color: #FFFFFF; color: var(--bluestem) !important; font-size: 1.1rem; }
.entry-content .msg-give .wp-block-button__link:hover { background: var(--compass); border-color: var(--compass); color: var(--ink) !important; }
.entry-content .msg-give .msg-btn-quiet .wp-block-button__link { background: transparent; color: #FFFFFF !important; border-color: #FFFFFF; }
.entry-content .msg-give .msg-btn-quiet .wp-block-button__link:hover { background: #FFFFFF; color: var(--bluestem) !important; }
.msg-give .msg-quiet { color: #F1DCE4; }

/* Support band rendered by [msg_support] sits directly in the content */
.entry-content > .msg-support { margin-left: 0; margin-right: 0; max-width: none; width: 100%; }
.entry-content .msg-support > * + * { margin-top: 1rem; }

/* Support box at the end of posts */
.entry-content .msg-post-support { margin: 3rem 0 0; max-width: var(--measure); }
.entry-content .msg-post-support h2 { font-size: 1.4rem; margin: 0 0 0.5rem; }
.entry-content .msg-post-support p { font-size: 1.02rem; }
.entry-content .msg-post-support__links { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 1rem; }
.entry-content .msg-post-support__links a:not(.msg-nav__cta) { font-family: var(--sans); font-weight: 700; }

/* ---------- Photos ---------- */

.wp-block-image.msg-photo { margin: 0 !important; }
.wp-block-image.msg-photo img { display: block; width: 100%; height: auto; }
.wp-block-image.msg-photo.alignfull img { max-height: 62vh; object-fit: cover; }
.wp-block-image figcaption,
.wp-element-caption,
.msg-map figcaption {
	font-family: var(--sans);
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--ink-soft);
	margin: 0.5rem 0 0 !important;
	text-align: left;
}
.wp-block-image.msg-photo.alignfull figcaption { padding-inline: max(var(--gutter), calc((100% - var(--wide)) / 2)); }

.entry-content .wp-block-image.msg-inset { max-width: 640px; margin: 1.5rem 0 !important; }
.entry-content .msg-pair { gap: 1.5rem; margin: 1.5rem 0 0; }

/* Two photos side by side, full width, no gutter */
.entry-content .wp-block-columns.msg-duo { gap: 0 !important; margin: 0 !important; }
.entry-content .msg-duo .wp-block-column { margin: 0 !important; }
.entry-content .msg-duo .wp-block-image { margin: 0 !important; }
.entry-content .msg-duo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.entry-content p.msg-duo-cap {
	max-width: none;
	font-family: var(--sans);
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--ink-soft);
	margin: 0.5rem 0 0 !important;
	padding-inline: max(var(--gutter), calc((100% - var(--wide)) / 2));
}

/* ---------- Buttons ---------- */

.entry-content .wp-block-buttons { gap: 0.75rem; margin-top: 1.75rem; }
.entry-content .wp-block-button__link,
.msg-nav__cta {
	font-family: var(--sans);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.2;
	background: var(--bluestem);
	color: #FFFFFF !important;
	border: 2px solid var(--bluestem);
	border-radius: 3px;
	padding: 0.8em 1.25em;
	text-decoration: none;
}
.entry-content .wp-block-button__link:hover,
.msg-nav__cta:hover { background: var(--bluestem-dk); border-color: var(--bluestem-dk); color: #FFFFFF; }
.entry-content .msg-btn-quiet .wp-block-button__link {
	background: transparent;
	color: var(--ink) !important;
	border-color: var(--ink);
}
.entry-content .msg-btn-quiet .wp-block-button__link:hover { background: var(--ink); color: #FFFFFF !important; }
.msg-ink .msg-btn-quiet .wp-block-button__link { color: #FFFFFF !important; border-color: #FFFFFF; }
.msg-ink .msg-btn-quiet .wp-block-button__link:hover { background: #FFFFFF; color: var(--ink) !important; }

/* ---------- Two-column split ---------- */

.entry-content .wp-block-columns.msg-split { gap: clamp(1.5rem, 5vw, 4rem); margin: 0; }
.msg-split > .wp-block-column > *:first-child { margin-top: 0; }

/* ---------- Action panel ---------- */

.msg-action {
	border-left: 6px solid var(--bluestem);
	background: #FFFFFF;
	padding: 1.5rem 1.75rem;
}
.msg-action > *:first-child { margin-top: 0; }
.msg-action h3 { margin-top: 0; }
.msg-action p, .msg-action li { font-size: 1.02rem; }

/* ---------- Timeline (true sequences only) ---------- */

ol.msg-timeline {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	border-left: 3px solid var(--marsh);
}
ol.msg-timeline li {
	position: relative;
	padding: 0 0 1.4rem 1.5rem;
	max-width: 62ch;
}
ol.msg-timeline li::before {
	content: "";
	position: absolute;
	left: -9px;
	top: 0.45em;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: var(--paper);
	border: 3px solid var(--marsh);
}
.msg-tint ol.msg-timeline li::before { background: var(--paper-2); }
.msg-ink ol.msg-timeline { border-left-color: #6E8F7B; }
.msg-ink ol.msg-timeline li::before { background: var(--ink); border-color: #9DB8A6; }
.msg-ink ol.msg-timeline strong { color: #FFFFFF; }
ol.msg-timeline li.is-next::before { background: var(--compass); border-color: var(--ink); }
ol.msg-timeline strong {
	display: block;
	font-family: var(--sans);
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--ink);
}

/* ---------- Work rows (other campaigns) ---------- */

.msg-row { border-top: 1px solid var(--rule); padding-top: 1.75rem; margin-top: 1.75rem !important; }
.msg-row .wp-block-image { margin: 0; }
.msg-row h3 { margin-top: 0; }
.msg-row h3 a { color: var(--ink); text-decoration: none; }
.msg-row h3 a:hover { color: var(--bluestem); text-decoration: underline; }

/* ---------- Quotes ---------- */

.entry-content .wp-block-quote {
	border-left: 4px solid var(--bluestem);
	padding: 0.25rem 0 0.25rem 1.5rem;
	margin: 2rem 0 0;
	max-width: var(--measure);
}
.entry-content .wp-block-quote p { font-size: 1.25rem; line-height: 1.5; font-style: italic; color: var(--ink); }
.entry-content .wp-block-quote cite {
	display: block;
	margin-top: 0.75rem;
	font-family: var(--sans);
	font-style: normal;
	font-size: 0.9rem;
	color: var(--ink-soft);
}

/* ---------- Success stories ---------- */

.entry-content .msg-year {
	font-family: var(--sans);
	font-weight: 800;
	font-size: 0.95rem;
	color: var(--bluestem);
	margin: 0 0 0.25rem;
}
.entry-content .msg-story h3 { margin-top: 0; font-size: 1.5rem; }
.entry-content .msg-story { padding-top: 2.25rem; margin-top: 2.25rem !important; }
.entry-content .msg-band > .msg-story:first-child { border-top: 0; padding-top: 0; margin-top: 0 !important; }

/* Results grid: a short, scannable record (About page and anywhere else it helps) */
.entry-content ul.msg-wins {
	list-style: none;
	padding: 0;
	margin: 2rem 0 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem 2.5rem;
}
.entry-content ul.msg-wins li {
	max-width: none;
	border-top: 3px solid var(--compass);
	padding-top: 0.9rem;
	font-size: 1.02rem;
	line-height: 1.5;
}
.entry-content ul.msg-wins strong {
	display: block;
	font-family: var(--sans);
	font-weight: 800;
	font-size: 1.2rem;
	line-height: 1.25;
	margin-bottom: 0.35rem;
	color: var(--ink);
}
.msg-ink ul.msg-wins strong { color: #FFFFFF; }
.entry-content ul.msg-wins .msg-when {
	display: block;
	font-family: var(--sans);
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	color: var(--bluestem);
	margin-bottom: 0.2rem;
}
.msg-ink ul.msg-wins .msg-when { color: var(--compass); }
@media (max-width: 900px) { .entry-content ul.msg-wins { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .entry-content ul.msg-wins { grid-template-columns: 1fr; gap: 1.5rem; } }
.entry-content .msg-ink .wp-block-button:not(.msg-btn-quiet) .wp-block-button__link { background: var(--compass); border-color: var(--compass); color: var(--ink) !important; }
.entry-content .msg-ink .wp-block-button:not(.msg-btn-quiet) .wp-block-button__link:hover { background: #FFFFFF; border-color: #FFFFFF; }

/* Callout card (e.g. Advocacy 101 inside a page opening) */
.entry-content .msg-callout {
	background: #FFFFFF;
	border-left: 6px solid var(--marsh);
	padding: 1.1rem 1.4rem 1.2rem;
	max-width: 680px;
	margin-top: 1.75rem !important;
}
.entry-content .msg-callout p { margin: 0 !important; }
.entry-content .msg-callout p + p { margin-top: 0.3rem !important; }
.entry-content .msg-callout p { font-size: 1.02rem; line-height: 1.5; max-width: none; }
.entry-content .msg-callout .msg-callout-k {
	font-family: var(--sans);
	font-weight: 800;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--marsh);
}
.entry-content .msg-callout strong { font-family: var(--sans); font-weight: 800; color: var(--ink); }
.entry-content .msg-callout a { font-family: var(--sans); font-weight: 700; white-space: nowrap; }

/* ---------- Constant Contact sign-up form ---------- */

.entry-content .msg-signup { max-width: 680px; background: #FFFFFF; border-left: 6px solid var(--marsh); padding: 1.5rem 1.75rem 1.25rem; margin-top: 1.5rem !important; }
.entry-content .msg-signup .ctct-form-wrapper, .entry-content .msg-signup form.ctct-form { margin: 0; padding: 0; max-width: none; }
.entry-content .msg-signup form.ctct-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.entry-content .msg-signup form.ctct-form > * { grid-column: 1 / -1; margin: 0 0 1rem !important; max-width: none; }
.entry-content .msg-signup form.ctct-form > p.ctct-form-field-text:nth-child(1),
.entry-content .msg-signup form.ctct-form > p.ctct-form-field-text:nth-child(2) { grid-column: auto; }
.entry-content .msg-signup .ctct-form label,
.entry-content .msg-signup .ctct-form legend { font-family: var(--sans); font-weight: 700; font-size: 0.92rem; color: var(--ink); padding: 0; margin: 0 0 0.3rem; }
.entry-content .msg-signup .ctct-required-indicatior { color: var(--bluestem); }
.entry-content .msg-signup .ctct-form input[type="text"],
.entry-content .msg-signup .ctct-form input[type="email"],
.entry-content .msg-signup .ctct-form input[type="tel"] { width: 100%; max-width: none; box-sizing: border-box; font: 1rem/1.4 var(--serif); color: var(--ink); background: var(--paper); border: 1px solid #B9C3B4; border-radius: 3px; padding: 0.6em 0.75em; }
.entry-content .msg-signup .ctct-form input:focus { outline: 3px solid var(--compass); outline-offset: 1px; border-color: var(--ink); }
.entry-content .msg-signup .ctct-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.entry-content .msg-signup .ctct-form fieldset.ctct-address { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; }
.entry-content .msg-signup .ctct-form fieldset.ctct-address legend { grid-column: 1 / -1; }
.entry-content .msg-signup .ctct-form fieldset.ctct-address .ctct-field-full { grid-column: 1 / -1; }
.entry-content .msg-signup .ctct-form fieldset.ctct-address > div { margin-bottom: 0.75rem; width: auto; float: none; padding: 0; }
.entry-content .msg-signup .ctct-form-field-checkbox fieldset { display: grid; grid-template-columns: 1.2rem minmax(0, 1fr); gap: 0.55rem 0.6rem; align-items: center; background: var(--paper); border: 1px solid var(--rule); border-radius: 3px; padding: 0.9rem 1rem; }
.entry-content .msg-signup .ctct-form-field-checkbox legend { float: left; width: 100%; grid-column: 1 / -1; margin-bottom: 0.2rem; }
.entry-content .msg-signup .ctct-form-field-checkbox span.ctct-label-right { width: auto !important; grid-column: 2; }
.entry-content .msg-signup .ctct-form-field-checkbox input[type="checkbox"] { grid-column: 1; }
.entry-content .msg-signup .ctct-disclosure, .entry-content .msg-signup .ctct-disclosure p { font-family: var(--sans); font-size: 0.75rem; line-height: 1.45; color: var(--ink-soft); max-width: none; margin: 0.25rem 0 0 !important; }
.entry-content .msg-signup .ctct-form-field-checkbox br { display: none; }
.entry-content .msg-signup .ctct-form-field-checkbox input[type="checkbox"] { width: 1.2rem; height: 1.2rem; margin: 0; accent-color: var(--marsh); }
.entry-content .msg-signup .ctct-form-field-checkbox .ctct-label-right label { font-weight: 600; font-size: 1rem; margin: 0; cursor: pointer; }
.entry-content .msg-signup .ctct-form input.ctct-submit { font-family: var(--sans); font-weight: 700; font-size: 1.05rem; background: var(--bluestem); color: #FFFFFF; border: 2px solid var(--bluestem); border-radius: 3px; padding: 0.8em 1.6em; cursor: pointer; width: auto; }
.entry-content .msg-signup .ctct-form input.ctct-submit:hover { background: var(--bluestem-dk); border-color: var(--bluestem-dk); }
.entry-content .msg-signup .ctct-message, .entry-content .msg-signup .ctct-form-errors { font-family: var(--sans); font-size: 1rem; }
@media (max-width: 560px) {
	.entry-content .msg-signup { padding: 1.25rem 1rem 1rem; }
	.entry-content .msg-signup form.ctct-form { grid-template-columns: 1fr; }
	.entry-content .msg-signup form.ctct-form > p.ctct-form-field-text:nth-child(1),
	.entry-content .msg-signup form.ctct-form > p.ctct-form-field-text:nth-child(2) { grid-column: 1 / -1; }
	.entry-content .msg-signup .ctct-form fieldset.ctct-address { grid-template-columns: 1fr 1fr; }
}

/* ---------- Photo contest gallery (masonry by CSS columns) ---------- */

.entry-content .msg-gallery { margin-top: 2rem !important; column-count: 3; column-gap: 1.25rem; }
.entry-content .msg-gallery > .wp-block-group__inner-container { column-count: 3; column-gap: 1.25rem; }
.entry-content .msg-gallery:has(> .wp-block-group__inner-container) { column-count: auto; }
.entry-content .msg-gallery .wp-block-image { break-inside: avoid; margin: 0 0 1.5rem !important; display: block; }
.entry-content .msg-gallery .wp-block-image img { width: 100%; height: auto; display: block; }
.entry-content .msg-gallery figcaption { margin-top: 0.4rem !important; }
.entry-content .msg-gallery figcaption em { font-style: normal; font-weight: 700; color: var(--ink); }
@media (max-width: 900px) {
	.entry-content .msg-gallery, .entry-content .msg-gallery > .wp-block-group__inner-container { column-count: 2; }
	.entry-content .msg-gallery:has(> .wp-block-group__inner-container) { column-count: auto; }
}
@media (max-width: 560px) {
	.entry-content .msg-gallery, .entry-content .msg-gallery > .wp-block-group__inner-container { column-count: 1; }
}

/* ---------- Vision statement ---------- */

.entry-content .msg-vision p { font-size: 1.08rem; }
.entry-content .msg-vision p.msg-lede { font-size: clamp(1.25rem, 2.2vw, 1.5rem); font-style: italic; line-height: 1.45; border-left: 4px solid var(--marsh); padding-left: 1.25rem; }
.entry-content .msg-vision .msg-attrib { font-family: var(--sans); font-size: 0.9rem; font-weight: 700; color: var(--ink-soft); }

@media (min-width: 782px) {
	.entry-content .msg-vision .wp-block-column:last-child { position: sticky; top: 1.5rem; align-self: flex-start; }
}

/* ---------- Campaign sign beside a page heading ---------- */

.entry-content .msg-hero .wp-block-image.msg-sign { float: right; width: min(38%, 400px); margin: 0.25rem 0 1rem 2rem !important; }
.entry-content .msg-hero .wp-block-image.msg-sign img { width: 100%; height: auto; display: block; mix-blend-mode: multiply; }
.entry-content .msg-hero::after { content: ""; display: table; clear: both; }
@media (max-width: 760px) {
	.entry-content .msg-hero .wp-block-image.msg-sign { float: none; width: min(100%, 360px); margin: 0 0 1.25rem !important; }
	.entry-content .msg-hero .wp-block-image.msg-sign.msg-sign-desktop { display: none; }
}

/* ---------- Resources directory ---------- */

.entry-content p.msg-jump { max-width: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem !important; }
.entry-content p.msg-jump a {
	font-family: var(--sans);
	font-weight: 700;
	font-size: 0.92rem;
	text-decoration: none;
	color: var(--ink);
	border: 2px solid var(--ink);
	border-radius: 999px;
	padding: 0.3em 0.9em;
}
.entry-content p.msg-jump a:hover { background: var(--ink); color: #FFFFFF; }

.entry-content ul.msg-links {
	list-style: none;
	padding: 0;
	margin: 1.75rem 0 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2.5rem;
}
.entry-content ul.msg-links li {
	max-width: none;
	border-top: 1px solid var(--rule);
	padding: 0.9rem 0 1rem;
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--ink-soft);
}
.entry-content ul.msg-links li a {
	display: block;
	font-family: var(--sans);
	font-weight: 800;
	font-size: 1.08rem;
	line-height: 1.3;
	color: var(--ink);
	text-decoration: none;
	margin-bottom: 0.15rem;
}
.entry-content ul.msg-links li a::after { content: " \2197"; font-weight: 400; color: var(--marsh); }
.entry-content ul.msg-links li a[href^="/"]::after { content: " \2192"; }
.entry-content ul.msg-links li a:hover { color: var(--bluestem); text-decoration: underline; }
.entry-content ul.msg-links li a .msg-tag {
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--marsh);
	margin-left: 0.4em;
}
.msg-tint ul.msg-links li { border-top-color: #C2CCBD; }
@media (max-width: 700px) { .entry-content ul.msg-links { grid-template-columns: 1fr; } }

.entry-content ul.msg-books { list-style: none; padding: 0; margin: 1rem 0 0; }
.entry-content ul.msg-books li { padding: 0.35rem 0; font-size: 1rem; }
.entry-content ul.msg-books em { font-style: italic; color: var(--ink); }

.msg-action .msg-hotline {
	font-family: var(--sans);
	font-weight: 800;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.1;
	margin: 0.25rem 0 0.25rem;
}
.msg-action .msg-hotline a { color: var(--bluestem); text-decoration: none; }

/* ---------- Sources ---------- */

.msg-sources { font-family: var(--sans); font-size: 0.88rem; color: var(--ink-soft); }
.msg-sources li { margin-bottom: 0.35rem; }

/* ---------- Details (FAQ) ---------- */

.wp-block-details {
	border-top: 1px solid var(--rule);
	padding: 1rem 0;
	max-width: var(--measure);
}
.wp-block-details summary {
	font-family: var(--sans);
	font-weight: 700;
	font-size: 1.1rem;
	cursor: pointer;
}
.wp-block-details[open] summary { margin-bottom: 0.5rem; }

/* ---------- Corridor strip map ---------- */

.msg-map { margin: 2rem 0 0; }
.msg-map svg { display: block; width: 100%; height: auto; font-family: var(--sans); }
.msg-map__tall { display: none !important; max-width: 380px; }
@media (max-width: 760px) {
	.msg-map__wide { display: none !important; }
	.msg-map__tall { display: block !important; }
}
.msg-map .m-road { stroke: var(--ink); stroke-width: 14; stroke-linecap: butt; }
.msg-map .m-center { stroke: var(--compass); stroke-width: 2.5; stroke-dasharray: 14 10; }
.msg-map .m-road-out { stroke: var(--ink-soft); stroke-width: 6; stroke-dasharray: 2 6; }
.msg-map .m-cross { stroke: var(--ink); stroke-width: 3; }
.msg-map .m-rail line { stroke: var(--water); stroke-width: 2.5; }
.msg-map .m-bypass { fill: none; stroke: var(--bluestem); stroke-width: 3; stroke-dasharray: 9 7; }
.msg-map .m-name { font-size: 22px; font-weight: 800; fill: var(--ink); }
.msg-map .m-place { font-size: 15px; fill: var(--ink-soft); }
.msg-map .m-mile { font-size: 15px; font-weight: 700; fill: var(--marsh); }
.msg-map .m-small { font-size: 14px; fill: var(--ink-soft); }
.msg-map .m-rail-label { font-size: 15px; font-weight: 600; fill: var(--water); }
.msg-map .m-bypass-label { font-size: 15px; font-weight: 600; fill: var(--bluestem); }

/* Headlines (Oct 20): Home leads with who MSG is; the campaign sits in a card beside it */
.entry-content h1 .msg-h1-sub { display: block; font-size: 0.5em; line-height: 1.2; font-weight: 700; color: var(--ink-soft); margin-top: 0.35em; letter-spacing: 0; }
body.home .entry-content .msg-hero h1 { font-size: clamp(2.1rem, 3.6vw, 3.25rem); line-height: 1.08; }
.entry-content .msg-campaign { background: #FFFFFF; border-top: 5px solid var(--bluestem); padding: 1.5rem 1.6rem 1.4rem; }
.entry-content .msg-campaign > * + *, .entry-content .msg-campaign > .wp-block-group__inner-container > * + * { margin-top: 0.7rem; }
.entry-content .msg-campaign p { margin-bottom: 0; }
.entry-content .msg-campaign .msg-kicker { display: inline-block; background: var(--compass); color: var(--ink); border-radius: 999px; padding: 0.35em 0.9em 0.3em; font-family: var(--sans); font-weight: 700; font-size: 0.85rem; line-height: 1.3; }
.entry-content .msg-campaign .msg-kicker::before { content: ""; display: inline-block; width: 0.55em; height: 0.55em; border-radius: 50%; background: var(--bluestem); margin-right: 0.5em; vertical-align: 0.06em; }
.entry-content p.msg-campaign-title { font-family: var(--sans); font-weight: 800; font-size: clamp(1.9rem, 2.8vw, 2.5rem); line-height: 1.05; color: var(--ink); }
.entry-content p.msg-campaign-sub { font-family: var(--sans); font-weight: 700; font-size: 1.05rem; line-height: 1.3; color: var(--bluestem); }
.entry-content .msg-campaign .wp-block-image.msg-sign { float: none; width: 100%; max-width: none; margin: 0.9rem 0 0 !important; }
.entry-content p.msg-campaign-link a { font-family: var(--sans); font-weight: 800; color: var(--bluestem); }
@media (max-width: 760px) { .entry-content .msg-campaign { margin-top: 1.5rem; } }

/* Pages converted to Kadence rows (Oct 20) */
.entry-content .kb-row-layout-wrap.msg-tight > .kt-row-column-wrap { padding-top: clamp(2rem, 4vw, 3rem) !important; padding-bottom: clamp(2rem, 4vw, 3rem) !important; }
.entry-content .kt-inside-inner-col > .msg-story:first-child { border-top: 0; padding-top: 0; margin-top: 0 !important; }
@media (min-width: 1025px) { .entry-content .msg-vision > .kt-row-column-wrap > .wp-block-kadence-column:last-child > .kt-inside-inner-col { position: sticky; top: 7.5rem; } }
.entry-content .wp-block-kadence-column .wp-block-image.msg-photo { margin: 0; }

/* News post template: sign-up box, What you can do, latest on the issue, author */
.entry-content .msg-signup form.ctct-form > .ctct-form-field-email,
.entry-content .msg-signup form.ctct-form > .ctct-form-field-tel { grid-column: auto; }
@media (max-width: 767px) {
	.entry-content .msg-signup form.ctct-form > .ctct-form-field-email,
	.entry-content .msg-signup form.ctct-form > .ctct-form-field-tel { grid-column: 1 / -1; }
}
.entry-content .msg-signup-inline { margin: 2.25rem 0 !important; }
.entry-content .msg-signup-inline__h { font-family: var(--sans); font-size: 1.2rem; line-height: 1.3; margin: 0 0 0.35rem !important; }
.entry-content .msg-signup-inline__p { font-size: 1rem; margin: 0 0 1rem !important; }
.entry-content .msg-post-actions { margin: 3rem 0 0 !important; max-width: var(--measure); }
.entry-content .msg-post-actions h2, .entry-content .msg-post-latest h2 { font-size: 1.4rem; margin: 0 0 0.75rem; }
.entry-content .msg-post-actions ol { margin: 0; padding-left: 1.4rem; }
.entry-content .msg-post-actions li { margin: 0 0 0.5rem; }
.entry-content .msg-post-actions li a { font-weight: 700; }
.entry-content .msg-post-actions__hub { margin: 1rem 0 0 !important; font-family: var(--sans); font-size: 0.95rem; }
.entry-content .msg-post-latest { margin: 2.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--rule); max-width: var(--measure); }
.entry-content .msg-post-latest ul { list-style: none; margin: 0; padding: 0; }
.entry-content .msg-post-latest li { padding: 0.6rem 0; border-bottom: 1px solid var(--rule); }
.entry-content .msg-post-latest li a { font-family: var(--sans); font-weight: 700; color: var(--ink); text-decoration: none; }
.entry-content .msg-post-latest li a:hover { color: var(--bluestem); text-decoration: underline; }
.entry-content .msg-post-latest li span { display: block; font-family: var(--sans); font-size: 0.85rem; color: var(--ink-soft); }
.entry-content .msg-post-latest p { margin-top: 0.9rem; font-family: var(--sans); font-weight: 700; }
.entry-content .msg-author { margin: 2.5rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--rule); max-width: var(--measure); font-size: 1rem; }
.entry-content .msg-author p { margin: 0 0 0.5rem; }
.entry-content .msg-author__name { font-family: var(--sans); font-weight: 800; }
body.single-post .entry-header .entry-taxonomies a { font-family: var(--sans); font-weight: 800; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--marsh); text-decoration: none; }
body.single-post .entry-header .entry-taxonomies a:hover { color: var(--bluestem); text-decoration: underline; }

/* Tappable stops on the strip map */
.msg-map .m-stop { cursor: pointer; outline: none; }
.msg-map .m-hit { fill: transparent; rx: 6px; }
.msg-map .m-hit-line { fill: none; stroke: transparent; stroke-width: 28; }
.msg-map .m-stop:hover .m-name, .msg-map .m-stop.is-on .m-name { fill: var(--bluestem); }
.msg-map .m-stop:hover .m-cross, .msg-map .m-stop.is-on .m-cross { stroke: var(--bluestem); }
.msg-map .m-stop.is-on .m-hit { fill: rgba(226, 179, 60, 0.22); }
.msg-map .m-stop:focus-visible .m-hit { stroke: var(--bluestem); stroke-width: 2; stroke-dasharray: 4 3; }
.msg-map .m-stop:hover .m-bypass, .msg-map .m-stop.is-on .m-bypass, .msg-map .m-stop:focus-visible .m-bypass { stroke-width: 5; }
.msg-map .m-stop.is-on .m-rail line, .msg-map .m-rail.m-stop:hover line { stroke-width: 4; }
.msg-map__facts { margin: 0.75rem 0 0.5rem; padding: 0.85rem 1.1rem; background: #FFFFFF; border-left: 4px solid var(--compass); min-height: 5.6em; font-size: 1rem; line-height: 1.5; }
.msg-map__facts p { margin: 0; max-width: 72ch; }
.msg-map__facts strong { font-family: var(--sans); }
@media (max-width: 767px) { .msg-map__facts { min-height: 9.5em; font-size: 0.95rem; position: sticky; bottom: 0.75rem; z-index: 2; box-shadow: 0 6px 18px rgba(30, 43, 36, 0.18); } }

/* ---------- Header ---------- */

.msg-head {
	background: var(--paper);
	border-bottom: 1px solid var(--rule);
	font-family: var(--sans);
}
.msg-head__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1rem max(var(--gutter), calc((100% - var(--wide)) / 2));
}
.msg-brand { text-decoration: none; color: var(--ink); line-height: 1.1; display: block; }
.msg-brand__name { display: block; font-weight: 800; font-size: 1.2rem; letter-spacing: -0.01em; }
.msg-brand__place { display: block; font-size: 0.82rem; color: var(--ink-soft); margin-top: 2px; }
.msg-brand:hover .msg-brand__name { color: var(--marsh); }
.msg-head__in { padding-block: 0.6rem; }
.msg-brand__logo { display: block; height: 78px; width: auto; }
@media (max-width: 600px) { .msg-brand__logo { height: 58px; } }
.msg-foot__logo { display: block; width: 170px; height: auto; margin-bottom: 0.5rem; }
.msg-nav { display: flex; align-items: center; gap: 1.5rem; }
.msg-nav__list, .msg-menu__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.25rem; }
.msg-nav__list a, .msg-menu__list a {
	color: var(--ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.98rem;
	padding: 0.25rem 0;
	border-bottom: 2px solid transparent;
}
.msg-nav__list a:hover, .msg-menu__list a:hover { border-bottom-color: var(--marsh); }
.msg-nav__list a[aria-current="page"], .msg-menu__list a[aria-current="page"] { border-bottom-color: var(--bluestem); }
.msg-nav__cta { display: inline-block; padding: 0.6em 1em; font-size: 0.95rem; }
.msg-menu { display: none; }
.msg-head__m { display: none; }
.msg-nav__list { gap: 1.1rem; }

@media (max-width: 1180px) {
	.msg-nav { display: none; }
	.msg-head__m { display: flex; align-items: center; gap: 0.6rem; }
	.msg-donate-m { padding: 0.55em 0.95em; }
	.msg-menu { display: block; position: relative; }
	.msg-menu summary {
		list-style: none;
		cursor: pointer;
		font-weight: 700;
		border: 2px solid var(--ink);
		border-radius: 3px;
		padding: 0.45em 0.9em;
	}
	.msg-menu summary::-webkit-details-marker { display: none; }
	.msg-menu[open] summary { background: var(--ink); color: #FFFFFF; }
	.msg-menu nav {
		position: absolute;
		right: 0;
		top: calc(100% + 0.5rem);
		z-index: 50;
		background: #FFFFFF;
		border: 1px solid var(--rule);
		padding: 1rem 1.25rem;
		min-width: 230px;
		box-shadow: 0 10px 24px rgba(30, 43, 36, 0.14);
	}
	.msg-menu__list { flex-direction: column; gap: 0.6rem; margin-bottom: 1rem; }
	.msg-menu__list a { font-size: 1.05rem; }
}

/* ---------- Footer ---------- */

.msg-foot {
	background: var(--ink);
	color: #D5DDD3;
	font-family: var(--sans);
	font-size: 0.95rem;
	line-height: 1.55;
	padding: 3.5rem max(var(--gutter), calc((100% - var(--wide)) / 2)) 2rem;
}
.msg-foot a { color: #FFFFFF; }
.msg-foot a:hover { color: var(--compass); }
.msg-foot__in {
	display: grid;
	grid-template-columns: 2fr 1.3fr 1fr 1fr;
	gap: 2rem;
}
.msg-foot__name { font-weight: 800; font-size: 1.15rem; color: #FFFFFF; margin: 0 0 0.5rem; }
.msg-foot__about p { max-width: 42ch; }
.msg-foot__h { color: #FFFFFF; font-size: 1rem; font-weight: 800; margin: 0 0 0.6rem; }
.msg-foot__list { list-style: none; margin: 0; padding: 0; }
.msg-foot__list li { margin-bottom: 0.3rem; }
.msg-foot__fine { margin: 2.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.18); font-size: 0.82rem; color: #AEBAAE; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.msg-foot__fine p { margin: 0; }
.msg-foot .msg-foot__badge { display: inline-flex; align-items: center; gap: 0.6rem; color: #AEBAAE; text-decoration: none; font-size: 0.75rem; line-height: 1.3; opacity: 0.85; }
.msg-foot .msg-foot__badge:hover { opacity: 1; color: #FFFFFF; }
.msg-foot__badge img { width: 45px; height: 60px; display: block; }
.msg-foot__badge span { display: flex; flex-direction: column; }
.msg-foot__badge small { font-size: 0.62rem; letter-spacing: 0.02em; opacity: 0.6; margin-top: 0.15rem; }
@media (max-width: 860px) {
	.msg-foot__in { grid-template-columns: 1fr 1fr; }
	.msg-foot__about { grid-column: 1 / -1; }
}

/* ---------- Kadence Row Layout sections ----------
   Background, padding and width come from each Row Layout's own settings in the
   editor. These rules only keep the spacing between blocks inside a column. */

.entry-content .kb-row-layout-wrap.msg-hero,
.entry-content .kb-row-layout-wrap.msg-tight { padding-block: 0; }
.entry-content .kt-inside-inner-col > * { margin-top: 0; margin-bottom: 0; }
.entry-content .kt-inside-inner-col > * + * { margin-top: 1.1rem; }
.entry-content .kt-inside-inner-col > h2 + * { margin-top: 0.5rem; }
.entry-content .kt-inside-inner-col > .wp-block-buttons { margin-top: 1.75rem; }
.entry-content .kt-inside-inner-col > h1 + .msg-subhead { margin-top: -0.4rem; }
.entry-content .msg-hero .kt-inside-inner-col > .wp-block-image.msg-sign { float: none; width: 100%; max-width: 420px; margin: 0 0 0 auto !important; }
.entry-content .msg-hero::after { content: none; }
.entry-content .kb-row-layout-wrap .msg-row:first-of-type { margin-top: 1.75rem !important; }

/* ---------- Type scale (1.25 ratio), rhythm and layout helpers (Oct 20 review) ---------- */

html { scroll-padding-top: 7.5rem; }
.entry-content h1, .entry-title { text-wrap: balance; }
.entry-content h2 { font-size: clamp(1.75rem, 3vw, 2.75rem); text-wrap: balance; }
.entry-content h3 { font-weight: 800; font-size: clamp(1.375rem, 1.6vw, 1.625rem); line-height: 1.2; margin: 2.5rem 0 0.5rem; text-wrap: balance; }
.entry-content p, .entry-content li { text-wrap: pretty; }
.entry-content .kt-inside-inner-col > h3 { margin-top: 2.5rem; }
.entry-content .kt-inside-inner-col > h3:first-child { margin-top: 0; }
.entry-content .kt-inside-inner-col > h3 + * { margin-top: 0.5rem; }
.entry-content .msg-hero h1 + .msg-subhead,
.entry-content .kt-inside-inner-col > h1 + .msg-subhead { margin-top: 0.75rem; }

/* Date pill above a page headline */
.entry-content .msg-hero .msg-kicker {
	display: inline-block;
	width: fit-content;
	align-self: flex-start;
	max-width: 100%;
	background: var(--compass);
	color: var(--ink);
	border-radius: 999px;
	padding: 0.4em 0.95em 0.35em;
	font-size: 0.92rem;
	line-height: 1.3;
}
.entry-content .msg-hero .msg-kicker::before { content: ""; display: inline-block; width: 0.55em; height: 0.55em; border-radius: 50%; background: var(--bluestem); margin-right: 0.55em; vertical-align: 0.06em; }
.entry-content .kt-inside-inner-col > .msg-kicker { margin-bottom: 0; }

/* Campaign sign: let its white margin blend into the page again */
.entry-content .msg-hero > .kt-row-column-wrap,
.entry-content .msg-hero .wp-block-kadence-column { z-index: auto; }
.entry-content .msg-hero .kt-inside-inner-col > .wp-block-image.msg-sign { max-width: 460px; }

/* Timelines: dates line up as a column; a grid version for long histories */
ol.msg-timeline strong { font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
.entry-content ol.msg-timeline.msg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.25rem 2.5rem; border-left: 0; margin-top: 2.25rem; }
.entry-content ol.msg-timeline.msg-grid li { max-width: none; padding: 0.9rem 0 0; border-top: 3px solid var(--compass); }
.entry-content ol.msg-timeline.msg-grid li::before { display: none; }
.entry-content ol.msg-timeline.msg-grid strong { font-size: 1.15rem; margin-bottom: 0.35rem; }
.entry-content .msg-ink ol.msg-timeline.msg-grid strong { color: var(--compass); }
@media (max-width: 900px) { .entry-content ol.msg-timeline.msg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .entry-content ol.msg-timeline.msg-grid { grid-template-columns: 1fr; gap: 1.75rem; } }

/* Captions readable on phones */
@media (max-width: 767px) { .wp-block-image figcaption, .wp-element-caption, .msg-map figcaption { font-size: 0.875rem; } }

/* In a giving band, the second action is a quiet text link, so Donate leads */
.entry-content .msg-give .msg-btn-quiet .wp-block-button__link { background: transparent; border-color: transparent; padding-inline: 0.35em; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.3em; }
.entry-content .msg-give .msg-btn-quiet .wp-block-button__link:hover { background: transparent; border-color: transparent; color: var(--compass) !important; }

/* Label column (heading on the left, content on the right) */
.entry-content .msg-label h2 { max-width: none; font-size: clamp(1.75rem, 2.5vw, 2.5rem); }
.entry-content .msg-label .msg-lede { font-size: 1.2rem; }
@media (min-width: 1025px) { .entry-content .msg-label > .kt-inside-inner-col { position: sticky; top: 7.5rem; } }

/* Section eyebrow: a stretch of road and a milepost */
.entry-content p.msg-eyebrow { font-family: var(--sans); font-weight: 800; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--marsh); font-variant-numeric: tabular-nums; }
.entry-content p.msg-eyebrow::before { content: ""; display: inline-block; width: 1.6em; height: 0.32em; background: var(--compass); margin-right: 0.6em; vertical-align: 0.2em; }
.entry-content .msg-ink p.msg-eyebrow, .entry-content .msg-give p.msg-eyebrow { color: var(--compass); }
.entry-content .kt-inside-inner-col > .msg-eyebrow + h2 { margin-top: 0.6rem; }

/* Numbered argument cards */
.entry-content .msg-cards > .kt-inside-inner-col { counter-reset: msgcard; }
.entry-content .msg-card { background: #FFFFFF; border-top: 4px solid var(--bluestem); padding: 1.5rem 1.75rem 1.6rem; counter-increment: msgcard; }
.entry-content .msg-card > * + *, .entry-content .msg-card > .wp-block-group__inner-container > * + * { margin-top: 0.75rem; }
.entry-content .msg-card h3 { margin-top: 0 !important; }
.entry-content .msg-card h3::before { content: counter(msgcard, decimal-leading-zero); display: block; font-size: 0.85rem; font-weight: 800; letter-spacing: 0.08em; color: var(--bluestem); margin-bottom: 0.4rem; font-variant-numeric: tabular-nums; }
.entry-content .msg-card p { max-width: none; }
.entry-content .kt-inside-inner-col > .msg-card + .msg-card { margin-top: 1.25rem; }
.entry-content .msg-card .wp-block-details { border-top: 1px solid var(--rule); padding: 0.75rem 0 0; margin-top: 1rem; max-width: none; }
.entry-content .msg-card .wp-block-details summary { font-size: 0.95rem; color: var(--marsh); }

/* Press line */
.entry-content p.msg-press { font-family: var(--sans); font-size: 0.92rem; line-height: 1.5; color: var(--ink-soft); }
.entry-content p.msg-press a { color: var(--ink); font-weight: 700; text-decoration: none; }
.entry-content p.msg-press a:hover { color: var(--bluestem); text-decoration: underline; }

/* Even paragraph spacing inside cards and action boxes */
.entry-content .msg-card p, .entry-content .msg-action p { margin-bottom: 0; }
.entry-content .msg-card p + p { margin-top: 1rem; }
.entry-content .msg-action > * + *, .entry-content .msg-action > .wp-block-group__inner-container > * + * { margin-top: 0.9rem; }
.entry-content .msg-action > h3 + *, .entry-content .msg-action > .wp-block-group__inner-container > h3 + * { margin-top: 0.5rem; }
.entry-content .msg-action p + ul { margin-top: 0.4rem; }

/* Jump links under a page headline */
.entry-content p.msg-jump { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-family: var(--sans); font-size: 0.9rem; line-height: 1.2; }
.entry-content .kt-inside-inner-col > p.msg-jump { margin-top: 1.75rem; }
.entry-content p.msg-jump strong { font-weight: 800; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); margin-right: 0.25rem; }
.entry-content p.msg-jump a { display: inline-block; padding: 0.45em 0.95em; border: 1px solid var(--rule); border-radius: 999px; background: #FFFFFF; color: var(--ink); text-decoration: none; font-weight: 700; }
.entry-content p.msg-jump a:hover, .entry-content p.msg-jump a:focus-visible { border-color: var(--bluestem); color: var(--bluestem); }
.entry-content .msg-cards .kt-inside-inner-col > .wp-block-buttons { margin-top: 2rem; }
@media (max-width: 767px) {
	.entry-content p.msg-jump { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding: 2px 16px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.entry-content p.msg-jump::-webkit-scrollbar { display: none; }
	.entry-content p.msg-jump a, .entry-content p.msg-jump strong { white-space: nowrap; flex: none; }
	.entry-content .msg-card { padding: 1.25rem 1.1rem 1.35rem; }
}

/* Cards for the rest of our work */
.entry-content .msg-work .wp-block-image { margin: 0 0 1rem !important; }
.entry-content .msg-work .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; display: block; }
.entry-content .msg-work h3 { margin-top: 0; }
.entry-content .msg-work h3 a { color: var(--ink); text-decoration: none; }
.entry-content .msg-work h3 a:hover { color: var(--bluestem); text-decoration: underline; }

/* ---------- Kadence header and footer (builder in Appearance > Customize) ---------- */

#masthead { border-bottom: 1px solid var(--rule); font-family: var(--sans); }
#masthead .site-header-row-container-inner { padding-inline: max(var(--gutter), calc((100% - var(--wide)) / 2)); }
#masthead .site-container { max-width: none; padding: 0; }
#masthead .custom-logo { height: auto; }
#masthead .main-navigation .primary-menu-container > ul > li.menu-item > a { font-family: var(--sans); }
#masthead .main-navigation .primary-menu-container > ul > li.current-menu-item > a { box-shadow: inset 0 -2px 0 var(--bluestem); }
#masthead .header-button, #masthead .mobile-header-button-wrap .button { font-family: var(--sans); font-weight: 700; border-width: 2px; }
#masthead .menu-toggle-open { font-family: var(--sans); font-weight: 700; border-width: 2px; border-radius: 3px; }
#mobile-drawer .mobile-navigation ul li a { font-family: var(--sans); }

#colophon { font-family: var(--sans); }
#colophon .site-middle-footer-inner-wrap, #colophon .site-bottom-footer-inner-wrap { max-width: var(--wide); margin-inline: auto; padding-inline: var(--gutter); box-sizing: content-box; }
#colophon .site-middle-footer-wrap a { color: #FFFFFF; }
#colophon .site-middle-footer-wrap a:hover { color: var(--compass); }
#colophon .site-middle-footer-inner-wrap { grid-template-columns: 2fr 1.3fr 1fr 1fr; padding-top: 3.5rem; }
#colophon .widget-area p { margin: 0 0 0.6rem; }
#colophon .widget-area p:has(+ .msg-foot__h), #colophon .msg-foot__h + p { margin-bottom: 1.25rem; }
#colophon .msg-foot__h, #colophon .widget-title { font-family: var(--sans); color: #FFFFFF; font-size: 1rem; font-weight: 800; margin: 0 0 0.6rem; }
#colophon .msg-foot__logo img { width: 170px; height: auto; display: block; }
#colophon .widget_nav_menu ul, #colophon ul.msg-foot__list { list-style: none; margin: 0; padding: 0; }
#colophon .widget_nav_menu li, #colophon ul.msg-foot__list li { margin-bottom: 0.3rem; padding: 0; border: 0; }
#colophon .widget_nav_menu li a { padding: 0; }
#colophon .msg-nav__cta { color: #FFFFFF; }
#colophon .site-bottom-footer-wrap { border-top: 1px solid rgba(255, 255, 255, 0.18); }
#colophon .site-bottom-footer-inner-wrap { align-items: center; }
#colophon .footer-widget-area-inner:has(.msg-foot__badge) { text-align: right; }
#colophon .msg-foot__badge { display: inline-flex; align-items: center; gap: 0.6rem; color: #AEBAAE; text-decoration: none; font-size: 0.75rem; line-height: 1.3; opacity: 0.85; text-align: left; }
#colophon .msg-foot__badge:hover { opacity: 1; color: #FFFFFF; }
@media (max-width: 1024px) {
	#colophon .site-middle-footer-inner-wrap { grid-template-columns: 1fr 1fr; }
	#colophon .footer-widget-area-inner:has(.msg-foot__badge) { text-align: left; }
}
@media (max-width: 767px) { #colophon .site-middle-footer-inner-wrap { grid-template-columns: 1fr; } }

/* ---------- Posts (news and archive) ---------- */

body.single-post .entry-content { font-size: 1.125rem; }
body.single-post .entry-title { font-size: clamp(2rem, 4vw, 3rem); max-width: 24ch; }
body.single-post .entry-meta { font-family: var(--sans); }

/* ---------- Latest posts list ---------- */

.entry-content .wp-block-latest-posts { padding: 0; }
.entry-content .wp-block-latest-posts li { border-top: 1px solid var(--rule); padding: 1rem 0; }
.entry-content .wp-block-latest-posts__post-title { font-family: var(--sans); font-weight: 700; font-size: 1.2rem; color: var(--ink); }
.entry-content .wp-block-latest-posts__post-date { font-family: var(--sans); color: var(--ink-soft); font-size: 0.85rem; }

/* ---------- Event bar (top of every page; msg_promo() in msg.php) ---------- */

.msg-promo { background: var(--bluestem); color: #fff; font-family: var(--sans); }
.msg-promo__in { max-width: 1200px; margin: 0 auto; padding: 0.6rem 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.35rem 0.9rem; font-size: 0.95rem; line-height: 1.4; text-align: center; }
.msg-promo__tag { display: inline-block; background: var(--compass); color: var(--ink); border-radius: 999px; padding: 0.2em 0.75em 0.15em; font-weight: 700; font-size: 0.8rem; }
.msg-promo__what { margin: 0; }
.msg-promo__what strong { font-weight: 700; }
.msg-promo a.msg-promo__cta { display: inline-block; background: #fff; color: var(--bluestem); border-radius: 999px; padding: 0.3em 1em 0.25em; font-weight: 700; text-decoration: none; white-space: nowrap; }
.msg-promo a.msg-promo__cta:hover,
.msg-promo a.msg-promo__cta:focus-visible { background: var(--compass); color: var(--ink); }
.msg-promo a.msg-promo__cta:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.msg-promo__note { font-size: 0.85rem; opacity: 0.9; }
@media (max-width: 1024px) { .msg-promo__in { padding-left: 32px; padding-right: 32px; } }
@media (max-width: 760px) { .msg-promo__in { padding: 0.55rem 16px; font-size: 0.875rem; } }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; }
}
