/**
 * McNeese Policies — frontend styles.
 *
 * Scoped to .mcn-policy-* classes so the plugin doesn't leak styles into the
 * surrounding theme / Breakdance layout.
 */

/* ---------------------------------------------------------------------------
   Meta header (Authority, Date, Category) — injected into single-policy content
   --------------------------------------------------------------------------- */
.mcn-policy-meta-header {
	margin: 0 0 1.75rem;
	padding: 1.25rem 1.5rem;
	background: #f6f7f8;
	border-left: 4px solid #003594; /* McNeese blue — adjust to match theme tokens */
	border-radius: 4px;
}

.mcn-policy-meta-list {
	margin: 0;
}

.mcn-policy-meta-item {
	display: grid;
	grid-template-columns: minmax(180px, 220px) 1fr;
	gap: 0.5rem 1.5rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid #e3e4e6;
}

.mcn-policy-meta-item:last-child {
	border-bottom: 0;
}

.mcn-policy-meta-item dt {
	font-weight: 700;
	color: #1a1a1a;
	margin: 0;
}

.mcn-policy-meta-item dd {
	margin: 0;
	color: #333;
}

@media (max-width: 600px){
	.mcn-policy-meta-item {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}
}

/* ---------------------------------------------------------------------------
   References section
   --------------------------------------------------------------------------- */
.mcn-policy-references {
	margin: 2.5rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid #e3e4e6;
}

.mcn-policy-references__heading {
	font-size: 1.4rem;
	margin: 0 0 0.75rem;
}

.mcn-policy-references ul {
	margin: 0;
	padding-left: 1.25rem;
}

.mcn-policy-references li + li {
	margin-top: 0.4rem;
}

@keyframes mcn-spin{
	to { transform: rotate(360deg); }
}

/* ---------------------------------------------------------------------------
   Results — LIST view (default) and GRID view toggle
   --------------------------------------------------------------------------- */

/* ---- Shared container ---- */
.mcn-policy-results {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---- LIST VIEW (default) ---- */
.mcn-policy-results:not(.mcn-policy-results--grid) {
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result {
	border-bottom: 1px solid #e2e8f0;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result:last-child {
	border-bottom: 0;
}

/* Alternating row colors */
.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result:nth-child(odd) {
	background: #fff;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result:nth-child(even) {
	background: #f7fafc;
}

/* Whole row is the link */
.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.65rem 1rem;
	text-decoration: none;
	color: inherit;
	transition: background 150ms;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__link:hover {
	background: #e8f0fb !important;
}

/* Title — left side, smaller than default heading size */
.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__title {
	flex: 1;
	min-width: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	color: #003087;
	line-height: 1.35;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Meta — right side: category + authority */
.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__cat {
	font-size: 0.78rem;
	color: #4a5568;
	white-space: nowrap;
}

.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__authority {
	font-size: 0.78rem;
	font-weight: 600;
	color: #003087;
	background: rgba(0, 48, 135, 0.08);
	padding: 0.2rem 0.6rem;
	border-radius: 100px;
	white-space: nowrap;
}

@media (max-width: 600px){
	.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__link {
		flex-wrap: wrap;
		gap: 0.25rem;
	}
	.mcn-policy-results:not(.mcn-policy-results--grid) .mcn-policy-result__title {
		white-space: normal;
		flex: 1 1 100%;
	}
}

/* ---- GRID VIEW ---- */
.mcn-policy-results--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1rem;
}

.mcn-policy-results--grid .mcn-policy-result {
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #fff;
	transition: transform 150ms, box-shadow 150ms, border-color 150ms;
}

.mcn-policy-results--grid .mcn-policy-result:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 48, 135, 0.09);
	border-color: #003087;
}

.mcn-policy-results--grid .mcn-policy-result__link {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1rem 1.1rem;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.mcn-policy-results--grid .mcn-policy-result__title {
	flex: 1;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #003087;
	line-height: 1.4;
}

.mcn-policy-results--grid .mcn-policy-result__meta {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-top: auto;
	padding-top: 0.5rem;
	border-top: 1px solid #e2e8f0;
}

.mcn-policy-results--grid .mcn-policy-result__cat {
	font-size: 0.78rem;
	color: #4a5568;
}

.mcn-policy-results--grid .mcn-policy-result__authority {
	font-size: 0.78rem;
	font-weight: 600;
	color: #003087;
}

/* ---- View switcher (☰ / ⊞) in the toolbar ---- */
.mcn-policy-browse__view-switcher {
	display: inline-flex;
	background: #fff;
	border: 1px solid #cbd5e0;
	border-radius: 6px;
	overflow: hidden;
	flex-shrink: 0;
}

.mcn-policy-browse__view-btn {
	background: transparent;
	border: 0;
	padding: 8px 10px;
	cursor: pointer;
	color: #4a5568;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 150ms, color 150ms;
}

.mcn-policy-browse__view-btn + .mcn-policy-browse__view-btn {
	border-left: 1px solid #cbd5e0;
}

.mcn-policy-browse__view-btn:hover {
	background: #f7fafc;
	color: #003087;
}

.mcn-policy-browse__view-btn.is-active {
	background: #003087;
	color: #fff;
}

/* ---- Empty state ---- */
.mcn-policy-empty {
	padding: 3rem 2rem;
	text-align: center;
	color: #4a5568;
	background: #f7fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.95rem;
}

/* Pagination */
.mcn-policy-pagination {
	margin: 1.5rem 0 0;
}

.mcn-policy-pagination ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.mcn-policy-pagination__btn {
	min-width: 2.25rem;
	padding: 0.4rem 0.75rem;
	border: 1px solid #c5c8cb;
	border-radius: 4px;
	background: #fff;
	color: #003594;
	font-size: 0.95rem;
	cursor: pointer;
}

.mcn-policy-pagination__btn:hover, .mcn-policy-pagination__btn:focus {
	border-color: #003594;
	background: #f0f4fb;
}

.mcn-policy-pagination__btn.is-current {
	background: #003594;
	border-color: #003594;
	color: #fff;
	cursor: default;
}

.mcn-policy-categories {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mcn-policy-categories li {
	padding: 0.3rem 0;
}

.mcn-policy-categories__count {
	color: #777;
	font-size: 0.875rem;
	margin-left: 0.3rem;
}

/* ---------------------------------------------------------------------------
   Category grid (style="grid")
   --------------------------------------------------------------------------- */
.mcn-policy-categories--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mcn-policy-categories--grid .mcn-policy-categories__card {
	padding: 0;
	border: 0;
}

.mcn-policy-categories__card-link {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1.1rem 1.25rem;
	background: #fff;
	border: 1px solid #e3e4e6;
	border-radius: 6px;
	text-decoration: none;
	color: inherit;
	height: 100%;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mcn-policy-categories__card-link:hover, .mcn-policy-categories__card-link:focus {
	border-color: #003594;
	box-shadow: 0 4px 12px rgba(0, 53, 148, 0.08);
	transform: translateY(-1px);
	text-decoration: none;
}

.mcn-policy-categories__name {
	font-size: 1.05rem;
	font-weight: 600;
	color: #003594;
	line-height: 1.3;
}

.mcn-policy-categories--grid .mcn-policy-categories__count {
	font-size: 0.85rem;
	color: #666;
	margin-left: 0;
}

.mcn-policy-categories__desc {
	font-size: 0.85rem;
	color: #555;
	margin-top: 0.2rem;
	line-height: 1.4;
}

/* ---------------------------------------------------------------------------
   [policy_landing] — hero/landing page
   --------------------------------------------------------------------------- */
.mcn-policy-landing {
	margin: 0 0 2.5rem;
}

.mcn-policy-landing__header {
	margin: 0 0 1.5rem;
}

.mcn-policy-landing__title {
	margin: 0 0 0.75rem;
	font-size: 2.25rem;
	line-height: 1.15;
}

.mcn-policy-landing__intro {
	font-size: 1.05rem;
	color: #333;
	max-width: 65ch;
	line-height: 1.55;
}

.mcn-policy-landing__intro p:last-child {
	margin-bottom: 0;
}

.mcn-policy-landing__section-title {
	font-size: 1.5rem;
	margin: 2rem 0 1rem;
	padding-bottom: 0.4rem;
	border-bottom: 2px solid #003594;
}

.mcn-policy-landing__categories {
	margin: 0 0 2.5rem;
}

/* ---------------------------------------------------------------------------
   [policy_sidebar] — category navigation
   --------------------------------------------------------------------------- */
.mcn-policy-sidebar {
	background: #fff;
	border: 1px solid #e3e4e6;
	border-radius: 6px;
	overflow: hidden;
	font-size: 0.95rem;
}

.mcn-policy-sidebar__header {
	background: #003594;
	color: #fff;
	padding: 0.85rem 1.1rem;
	font-weight: 700;
	font-size: 1.05rem;
}

.mcn-policy-sidebar__header-link {
	color: #fff;
	text-decoration: none;
}

.mcn-policy-sidebar__header-link:hover, .mcn-policy-sidebar__header-link:focus {
	color: #fff;
	text-decoration: underline;
}

.mcn-policy-sidebar__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mcn-policy-sidebar__item {
	border-bottom: 1px solid #f0f1f2;
}

.mcn-policy-sidebar__item:last-child {
	border-bottom: 0;
}

.mcn-policy-sidebar__item a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
	padding: 0.65rem 1.1rem;
	color: #2c3338;
	text-decoration: none;
	line-height: 1.35;
}

.mcn-policy-sidebar__item a:hover, .mcn-policy-sidebar__item a:focus {
	background: #f6f7f8;
	color: #003594;
}

.mcn-policy-sidebar__item.is-active {
	background: #eaf1fb;
}

.mcn-policy-sidebar__item.is-active a {
	color: #003594;
	font-weight: 600;
	border-left: 3px solid #003594;
	padding-left: calc(1.1rem - 3px);
}

.mcn-policy-sidebar__count {
	color: #888;
	font-size: 0.85rem;
	font-weight: 400;
	flex-shrink: 0;
}

.mcn-policy-sidebar__item.is-active .mcn-policy-sidebar__count {
	color: #003594;
}

.mcn-policy-sidebar__footer {
	padding: 0.85rem 1.1rem;
	background: #f6f7f8;
	border-top: 1px solid #e3e4e6;
}

.mcn-policy-sidebar__back {
	color: #003594;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9rem;
}

.mcn-policy-sidebar__back:hover, .mcn-policy-sidebar__back:focus {
	text-decoration: underline;
}

/* Section labels (Category / Authority) inside the sidebar */
.mcn-policy-sidebar__section-label {
	padding: 0.5rem 1.1rem 0.25rem;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #888;
	background: #f6f7f8;
	border-top: 1px solid #e3e4e6;
	border-bottom: 1px solid #e3e4e6;
}

.mcn-policy-sidebar__section-label--spaced {
	margin-top: 0;
}

/* ---------------------------------------------------------------------------
   [policy_browse] — horizontal filter toolbar (matches Programs plugin pattern)
   --------------------------------------------------------------------------- */

/* Design tokens — mirrors Programs plugin's .mcneese-programs custom props */
.mcn-policy-browse {
	--mcp-primary:       #003087;
	--mcp-primary-dark:  #001f5c;
	--mcp-text:          #1a1a1a;
	--mcp-text-muted:    #4a5568;
	--mcp-bg:            #ffffff;
	--mcp-bg-subtle:     #f7fafc;
	--mcp-border:        #e2e8f0;
	--mcp-border-strong: #cbd5e0;
	--mcp-radius:        12px;
	--mcp-radius-sm:     6px;
	--mcp-shadow-hover:  0 10px 25px rgba(0,48,135,0.10), 0 4px 10px rgba(0,0,0,0.05);
	--mcp-transition:    200ms cubic-bezier(0.4, 0, 0.2, 1);

	position: relative; /* for loading overlay */
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
	color: var(--mcp-text);
}

/* Dynamic title "Viewing: Academics · Academic Affairs" */
.mcn-policy-browse__title {
	margin: 0 0 12px;
	font-size: 1.25rem;
	font-weight: 600;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
}

.mcn-policy-browse__title-prefix {
	color: var(--mcp-text-muted);
	font-weight: 500;
	font-size: 0.85em;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.mcn-policy-browse__title-context {
	color: var(--mcp-primary);
	font-weight: 700;
}

/* Toolbar */
.mcn-policy-browse__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	padding: 16px;
	background: var(--mcp-bg-subtle);
	border: 1px solid var(--mcp-border);
	border-radius: var(--mcp-radius);
	margin-bottom: 16px;
}

/* Search group */
.mcn-policy-browse__search {
	flex: 1 1 280px;
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid var(--mcp-border-strong);
	border-radius: var(--mcp-radius-sm);
	transition: border-color var(--mcp-transition), box-shadow var(--mcp-transition);
}

.mcn-policy-browse__search:focus-within {
	border-color: var(--mcp-primary);
	box-shadow: 0 0 0 3px rgba(0, 48, 135, 0.12);
}

.mcn-policy-browse__search-input {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 10px 14px;
	font-size: 15px;
	color: var(--mcp-text);
	outline: none;
	min-width: 0;
}

.mcn-policy-browse__search-btn {
	background: transparent;
	border: 0;
	padding: 8px 12px;
	cursor: pointer;
	color: var(--mcp-text-muted);
	display: flex;
	align-items: center;
}

.mcn-policy-browse__search-btn:hover {
	color: var(--mcp-primary);
}

/* Filter selects group */
.mcn-policy-browse__filters, .mcn-policy-browse__toolbar-end {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	flex-shrink: 0;
}

.mcn-policy-browse__filter-select, .mcn-policy-browse__sort-select {
	background: #fff;
	border: 1px solid var(--mcp-border-strong);
	border-radius: var(--mcp-radius-sm);
	padding: 9px 12px;
	font-size: 14px;
	color: var(--mcp-text);
	cursor: pointer;
	min-width: 120px;
	max-width: 220px;
	flex: 1 1 120px;
	transition: border-color var(--mcp-transition);
}

.mcn-policy-browse__filter-select:hover, .mcn-policy-browse__sort-select:hover {
	border-color: var(--mcp-primary);
}

.mcn-policy-browse__filter-select:focus, .mcn-policy-browse__sort-select:focus {
	outline: none;
	border-color: var(--mcp-primary);
	box-shadow: 0 0 0 3px rgba(0, 48, 135, 0.12);
}

/* Context bar — "Showing: Academics × | President ×  Reset" */
.mcn-policy-browse__context-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	background: var(--mcp-bg-subtle);
	border: 1px solid var(--mcp-border);
	border-radius: var(--mcp-radius);
	margin-bottom: 16px;
	min-height: 42px;
}

.mcn-policy-browse__context-label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mcp-text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}

.mcn-policy-browse__context-default {
	font-size: 14px;
	font-weight: 600;
	color: var(--mcp-text);
}

.mcn-policy-browse__context-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

/* Removable filter pill — dimension-colored like Programs plugin */
.mcn-policy-browse__context-pill {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 6px 4px 12px;
	border-radius: 100px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	line-height: 1.4;
}

.mcn-policy-browse__context-pill-label {
	max-width: 200px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mcn-policy-browse__context-pill button {
	background: rgba(255,255,255,.18) !important;
	border: none !important;
	color: #fff !important;
	cursor: pointer !important;
	width: 20px !important;
	height: 20px !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 14px !important;
	padding: 0 !important;
	margin: 0 !important;
	flex-shrink: 0 !important;
	transition: background .15s !important;
}

.mcn-policy-browse__context-pill button:hover {
	background: rgba(255,255,255,.35) !important;
}

/* Search indicator */
.mcn-policy-browse__context-search {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.mcn-policy-browse__context-search-prefix {
	font-size: 12px;
	color: var(--mcp-text-muted);
}

.mcn-policy-browse__context-search-term {
	font-size: 13px;
	font-weight: 600;
	color: var(--mcp-text);
	font-style: italic;
}

.mcn-policy-browse__context-clear-search {
	background: var(--mcp-border);
	border: none;
	color: var(--mcp-text-muted);
	cursor: pointer;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	padding: 0;
}

.mcn-policy-browse__context-clear-search:hover {
	background: #d1d5db;
	color: var(--mcp-text);
}

/* Reset button — pushed to far right */
.mcn-policy-browse__context-clear-all {
	margin-left: auto;
	background: none;
	border: 1px solid var(--mcp-border);
	color: var(--mcp-text-muted);
	border-radius: 100px;
	font-size: 12px;
	font-weight: 500;
	padding: 3px 12px;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color .15s, color .15s, background .15s;
}

.mcn-policy-browse__context-clear-all:hover {
	border-color: #b32d2e;
	color: #b32d2e;
	background: rgba(179, 45, 46, 0.05);
}

/* Count */
.mcn-policy-browse__count {
	font-size: 14px;
	color: var(--mcp-text-muted);
	margin-bottom: 16px;
	font-weight: 500;
}

/* Results region */
.mcn-policy-browse__results {
	margin: 0;
}

/* Pagination */
.mcn-policy-browse__pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--mcp-border);
}

.mcn-policy-browse__page-btn {
	background: #fff;
	border: 1px solid var(--mcp-border-strong);
	color: var(--mcp-primary);
	padding: 8px 18px;
	border-radius: var(--mcp-radius-sm);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all var(--mcp-transition);
}

.mcn-policy-browse__page-btn:hover:not(:disabled) {
	background: var(--mcp-primary);
	color: #fff;
	border-color: var(--mcp-primary);
}

.mcn-policy-browse__page-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.mcn-policy-browse__page-info {
	font-size: 14px;
	color: var(--mcp-text-muted);
	font-weight: 500;
}

/* Loading overlay */
.mcn-policy-browse__loader {
	display: none;
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.85);
	z-index: 10;
	align-items: center;
	justify-content: center;
	border-radius: var(--mcp-radius);
}

.mcn-policy-browse.is-loading .mcn-policy-browse__loader {
	display: flex;
}

.mcn-policy-browse__spinner {
	width: 36px;
	height: 36px;
	border: 3px solid var(--mcp-border);
	border-top-color: var(--mcp-primary);
	border-radius: 50%;
	animation: mcn-policy-spin 800ms linear infinite;
}

@keyframes mcn-policy-spin{
	to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 640px) {
	.mcn-policy-browse__toolbar {
		padding: 12px;
	}
	.mcn-policy-browse__search {
		flex: 1 1 100%;
	}
	.mcn-policy-browse__filters {
		width: 100%;
	}
	.mcn-policy-browse__filter-select,
	.mcn-policy-browse__sort-select {
		flex: 1;
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce){
	.mcn-policy-browse__spinner {
		animation-duration: 0.01ms !important;
	}
}

/* ---------------------------------------------------------------------------
   Single-policy detail page — full-width, no sidebar
   --------------------------------------------------------------------------- */

/* Page header: 2-column layout — title block on left, actions on right.
   Negative margin-top compensates for Breakdance template section padding. */
.mcn-policy-detail-page-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	margin: -1.5rem 0 1rem;
}

/* Left column — title + breadcrumb stacked */
.mcn-policy-detail-page-header__main {
	flex: 1 1 0;
	min-width: 0;
}

/* Right column — three action buttons in a row, top-aligned with the title.
   On narrow screens the whole column wraps below the title. */
.mcn-policy-actions-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.5rem;
	flex-shrink: 0;
	margin: 0.3rem 0 0;
}

/* Shared button base — sizing, shape, transitions.
   !important on layout/color defeats theme link styles. */
.mcn-policy-actions-row .mcn-policy-action-btn, .mcn-policy-actions-row a.mcn-policy-action-btn, .mcn-policy-actions-row a.mcn-policy-action-btn:link, .mcn-policy-actions-row a.mcn-policy-action-btn:visited, .mcn-policy-actions-row button.mcn-policy-action-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0.95rem;
	border-radius: 100px;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background 150ms, color 150ms, border-color 150ms, transform 100ms;
	text-decoration: none !important;
	box-shadow: none !important;
}

.mcn-policy-actions-row .mcn-policy-action-btn:active {
	transform: translateY(1px);
}

.mcn-policy-actions-row .mcn-policy-action-btn svg {
	flex-shrink: 0;
}

/* ---- BACK button — filled navy (McNeese primary brand) ---- */
.mcn-policy-actions-row .mcn-policy-action-btn--back, .mcn-policy-actions-row a.mcn-policy-action-btn--back, .mcn-policy-actions-row a.mcn-policy-action-btn--back:link, .mcn-policy-actions-row a.mcn-policy-action-btn--back:visited {
	background: #003087 !important;
	color: #ffffff !important;
	border: 1.5px solid #003087 !important;
}

.mcn-policy-actions-row .mcn-policy-action-btn--back:hover, .mcn-policy-actions-row .mcn-policy-action-btn--back:focus, .mcn-policy-actions-row a.mcn-policy-action-btn--back:hover, .mcn-policy-actions-row a.mcn-policy-action-btn--back:focus {
	background: #001f5c !important;
	border-color: #001f5c !important;
	color: #ffffff !important;
	outline: none;
}

/* ---- PRINT button — filled slate gray (neutral, distinct from navy) ---- */
.mcn-policy-actions-row .mcn-policy-action-btn--print, .mcn-policy-actions-row button.mcn-policy-action-btn--print {
	background: #475569 !important;
	color: #ffffff !important;
	border: 1.5px solid #475569 !important;
}

.mcn-policy-actions-row .mcn-policy-action-btn--print:hover, .mcn-policy-actions-row .mcn-policy-action-btn--print:focus {
	background: #334155 !important;
	border-color: #334155 !important;
	color: #ffffff !important;
	outline: none;
}

/* ---- DOWNLOAD PDF button — McNeese gold (eye-catching primary action) ---- */
.mcn-policy-actions-row .mcn-policy-action-btn--pdf, .mcn-policy-actions-row a.mcn-policy-action-btn--pdf, .mcn-policy-actions-row a.mcn-policy-action-btn--pdf:link, .mcn-policy-actions-row a.mcn-policy-action-btn--pdf:visited {
	background: #fcb917 !important;
	color: #003087 !important;
	border: 1.5px solid #fcb917 !important;
	font-weight: 700 !important;
}

.mcn-policy-actions-row .mcn-policy-action-btn--pdf:hover, .mcn-policy-actions-row .mcn-policy-action-btn--pdf:focus, .mcn-policy-actions-row a.mcn-policy-action-btn--pdf:hover, .mcn-policy-actions-row a.mcn-policy-action-btn--pdf:focus {
	background: #e6a614 !important;
	border-color: #e6a614 !important;
	color: #003087 !important;
	outline: none;
}

/* On narrow screens (under 720px), let the actions row sit below the title */
@media (max-width: 720px) {
	.mcn-policy-actions-row {
		width: 100%;
		justify-content: flex-start;
		margin-top: 0.25rem;
	}
}

/* Toolbar that follows the page header — make sure it spans full width
   and that the search input + filter selects can lay out on one row when
   space permits. */
.mcn-policy-detail-page-header + .mcn-policy-browse {
	width: 100%;
	box-sizing: border-box;
}

/* H2 title — smaller than H1, consistent with page hierarchy */
.mcn-policy-detail-header__title {
	margin: 0 0 0.4rem;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
	color: #1a1a1a;
}

/* Breadcrumb — use !important so links inherit our blue cleanly, not the
   theme's default link color which can be off-brand */
.mcn-policy-detail-header__breadcrumb {
	font-size: 0.875rem;
	color: #666;
}

.mcn-policy-detail-header__breadcrumb a, .mcn-policy-detail-header__breadcrumb a:link, .mcn-policy-detail-header__breadcrumb a:visited {
	color: #003087 !important;
	text-decoration: none !important;
	font-weight: 500;
}

.mcn-policy-detail-header__breadcrumb a:hover, .mcn-policy-detail-header__breadcrumb a:focus {
	color: #001f5c !important;
	text-decoration: underline !important;
}

/* Policy content body — sits below the toolbar with a divider */
/* Ensure all top-level policy detail elements span the full container width, regardless of how the host theme wraps the content (Breakdance, etc).
   Without these rules a flex/grid parent can shrink the body to fit its
   widest visible child, leaving the policy content awkwardly narrow. */
.mcn-policy-detail-page-header, .mcn-policy-detail-page-header__main, .mcn-policy-detail-body, .mcn-policy-meta-header, .mcn-policy-references {
	width: 100%;
	box-sizing: border-box;
}

.mcn-policy-detail-body {
	margin-top: 2rem;
	padding-top: 1.75rem;
	border-top: 2px solid #e3e4e6;
	font-size: 1rem;
	line-height: 1.65;
	color: #1a1a1a;
	display: block;
}

/* Paragraph spacing — give content room to breathe. Migrated policies often
   have <br><br> instead of separate <p> tags, so we use line-height + margin
   to make the text readable either way. */
.mcn-policy-detail-body p {
	margin: 0 0 1rem;
}

.mcn-policy-detail-body p:last-child {
	margin-bottom: 0;
}

/* Strong / bold text — many legacy policies use standalone bold text
   ("Travel", "Note:", etc.) as informal section headings. Style them as
   pseudo-subheadings so the structure is readable. */
.mcn-policy-detail-body strong, .mcn-policy-detail-body b {
	color: #1a1a1a;
	font-weight: 700;
}

/* Real headings inside policy content */
.mcn-policy-detail-body h1, .mcn-policy-detail-body h2, .mcn-policy-detail-body h3, .mcn-policy-detail-body h4, .mcn-policy-detail-body h5, .mcn-policy-detail-body h6 {
	color: #003087;
	font-weight: 700;
	line-height: 1.3;
	margin: 1.75rem 0 0.6rem;
}

.mcn-policy-detail-body h2 { font-size: 1.5rem; }
.mcn-policy-detail-body h3 { font-size: 1.25rem; }
.mcn-policy-detail-body h4 { font-size: 1.1rem; }
.mcn-policy-detail-body h5, .mcn-policy-detail-body h6 { font-size: 1rem; }

/* First heading inside the body shouldn't have huge top margin */
.mcn-policy-detail-body > h1:first-child, .mcn-policy-detail-body > h2:first-child, .mcn-policy-detail-body > h3:first-child, .mcn-policy-detail-body > .mcn-policy-meta-header + h2, .mcn-policy-detail-body > .mcn-policy-meta-header + h3 {
	margin-top: 0.5rem;
}

/* Lists */
.mcn-policy-detail-body ul, .mcn-policy-detail-body ol {
	margin: 0 0 1rem 1.5rem;
	padding: 0;
}

.mcn-policy-detail-body li {
	margin-bottom: 0.35rem;
	line-height: 1.65;
}

/* Links */
.mcn-policy-detail-body a {
	color: #003087;
	text-decoration: underline;
	text-decoration-color: rgba(0, 48, 135, 0.35);
	text-underline-offset: 2px;
	transition: text-decoration-color 150ms;
}

.mcn-policy-detail-body a:hover, .mcn-policy-detail-body a:focus {
	text-decoration-color: #003087;
}

/* Blockquotes */
.mcn-policy-detail-body blockquote {
	border-left: 3px solid #003087;
	background: #f5f7fa;
	padding: 0.75rem 1.25rem;
	margin: 1rem 0;
	color: #2d3748;
}

/* Tables — used in some policies for fee schedules, etc. */
.mcn-policy-detail-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	font-size: 0.95rem;
}

.mcn-policy-detail-body th, .mcn-policy-detail-body td {
	padding: 0.6rem 0.85rem;
	border: 1px solid #e2e8f0;
	text-align: left;
	vertical-align: top;
}

.mcn-policy-detail-body th {
	background: #f5f7fa;
	font-weight: 700;
	color: #003087;
}

/* Ensure the browse toolbar stretches full-width within the content column */
.mcn-policy-detail-header + .mcn-policy-browse {
	width: 100%;
}

/* ---------------------------------------------------------------------------
   Breadcrumb + single-policy fallback template
   --------------------------------------------------------------------------- */
.mcn-policy-breadcrumb {
	font-size: 0.875rem;
	color: #555;
	margin: 1rem 0;
}

.mcn-policy-breadcrumb a {
	color: #003594;
	text-decoration: none;
}

.mcn-policy-breadcrumb a:hover {
	text-decoration: underline;
}

.mcn-policy-single__container {
	max-width: 900px;
	margin: 0 auto;
	padding: 1rem;
}

.mcn-policy__title {
	font-size: 2rem;
	margin: 0 0 1.5rem;
}

/* ---------------------------------------------------------------------------
   ACCESSIBILITY UTILITIES & FOCUS INDICATORS
   --------------------------------------------------------------------------- */

/* Screen-reader-only text — for content that should be read aloud but
   not displayed visually. Used in patterns like "(opens in new tab)" hints
   on links that have target="_blank". */
.mcn-policy-detail-body .screen-reader-text, .mcn-policy-references .screen-reader-text, .mcn-policy-browse .screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	overflow: hidden;
	white-space: nowrap;
	border: 0;
	padding: 0;
	margin: -1px;
}

/* ---- Focus-visible: prominent keyboard-focus rings for ALL interactive
   elements in the plugin. Uses :focus-visible so mouse clicks don't show
   the ring, only keyboard navigation does. WCAG 2.4.7 / 2.4.11 compliant.
   Outline ring uses navy with white inner halo so it's visible on both
   light and dark backgrounds. */

.mcn-policy-actions-row .mcn-policy-action-btn:focus-visible, .mcn-policy-action-btn:focus-visible, .mcn-policy-browse__view-btn:focus-visible, .mcn-policy-browse__page-btn:focus-visible, .mcn-policy-browse__search-btn:focus-visible, .mcn-policy-browse__context-clear-all:focus-visible, .mcn-policy-browse__context-clear-search:focus-visible, .mcn-policy-browse__context-pill button:focus-visible, .mcn-policy-result__link:focus-visible, .mcn-policy-categories__card-link:focus-visible, .mcn-policy-sidebar__item a:focus-visible, .mcn-policy-sidebar__header-link:focus-visible, .mcn-policy-sidebar__back:focus-visible, .mcn-policy-pagination__btn:focus-visible, .mcn-policy-detail-header__breadcrumb a:focus-visible, .mcn-policy-references a:focus-visible, .mcn-policy-meta-header a:focus-visible {
	outline: 3px solid #fcb917 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 1px #003087 !important;
}

/* Form-element focus rings get a slightly different treatment — the gold
   outline would clash with input chrome. Use a strong shadow instead. */
.mcn-policy-browse__search:focus-within, .mcn-policy-browse__search-input:focus-visible, .mcn-policy-browse__filter-select:focus-visible, .mcn-policy-browse__sort-select:focus-visible {
	outline: none !important;
	border-color: #003087 !important;
	box-shadow: 0 0 0 3px rgba(252, 185, 23, 0.55) !important;
}

/* Result list rows: the truncated single-line title is discoverable by mouse
   users via the native title= tooltip on the link (set server-side); the full
   title remains in the DOM and is read by screen readers. */

/* Print: hide focus rings in print output so they don't appear on paper.
   (The iframe-print technique already isolates print HTML, but if a user
   ever falls back to Ctrl+P on the host page, this prevents focus rings
   from leaking into the printout.) */
@media print {
	*:focus,
	*:focus-visible {
		outline: none !important;
		box-shadow: none !important;
	}
}

/* Honour user preference for reduced motion — disable the button press
   transform and any other transitions throughout the plugin. */
@media (prefers-reduced-motion: reduce) {
	.mcn-policy-actions-row .mcn-policy-action-btn,
	.mcn-policy-action-btn,
	.mcn-policy-result,
	.mcn-policy-browse__view-btn,
	.mcn-policy-browse__filter-select,
	.mcn-policy-browse__sort-select,
	.mcn-policy-categories__card-link {
		transition: none !important;
	}
	.mcn-policy-actions-row .mcn-policy-action-btn:active {
		transform: none !important;
	}
}
