/*
 * 51-search.css — site search (Discovery). Form: [ric_search_form]; results: [ric_site_search_results] in Elementor
 * template 1073; header search: [ric_search_form variant="header"] in header 403 (Tasks 50–51).
 * Link and button rules are prefixed with .ric-search / .ric-search-form so they beat the kit's `.elementor-kit-395 a`.
 */

.ric-sr-only {
	position: absolute !important; /* !important: must win over any widget display rule to stay visually hidden */
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---- Form ---- */
.ric-search-form { margin: 0 0 var(--ric-space-5); }
.ric-search-form .ric-search-form__label {
	display: block;
	margin: 0 0 var(--ric-space-2);
	font-family: var(--ric-font-body);
	font-size: var(--ric-text-base);
	font-weight: 600;
	color: var(--ric-color-text);
}
.ric-search-form .ric-search-form__row { display: flex; gap: var(--ric-space-2); align-items: stretch; max-width: 40rem; }
.ric-search-form .ric-search-form__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: var(--ric-tap-min);
	padding: var(--ric-space-2) var(--ric-space-3);
	font-family: var(--ric-font-body);
	font-size: var(--ric-text-base);
	color: var(--ric-color-text);
	background: var(--ric-color-bg);
	border: 1px solid var(--ric-color-border);
	border-radius: var(--ric-radius-sm);
}
.ric-search-form .ric-search-form__input:focus-visible { outline: var(--ric-focus-ring); outline-offset: 2px; border-color: var(--ric-color-primary); }
.ric-search-form .ric-search-form__submit,
.ric-search-form .ric-search-form__submit:focus { /* :focus too: Hello Elementor's reset paints buttons #c36 on focus */
	flex: 0 0 auto;
	min-height: var(--ric-tap-min);
	min-width: var(--ric-tap-min);
	padding: var(--ric-space-2) var(--ric-space-4);
	font-family: var(--ric-font-body);
	font-size: var(--ric-text-base);
	font-weight: 600;
	color: var(--ric-color-on-primary);
	background: var(--ric-color-secondary);
	border: 1px solid var(--ric-color-secondary);
	border-radius: var(--ric-radius-sm);
	cursor: pointer;
}
.ric-search-form .ric-search-form__submit:hover { background: var(--ric-color-primary); border-color: var(--ric-color-primary); color: var(--ric-color-on-primary); }
.ric-search-form .ric-search-form__submit:focus-visible { outline: var(--ric-focus-ring); outline-offset: 2px; }

/* ---- Results page ---- */
.ric-search { max-width: var(--ric-content-max); margin-inline: auto; padding-block: var(--ric-space-6) var(--ric-space-8); }
.ric-search .ric-search__title {
	margin: 0 0 var(--ric-space-4);
	font-family: var(--ric-font-heading);
	font-size: var(--ric-text-2xl);
	line-height: var(--ric-leading-tight);
	color: var(--ric-color-secondary);
	overflow-wrap: anywhere;
}
.ric-search .ric-search__count,
.ric-search .ric-search__hint,
.ric-search .ric-search__none-in-type { margin: 0 0 var(--ric-space-3); font-size: var(--ric-text-base); color: var(--ric-color-muted); }
.ric-search .ric-search__types ul,
.ric-search .ric-search__pagination ul,
.ric-search .ric-search__suggestions,
.ric-search .ric-search__list { list-style: none; margin: 0; padding: 0; }
.ric-search .ric-search__types ul { display: flex; flex-wrap: wrap; gap: var(--ric-space-2); margin-bottom: var(--ric-space-5); }
.ric-search .ric-search__type {
	display: inline-flex;
	align-items: center;
	min-height: var(--ric-tap-min);
	padding: 0 var(--ric-space-4);
	font-weight: 600;
	color: var(--ric-color-primary);
	text-decoration: none;
	border: 1px solid var(--ric-color-border);
	border-radius: 999px;
}
.ric-search .ric-search__type[aria-current="page"] { color: var(--ric-color-on-primary); background: var(--ric-color-primary); border-color: var(--ric-color-primary); }
.ric-search .ric-search__group { margin-block: var(--ric-space-6); }
.ric-search .ric-search__group-title { margin: 0 0 var(--ric-space-3); font-family: var(--ric-font-heading); font-size: var(--ric-text-xl); color: var(--ric-color-secondary); }
.ric-search .ric-search__group-count { font-size: var(--ric-text-base); font-weight: 400; color: var(--ric-color-muted); }
.ric-search .ric-search__list { display: grid; gap: var(--ric-space-3); }
@media (min-width: 768px) {
	.ric-search .ric-search__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ric-search .ric-search__item {
	position: relative;
	display: flex;
	gap: var(--ric-space-3);
	align-items: flex-start;
	padding: var(--ric-space-3);
	background: var(--ric-color-bg);
	border: 1px solid var(--ric-color-border);
	border-radius: var(--ric-radius-md);
}
.ric-search .ric-search__item:hover { border-color: var(--ric-color-primary); box-shadow: var(--ric-shadow-sm); }
.ric-search .ric-search__item:focus-within { outline: var(--ric-focus-ring); outline-offset: 2px; }
.ric-search .ric-search__thumb { flex: 0 0 auto; width: 72px; height: 72px; object-fit: cover; border-radius: var(--ric-radius-sm); }
@media (min-width: 768px) {
	.ric-search .ric-search__thumb { width: 96px; height: 96px; }
}
.ric-search .ric-search__body { min-width: 0; }
.ric-search .ric-search__item-title { margin: 0; font-family: var(--ric-font-heading); font-size: var(--ric-text-lg); line-height: var(--ric-leading-tight); }
.ric-search .ric-search__link { color: var(--ric-color-primary); text-decoration: none; }
.ric-search .ric-search__link:hover { color: var(--ric-color-link-hover); text-decoration: underline; }
.ric-search .ric-search__link:focus-visible { outline: none; } /* the card shows the ring (:focus-within) */
.ric-search .ric-search__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card = one link, one tab stop */
.ric-search .ric-search__subtitle { margin: var(--ric-space-1) 0 0; font-size: var(--ric-text-base); color: var(--ric-color-muted); }
.ric-search .ric-search__subtitle--scientific { font-style: italic; }
.ric-search .ric-search__snippet { margin: var(--ric-space-2) 0 0; font-size: var(--ric-text-base); color: var(--ric-color-text); overflow-wrap: anywhere; }
.ric-search .ric-search__snippet mark { padding: 0 0.1em; color: inherit; background: color-mix(in srgb, var(--ric-color-accent) 35%, transparent); border-radius: 2px; }
.ric-search .ric-search__more a,
.ric-search .ric-search__suggestions a {
	display: inline-flex;
	align-items: center;
	min-height: var(--ric-tap-min);
	font-weight: 600;
	color: var(--ric-color-link);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ric-search .ric-search__suggestions a { min-width: var(--ric-tap-min); justify-content: center; } /* "owl", "heron": 44px wide too */
.ric-search .ric-search__pagination ul { display: flex; flex-wrap: wrap; gap: var(--ric-space-2); margin-top: var(--ric-space-5); }
.ric-search .ric-search__pagination a,
.ric-search .ric-search__gap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--ric-tap-min);
	min-height: var(--ric-tap-min);
	padding: 0 var(--ric-space-3);
	border-radius: var(--ric-radius-sm);
}
.ric-search .ric-search__pagination a { font-weight: 600; color: var(--ric-color-primary); text-decoration: none; border: 1px solid var(--ric-color-border); }
.ric-search .ric-search__pagination a[aria-current="page"] { color: var(--ric-color-on-primary); background: var(--ric-color-primary); border-color: var(--ric-color-primary); }
.ric-search .ric-search__type:focus-visible,
.ric-search .ric-search__more a:focus-visible,
.ric-search .ric-search__suggestions a:focus-visible,
.ric-search .ric-search__pagination a:focus-visible,
.ric-search .ric-search__button:focus-visible { outline: var(--ric-focus-ring); outline-offset: 2px; }
.ric-search .ric-search__empty { padding: var(--ric-space-5); background: var(--ric-color-bg-accent); border-radius: var(--ric-radius-md); }
.ric-search .ric-search__empty p { font-size: var(--ric-text-base); }
.ric-search .ric-search__empty-title { margin: 0 0 var(--ric-space-2); font-family: var(--ric-font-heading); font-size: var(--ric-text-lg); }
.ric-search .ric-search__suggestions { display: flex; flex-wrap: wrap; gap: var(--ric-space-4); margin-bottom: var(--ric-space-4); }
.ric-search .ric-search__actions { display: flex; flex-wrap: wrap; gap: var(--ric-space-3); margin: 0; }
.ric-search .ric-search__button {
	display: inline-flex;
	align-items: center;
	min-height: var(--ric-tap-min);
	padding: 0 var(--ric-space-5);
	font-weight: 600;
	color: var(--ric-color-on-primary);
	text-decoration: none;
	background: var(--ric-color-secondary);
	border: 1px solid var(--ric-color-secondary);
	border-radius: var(--ric-radius-sm);
}
.ric-search .ric-search__button--secondary { color: var(--ric-color-primary); background: transparent; border-color: var(--ric-color-primary); }

/* ---- Header search: [ric_search_form variant="header"] in header 403; the widget wrapper has .ric-header-search-slot ---- */
/* Placement of the slot (widget ricsrhdr1, after the nav-menu widget) is Global's, in 30-header.css. */
.ric-header-search .ric-header-search__toggle,
.ric-header-search .ric-header-search__toggle:hover,
.ric-header-search .ric-header-search__toggle:focus { /* reset Hello Elementor's #c36 button colours */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ric-tap-min);
	height: var(--ric-tap-min);
	padding: 0;
	color: var(--ric-color-primary);
	background: transparent;
	border: 0;
	border-radius: var(--ric-radius-sm);
	cursor: pointer;
}
.ric-header-search .ric-header-search__toggle:hover,
.ric-header-search.is-open .ric-header-search__toggle { background: var(--ric-color-bg-accent); }
.ric-header-search .ric-header-search__toggle:focus-visible { outline: var(--ric-focus-ring); outline-offset: 2px; }
.ric-header-search .ric-header-search__panel {
	position: fixed;
	inset-inline: 0;
	top: 0; /* set by site-search-header.js to the header's bottom edge */
	z-index: 100;
	padding: var(--ric-space-3) var(--ric-gutter);
	background: var(--ric-color-bg);
	border-bottom: 1px solid var(--ric-color-border);
	box-shadow: var(--ric-shadow-md);
}
.ric-header-search .ric-header-search__panel[hidden] { display: none; }
.ric-header-search .ric-search-form { max-width: var(--ric-content-max); margin: 0 auto; }
.ric-header-search .ric-search-form__row { max-width: none; }
