/* ==========================================================================
   411 CONNECTIONS — COMPONENTS
   --------------------------------------------------------------------------
   One section per widget, in the order of notice/assets/css/site.css.
   Every class is .c411- prefixed.

   ⚠️ BEFORE ADDING A CLASS, grep for it across all three packages:
       grep -rho "c411-[a-z0-9_-]*" wordpress/ | sort -u
   A later-loading stylesheet silently overrides a class of the same name
   site-wide (GOTCHAS 17). The events plugin already owns .c411-btn,
   .c411-card, .c411-grid, .c411-tag, .c411-note, .c411-row, .c411-bar,
   .c411-wrap, .c411-field, .c411-form, .c411-submit, .c411-hp.

   ⚠️ minmax() TRACKS USE min(Npx, 100%). `minmax(310px, 1fr)` is a hard
   floor: in a narrower container the card hangs out of it with NO page-level
   scroll, so an overflow check passes throughout (GOTCHAS 18).
   ========================================================================== */

/* --------------------------------------------------------------------------
   HEADER
   -------------------------------------------------------------------------- */

/* ⚠️ The sticky element is HFE's #masthead, not .c411-mast. A sticky box
   sticks only within its parent, and the widget's parent is exactly as tall
   as the header — so sticking .c411-mast does nothing at all, while every
   check that reads classes still passes. HFE itself sets
   `.ehf-header #masthead { position: relative }` at (1,1,0); this is (1,1,1). */
body.ehf-header #masthead { position: sticky; top: 0; z-index: 300; }
/* The admin bar is position:fixed and would cover a header stuck at 0. */
body.admin-bar.ehf-header #masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar.ehf-header #masthead { top: 46px; } }
@media (max-width: 600px) { body.admin-bar.ehf-header #masthead { top: 0; } }

.c411-mast {
	position: relative;
	background: var(--c411-paper);
	border-bottom: 2.5px solid var(--c411-navy);
}
.c411-mast__in { display: flex; align-items: center; gap: var(--c411-s5); height: 74px; }

.c411-mark { display: flex; align-items: center; gap: var(--c411-s3); margin-right: auto; flex: none; min-width: 0; }
.c411-mark__svg { flex: none; }
.c411-mark__text { display: flex; flex-direction: column; min-width: 0; }
.c411-mark__name {
	font-size: 1.7rem; font-weight: 900; font-variation-settings: 'wdth' 118; letter-spacing: -.02em;
	text-transform: uppercase; line-height: 1; color: var(--c411-navy);
}
.c411-mark__name em { font-style: normal; color: var(--c411-orange); }
/* The client's logo (C411_Site_Header::logo_imgs). The ink version on light
   ground, the white one in dark mode; the footer is always dark, so it asks for
   the white one only. (0,2,0) on the theme swap: weight, not order (GOTCHAS 30). */
/* (0,2,0): Elementor's `.elementor img { height: auto }` is (0,1,1) and beat a bare class (GOTCHAS 47). */
.c411-mark .c411-mark__logo { display: block; height: 54px; width: auto; max-width: none; flex: none; }
.c411-mark .c411-mark__logo--light { display: none; }
:root[data-theme="dark"] .c411-mark .c411-mark__logo--ink { display: none; }
:root[data-theme="dark"] .c411-mark .c411-mark__logo--light { display: block; }
.c411-foot__logo { display: block; margin-bottom: var(--c411-s4); }
.c411-foot__logo .c411-mark__logo { height: 72px; width: auto; max-width: none; }
.c411-mark__sub {
	font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--c411-ink-soft); margin-top: 3px;
}

.c411-nav { display: flex; gap: var(--c411-s6); }
.c411-nav a {
	font-size: .8rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase;
	font-variation-settings: 'wdth' 110;
	padding: 4px 0;
	color: var(--c411-ink);
	border-bottom: 2.5px solid transparent;
	transition: border-color .18s var(--c411-ease), color .18s var(--c411-ease);
}
.c411-nav a:hover { border-bottom-color: var(--c411-teal); }
.c411-nav a[aria-current="page"] { border-bottom-color: var(--c411-orange); }

.c411-mast__cta { display: flex; align-items: center; gap: var(--c411-s3); flex: none; }
.c411-theme-btn {
	width: 38px; height: 38px;
	border: 2.5px solid var(--c411-navy);
	display: grid; place-items: center;
	background: transparent; color: var(--c411-ink);
	transition: background-color .18s var(--c411-ease), color .18s var(--c411-ease);
}
.c411-theme-btn:hover { background: var(--c411-navy); color: var(--c411-paper); }

.c411-burger {
	display: none; width: 44px; height: 44px; align-items: center; justify-content: center;
	border: 2.5px solid var(--c411-navy);
}
.c411-burger span { display: block; width: 18px; height: 2.5px; background: var(--c411-navy); position: relative; }
.c411-burger span::before, .c411-burger span::after {
	content: ""; position: absolute; left: 0; width: 18px; height: 2.5px;
	background: var(--c411-navy); transition: transform .26s var(--c411-ease);
}
.c411-burger span::before { top: -6px; }
.c411-burger span::after  { top: 6px; }
.c411-burger[aria-expanded="true"] span { background: transparent; }
.c411-burger[aria-expanded="true"] span::before { transform: translateY(6px) rotate(45deg); }
.c411-burger[aria-expanded="true"] span::after  { transform: translateY(-6px) rotate(-45deg); }

/* The mobile menu. display:none while closed, NOT parked off-screen with a
   transform — a closed drawer at translateX(100%) inside Elementor's wrappers
   widened the reference build's page (GOTCHAS 14). It is absolutely placed
   under the header rather than position:fixed for the same reason, and the
   sticky #masthead keeps it in view. */
.c411-mnav {
	display: none;
	position: absolute; top: 100%; left: 0; right: 0;
	height: calc(100vh - 74px); height: calc(100dvh - 74px);
	z-index: 290;
	background: var(--c411-paper);
	padding: var(--c411-s7) var(--c411-gut);
	overflow-y: auto;
	border-top: 2.5px solid var(--c411-navy);
}
.c411-mnav.is-open { display: block; }
.c411-mnav > a:not(.c411-button) {
	display: block;
	font-size: 2.2rem; font-weight: 800; text-transform: uppercase; line-height: 1.05;
	font-variation-settings: 'wdth' 118;
	padding: var(--c411-s4) 0;
	color: var(--c411-ink);
	border-bottom: 2px solid var(--c411-rule);
}
/* The current page: an orange bar, not orange text — orange 2.2rem text on
   paper is 2.16:1, under even the large-text minimum of 3:1. */
.c411-mnav > a[aria-current="page"] { box-shadow: inset 6px 0 0 var(--c411-orange); padding-left: 18px; }
.c411-mnav__btn { margin-top: var(--c411-s5); }
.c411-mnav__btn + .c411-mnav__btn { margin-top: var(--c411-s3); }
.c411-mnav__theme {
	display: none;
	align-items: center; gap: var(--c411-s3);
	margin-top: var(--c411-s6);
	font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	color: var(--c411-ink);
	padding: .7rem 1rem;
	border: 2.5px solid var(--c411-navy);
}
.c411-mnav__theme[aria-pressed="true"] { background: var(--c411-navy); color: var(--c411-paper); }

@media (max-width: 980px) {
	.c411-nav, .c411-mast__cta > .c411-button { display: none; }
	.c411-burger { display: flex; }
}
@media (max-width: 820px) { .c411-mark__sub { display: none; } }
/* Below 520px the header row holds the mark and the burger only: mark +
   toggle + burger measured 23px wider than a 390px phone. */
@media (max-width: 520px) {
	.c411-mast__cta .c411-theme-btn { display: none; }
	.c411-mnav__theme { display: inline-flex; }
	.c411-mast__in { gap: var(--c411-s3); }
}
@media (max-width: 420px) {
	.c411-mark__name { font-size: 1.36rem; }
	.c411-mark__svg { width: 32px; height: 24px; }
	.c411-mark .c411-mark__logo { height: 42px; }
}

/* --------------------------------------------------------------------------
   FOOTER — on --c411-deep, dark in both themes
   -------------------------------------------------------------------------- */
.c411-foot {
	background: var(--c411-deep);
	color: rgba(219, 230, 242, .72);
	padding: var(--c411-s8) 0 var(--c411-s5);
	border-top: 2.5px solid var(--c411-navy);
}
.c411-foot__top {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr));
	gap: var(--c411-s7);
	padding-bottom: var(--c411-s7);
	border-bottom: 1px solid rgba(219, 230, 242, .2);
}
.c411-foot__name { color: #fff; font-size: 1.6rem; }
.c411-foot__name em { color: var(--c411-orange); }
.c411-foot__blurb { font-size: .92rem; line-height: 1.7; margin: var(--c411-s4) 0 var(--c411-s5); max-width: 34em; }
.c411-foot__h {
	font-size: .64rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
	line-height: 1.4;
	color: var(--c411-orange);
	margin-bottom: var(--c411-s4);
	font-variation-settings: 'wdth' 100;
}
.c411-foot__col li { margin-bottom: var(--c411-s3); font-size: .9rem; overflow-wrap: anywhere; }
.c411-foot__col a { font-size: .9rem; color: rgba(219, 230, 242, .72); transition: color .18s; }
.c411-foot__col a:hover { color: #fff; }
.c411-foot__word {
	font-size: clamp(3.4rem, 13vw, 10rem); font-weight: 900; font-variation-settings: 'wdth' 122;
	line-height: .82; letter-spacing: -.03em; color: rgba(255, 255, 255, .1);
	margin-top: var(--c411-s6); text-transform: uppercase;
	white-space: nowrap; overflow: hidden;
}
.c411-foot__bot {
	display: flex; justify-content: space-between; gap: var(--c411-s5); flex-wrap: wrap;
	padding-top: var(--c411-s4);
	font-size: .68rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase;
	/* .66, not the approved build's .5 — at .5 this small line was 4.18:1. */
	color: rgba(219, 230, 242, .66);
}
@media (max-width: 980px) { .c411-foot__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .c411-foot__top { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   HERO — photo: full-bleed photograph, type over it · page: paper opening
   -------------------------------------------------------------------------- */
.c411-hero--photo {
	position: relative;
	min-height: 84vh;
	display: flex; flex-direction: column; justify-content: flex-end;
	overflow: hidden;
	background: var(--c411-deep);
	--c411-outline-c: #fff;
}
.c411-hero__img { position: absolute; inset: 0; }
.c411-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.c411-hero__img::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, var(--c411-hero-shade, rgba(11, 33, 64, .94)) 0%, rgba(11, 33, 64, .55) 46%, rgba(11, 33, 64, .55) 100%);
}
.c411-hero__in { position: relative; z-index: 2; width: 100%; padding: var(--c411-s9) 0 var(--c411-s9); }
.c411-hero--photo .c411-hero__title { color: #fff; }
.c411-hero__title > span { display: block; }
.c411-hero__l2 { color: var(--c411-orange); }
.c411-hero--photo .c411-lede { color: rgba(255, 255, 255, .84); margin: var(--c411-s5) 0; max-width: 46ch; }
.c411-hero--photo .c411-lede b { color: var(--c411-orange-l); font-weight: 700; }
.c411-hero--photo .c411-eyebrow { display: block; margin-bottom: var(--c411-s4); }
.c411-hero__btns { display: flex; gap: var(--c411-s3); flex-wrap: wrap; }
.c411-hero__foot {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
	border-top: 1px solid rgba(255, 255, 255, .22);
}
.c411-hero__foot .c411-shell {
	display: flex; justify-content: space-between; gap: var(--c411-s5); flex-wrap: wrap;
	padding-top: var(--c411-s3); padding-bottom: var(--c411-s3);
}
.c411-hero__foot span {
	font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(255, 255, 255, .62);
}

.c411-hero--page .c411-eyebrow { display: block; }
.c411-hero--page .c411-hero__title { margin: var(--c411-s4) 0 20px; max-width: 16ch; }
.c411-hero--page .c411-lede { max-width: 54ch; }
.c411-hero--page .c411-hero__btns { margin-top: var(--c411-s6); }
.c411-hero__note { margin-top: var(--c411-s6); }
.c411-on-deep.c411-hero--page .c411-lede, .c411-on-teal.c411-hero--page .c411-lede { color: var(--c411-on-deep); }

@media (max-width: 680px) {
	.c411-hero--photo { min-height: 78vh; }
	.c411-hero__in { padding-bottom: var(--c411-s6); }
	.c411-hero__foot { position: static; border-top: 0; }
	.c411-hero__foot .c411-shell { padding-bottom: var(--c411-s5); }
}

/* --------------------------------------------------------------------------
   TICKER — decorative (aria-hidden); the same events are real links below
   -------------------------------------------------------------------------- */
.c411-ticker {
	background: var(--c411-deep); color: #fff;
	overflow: hidden;
	padding: .55rem 0;
	border-bottom: 2.5px solid var(--c411-navy);
}
.c411-ticker__track {
	display: flex; gap: 2.6rem; width: max-content;
	animation: c411-roll var(--c411-roll, 48s) linear infinite;
}
.c411-ticker__item {
	font-size: .84rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
	font-variation-settings: 'wdth' 110;
	white-space: nowrap;
}
.c411-ticker__sep { text-decoration: none; color: var(--c411-orange); }
.c411-ticker:hover .c411-ticker__track { animation-play-state: paused; }
@keyframes c411-roll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .c411-ticker__track { animation: none; } }

/* --------------------------------------------------------------------------
   POSTERS — every event is a poster carrying its photograph
   -------------------------------------------------------------------------- */
.c411-posters {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr));
	gap: var(--c411-s6);
}
.c411-posters > * { min-width: 0; }
.c411-poster {
	position: relative; display: flex; flex-direction: column;
	background: var(--c411-card); color: var(--c411-ink);
	border: 2.5px solid var(--c411-navy); box-shadow: var(--c411-sh);
	transition: transform .16s var(--c411-ease), box-shadow .16s var(--c411-ease);
}
.c411-poster:hover { transform: translate(-3px, -3px); box-shadow: var(--c411-sh-lift); color: var(--c411-ink); }
.c411-poster__fig {
	position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden;
	background: var(--c411-tint); border-bottom: 2.5px solid var(--c411-navy);
}
.c411-poster__fig img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--c411-ease); }
.c411-poster:hover .c411-poster__fig img { transform: scale(1.05); }
/* No photograph: a quiet ridge line on the tint, never a stock photo. */
.c411-poster__fig.is-empty, .c411-org__fig.is-empty, .c411-feature__fig.is-empty {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M2 22 L11 9 L17 16 L24 5 L38 22' stroke='%2312325a' stroke-opacity='.18' stroke-width='2' fill='none' stroke-linejoin='round'/%3E%3C/svg%3E") center / 34% no-repeat,
		var(--c411-tint);
}

/* The date stamp punched into the corner of the image */
.c411-stamp {
	position: absolute; left: 0; bottom: 0;
	background: var(--c411-tint);
	border-top: 2.5px solid var(--c411-navy); border-right: 2.5px solid var(--c411-navy);
	padding: .5rem .8rem .45rem;
	display: flex; flex-direction: column; align-items: center; line-height: 1;
}
.c411-stamp__d { font-size: 1.85rem; font-weight: 900; font-variation-settings: 'wdth' 120; color: var(--c411-navy); letter-spacing: -.02em; }
.c411-stamp__m { font-size: .62rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c411-navy); margin-top: 3px; }
.c411-kind {
	position: absolute; right: 0; top: 0;
	padding: .36rem .7rem;
	font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
	color: var(--c411-kind-fg, #fff); background: var(--c411-kind, var(--c411-teal));
	border-left: 2.5px solid var(--c411-navy); border-bottom: 2.5px solid var(--c411-navy);
}
.c411-poster__body { padding: var(--c411-s5); display: flex; flex-direction: column; flex: 1; }
.c411-poster__title { font-size: 1.45rem; margin-bottom: var(--c411-s3); transition: color .18s var(--c411-ease); overflow-wrap: break-word; }
.c411-poster:hover .c411-poster__title { color: var(--c411-orange-ink); }
.c411-poster__by {
	display: block;
	font-size: .82rem; font-weight: 700; color: var(--c411-teal-d);
	margin-bottom: var(--c411-s3); text-transform: uppercase; letter-spacing: .07em;
}
.c411-poster__blurb { display: block; font-size: .9rem; color: var(--c411-ink-soft); line-height: 1.55; flex: 1; margin-bottom: var(--c411-s4); }
.c411-poster__foot {
	display: flex; align-items: center; justify-content: space-between; gap: var(--c411-s3);
	margin-top: auto;
	padding-top: var(--c411-s3); border-top: 2px solid var(--c411-rule-soft);
	font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--c411-ink-soft);
}
.c411-poster__go { color: var(--c411-orange-ink); flex: none; transition: transform .26s var(--c411-ease); }
.c411-poster:hover .c411-poster__go { transform: translateX(4px); }
.c411-posters__more { margin-top: 44px; }

/* The poster family is always on a light card, whatever band it sits in. */
.c411-on-deep .c411-poster, .c411-on-teal .c411-poster { color: var(--c411-ink); }
.c411-on-deep .c411-poster__title, .c411-on-teal .c411-poster__title { color: var(--c411-ink); }

.c411-noresult {
	grid-column: 1 / -1;
	border: 2.5px dashed var(--c411-rule);
	padding: var(--c411-s9) var(--c411-s5);
	text-align: center;
}
.c411-noresult h3 { margin-bottom: var(--c411-s3); }
.c411-noresult .c411-lede { margin: 12px auto 22px; }

/* --------------------------------------------------------------------------
   ARCHIVE — events that have already happened, folded away
   -------------------------------------------------------------------------- */
.c411-archive { border: 2.5px solid var(--c411-navy); background: var(--c411-card); box-shadow: var(--c411-sh-soft); }
.c411-archive summary {
	display: flex; align-items: baseline; gap: var(--c411-s4); flex-wrap: wrap;
	padding: var(--c411-s5); cursor: pointer; list-style: none;
}
.c411-archive summary::-webkit-details-marker { display: none; }
.c411-archive summary::after {
	content: "+"; margin-left: auto;
	font-size: 1.5rem; font-weight: 800; line-height: 1; color: var(--c411-orange-ink);
}
.c411-archive[open] summary::after { content: "−"; }
.c411-archive summary:hover { background: var(--c411-tint); }
.c411-archive__h { font-size: .92rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c411-ink); }
.c411-archive__x { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--c411-ink-soft); }
.c411-archive__list { border-top: 2.5px solid var(--c411-navy); }
.c411-archive__row {
	display: grid; grid-template-columns: 82px minmax(0, 2fr) minmax(0, 1fr); gap: var(--c411-s5);
	align-items: baseline;
	padding: var(--c411-s3) var(--c411-s5);
	border-bottom: 1px solid var(--c411-rule-soft);
	color: var(--c411-ink);
	transition: background-color .2s var(--c411-ease);
}
.c411-archive__row:last-child { border-bottom: 0; }
.c411-archive__row:hover { background: var(--c411-tint); }
.c411-archive__d { font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c411-ink-soft); }
.c411-archive__t { font-size: .98rem; font-weight: 700; color: var(--c411-ink); }
.c411-archive__row:hover .c411-archive__t { color: var(--c411-orange-ink); }
.c411-archive__o { font-size: .84rem; color: var(--c411-ink-soft); }

@media (max-width: 680px) {
	.c411-posters { grid-template-columns: 1fr; }
	.c411-archive__row { grid-template-columns: 70px minmax(0, 1fr); gap: var(--c411-s2) var(--c411-s4); }
	.c411-archive__o { grid-column: 2; }
}

/* --------------------------------------------------------------------------
   FEATURE — one event, wide
   -------------------------------------------------------------------------- */
.c411-feature {
	display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	border: 2.5px solid var(--c411-navy); box-shadow: var(--c411-sh);
	background: var(--c411-card); color: var(--c411-ink);
	margin-bottom: var(--c411-s8);
	transition: transform .16s var(--c411-ease), box-shadow .16s var(--c411-ease);
}
.c411-feature:hover { transform: translate(-3px, -3px); box-shadow: var(--c411-sh-lift); color: var(--c411-ink); }
.c411-feature__fig {
	position: relative; display: block; overflow: hidden; background: var(--c411-tint);
	min-height: 340px; border-right: 2.5px solid var(--c411-navy);
}
.c411-feature__fig img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; transition: transform 1s var(--c411-ease); }
.c411-feature:hover .c411-feature__fig img { transform: scale(1.035); }
.c411-feature__body { padding: var(--c411-s7) var(--c411-s6); display: flex; flex-direction: column; justify-content: center; }
.c411-feature__title {
	font-size: clamp(1.8rem, 3vw, 2.6rem); margin: var(--c411-s4) 0;
	font-variation-settings: 'wdth' 118; overflow-wrap: break-word;
	color: var(--c411-ink);
}
.c411-feature .c411-lede { display: block; margin-bottom: var(--c411-s5); }
.c411-feature__facts { display: grid; gap: var(--c411-s2); border-top: 2px solid var(--c411-rule-soft); padding-top: var(--c411-s4); }
.c411-feature__fact { display: flex; gap: var(--c411-s4); font-size: .88rem; }
.c411-feature__dt {
	flex: none; width: 86px;
	font-size: .66rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase;
	color: var(--c411-ink-soft); padding-top: 3px;
}
.c411-feature__dd { font-weight: 500; min-width: 0; }
/* The feature's bottom margin is the gap to an Event Grid set to "Large,
   bottom only" directly under it. Standing alone it would double the band's
   own padding, so it only applies in a top-only band. */
.c411-band:not(.c411-band--top) .c411-feature { margin-bottom: 0; }
@media (max-width: 1180px) {
	.c411-feature { grid-template-columns: 1fr; }
	.c411-feature__fig { min-height: 280px; border-right: 0; border-bottom: 2.5px solid var(--c411-navy); }
}
@media (max-width: 680px) { .c411-feature__body { padding: var(--c411-s5); } }

/* --------------------------------------------------------------------------
   DIRECTORY CARDS
   -------------------------------------------------------------------------- */
.c411-orgs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: var(--c411-s6);
}
.c411-orgs > * { min-width: 0; }
.c411-org {
	display: flex; flex-direction: column;
	background: var(--c411-card); color: var(--c411-ink);
	border: 2.5px solid var(--c411-navy); box-shadow: var(--c411-sh);
	transition: transform .16s var(--c411-ease), box-shadow .16s var(--c411-ease);
}
.c411-org:hover { transform: translate(-3px, -3px); box-shadow: var(--c411-sh-lift); color: var(--c411-ink); }
.c411-org__fig {
	position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden;
	background: var(--c411-tint); border-bottom: 2.5px solid var(--c411-navy);
}
.c411-org__fig img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--c411-ease); }
.c411-org:hover .c411-org__fig img { transform: scale(1.05); }
.c411-org__body { padding: var(--c411-s5); display: flex; flex-direction: column; flex: 1; }
.c411-org__pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.c411-pill--plain { background: transparent; color: var(--c411-ink-soft); border-color: var(--c411-rule); }
.c411-org__title { font-size: 1.3rem; margin-bottom: var(--c411-s3); transition: color .18s var(--c411-ease); overflow-wrap: break-word; }
.c411-org:hover .c411-org__title { color: var(--c411-orange-ink); }
.c411-org__blurb { display: block; font-size: .88rem; color: var(--c411-ink-soft); line-height: 1.55; flex: 1; margin-bottom: var(--c411-s4); }
.c411-org__foot {
	display: flex; align-items: center; justify-content: space-between; gap: var(--c411-s3);
	margin-top: auto;
	padding-top: var(--c411-s3); border-top: 2px solid var(--c411-rule-soft);
	font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
	color: var(--c411-ink-soft);
}
.c411-org__go { color: var(--c411-orange-ink); flex: none; }
.c411-on-deep .c411-org__title, .c411-on-teal .c411-org__title { color: var(--c411-ink); }
@media (max-width: 680px) { .c411-orgs { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   FILTER BAR — a GET form without the script, live filtering with it
   -------------------------------------------------------------------------- */
.c411-controls {
	display: flex; gap: var(--c411-s4); flex-wrap: wrap; align-items: flex-end;
	padding: var(--c411-s5);
	border: 2.5px solid var(--c411-navy); background: var(--c411-card); box-shadow: var(--c411-sh-soft);
	margin-bottom: var(--c411-s5);
	color: var(--c411-ink);
}
.c411-ctl { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.c411-ctl label { font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--c411-ink-soft); }
.c411-ctl .c411-inp, .c411-ctl .c411-sel {
	background: transparent; border: 0; border-bottom: 2.5px solid var(--c411-rule); border-radius: 0;
	padding: 8px 0; font-size: .95rem; color: var(--c411-ink); min-width: 180px; width: auto;
	transition: border-color .18s var(--c411-ease);
}
.c411-ctl .c411-inp:focus, .c411-ctl .c411-sel:focus { border-color: var(--c411-orange); outline: none; }
.c411-ctl .c411-inp::placeholder { color: var(--c411-ink-soft); opacity: .75; }
.c411-ctl .c411-sel {
	appearance: none; -webkit-appearance: none; padding-right: 24px; cursor: pointer;
	background-image: var(--c411-chevron); background-repeat: no-repeat; background-position: right 1px center;
}
.c411-ctl--search .c411-inp { min-width: 250px; }
.c411-ctl-end { margin-left: auto; display: flex; align-items: center; gap: var(--c411-s5); }
.c411-count-live { font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--c411-ink-soft); }
.c411-count-live b { color: var(--c411-orange-ink); }
.c411-clear, .c411-ctl-go {
	font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase;
	color: var(--c411-ink-soft); border-bottom: 2.5px solid var(--c411-rule); padding-bottom: 2px;
}
.c411-clear:hover, .c411-ctl-go:hover { color: var(--c411-orange-ink); border-color: var(--c411-orange); }
.c411-ctl-go { color: var(--c411-ink); }
/* With the script running, filtering is live and there is nothing to apply. */
.c411-filterbar__in.is-live .c411-ctl-go { display: none; }

.c411-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--c411-s6); }
.c411-chip {
	font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase;
	padding: .44rem .85rem;
	border: 2.5px solid var(--c411-navy); background: transparent; color: var(--c411-ink);
	transition: background-color .16s var(--c411-ease), color .16s var(--c411-ease), transform .12s var(--c411-ease), box-shadow .12s var(--c411-ease);
}
.c411-chip:hover { transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--c411-btn-sh); color: var(--c411-ink); }
.c411-chip[aria-pressed="true"], .c411-chip[aria-pressed="true"]:hover { background: var(--c411-navy); color: var(--c411-paper); }

@media (max-width: 680px) {
	.c411-ctl, .c411-ctl .c411-inp, .c411-ctl .c411-sel, .c411-ctl--search .c411-inp { width: 100%; min-width: 0; }
	.c411-ctl-end { margin-left: 0; width: 100%; justify-content: space-between; }
}

/* --------------------------------------------------------------------------
   STAT RAIL — every figure counted live, none typed in
   -------------------------------------------------------------------------- */
.c411-counts { background: var(--c411-teal-surf); border-bottom: 2.5px solid var(--c411-navy); }
.c411-counts__in { display: grid; grid-template-columns: repeat(var(--c411-cells, 4), minmax(0, 1fr)); }
.c411-counts__cell { padding: var(--c411-s5); border-left: 1px solid rgba(255, 255, 255, .26); min-width: 0; }
.c411-counts__cell:first-child { border-left: 0; }
.c411-counts__n {
	display: block;
	font-size: clamp(2.1rem, 4vw, 3.2rem); font-weight: 900; font-variation-settings: 'wdth' 120;
	line-height: 1; color: #fff; letter-spacing: -.02em;
}
.c411-counts__n i { font-style: normal; font-size: .4em; color: #fff; margin-left: 3px; }
.c411-counts__l {
	display: block; margin-top: 6px;
	font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #fff;
}
@media (max-width: 980px) {
	.c411-counts__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.c411-counts__cell:nth-child(odd) { border-left: 0; }
	.c411-counts__cell:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .26); }
}
@media (max-width: 420px) {
	.c411-counts__in { grid-template-columns: 1fr; }
	.c411-counts__cell { border-left: 0; border-bottom: 1px solid rgba(255, 255, 255, .26); }
}

.c411-statlist {
	border: 2.5px solid var(--c411-navy); background: var(--c411-card); box-shadow: var(--c411-sh-soft);
	padding: var(--c411-s5); color: var(--c411-ink);
}
.c411-statlist__h, .c411-side__h {
	font-size: .66rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase;
	color: var(--c411-ink-soft); margin-bottom: var(--c411-s4); line-height: 1.4;
	font-variation-settings: 'wdth' 100;
}
.c411-dl { display: grid; gap: 0; margin: 0 0 var(--c411-s4); }
.c411-dl > div {
	display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--c411-s3);
	padding: var(--c411-s3) 0; border-bottom: 2px solid var(--c411-rule-soft);
}
.c411-dl dt { font-size: .62rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--c411-ink-soft); padding-top: 3px; }
.c411-dl dd { margin: 0; font-size: .92rem; overflow-wrap: anywhere; }
.c411-dl dd a { color: var(--c411-orange-ink); font-weight: 600; }
.c411-dl dd a:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   STEPS — .c411-steps belongs to this widget ALONE (GOTCHAS 17)
   -------------------------------------------------------------------------- */
.c411-steps {
	display: grid;
	grid-template-columns: repeat(var(--c411-cols, 4), minmax(0, 1fr));
	gap: var(--c411-s5);
	margin: 0; padding: 0; list-style: none;
}
.c411-step {
	border: 2.5px solid currentColor;
	padding: var(--c411-s5);
	background: transparent;
	position: relative;
	min-width: 0;
}
.c411-step__n {
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 2.5px solid currentColor; border-radius: 50%;
	font-size: .9rem; font-weight: 900;
	margin-bottom: var(--c411-s4);
}
.c411-step__title { font-size: 1.14rem; margin-bottom: var(--c411-s3); color: inherit; }
.c411-on-paper .c411-step__title, .c411-on-tint .c411-step__title { color: var(--c411-ink); }
.c411-step p { font-size: .88rem; line-height: 1.6; opacity: .94; text-transform: none; font-weight: 400; }
.c411-step p + p { margin-top: 10px; }
.c411-steps--plain .c411-step__title { margin-bottom: var(--c411-s4); }
.c411-step--teal   { border-color: var(--c411-teal); }
.c411-step--teal .c411-step__title   { color: var(--c411-teal-d); }
.c411-step--orange { border-color: var(--c411-orange); }
.c411-step--orange .c411-step__title { color: var(--c411-orange-ink); }
.c411-on-deep .c411-step--teal .c411-step__title   { color: var(--c411-teal-l); }
.c411-on-deep .c411-step--orange .c411-step__title { color: var(--c411-orange-l); }
.c411-steps__note { margin-top: 44px; }
.c411-steps__btns { margin-top: 48px; display: flex; gap: 16px; flex-wrap: wrap; }

@media (max-width: 1180px) { .c411-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px)  { .c411-steps { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   CTA BAND
   -------------------------------------------------------------------------- */
.c411-cta .c411-eyebrow { display: block; margin-bottom: var(--c411-s3); }
.c411-cta__title { margin-bottom: var(--c411-s4); }
.c411-cta .c411-lede { max-width: 52ch; }
.c411-on-deep .c411-cta .c411-lede, .c411-on-teal .c411-cta .c411-lede { color: var(--c411-on-deep); }
/* The alignment control sets both text-align and --c411-cta-align, so the
   button row and the width-capped lede follow it too. */
.c411-cta { text-align: var(--c411-cta-align, left); }
.c411-cta__btns { margin-top: var(--c411-s6); display: flex; gap: 16px; flex-wrap: wrap; justify-content: var(--c411-cta-align, flex-start); }
.c411-cta .c411-lede { display: inline-block; }

/* --------------------------------------------------------------------------
   FAQ — <details>, so it needs no script
   -------------------------------------------------------------------------- */
.c411-faq__list { border-top: 2.5px solid var(--c411-ink); }
.c411-faq__item { border-bottom: 2px solid var(--c411-rule); }
.c411-faq__q {
	display: flex; align-items: baseline; gap: var(--c411-s4);
	padding: var(--c411-s5) 0; cursor: pointer; list-style: none;
	font-size: 1.12rem; font-weight: 800; text-transform: uppercase; line-height: 1.2;
	font-variation-settings: 'wdth' 112; letter-spacing: -.005em;
	color: var(--c411-ink);
}
.c411-faq__q::-webkit-details-marker { display: none; }
.c411-faq__q::after {
	content: "+"; margin-left: auto; flex: none;
	font-size: 1.5rem; line-height: 1; color: var(--c411-orange-ink);
}
.c411-faq__item[open] .c411-faq__q::after { content: "−"; }
.c411-faq__q:hover { color: var(--c411-orange-ink); }
.c411-faq__a { padding: 0 0 var(--c411-s5); max-width: 62ch; color: var(--c411-ink-soft); line-height: 1.7; }
.c411-faq__a p + p { margin-top: var(--c411-s3); }
.c411-faq__a a { color: var(--c411-orange-ink); font-weight: 700; }
.c411-on-deep .c411-faq__list, .c411-on-teal .c411-faq__list { border-top-color: #fff; }
.c411-on-deep .c411-faq__q, .c411-on-teal .c411-faq__q { color: #fff; }
.c411-on-deep .c411-faq__a, .c411-on-teal .c411-faq__a { color: var(--c411-on-deep); }

/* --------------------------------------------------------------------------
   PROSE — running text, a photograph above, a sidebar beside
   -------------------------------------------------------------------------- */
.c411-dochero {
	position: relative; aspect-ratio: 21 / 9; overflow: hidden; margin: 0 0 var(--c411-s7);
	background: var(--c411-tint); border: 2.5px solid var(--c411-navy); box-shadow: var(--c411-sh);
}
.c411-dochero img { width: 100%; height: 100%; object-fit: cover; }
.c411-docbody { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--c411-s8); align-items: start; }
.c411-docbody--solo { grid-template-columns: minmax(0, 1fr); }
.c411-prose {
	font-size: 1.08rem; line-height: 1.75; color: var(--c411-ink-soft); max-width: 40em;
	text-transform: none; font-weight: 400;
	overflow-wrap: break-word;
}
.c411-prose p { margin-bottom: var(--c411-s5); }
.c411-prose > :last-child { margin-bottom: 0; }
.c411-prose h2, .c411-prose h3 { font-size: 1.2rem; margin: var(--c411-s7) 0 var(--c411-s4); color: var(--c411-ink); line-height: 1.1; }
.c411-prose h2:first-child, .c411-prose h3:first-child { margin-top: 0; }
.c411-prose a { color: var(--c411-orange-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.c411-prose strong { color: var(--c411-ink); }
.c411-prose li + li { margin-top: var(--c411-s2); }
.c411-prose ul, .c411-prose ol { margin: 0 0 var(--c411-s5); }
.c411-on-deep .c411-prose, .c411-on-teal .c411-prose { color: var(--c411-on-deep); }
.c411-on-deep .c411-prose h2, .c411-on-deep .c411-prose h3 { color: #fff; }
.c411-side { position: sticky; top: 98px; }
.c411-side .c411-statlist { margin-bottom: var(--c411-s5); }
@media (max-width: 980px) {
	.c411-docbody { grid-template-columns: minmax(0, 1fr); gap: var(--c411-s6); }
	.c411-side { position: static; }
}

/* --------------------------------------------------------------------------
   ATLAS — the map is drawn for a dark band (--c411-deep, dark in both themes)
   -------------------------------------------------------------------------- */
.c411-region { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--c411-s8); align-items: start; }
.c411-map { width: 100%; height: auto; overflow: visible; }
.c411-zone { cursor: pointer; outline: none; }
.c411-zone__shape { fill: rgba(255, 255, 255, .07); stroke: rgba(255, 255, 255, .3); stroke-width: 1.4; transition: fill .3s var(--c411-ease), stroke .3s var(--c411-ease); }
.c411-zone:hover .c411-zone__shape, .c411-zone.is-on .c411-zone__shape, .c411-zone:focus-visible .c411-zone__shape {
	fill: rgba(245, 142, 34, .34); stroke: var(--c411-orange); stroke-width: 2.2;
}
.c411-zone__label { font-size: 12px; font-weight: 800; letter-spacing: .14em; fill: #dbe6f2; transition: fill .3s var(--c411-ease); }
.c411-zone:hover .c411-zone__label, .c411-zone.is-on .c411-zone__label { fill: #fff; }
.c411-zone__count, .c411-map__note { font-size: 11px; font-weight: 700; letter-spacing: .1em; fill: rgba(219, 230, 242, .55); transition: fill .3s var(--c411-ease); }
.c411-zone:hover .c411-zone__count, .c411-zone.is-on .c411-zone__count { fill: var(--c411-orange); }
.c411-map__water { fill: none; stroke: var(--c411-teal-l); stroke-width: 2.4; stroke-linecap: round; opacity: .75; }
.c411-map__road { fill: none; stroke: rgba(219, 230, 242, .14); stroke-width: 1.2; stroke-dasharray: 5 7; }
.c411-map__county { fill: none; stroke: rgba(219, 230, 242, .16); stroke-width: 1.4; }
.c411-map__pin { fill: var(--c411-orange); }

.c411-maplegend { display: flex; gap: var(--c411-s6); margin-top: var(--c411-s5); flex-wrap: wrap; }
.c411-maplegend span {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(219, 230, 242, .55);
}
.c411-maplegend i { width: 14px; height: 2.5px; background: var(--c411-teal-l); display: block; }
.c411-maplegend .c411-maplegend__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--c411-orange); }
.c411-maplegend .c411-maplegend__area { width: 12px; height: 12px; background: rgba(255, 255, 255, .1); border: 1.5px solid rgba(255, 255, 255, .35); }

.c411-region__off { margin-top: var(--c411-s6); }
.c411-region__offh {
	font-size: .66rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; line-height: 1.4;
	color: var(--c411-orange-l); margin-bottom: var(--c411-s3); font-variation-settings: 'wdth' 100;
}
.c411-region__off ul { display: flex; flex-wrap: wrap; gap: 8px; }
.c411-region__off a {
	display: inline-flex; gap: 8px; align-items: baseline;
	padding: .4rem .75rem; border: 2px solid rgba(255, 255, 255, .35);
	font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; color: #fff;
}
.c411-region__off a:hover { border-color: var(--c411-orange); }
.c411-region__off b { color: var(--c411-orange); }

.c411-zpanel + .c411-zpanel { margin-top: var(--c411-s7); }
.c411-region.is-interactive .c411-zpanel + .c411-zpanel { margin-top: 0; }
.c411-zpanel__h {
	display: flex; align-items: baseline; justify-content: space-between; gap: var(--c411-s4);
	padding-bottom: var(--c411-s3); border-bottom: 2.5px solid rgba(255, 255, 255, .45); margin-bottom: var(--c411-s3);
}
.c411-zpanel__h h3 { font-size: 1.9rem; color: #fff; }
.c411-zpanel__c { flex: none; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c411-orange); }
.c411-zitem {
	display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--c411-s4);
	padding: var(--c411-s4) 0; border-bottom: 1px solid rgba(255, 255, 255, .14);
	color: #fff;
	transition: padding-left .28s var(--c411-ease);
}
.c411-zitem:hover { padding-left: 7px; color: #fff; }
.c411-zitem__d { font-size: .7rem; font-weight: 800; letter-spacing: .09em; color: var(--c411-orange); padding-top: 3px; }
.c411-zitem__t {
	display: block; font-size: 1.02rem; font-weight: 800; font-variation-settings: 'wdth' 112;
	text-transform: uppercase; color: #fff; line-height: 1.14; margin-bottom: 4px;
}
.c411-zitem__o { display: block; font-size: .78rem; color: rgba(219, 230, 242, .7); }
.c411-zpanel__empty { padding: var(--c411-s6) 0; font-size: .9rem; color: rgba(219, 230, 242, .6); }
.c411-zpanel__all { margin-top: var(--c411-s5); }

/* On a light band the map's pale strokes need a dark ground: give it one. */
.c411-on-paper .c411-region, .c411-on-tint .c411-region { background: var(--c411-deep); padding: var(--c411-s6); color: var(--c411-on-deep); }

.c411-locator { width: 100%; height: auto; }
.c411-locator__zone { fill: rgba(91, 122, 140, .14); stroke: rgba(207, 214, 210, .22); stroke-width: 1; }
.c411-locator__zone.is-on { fill: rgba(245, 142, 34, .42); stroke: var(--c411-orange); stroke-width: 1.8; }

@media (max-width: 1180px) { .c411-region { grid-template-columns: minmax(0, 1fr); gap: var(--c411-s7); } }

/* --------------------------------------------------------------------------
   SUBMIT FORM — the events plugin's markup (C411_Submission::render_form),
   styled here and only here, scoped to .c411-submitform. The plugin owns the
   classes .c411-form .c411-field .c411-row .c411-btn .c411-note .c411-hp.
   -------------------------------------------------------------------------- */
.c411-fcard { border: 2.5px solid var(--c411-navy); background: var(--c411-card); box-shadow: var(--c411-sh); padding: var(--c411-s6); color: var(--c411-ink); }
.c411-fcard__t { font-size: 1.24rem; font-weight: 800; font-variation-settings: 'wdth' 115; margin-bottom: var(--c411-s2); line-height: 1.1; }
.c411-fcard__n { font-size: .88rem; color: var(--c411-ink-soft); margin-bottom: var(--c411-s5); max-width: 46em; }
.c411-submitform__note { margin-bottom: var(--c411-s5); }

/* ⚠️ The honeypot must stay off-screen, never display:none (some bots skip
   anything hidden) — this is the plugin's own intent, restated here because
   this stylesheet is now the one that styles the form. */
.c411-submitform .c411-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.c411-submitform .c411-form { display: grid; gap: var(--c411-s5); }
.c411-submitform .c411-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: var(--c411-s5) var(--c411-s6); }
.c411-submitform .c411-field { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.c411-submitform .c411-field > label, .c411-submitform .c411-fieldset legend {
	font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; line-height: 1.3;
	color: var(--c411-ink);
}
.c411-submitform .c411-req { color: var(--c411-orange-ink); }
.c411-submitform input:not([type="checkbox"]):not([type="file"]):not([type="hidden"]),
.c411-submitform select,
.c411-submitform textarea {
	width: 100%;
	background: transparent;
	border: 0; border-bottom: 2.5px solid var(--c411-rule); border-radius: 0;
	padding: 9px 2px;
	font-size: .96rem; color: var(--c411-ink);
	transition: border-color .18s var(--c411-ease);
}
.c411-submitform textarea { min-height: 120px; resize: vertical; line-height: 1.6; border: 2.5px solid var(--c411-rule); padding: 12px; }
.c411-submitform input:focus, .c411-submitform select:focus, .c411-submitform textarea:focus { border-color: var(--c411-orange); outline: none; }
.c411-submitform select {
	appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 28px;
	background-image: var(--c411-chevron); background-repeat: no-repeat; background-position: right 2px center;
}
.c411-submitform input[type="file"] { font-size: .88rem; padding: var(--c411-s3); border: 2.5px dashed var(--c411-rule); width: 100%; }
.c411-submitform input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--c411-navy); vertical-align: -3px; margin-right: 6px; }
.c411-submitform .c411-field > label:has(input[type="checkbox"]) {
	text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600;
}
.c411-submitform .c411-hint { font-size: .72rem; color: var(--c411-ink-soft); line-height: 1.5; }
.c411-submitform .c411-fieldset { border: 0; border-top: 2px solid var(--c411-rule-soft); margin: 0; padding: var(--c411-s5) 0 0; display: grid; gap: var(--c411-s4); min-width: 0; }
.c411-submitform .c411-fieldset legend { padding: 0 var(--c411-s2) 0 0; font-size: 1.1rem; letter-spacing: 0; font-variation-settings: 'wdth' 115; }
.c411-submitform .c411-actions { margin: 0; }
.c411-submitform .c411-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 100%;
	padding: .9rem 1.4rem;
	border: 2.5px solid var(--c411-navy); border-radius: 0;
	background: var(--c411-orange); color: var(--c411-deep);
	font-size: .9rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
	font-variation-settings: 'wdth' 110;
	box-shadow: 4px 4px 0 var(--c411-btn-sh);
	transition: transform .13s var(--c411-ease), box-shadow .13s var(--c411-ease), background-color .18s var(--c411-ease);
}
.c411-submitform .c411-btn:hover { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--c411-btn-sh); background: var(--c411-orange-l); }
.c411-submitform .c411-btn:active { transform: translate(3px, 3px); box-shadow: 1px 1px 0 var(--c411-btn-sh); }
.c411-submitform .c411-note { padding: var(--c411-s4) var(--c411-s5); border-left: 5px solid var(--c411-teal); background: var(--c411-tint); margin-bottom: var(--c411-s5); font-size: .92rem; }
.c411-submitform .c411-note.is-bad { border-left-color: #c0392b; }
.c411-submitform .c411-closed { font-size: 1rem; color: var(--c411-ink-soft); }
@media (max-width: 680px) { .c411-fcard { padding: var(--c411-s5); } }

/* A filter bar directly under a page hero (hero "top only", bar "none"). */
.c411-band.c411-sec--filterbar.c411-band--flush { padding-top: var(--c411-s6); }
