/**
 * NLS shared public UI — buttons, forms, filters, pagination.
 * Scoped to body.nls-dc. Consolidates navy / gold / light surfaces.
 */

body.nls-dc {
	--nls-navy: #0a1f44;
	--nls-navy-deep: #06152e;
	--nls-gold: #c4a35a;
	--nls-gold-accessible: #8a641f;
	--nls-ivory: #f7f1e3;
	--nls-cream: #f7f3ea;
	--nls-white: #ffffff;
	--nls-text: #1b2433;
	--nls-muted: #4b5563;
	--nls-border: #d7dde7;
	--nls-radius: 4px;
	--nls-focus: #6b4f16;
	--nls-btn-min-h: 44px;
	--nls-display-font: "Copperplate CC", "Copperplate Gothic", Palatino, "Palatino Linotype", Georgia, serif;
}

/* --- Display headings (Copperplate CC — @font-face in nls-phase45.css) --- */

body.nls-dc .nls-home-hero h1,
body.nls-dc .nls-home-hero .nls-home-hero__line,
body.nls-dc .nls-home-hero.nls-hero-font--system-script h1,
body.nls-dc .nls-home-hero.nls-hero-font--serif h1,
body.nls-dc .nls-home-hero.nls-hero-font--sans h1,
body.nls-dc .nls-home-heading__title,
body.nls-dc .nls-heading-accent,
body.nls-dc .nls-home-heading__title .nls-heading-accent,
body.nls-dc .nls-inner-page-hero h1,
body.nls-dc .nls-card-title,
body.nls-dc .nls-cause-row__title,
body.nls-dc .nls-cause-day__title,
body.nls-dc .nls-calendar__period,
body.nls-dc .nls-hearing-case-title,
body.nls-dc .nls-hearing-h2,
body.nls-dc .nls-prac-detail .nls-section-title,
body.nls-dc h2.nls-section-title,
body.nls-dc h3.nls-section-title,
body.nls-dc.heading-default-font .nls-section-title,
body.nls-dc.heading-default-font h2.nls-section-title,
body.nls-dc.heading-default-font h3.nls-section-title,
body.nls-dc .nls-about-mvv__heading,
body.nls-dc .nls-functions__heading {
	font-family: var(--nls-display-font);
	font-weight: 700;
	font-style: normal;
}

/* Legacy home Playfair accent (nls-public.css) — Copperplate on all nls-dc surfaces. */
body.home.nls-dc .nls-home-heading__title .nls-heading-accent {
	font-family: var(--nls-display-font);
	font-style: normal;
	font-weight: 700;
}

body.nls-dc .nls-heading-accent,
body.nls-dc .nls-home-heading__title .nls-heading-accent {
	color: var(--nls-gold-accessible);
	-webkit-text-fill-color: var(--nls-gold-accessible);
	background: none;
}

body.nls-dc .nls-section-bg--dark .nls-heading-accent,
body.nls-dc .nls-section-bg--dark .nls-home-heading__title .nls-heading-accent,
body.nls-dc .nls-contact.nls-section-bg--dark .nls-home-heading__title .nls-heading-accent,
body.nls-dc [data-nls-surface="inverse"] .nls-heading-accent,
body.nls-dc [data-nls-surface="inverse"] .nls-home-heading__title .nls-heading-accent,
body.nls-dc .nls-inner-page-hero .nls-heading-accent,
body.nls-dc .nls-home-hero .nls-home-hero__line--2 {
	color: #b58b38;
	-webkit-text-fill-color: #b58b38;
}

/* --- Button family ------------------------------------------------------- */

body.nls-dc .nls-btn,
body.nls-dc a.nls-btn,
body.nls-dc button.nls-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-height: var(--nls-btn-min-h);
	padding: 0.55rem 1.15rem;
	border-radius: var(--nls-radius);
	border: 2px solid transparent;
	font: inherit;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

body.nls-dc .nls-btn--compact,
body.nls-dc .nls-calendar__nav .nls-btn,
body.nls-dc .nls-calendar__views .nls-btn {
	min-height: 2.25rem;
	padding: 0.35rem 0.85rem;
	font-size: 0.925rem;
}

body.nls-dc .nls-btn--primary {
	background: var(--nls-gold);
	color: var(--nls-navy);
	border-color: var(--nls-gold);
}

body.nls-dc .nls-btn--secondary {
	background: transparent;
	color: var(--nls-navy);
	border-color: var(--nls-navy);
}

body.nls-dc .nls-btn--ghost {
	background: var(--nls-white);
	color: var(--nls-navy);
	border-color: var(--nls-border);
}

body.nls-dc .nls-section-bg--dark .nls-btn--ghost,
body.nls-dc .nls-section-bg--dark .nls-btn--secondary {
	background: transparent;
	color: var(--nls-white);
	border-color: rgba(255, 255, 255, 0.55);
}

/* Calendar light-surface island: readable dark text even inside dark sections. */
body.nls-dc .nls-calendar__toolbar,
body.nls-dc .nls-calendar__toolbar .nls-btn,
body.nls-dc .nls-calendar__toolbar label,
body.nls-dc .nls-calendar__toolbar strong,
body.nls-dc .nls-calendar__period,
body.nls-dc .nls-calendar__filters,
body.nls-dc .nls-calendar__filters label,
body.nls-dc .nls-calendar__filters strong,
body.nls-dc .nls-calendar-grid,
body.nls-dc .nls-calendar-grid__cell,
body.nls-dc .nls-calendar-grid__cell.is-outside,
body.nls-dc .nls-calendar-grid__day,
body.nls-dc .nls-calendar-event,
body.nls-dc .nls-calendar-event__title,
body.nls-dc .nls-calendar-status,
body.nls-dc .nls-calendar-agenda__item,
body.nls-dc .nls-calendar-agenda__item a,
body.nls-dc .nls-calendar-agenda__item strong,
body.nls-dc .nls-calendar-mobile-agenda,
body.nls-dc .nls-calendar__fallback-title,
body.nls-dc .nls-calendar-dialog__panel,
body.nls-dc .nls-calendar-dialog__panel h3,
body.nls-dc .nls-calendar-dialog__panel p,
body.nls-dc .nls-calendar-dialog__panel a,
body.nls-dc .nls-calendar-dialog__close {
	color: #1a2433;
}

body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__toolbar,
body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar .nls-btn,
body.nls-dc .nls-section-bg--dark .nls-calendar__period,
body.nls-dc .nls-section-bg--dark .nls-calendar-grid__cell,
body.nls-dc .nls-section-bg--dark .nls-calendar-agenda__item,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar-agenda__item {
	color: #1a2433;
}

body.nls-dc .nls-calendar__toolbar,
body.nls-dc .nls-calendar-agenda__item,
body.nls-dc .nls-calendar-dialog__panel {
	background: #fff;
}

body.nls-dc .nls-calendar__toolbar {
	border: 1px solid #cfd6e2;
}

body.nls-dc .nls-calendar-agenda__item a:hover,
body.nls-dc .nls-calendar-agenda__item a:focus-visible,
body.nls-dc .nls-calendar-dialog__panel a:hover,
body.nls-dc .nls-calendar-dialog__panel a:focus-visible {
	color: #0a1f44;
}

body.nls-dc .nls-calendar-event__title,
body.nls-dc .nls-calendar-agenda__item a,
body.nls-dc .nls-calendar-agenda__item span {
	overflow-wrap: anywhere;
	word-break: break-word;
}

body.nls-dc .nls-calendar__toolbar .nls-btn--ghost,
body.nls-dc .nls-calendar__toolbar .nls-btn--secondary,
body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar .nls-btn--ghost,
body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar .nls-btn--secondary {
	background: #fff;
	color: #0a1f44;
	border-color: #0a1f44;
}

body.nls-dc .nls-calendar__toolbar .nls-btn.is-active,
body.nls-dc .nls-calendar__toolbar .nls-btn[aria-pressed="true"],
body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar .nls-btn.is-active,
body.nls-dc .nls-section-bg--dark .nls-calendar__toolbar .nls-btn[aria-pressed="true"] {
	background: #0a1f44;
	border-color: #0a1f44;
	color: #fff;
}

body.nls-dc .nls-calendar__toolbar input,
body.nls-dc .nls-calendar__toolbar select {
	color: #1a2433;
	background: #fff;
	border: 1px solid #8a93a3;
}

body.nls-dc .nls-btn:hover,
body.nls-dc .nls-btn:focus-visible {
	text-decoration: none;
}

body.nls-dc .nls-btn--primary:hover {
	background: #b58b38;
	border-color: #b58b38;
	color: var(--nls-navy);
}

body.nls-dc .nls-btn--secondary:hover,
body.nls-dc .nls-btn--ghost:hover {
	background: var(--nls-navy);
	border-color: var(--nls-navy);
	color: var(--nls-white);
}

body.nls-dc .nls-section-bg--dark .nls-btn--ghost:hover,
body.nls-dc .nls-section-bg--dark .nls-btn--secondary:hover {
	background: var(--nls-gold);
	border-color: var(--nls-gold);
	color: var(--nls-navy);
}

body.nls-dc .nls-btn:focus-visible,
body.nls-dc .nls-calendar-event:focus-visible,
body.nls-dc .nls-news-filters .nls-btn:focus-visible,
body.nls-dc .nls-prac-filters .nls-btn:focus-visible,
body.nls-dc .nls-gallery-filters .nls-btn:focus-visible,
body.nls-dc .nls-cause-filters .nls-btn:focus-visible,
body.nls-dc .nls-hearing-actions .nls-btn:focus-visible {
	outline: 3px solid var(--nls-focus);
	outline-offset: 2px;
}

body.nls-dc .nls-btn:active {
	transform: translateY(1px);
}

body.nls-dc .nls-btn.is-active,
body.nls-dc .nls-btn[aria-pressed="true"] {
	background: var(--nls-navy);
	border-color: var(--nls-navy);
	color: var(--nls-white);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

body.nls-dc .nls-btn:disabled,
body.nls-dc .nls-btn[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}

/* --- Forms / filters / pagination ---------------------------------------- */

body.nls-dc .nls-news-filters,
body.nls-dc .nls-prac-filters,
body.nls-dc .nls-gallery-filters,
body.nls-dc .nls-cause-filters,
body.nls-dc .nls-calendar__filters {
	display: grid;
	gap: 0.75rem;
}

/* Simple single-input search forms: input + button on one row when they fit. */
body.nls-dc .nls-gallery-filters .nls-search-row,
body.nls-dc .nls-prac-filters .nls-search-row,
body.nls-dc .nls-cause-filters .nls-search-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	gap: 0.5rem;
	min-width: 0;
	width: 100%;
}

body.nls-dc .nls-gallery-filters .nls-search-row > label,
body.nls-dc .nls-prac-filters .nls-search-row > label,
body.nls-dc .nls-cause-filters .nls-search-row > label {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

body.nls-dc .nls-gallery-filters .nls-search-row input[type="search"],
body.nls-dc .nls-prac-filters .nls-search-row input[type="search"],
body.nls-dc .nls-cause-filters .nls-search-row input[type="search"] {
	width: 100%;
	min-width: 0;
	max-width: none;
	box-sizing: border-box;
}

body.nls-dc .nls-gallery-filters .nls-search-row .nls-btn,
body.nls-dc .nls-prac-filters .nls-search-row .nls-btn,
body.nls-dc .nls-cause-filters .nls-search-row .nls-btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

body.nls-dc .nls-news-filters input[type="search"],
body.nls-dc .nls-news-filters input[type="text"],
body.nls-dc .nls-news-filters select,
body.nls-dc .nls-prac-filters input,
body.nls-dc .nls-prac-filters select,
body.nls-dc .nls-gallery-filters input,
body.nls-dc .nls-cause-filters input,
body.nls-dc .nls-cause-filters select,
body.nls-dc .nls-calendar__filters input,
body.nls-dc .nls-calendar__filters select {
	min-height: 2.5rem;
	max-width: 100%;
	padding: 0.4rem 0.65rem;
	border: 1px solid var(--nls-border);
	border-radius: var(--nls-radius);
	background: var(--nls-white);
	color: var(--nls-text);
	font: inherit;
}

body.nls-dc .nls-news-filters input:focus-visible,
body.nls-dc .nls-prac-filters input:focus-visible,
body.nls-dc .nls-prac-filters select:focus-visible,
body.nls-dc .nls-gallery-filters input:focus-visible,
body.nls-dc .nls-cause-filters input:focus-visible,
body.nls-dc .nls-cause-filters select:focus-visible,
body.nls-dc .nls-calendar__filters input:focus-visible,
body.nls-dc .nls-calendar__filters select:focus-visible {
	outline: 3px solid var(--nls-focus);
	outline-offset: 2px;
}

body.nls-dc .nls-pagination a,
body.nls-dc .nls-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.25rem 0.55rem;
	margin: 0 0.15rem 0.35rem 0;
	border: 1px solid var(--nls-border);
	border-radius: var(--nls-radius);
	background: var(--nls-white);
	color: var(--nls-navy);
	text-decoration: none;
	font-weight: 600;
}

body.nls-dc .nls-pagination a:hover,
body.nls-dc .nls-pagination a:focus-visible {
	background: var(--nls-navy);
	border-color: var(--nls-navy);
	color: var(--nls-white);
}

body.nls-dc .nls-pagination .current {
	background: var(--nls-navy);
	border-color: var(--nls-navy);
	color: var(--nls-white);
}

/* Accessible gold for text on light surfaces (do not use decorative gold for body text). */
body.nls-dc .nls-home-heading__eyebrow,
body.nls-dc .nls-section-bg--light .nls-home-heading__accent,
body.nls-dc .nls-leadership .nls-leader-name {
	color: var(--nls-gold-accessible);
}

@media (max-width: 320px) {
	body.nls-dc .nls-btn,
	body.nls-dc .nls-calendar__nav,
	body.nls-dc .nls-calendar__views {
		width: 100%;
	}

	body.nls-dc .nls-calendar__nav .nls-btn,
	body.nls-dc .nls-calendar__views .nls-btn {
		flex: 1 1 auto;
	}

	body.nls-dc .nls-calendar__toolbar {
		padding: 0.65rem;
	}

	body.nls-dc .nls-calendar__filters {
		grid-template-columns: 1fr;
	}

	body.nls-dc .nls-calendar-grid__cell {
		min-height: 5.25rem;
		padding: 0.3rem;
	}

	body.nls-dc .nls-calendar-event {
		font-size: 0.72rem;
		padding: 0.25rem 0.3rem;
	}
}

/* Section chrome on dark calendar bands (heading/meta/status outside light island). */
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__title,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__intro,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__intro p,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__meta,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-home-heading__title,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-home-heading__intro,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-calendar__meta {
	color: var(--nls-ivory, #f7f1e3);
}

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__meta a,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-calendar__meta a {
	color: var(--nls-gold, #c4a35a);
}

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__status:not(.is-error),
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-calendar__status:not(.is-error) {
	color: #d7dde7;
}

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__status.is-error,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-calendar__status.is-error {
	color: #ffd0d0;
}

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-empty,
body.nls-dc .nls-section-bg--dark .nls-calendar .nls-empty {
	color: #d7dde7;
}

/* Explicit surface tokens: light islands keep dark text inside dark sections. */
body.nls-dc .nls-calendar__board,
body.nls-dc .nls-calendar-grid__head,
body.nls-dc .nls-calendar-mobile-agenda,
body.nls-dc .nls-calendar__fallback {
	color: #1a2433;
}

body.nls-dc .nls-calendar-grid__head {
	color: #fff;
}

body.nls-dc .nls-calendar-grid__cell.is-selected {
	box-shadow: inset 0 0 0 2px #0a1f44;
}

body.nls-dc .nls-calendar-dialog__close {
	background: #fff;
	color: #0a1f44;
	border: 1px solid #0a1f44;
}

body.nls-dc .nls-calendar-dialog__close:hover,
body.nls-dc .nls-calendar-dialog__close:focus-visible {
	background: #0a1f44;
	color: #fff;
}

body.nls-dc .nls-calendar-status {
	display: inline-block;
	padding: 0.1rem 0.4rem;
	border: 1px solid currentColor;
	font-size: 0.75rem;
	line-height: 1.3;
	font-weight: 600;
}

body.nls-dc .nls-section-bg--dark .nls-calendar__board,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__board,
body.nls-dc .nls-section-bg--dark .nls-calendar-mobile-agenda,
body.nls-dc .nls-section-bg--dark .nls-calendar__fallback {
	color: #1a2433;
}

/* List heading is on the section surface; override island inherit for scheme contrast. */
body.nls-dc .nls-section-bg--dark .nls-calendar-list-heading,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar-list-heading,
body.nls-dc .nls-section-bg--dark .nls-calendar-mobile-agenda > h3,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar-mobile-agenda > h3 {
	color: #fff;
}

body.nls-dc .nls-section-bg--light .nls-calendar-list-heading,
body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar-list-heading,
body.nls-dc .nls-section-bg--light .nls-calendar-mobile-agenda > h3,
body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar-mobile-agenda > h3 {
	color: #0a1f44;
}

body.nls-dc .nls-section-bg--dark .nls-calendar-grid__head,
body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar-grid__head {
	background: #0a1f44;
	color: #fff;
}
