/* ==========================================================================
   County Divi — design system
   Palettes validated for WCAG 2.1 AA (analysis/03-architecture.md §2.2).
   --brand is decorative/large-text only; text uses --primary / --link.
   ========================================================================== */

@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url("../fonts/merriweather-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url("../fonts/merriweather-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
	/* Shared (all counties) */
	--ink: #1f1f1f;
	--muted: #4a4a4a;          /* 8.9:1 on white */
	--line: #c9ced3;
	--paper: #ffffff;
	--focus-dark: #1f1f1f;
	--focus-light: #ffbf47;
	--alert-emergency-bg: #a8323b;  /* white text 6.59:1 */
	--alert-closure-bg: #fff4ce;    /* ink 14.98:1 */
	--alert-info-bg: #eef2f6;
	--ok: #1d6b36;
	--radius: 6px;
	--wrap: 75rem;
	--font-body: "Public Sans", "Segoe UI", Roboto, Arial, sans-serif;
	--step--1: 0.9375rem;
	--step-0: 1.0625rem;
	--step-1: 1.25rem;
	--step-2: 1.5rem;
	--step-3: 1.875rem;
	--step-4: 2.375rem;

	/* Scott (default) */
	--brand: #00a0b0;
	--primary: #00727e;
	--on-primary: #ffffff;
	--link: #00727e;
	--link-hover: #004f57;
	--secondary: #6a4a3c;
	--on-secondary: #ffffff;
	--accent: #edc951;
	--on-accent: #1f1f1f;
	--surface: #f2f8f8;
	--font-heading: "Merriweather", Georgia, "Times New Roman", serif;
}

.palette-smith {
	--brand: #042f55;
	--primary: #042f55;
	--link: #145996;
	--link-hover: #042f55;
	--secondary: #000000;
	--accent: #b8202a;
	--on-accent: #ffffff;
	--surface: #f3f6fa;
	--font-heading: "Libre Baskerville", Georgia, "Times New Roman", serif;
}

.palette-sheriff {
	--brand: #a8821f;           /* gold: decorative lines and large elements only (3.5:1) */
	--primary: #1c3555;         /* navy: white text 11.6:1 */
	--link: #1c3f73;
	--link-hover: #0f2542;
	--secondary: #20252b;
	--accent: #d9b44a;
	--on-accent: #1f1f1f;
	--surface: #f7f4ec;
	--font-heading: "Merriweather", Georgia, "Times New Roman", serif;
}

.palette-warren {
	--brand: #2c5b59;           /* deep teal from the county's existing site: white text 7.6:1 */
	--primary: #1c4c4a;
	--link: #1c4c4a;
	--link-hover: #0f3332;
	--secondary: #0f3332;
	--accent: #66d2ce;
	--on-accent: #0f3332;
	--surface: #eef7f6;
	--font-heading: "Merriweather", Georgia, "Times New Roman", serif;
}

.palette-claiborne {
	--brand: #293742;
	--primary: #2f4a5f;
	--link: #2f4a5f;
	--link-hover: #1b2b37;
	--secondary: #6e4b2a;
	--accent: #bdd4e6;
	--on-accent: #1f1f1f;
	--surface: #eef4f9;
	--font-heading: "Oswald", "Arial Narrow", Arial, sans-serif;
}

/* ---------------------------------------------------------------- Base (override Divi defaults) */
body.county-divi {
	font-family: var(--font-body);
	font-size: var(--step-0);
	line-height: 1.6;
	color: var(--ink);
	background: var(--paper);
	font-weight: 400;
}
body.county-divi #page-container { padding-top: 0 !important; overflow: visible; }
body.county-divi #et-main-area { background: var(--paper); }
.county-divi h1, .county-divi h2, .county-divi h3, .county-divi h4 {
	font-family: var(--font-heading);
	color: var(--ink);
	line-height: 1.25;
	font-weight: 700;
	padding-bottom: 0;
	margin: 0 0 0.5em;
}
.county-divi h1 { font-size: var(--step-4); }
.county-divi h2 { font-size: var(--step-3); margin-top: 1.25em; }
.county-divi h3 { font-size: var(--step-1); font-family: var(--font-body); margin-top: 1em; }
.county-divi h4 { font-size: var(--step-0); font-family: var(--font-body); }
.county-divi p { padding-bottom: 0; margin: 0 0 1em; }
.county-divi ul, .county-divi ol { margin: 0 0 1em; padding-left: 1.5em; line-height: 1.6; }
/* Component lists are layout, not bulleted lists: beat the generic ul/ol rule above. */
.county-divi :is(.cc-tiles, .cc-cards, .cc-meetlist, .cc-plain, .cc-dircards, .cc-officials, .cc-paylist, .cc-doclist,
	.cc-alerts__list, .cd-nav__menu, .cd-nav__sub, .cd-utility__menu, .cd-footer__menu, .cd-alertlist, .cd-resultlist,
	.cd-inline, .cd-svclinks, .cd-crumbs ol) { list-style: none; padding-left: 0; }
.county-divi a { color: var(--link); text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
.county-divi a:hover { color: var(--link-hover); text-decoration-thickness: 2px; }
.county-divi img { max-width: 100%; height: auto; }

/* Focus: two-tone ring visible on any background (WCAG 2.4.7 / 1.4.11). */
.county-divi :focus { outline: none; }
.county-divi :focus-visible,
.county-divi a:focus-visible,
.county-divi button:focus-visible,
.county-divi input:focus-visible,
.county-divi select:focus-visible,
.county-divi textarea:focus-visible,
.county-divi summary:focus-visible {
	outline: 3px solid var(--focus-dark);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--focus-light);
	border-radius: 2px;
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.cc-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 1.25rem; }
.cd-narrow { max-width: 50rem; }
.cd-main { display: block; padding-bottom: 3rem; }
.cd-main:focus { outline: none; }

/* ---------------------------------------------------------------- Skip link */
.cd-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 10000;
	background: var(--ink); color: #fff !important; padding: 0.75rem 1rem; font-weight: 700;
}
.cd-skip:focus { top: 1rem; }

/* ---------------------------------------------------------------- Alerts banner */
.cc-alerts__list { list-style: none; margin: 0; padding: 0; }
.cc-alert { padding: 0.6rem 0; border-bottom: 1px solid rgba(0,0,0,.15); }
.cc-alert--emergency { background: var(--alert-emergency-bg); color: #fff; }
.cc-alert--emergency a { color: #fff; }
.cc-alert--closure { background: var(--alert-closure-bg); color: var(--ink); }
.cc-alert--info { background: var(--alert-info-bg); color: var(--ink); }
.cc-alert__label { font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.cc-alert__more { font-weight: 700; margin-left: .25rem; }
.cc-alert__es { display: inline-block; margin-left: .75rem; }
.cc-alert__es summary { cursor: pointer; text-decoration: underline; display: inline; }
.cc-alert__es p { margin: .25rem 0 0; }

/* ---------------------------------------------------------------- Utility bar */
.cd-utility { background: var(--secondary); color: var(--on-secondary); font-size: var(--step--1); }
.cd-utility__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem 1.5rem; min-height: 2.75rem; }
.cd-utility__menu { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0; padding: 0; }
.cd-utility a { color: var(--on-secondary); font-weight: 600; text-decoration: none; display: inline-block; padding: .35rem 0; }
.cd-utility a:hover { color: var(--on-secondary); text-decoration: underline; }
.cd-utility__search label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.cd-utility__search .cc-search__row input { width: 13rem; padding: .3rem .5rem; border: 1px solid #fff; }
.cd-utility__search button { padding: .3rem .75rem; background: var(--accent); color: var(--on-accent); border: 1px solid var(--accent); }

/* ---------------------------------------------------------------- Masthead + nav */
.cd-masthead { background: var(--paper); border-bottom: 4px solid var(--brand); }
.cd-masthead__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .75rem; padding-bottom: .75rem; flex-wrap: wrap; }
.cd-logo { display: flex; align-items: center; gap: .75rem; text-decoration: none !important; color: var(--ink) !important; }
.cd-logo__img { width: auto; max-height: 76px; }
.cd-logo:has(.cd-logo__text.screen-reader-text) .cd-logo__img { max-height: 52px; }
.cd-logo__text { font-family: var(--font-heading); font-weight: 700; font-size: var(--step-1); line-height: 1.2; max-width: 14rem; }
.cd-menubtn { display: none; align-items: center; gap: .4rem; background: var(--primary); color: var(--on-primary); border: 0; border-radius: var(--radius); padding: .6rem .9rem; font: 600 var(--step-0)/1 var(--font-body); cursor: pointer; min-height: 44px; }
.cd-nav__menu { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; gap: .25rem; }
.cd-nav__item { position: relative; display: flex; align-items: center; }
.cd-nav__link { display: block; padding: .7rem .8rem; font-weight: 700; color: var(--ink) !important; text-decoration: none !important; border-radius: var(--radius); }
.cd-nav__link:hover, .cd-nav__item.is-current > .cd-nav__link { color: var(--primary) !important; box-shadow: inset 0 -3px 0 var(--primary); border-radius: 0; }
.cd-nav__toggle { background: none; border: 0; padding: .7rem .4rem; margin-left: -.5rem; color: var(--ink); cursor: pointer; min-width: 32px; min-height: 44px; }
.cd-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.cd-nav__sub {
	list-style: none; position: absolute; top: 100%; left: 0; z-index: 1000; min-width: 16rem;
	background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--primary);
	box-shadow: 0 6px 18px rgba(0,0,0,.12); padding: .5rem 0; margin: 0;
}
.cd-nav__sub .cd-nav__link { font-weight: 400; padding: .55rem 1rem; }
.cd-nav__sub .cd-nav__link:hover { background: var(--surface); box-shadow: none; }

/* ---------------------------------------------------------------- Page header + breadcrumbs */
.cd-pagehead { background: var(--surface); border-bottom: 1px solid var(--line); padding: 1rem 0 1.5rem; margin-bottom: 2rem; }
.cd-pagehead__title { margin: .25rem 0 .5rem; }
.cd-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem; margin: 0 0 .5rem; padding: 0; font-size: var(--step--1); }
.cd-crumbs li + li::before { content: "›"; margin-right: .35rem; color: var(--muted); }
.cc-lede { font-size: var(--step-1); max-width: 48rem; margin: 0; }
.cc-kicker { text-transform: uppercase; letter-spacing: .05em; font-size: var(--step--1); font-weight: 700; color: var(--muted); margin: 0; }
.cc-muted { color: var(--muted); font-size: var(--step--1); }

/* ---------------------------------------------------------------- Buttons */
.cc-btn, .county-divi .cc-btn {
	display: inline-flex; align-items: center; gap: .4rem; background: var(--paper); color: var(--primary); border: 2px solid var(--primary);
	padding: .55rem 1rem; border-radius: var(--radius); font-weight: 700; text-decoration: none; min-height: 44px; cursor: pointer; font-family: var(--font-body); font-size: var(--step-0);
}
.cc-btn:hover { background: var(--surface); color: var(--link-hover); text-decoration: underline; }
.cc-btn--primary, .county-divi .cc-btn--primary { background: var(--primary); color: var(--on-primary) !important; border-color: var(--primary); }
.cc-btn--primary:hover { background: var(--link-hover); color: #fff !important; }
.cc-btn--lg { font-size: var(--step-1); padding: .8rem 1.4rem; }
.cc-ext { font-size: .85em; }

/* ---------------------------------------------------------------- Hero + home */
/* Hero is 50% taller than the original (about 355px → 530px); the panel stays vertically centered. */
.cd-hero { background: var(--surface) var(--cd-hero, none) right center / cover no-repeat; min-height: 33rem; display: flex; align-items: center; padding: 3.5rem 0; border-bottom: 4px solid var(--brand); }
.cd-hero > .cc-wrap { width: 100%; }
.cd-hero__panel { background: rgba(255,255,255,.96); max-width: 38rem; padding: 1.75rem; border-radius: var(--radius); border-left: 6px solid var(--brand); }
.cd-hero__title { margin: 0 0 .25rem; }
.cd-hero__sub { margin-bottom: 1rem; }
.cd-home__split { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; align-items: start; }

.cc-section { margin: 2rem 0; }
.cc-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.cc-section__head h2 { margin-top: 0; }
.cc-more { margin-top: .75rem; }

.cc-tiles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cc-tile a {
	display: flex; align-items: center; gap: .75rem; height: 100%; padding: 1rem; border: 2px solid var(--line); border-radius: var(--radius);
	font-weight: 700; color: var(--ink) !important; text-decoration: none !important; background: var(--paper);
}
.cc-tile a:hover { border-color: var(--primary); background: var(--surface); }
.cc-tile .cc-icon { color: var(--primary); flex: none; width: 32px; height: 32px; }

.cc-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; margin: 0 0 1.25rem; }
.cc-card__title { font-size: var(--step-1); margin-top: 0; font-family: var(--font-body); }
.cc-icon { width: 20px; height: 20px; vertical-align: -4px; }
.cc-plain { list-style: none; padding: 0; margin: 0 0 1em; }
.cc-plain li { margin-bottom: .3rem; }

.cc-meetlist { list-style: none; padding: 0; margin: 0; }
.cc-meet { border-left: 4px solid var(--primary); padding: .5rem 1rem; margin-bottom: .75rem; background: var(--surface); }
.cc-meet.is-cancelled .cc-meet__when, .cc-meet.is-cancelled .cc-meet__what a { text-decoration: line-through; }
.cc-meet p { margin: 0 0 .25rem; }
.cc-meet__when { font-weight: 700; }

.cc-cards { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.cc-cardlink article { border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: var(--radius); padding: 1rem; height: 100%; background: var(--paper); }
.cc-cardlink__title { font-size: var(--step-1); margin: .25rem 0; font-family: var(--font-body); }

.cc-badge { display: inline-block; font-size: .8em; padding: .05rem .45rem; border-radius: 999px; background: var(--alert-info-bg); color: var(--ink); font-weight: 700; }
.cc-badge--warn { background: var(--alert-closure-bg); }

/* ---------------------------------------------------------------- Split layouts */
.cd-split { display: grid; grid-template-columns: 1fr 20rem; gap: 2.5rem; align-items: start; }
.cd-split__side { order: 2; position: sticky; top: 1rem; }
.cd-split__main { order: 1; min-width: 0; }
.cd-svclinks { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.cd-svclinks a { display: block; padding: .75rem 1rem; border: 2px solid var(--line); border-radius: var(--radius); font-weight: 700; text-decoration: none; }
.cd-svclinks a:hover { border-color: var(--primary); background: var(--surface); }
.cd-content { max-width: 50rem; }
.cd-updated { margin-top: 2rem; }

/* Contact + hours */
.cc-contact__head { margin-bottom: .5rem; }
.cc-hours__title { font-size: var(--step-0); margin: 1rem 0 .25rem; }
.cc-hours__list { margin: 0 0 .5rem; }
.cc-hours__list > div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dotted var(--line); padding: .2rem 0; }
.cc-hours__list dt { font-weight: 600; }
.cc-hours__list dd { margin: 0; text-align: right; }
.cc-open { font-weight: 700; }
.cc-open.is-open { color: var(--ok); }
.cc-open.is-open::before { content: "● "; }
.cc-open.is-closed::before { content: "○ "; }

/* At a glance (services, meetings) */
.cd-glance { background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--primary); border-radius: var(--radius); padding: 1.25rem 1.5rem; margin-bottom: 2rem; }
.cd-glance__title { font-size: var(--step-1); margin-top: 0; font-family: var(--font-body); }
.cd-glance__list { margin: 0 0 1rem; }
.cd-glance__list > div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--line); }
.cd-glance__list dt { font-weight: 700; }
.cd-glance__list dd { margin: 0; }
.cd-glance__list dd p:last-child { margin: 0; }
.cd-meta { margin-bottom: 1.5rem; }
.county-divi .cd-steps { list-style: decimal; padding-left: 1.75em; }
.county-divi .cd-content ol { list-style: decimal; }
.county-divi .cd-content ul { list-style: disc; }
.county-divi .cd-content :is(ul.cd-svclinks, ul.cd-inline, ul.cc-officials, ul.cc-dircards, ul.cc-cards, ul.cc-plain, ul.cc-paylist, ul.cc-doclist, ul.cc-tiles, ul.cc-meetlist, ul.cc-alerts__list) { list-style: none; padding-left: 0; }
.cd-steps li { margin-bottom: .75rem; padding-left: .25rem; }
.cd-lang { text-align: right; }

/* ---------------------------------------------------------------- Tables (reflow on small screens) */
.cc-tablewrap { overflow-x: auto; margin: 0 0 1.5rem; }
.cc-table { width: 100%; border-collapse: collapse; font-size: var(--step-0); }
.cc-table caption { text-align: left; font-weight: 700; padding: .5rem 0; font-size: var(--step-1); }
.cc-table th, .cc-table td { text-align: left; vertical-align: top; padding: .65rem .75rem; border-bottom: 1px solid var(--line); }
.cc-table thead th { background: var(--surface); border-bottom: 2px solid var(--primary); }
.cc-table tbody th { font-weight: 600; }
.cc-table tr.is-cancelled th a, .cc-table tr.is-cancelled td:first-of-type { text-decoration: line-through; }

/* Filters + tabs */
.cd-filters { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-end; background: var(--surface); padding: 1rem 1.25rem; border-radius: var(--radius); margin-bottom: 1.25rem; }
.cd-filters p { margin: 0; display: flex; flex-direction: column; }
.cd-filters label { font-weight: 700; font-size: var(--step--1); }
.cd-filters select { min-height: 44px; padding: .3rem .5rem; border: 1px solid #6b7177; border-radius: 4px; font-size: var(--step-0); background: #fff; }
.cd-filters__btns { flex-direction: row !important; gap: 1rem; align-items: center; }
.cd-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.cd-tabs a { padding: .5rem .9rem; border: 2px solid var(--line); border-radius: 999px; text-decoration: none; font-weight: 600; }
.cd-tabs a[aria-current="page"] { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.cd-inline { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }

/* Alerts list (pages) */
.cd-alertlist { list-style: none; padding: 0; }
.cd-alertrow { border-left: 6px solid var(--line); padding: .5rem 1rem; margin-bottom: .75rem; background: var(--alert-info-bg); }
.cd-alertrow--emergency { border-color: var(--alert-emergency-bg); background: #fbeeee; }
.cd-alertrow--closure { border-color: #c79a00; background: var(--alert-closure-bg); }
.cd-alertrow p { margin: 0 0 .25rem; }

/* FAQs */
.cc-faqs { border-top: 1px solid var(--line); }
.cc-faq { border-bottom: 1px solid var(--line); }
.cc-faq summary { cursor: pointer; padding: .9rem 0; font-weight: 700; list-style-position: outside; margin-left: 1.25rem; }
.cc-faq summary::marker { color: var(--primary); }
.cc-faq__a { padding: 0 0 1rem 1.25rem; }
.cc-faq:target { background: var(--alert-closure-bg); }

/* Documents */
.cc-doclist { list-style: none; padding: 0; }
.cc-doclist li { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.cc-filemeta { color: var(--muted); font-size: var(--step--1); }
.cd-archive { border-top: 2px dashed var(--line); padding-top: 1rem; }

/* Directory */
.cc-filter label { font-weight: 700; display: block; }
.cc-filter input { min-height: 44px; width: min(28rem, 100%); padding: .4rem .6rem; border: 1px solid #6b7177; border-radius: 4px; font-size: var(--step-0); }
.cc-dircards, .cc-officials, .cc-paylist { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.cc-dircard article { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; height: 100%; }
.cc-dircard h3 { margin-top: 0; }
.cc-dircard:target article { box-shadow: 0 0 0 4px var(--focus-light); }
.cc-jump { margin: 1rem 0; }

/* Services index */
.cc-svcgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.cc-columns { columns: 3 16rem; }

/* Officials */
.cc-official__photo { border-radius: var(--radius); margin-bottom: .5rem; }

/* Search */
.cc-search label { display: block; font-weight: 700; margin-bottom: .25rem; }
.cc-search__row { display: flex; gap: .5rem; }
.cc-search__row input { flex: 1; min-height: 44px; padding: .45rem .7rem; border: 2px solid #6b7177; border-radius: 4px; font-size: var(--step-0); min-width: 0; }
.cc-search__row button { min-height: 44px; padding: .45rem 1.1rem; background: var(--primary); color: var(--on-primary); border: 0; border-radius: 4px; font-weight: 700; cursor: pointer; font-size: var(--step-0); }
.cd-utility .cc-search__row input { min-height: 36px; border-width: 1px; }
.cd-utility .cc-search__row button { min-height: 36px; }
.cd-bestbet { border-left: 6px solid var(--primary); background: var(--surface); }
.cd-resultlist { list-style: none; padding: 0; }
.cd-resultlist li { border-bottom: 1px solid var(--line); padding: .75rem 0; }
.cd-result__title { margin: 0 0 .25rem; font-size: var(--step-1); }
.cd-count { font-weight: 700; margin-top: 1rem; }

/* Forms */
.cc-form { max-width: 40rem; }
.cc-field label { display: block; font-weight: 700; }
.cc-field input, .cc-field select, .cc-field textarea { width: 100%; min-height: 44px; padding: .5rem .65rem; border: 2px solid #6b7177; border-radius: 4px; font: inherit; background: #fff; }
.cc-field [aria-invalid="true"] { border-color: var(--alert-emergency-bg); }
.cc-field__err { display: block; color: var(--alert-emergency-bg); font-weight: 700; }
.cc-req { font-weight: 400; color: var(--muted); }
.cc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cc-notice { padding: 1rem 1.25rem; border-radius: var(--radius); margin-bottom: 1.25rem; border-left: 6px solid; }
.cc-notice--error { border-color: var(--alert-emergency-bg); background: #fbeeee; }
.cc-notice--ok { border-color: var(--ok); background: #eaf5ee; }
.cc-notice--warn { border-color: #c79a00; background: var(--alert-closure-bg); }
.cc-notice h2 { font-size: var(--step-1); margin-top: 0; font-family: var(--font-body); }

/* Pay hub */
.cc-paygroup h2 { margin-top: 1.5rem; }

/* ---------------------------------------------------------------- Footer */
.cd-footer { background: var(--secondary); color: var(--on-secondary); margin-top: 3rem; font-size: var(--step--1); }
.cd-footer a { color: var(--on-secondary) !important; }
.cd-footer .cc-muted, .cd-footer .cc-hours__list dt, .cd-footer .cc-open { color: var(--on-secondary); }
.cd-footer .cc-hours__list > div { border-color: rgba(255,255,255,.35); }
.cd-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; padding-top: 2.5rem; padding-bottom: 2rem; }
.cd-footer__title { color: var(--on-secondary) !important; font-size: var(--step-1); font-family: var(--font-body) !important; margin-top: 0; }
.cd-footer__menu { list-style: none; padding: 0; margin: 0; }
.cd-footer__menu li { margin-bottom: .4rem; }
.cd-footer__base { border-top: 1px solid rgba(255,255,255,.3); padding-top: 1rem; padding-bottom: 1.5rem; }
.cd-footer .cc-icon { color: var(--on-secondary); }

/* ---------------------------------------------------------------- Responsive */
@media (max-width: 980px) {
	.cc-tiles { grid-template-columns: repeat(2, 1fr); }
	.cc-cards, .cc-dircards, .cc-officials, .cc-paylist, .cc-svcgrid { grid-template-columns: repeat(2, 1fr); }
	.cd-home__split, .cd-split { grid-template-columns: 1fr; }
	.cd-split__side { order: 0; position: static; }
	.cd-footer__grid { grid-template-columns: 1fr 1fr; }

	.cd-menubtn { display: inline-flex; }
	.cd-nav { flex-basis: 100%; }
	.js .cd-nav:not(.is-open) { display: none; }
	.cd-nav__menu { flex-direction: column; gap: 0; }
	.cd-nav__item { flex-wrap: wrap; border-top: 1px solid var(--line); }
	.cd-nav__link { flex: 1; }
	.cd-nav__sub { position: static; box-shadow: none; border: 0; border-left: 4px solid var(--primary); flex-basis: 100%; min-width: 0; margin: 0 0 .5rem 1rem; }
	.cd-utility__inner { justify-content: space-between; }
}

@media (max-width: 640px) {
	.county-divi h1 { font-size: var(--step-3); }
	.county-divi h2 { font-size: var(--step-2); }
	.cc-cards, .cc-dircards, .cc-officials, .cc-paylist, .cc-svcgrid, .cd-svclinks { grid-template-columns: 1fr; }
	.cd-footer__grid { grid-template-columns: 1fr; }
	.cd-utility__search { width: 100%; }
	.cd-utility__search .cc-search__row input { width: auto; }
	.cd-glance__list > div { grid-template-columns: 1fr; gap: 0; }
	.cd-hero { padding: 1.5rem 0; min-height: 22rem; }
	.cd-hero__panel { padding: 1.25rem; }

	/* Tables reflow into stacked cards; header cells repeat as labels. */
	.cc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
	.cc-table, .cc-table tbody, .cc-table tr, .cc-table th, .cc-table td { display: block; width: 100%; }
	.cc-table tr { border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: .75rem; padding: .25rem 0; }
	.cc-table th, .cc-table td { border: 0; padding: .35rem .75rem; }
	.cc-table td[data-label]::before { content: attr(data-label) ": "; font-weight: 700; }
}

@media print {
	.cd-utility, .cd-nav, .cd-menubtn, .cc-alerts, .cd-footer__connect, .cd-filters, .cd-skip { display: none !important; }
	.county-divi a::after { content: " (" attr(href) ")"; font-size: .85em; }
}

/* ---------------------------------------------------------------- Additions: forms, figures, hero note */
.cd-hero__note { margin: 0 0 .5rem; font-size: var(--step-1); }
.county-divi .wp-block-image { margin: 0 0 1.25rem; }
.county-divi .wp-block-image img { height: auto; border-radius: var(--radius); }
.county-divi .wp-block-image figcaption { font-size: var(--step--1); color: var(--muted); margin-top: .35rem; }
.county-divi .wp-block-image.alignright { float: right; margin: 0 0 1rem 1.5rem; max-width: min(40%, 22rem); }
.county-divi .wp-block-image.alignleft { float: left; margin: 0 1.5rem 1rem 0; max-width: min(40%, 22rem); }
.county-divi .wp-block-image.aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.cd-content::after { content: ""; display: block; clear: both; }
@media (max-width: 640px) { .county-divi .wp-block-image.alignright, .county-divi .wp-block-image.alignleft { float: none; max-width: 100%; margin: 0 0 1rem; } }
.cc-fieldset { border: 0; margin: 0 0 1.25rem; padding: 0; min-width: 0; }
.cc-fieldset legend { font-weight: 700; padding: 0; margin-bottom: .35rem; }
.cc-choice { display: flex; align-items: center; gap: .6rem; min-height: 44px; font-weight: 400 !important; cursor: pointer; }
.cc-choice input { width: 1.4rem; height: 1.4rem; min-height: 0 !important; flex: none; margin: 0; accent-color: var(--primary); }
.cc-field--check { margin-bottom: 1rem; }
.cc-field__help { display: block; font-size: var(--step--1); }
.cc-form__section { margin: 2rem 0 .5rem; padding-top: 1rem; border-top: 2px solid var(--line); font-family: var(--font-heading); }
.cc-form__intro { font-weight: 600; }
.cc-form { max-width: 44rem; }
