/*
 * Document library and site search (inc/library.php, inc/search.php, the child theme's search.php).
 * After Caribbean Mosaic's library, in NEB's colours: square, no shadows, lines in light blue.
 */

/* ---------- Covers: an A4 portrait box (1 : 1.414). The whole first page shows; a landscape form sits in white. ---------- */
.neb-thumb { display: block; }
.neb-thumb img,
.neb-doc-cover img,
.neb-cover-empty {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1.414;
	object-fit: contain;
	object-position: center top;
	border: 1px solid var(--e-global-color-lightblue);
	background-color: #fff;
}
/* No cover yet: a plain NEB cover. Sized in cqw so a 64px thumbnail is the same cover in small. */
.neb-cover-empty { position: relative; overflow: hidden; container-type: inline-size; border-color: transparent; background-color: var(--e-global-color-primary); }
.neb-cover-org { position: absolute; top: 10cqw; left: 10cqw; right: 10cqw; color: var(--e-global-color-lightblue); font-family: Inter, sans-serif; font-size: 7cqw; font-weight: 600; line-height: 1.25; }
.neb-cover-type { position: absolute; left: 10cqw; right: 10cqw; bottom: 18cqw; color: #fff; font-family: Outfit, sans-serif; font-size: 12cqw; font-weight: 600; line-height: 1.1; }
.neb-cover-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 6cqw; background-color: var(--e-global-color-secondary); }

.neb-lib .screen-reader-text,
.neb-search .screen-reader-text,
.neb-doc-actions .screen-reader-text,
.neb-lib-row .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Document page (Theme Builder "Single: library document") ---------- */
.neb-doc-cover { max-width: 260px; }
@media (max-width: 767px) { .neb-doc-cover { max-width: 150px; } }
.neb-doc-kicker, .neb-doc-facts { margin: 0; }
.neb-doc-kicker { font-size: 16px; font-weight: 600; }
/* p.class a: outranks the kit's link colour. */
p.neb-doc-kicker a { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 4px; }
p.neb-doc-kicker a:hover, p.neb-doc-kicker a:focus-visible { color: var(--e-global-color-primary); }
.neb-doc-facts { color: var(--e-global-color-primary); font-size: 18px; line-height: 1.5; }

.neb-doc-actions { display: flex; flex-wrap: wrap; gap: 12px; }
/* Two classes: outranks the kit's link colour. */
/* .neb-doc-actions prefix: outranks the kit's link colour, which loads after this file. */
.neb-doc-actions a.neb-doc-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border: 2px solid var(--e-global-color-secondary);
	background-color: var(--e-global-color-secondary);
	color: #fff;
	font-family: Inter, sans-serif;
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .15s, border-color .15s, color .15s;
}
.neb-doc-actions a.neb-doc-button:hover, .neb-doc-actions a.neb-doc-button:focus-visible { border-color: var(--e-global-color-primary); background-color: var(--e-global-color-primary); color: #fff; }
.neb-doc-actions a.neb-doc-button--line { background-color: transparent; color: var(--e-global-color-secondary); }
.neb-doc-button-meta { font-weight: 400; }
.neb-doc-note { margin: 0; color: var(--e-global-color-muted); font-size: 16px; }

/* Citation: a ruled box with the citation and a Copy button. */
.neb-cite { padding: 24px 28px; border: 1px solid var(--e-global-color-lightblue); border-left: 6px solid var(--e-global-color-secondary); }
.neb-cite p { margin: 0; }
.neb-cite-text { color: var(--e-global-color-text); font-size: 17px; line-height: 1.6; overflow-wrap: anywhere; }
.neb-cite-text a { color: var(--e-global-color-secondary); }
.neb-cite-actions { display: flex; align-items: center; gap: 14px; margin-top: 16px !important; }
.neb-cite button.neb-copy,
.neb-cite button.neb-copy:focus {
	min-height: 44px;
	padding: 0 20px;
	border: 2px solid var(--e-global-color-secondary);
	border-radius: 0;
	background-color: transparent;
	color: var(--e-global-color-secondary);
	font-family: Inter, sans-serif;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}
.neb-cite button.neb-copy:hover, .neb-cite button.neb-copy:focus-visible { background-color: var(--e-global-color-secondary); color: #fff; }
.neb-cite button.neb-copy[hidden] { display: none; }
.neb-copy-status { color: var(--e-global-color-muted); font-size: 16px; }

/* Details: label over value, between light blue rules. */
.neb-details { margin: 0; }
.neb-details dt { margin: 0; padding-top: 14px; border-top: 1px solid var(--e-global-color-lightblue); color: var(--e-global-color-muted); font-size: 13px; font-weight: 600; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
.neb-details dt:first-child { padding-top: 0; border-top: 0; }
.neb-details dd { margin: 4px 0 14px; color: var(--e-global-color-text); font-size: 16px; line-height: 1.5; }
.neb-details a { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 3px; }
.neb-details a:hover, .neb-details a:focus-visible { color: var(--e-global-color-primary); }

/* Related documents and a topic's forms: cover beside title and details. */
section.neb-related h2 { margin: 0 0 24px; color: var(--e-global-color-primary); font-family: Outfit, sans-serif; font-size: 28px; font-weight: 600; line-height: 1.2; }
.neb-doc-minis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.neb-doc-mini { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; align-items: start; }
.neb-doc-mini p { margin: 0; }
.neb-doc-mini-title { font-family: Outfit, sans-serif; font-size: 18px; font-weight: 600; line-height: 1.3; }
p.neb-doc-mini-title a { color: var(--e-global-color-primary); text-decoration: none; }
p.neb-doc-mini-title a:hover, p.neb-doc-mini-title a:focus-visible { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 3px; }
.neb-doc-mini-meta { margin-top: 4px !important; color: var(--e-global-color-muted); font-size: 15px; line-height: 1.5; }
.neb-doc-minis--compact { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.neb-doc-minis--compact .neb-doc-mini { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; }
.neb-doc-minis--compact .neb-doc-mini-title { font-size: 17px; }
div.neb-topic-docs h3 { margin: 0 0 16px; color: var(--e-global-color-primary); font-family: Outfit, sans-serif; font-size: 22px; font-weight: 600; line-height: 1.25; }

/* ---------- Listing ([neb_library_head], [neb_library]) ---------- */
/* Library pages are laid out like the search page: search box and tabs in the header, a filter column beside
   the list. The filter column has no ground of its own (Danny, 10 November 2026). */
.neb-lib--side { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
.neb-lib--plain { grid-template-columns: minmax(0, 1fr); }
.neb-lib-main { min-width: 0; }
.neb-lib-search { margin-top: 4px; }
.neb-search-filter > span,
.neb-filter-years legend { color: var(--e-global-color-primary); font-size: 16px; font-weight: 600; }
.neb-search-filter select,
.neb-search-form input[type="search"] {
	height: 48px;
	padding: 0 16px;
	border: 1px solid var(--e-global-color-primary);
	border-radius: 0;
	background-color: #fff;
	color: var(--e-global-color-text);
	font: inherit;
	font-size: 16px;
}
/* Selects draw the menu's chevron (Font Awesome solid chevron-down), as the bulletin filter does. */
.neb-search-filter select {
	min-width: 200px;
	max-width: 100%;
	padding-right: 44px;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23005EB8' d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 12px;
}
.neb-search-filter select:focus-visible,
.neb-search-form input:focus-visible { outline: 3px solid var(--e-global-color-secondary); outline-offset: 1px; }
/* Element + class: outranks Hello's default red button border and hover. */
.neb-search-form button,
.neb-search-filter-actions button {
	height: 48px;
	padding: 0 28px;
	border: 0;
	border-radius: 0;
	background-color: var(--e-global-color-secondary);
	color: #fff;
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s;
}
.neb-search-form button:hover, .neb-search-form button:focus-visible,
.neb-search-filter-actions button:hover, .neb-search-filter-actions button:focus-visible { border: 0; background-color: var(--e-global-color-primary); color: #fff; }
.neb-search-filter-actions a { align-self: center; color: var(--e-global-color-secondary); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }

.neb-lib-count,
.neb-search-count { margin: 28px 0 8px; color: var(--e-global-color-muted); font-size: 16px; }
.neb-lib-none { margin: 8px 0 0; font-size: 17px; }
.neb-lib-none a { color: var(--e-global-color-secondary); }
.neb-lib-list { margin: 0; padding: 0; border-top: 2px solid var(--e-global-color-primary); list-style: none; }
.neb-lib-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 20px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--e-global-color-lightblue); }
.neb-lib-body p { margin: 0; }
.neb-lib-list h3.neb-lib-title { margin: 0 0 2px; font-family: Inter, sans-serif; font-size: 18px; font-weight: 600; line-height: 1.4; }
h3.neb-lib-title a { color: var(--e-global-color-primary); text-decoration: none; }
h3.neb-lib-title a:hover, h3.neb-lib-title a:focus-visible { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 3px; }
.neb-lib-meta { color: var(--e-global-color-muted); font-size: 15px; line-height: 1.5; }
.neb-lib-snippet,
.neb-result-snippet {
	display: -webkit-box;
	margin-top: 6px !important;
	overflow: hidden;
	color: var(--e-global-color-text);
	font-size: 16px;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}
.neb-lib-snippet strong, .neb-result-snippet strong { font-weight: 700; }
/* The file, straight from the list: outlined, fills blue on hover. */
.neb-lib-row a.neb-lib-download {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border: 2px solid var(--e-global-color-secondary);
	color: var(--e-global-color-secondary);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.neb-lib-row a.neb-lib-download:hover, .neb-lib-row a.neb-lib-download:focus-visible { background-color: var(--e-global-color-secondary); color: #fff; }
.neb-lib-download-meta { font-weight: 400; }

/* Numbered pages, square like the bulletin list's. */
.neb-pages { margin-top: 40px; }
.neb-pages .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.neb-pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid var(--e-global-color-lightblue); color: var(--e-global-color-primary); font-size: 16px; font-weight: 600; text-decoration: none; }
.neb-pages a.page-numbers:hover, .neb-pages a.page-numbers:focus-visible { border-color: var(--e-global-color-secondary); background-color: var(--e-global-color-paleblue); }
.neb-pages .page-numbers.current { border-color: var(--e-global-color-primary); background-color: var(--e-global-color-primary); color: #fff; }
.neb-pages .page-numbers.dots { border-color: transparent; }

/* ---------- Search page ---------- */
.neb-wrap { max-width: 1200px; margin: 0 auto; }
.neb-search-band { padding-top: 32px; background-color: var(--e-global-color-paleblue); }
.neb-search-band .neb-crumbs { margin-bottom: 12px; }
.neb-search-band h1.neb-search-title { margin: 0 0 20px; color: var(--e-global-color-primary); font-family: Outfit, sans-serif; font-size: 48px; font-weight: 700; line-height: 1.1; }
.neb-search-form { display: flex; max-width: 760px; }
.neb-search-form input[type="search"] { flex: 1 1 auto; min-width: 0; height: 56px; border-width: 2px; border-right: 0; font-size: 18px; }
.neb-search-form button { height: 56px; padding: 0 32px; }

/* Categories: a row along the bottom of the band, the current one underlined in NEB blue, like a web search's tabs. */
.neb-search-tabs { margin-top: 28px; overflow-x: auto; scrollbar-width: none; }
.neb-search-tabs::-webkit-scrollbar { display: none; }
.neb-search-tabs ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
nav.neb-search-tabs a { display: inline-flex; align-items: center; gap: 8px; padding: 12px 14px 13px; border-bottom: 4px solid transparent; color: var(--e-global-color-primary); font-size: 16px; font-weight: 600; white-space: nowrap; text-decoration: none; }
nav.neb-search-tabs a:hover, nav.neb-search-tabs a:focus-visible { border-bottom-color: var(--e-global-color-lightblue); }
nav.neb-search-tabs a[aria-current="page"] { border-bottom-color: var(--e-global-color-secondary); color: var(--e-global-color-secondary); }
/* Seven tabs on Publications (with Insights): a little tighter so they fit the 1200px column on a desktop. */
@media (min-width: 1025px) {
	.neb-search-tabs ul { gap: 2px; }
	nav.neb-search-tabs a { gap: 6px; padding-left: 10px; padding-right: 10px; }
}
.neb-tab-count { min-width: 26px; padding: 1px 7px; background-color: #fff; color: var(--e-global-color-primary); font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; }
.neb-search-tabs a[aria-current="page"] .neb-tab-count { background-color: var(--e-global-color-secondary); color: #fff; }

.neb-search-body { padding: 8px 0 96px; }
.neb-search-body.has-filters { display: grid; grid-template-columns: 280px minmax(0, 760px); gap: 48px; align-items: start; }
.neb-search-main { max-width: 760px; min-width: 0; }
.neb-search-count span { color: var(--e-global-color-muted); }

.neb-search-filters { margin-top: 28px; }
aside.neb-search-filters h2 { margin: 0 0 16px; color: var(--e-global-color-primary); font-family: Outfit, sans-serif; font-size: 20px; font-weight: 600; }
.neb-search-filters form { display: flex; flex-direction: column; gap: 16px; }
.neb-search-filter { display: flex; flex-direction: column; gap: 8px; }
.neb-search-filter select { width: 100%; min-width: 0; }
.neb-search-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 4px; }
/* Year: from and to side by side. */
.neb-filter-years { display: grid; grid-template-columns: 1fr 1fr; gap: 0 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.neb-filter-years legend { margin-bottom: 8px; padding: 0; }
.neb-filter-years select { width: 100%; min-width: 0; }

/* Keywords: tags on each document; a tag filters the list by it, and the filter column shows it with a ×. */
.neb-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.neb-tags a.neb-tag { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 3px 12px; border: 1px solid var(--e-global-color-lightblue); background-color: #fff; color: var(--e-global-color-primary); font-size: 15px; font-weight: 500; line-height: 1.3; text-decoration: none; }
.neb-tags a.neb-tag:hover, .neb-tags a.neb-tag:focus-visible { border-color: var(--e-global-color-secondary); background-color: var(--e-global-color-paleblue); color: var(--e-global-color-primary); }
.neb-tags a.neb-tag[aria-current="true"] { border-color: var(--e-global-color-primary); background-color: var(--e-global-color-primary); color: #fff; }
.neb-tags a.neb-tag[aria-current="true"]:hover, .neb-tags a.neb-tag[aria-current="true"]:focus-visible { border-color: var(--e-global-color-secondary); background-color: var(--e-global-color-secondary); color: #fff; }
.neb-tag span[aria-hidden] { font-size: 18px; line-height: 1; }
.neb-filter-keyword .neb-tags { margin-top: 2px; }
p.neb-lib-keywords { margin: 12px 0 0; }
.neb-details .neb-tags { margin-top: 4px; }

/* Phones: the filter column folds behind a button. */
.neb-lib-side button.neb-filters-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 48px; padding: 0 16px; border: 1px solid var(--e-global-color-primary); border-radius: 0; background-color: #fff; color: var(--e-global-color-primary); font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }
.neb-lib-side button.neb-filters-toggle[hidden] { display: none; }
.neb-lib-side button.neb-filters-toggle:hover, .neb-lib-side button.neb-filters-toggle:focus-visible { border-color: var(--e-global-color-secondary); background-color: var(--e-global-color-paleblue); color: var(--e-global-color-primary); }
.neb-lib-side button.neb-filters-toggle span { margin-right: auto; margin-left: 6px; font-weight: 400; }
.neb-lib-side button.neb-filters-toggle::after { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.neb-lib-side button.neb-filters-toggle[aria-expanded="true"]::after { transform: translateY(2px) rotate(-135deg); }
.neb-filters-toggle:not([hidden]) + h2 { display: none; }
.neb-filters-toggle:not([hidden]) ~ form { margin-top: 20px; }
.neb-lib-side form[hidden] { display: none; }

.neb-results { margin: 0; padding: 0; list-style: none; }
.neb-result { padding: 22px 0; border-bottom: 1px solid var(--e-global-color-lightblue); }
.neb-result--doc { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; align-items: start; }
.neb-result-body p { margin: 0; }
.neb-result-trail { color: var(--e-global-color-muted); font-size: 15px; line-height: 1.4; }
/* Titles small and plain, as a web search sets them (Danny, 10 November 2026: "can titles be much smaller"). */
.neb-results h2.neb-result-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 2px 0 0; font-family: Inter, sans-serif; font-size: 18px; font-weight: 600; line-height: 1.4; }
.neb-result-title a { color: var(--e-global-color-secondary); text-decoration: none; }
.neb-result-title a:hover, .neb-result-title a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.neb-result-tag { flex: none; align-self: center; margin-top: 1px; padding: 1px 6px; border: 1px solid currentColor; color: var(--e-global-color-primary); font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .04em; line-height: 1.4; text-transform: uppercase; }
.neb-result-tag--class { border-color: var(--e-global-color-primary); background-color: var(--e-global-color-primary); color: #fff; }
.neb-result-meta { margin-top: 4px !important; color: var(--e-global-color-muted); font-size: 15px; line-height: 1.5; }
.neb-result-links { margin-top: 8px !important; font-size: 16px; }
.neb-result-links a { color: var(--e-global-color-secondary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.neb-search-help { font-size: 17px; }
.neb-search-help p { margin: 0 0 8px; }
.neb-search-help ul { margin: 0; padding-left: 20px; line-height: 1.8; }
.neb-search-help a { color: var(--e-global-color-secondary); font-weight: 600; }

@media (max-width: 1024px) {
	.neb-wrap { padding: 0 24px; }
	.neb-search-body.has-filters, .neb-lib--side { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
	.neb-lib--plain { grid-template-columns: minmax(0, 1fr); }
	.neb-doc-minis { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

@media (max-width: 767px) {
	.neb-wrap { padding: 0 16px; }
	.neb-search-band { padding-top: 20px; }
	.neb-search-band h1.neb-search-title { font-size: 34px; }
	.neb-search-form input[type="search"] { height: 52px; font-size: 17px; }
	.neb-search-form button { height: 52px; padding: 0 18px; }
	.neb-search-tabs { margin: 20px -16px 0; padding: 0 12px; }
	nav.neb-search-tabs a { padding: 12px 10px 13px; }
	.neb-search-body { padding-bottom: 64px; }
	.neb-search-body.has-filters { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.neb-results h2.neb-result-title { font-size: 17px; }
	.neb-result--doc, .neb-lib-row { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
	.neb-lib-row a.neb-lib-download { grid-column: 2; justify-self: start; }
	.neb-lib--side { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.neb-lib-side { margin-top: 20px; }
	.neb-lib-list h3.neb-lib-title { font-size: 17px; }
	.neb-cite { padding: 20px; }
	.neb-doc-actions a.neb-doc-button { width: 100%; justify-content: center; }
}
.neb-result-body p.neb-lib-keywords { margin-top: 10px; }

/* ---------- Insights on the Publications page (?show=insights): a landscape thumb, the photo or the NEB icon. ---------- */
.neb-lib-row--insight { grid-template-columns: 168px minmax(0, 1fr); }
.neb-thumb--wide img { aspect-ratio: 3 / 2; object-fit: cover; object-position: center; background-color: var(--e-global-color-paleblue); }
@media (max-width: 767px) { .neb-lib-row--insight { grid-template-columns: 112px minmax(0, 1fr); } }
