.el-cert-search {
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 52rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid #d8dde3;
	border-radius: 0.375rem;
	background: #fff;
	color: inherit;
}

.el-cert-search *,
.el-cert-search *::before,
.el-cert-search *::after {
	box-sizing: inherit;
}

.el-cert-search__heading {
	margin: 0 0 0.75rem;
	font: inherit;
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
}

.el-cert-search__instructions {
	margin: 0 0 1.5rem;
}

.el-cert-search__label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
}

.el-cert-search__controls {
	display: flex;
	gap: 0.75rem;
}

.el-cert-search__tip {
	margin-top: 0.875rem;
	padding: 0.875rem 1rem;
	border-left: 4px solid #1d4f7a;
	background: #f2f5f7;
	color: #1d2327 !important;
	font-size: 0.925em;
	line-height: 1.55;
}

.el-cert-search__tip p {
	margin: 0;
	color: #1d2327 !important;
}

.el-cert-search__tip strong {
	color: #111820 !important;
}

.el-cert-search__tip p + p {
	margin-top: 0.5rem;
}

.el-cert-search__input {
	min-width: 0;
	flex: 1 1 20rem;
	padding: 0.75rem;
	border: 1px solid #68737d;
	border-radius: 0.25rem;
	background: #fff;
	color: #1d2327;
	font: inherit;
}

.el-cert-search__button {
	flex: 0 0 auto;
	padding: 0.75rem 1.25rem;
	border: 2px solid transparent;
	border-radius: 0.25rem;
	background: #1d4f7a;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 600;
}

.el-cert-search__input:focus,
.el-cert-search__button:focus {
	outline: 3px solid #f0b849;
	outline-offset: 2px;
}

.el-cert-search__button:hover {
	background: #153b5c;
}

.el-cert-message {
	margin: 1.25rem 0 0;
	padding: 0.875rem 1rem;
	border-left: 4px solid #1d4f7a;
	background: #f2f5f7;
}

.el-cert-results {
	display: grid;
	gap: 1rem;
	margin-top: 1.5rem;
}

.el-cert-result {
	margin: 0;
	padding: 1.25rem;
	border: 1px solid #d8dde3;
	border-radius: 0.375rem;
	background: #f8fafb;
	color: #1d2327 !important;
}

.el-cert-result__business {
	margin: 0 0 0.75rem;
	font: inherit;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	color: #17202a !important;
}

.el-cert-result__number {
	margin: 0 0 1rem;
	color: #1d2327 !important;
}

.el-cert-result__number-label {
	display: block;
	margin-bottom: 0.125rem;
	font-size: 0.875em;
	color: #3c4650 !important;
}

.el-cert-result__number strong {
	color: #111820 !important;
}

.el-cert-result__view {
	display: inline-block;
	padding: 0.625rem 1rem;
	border: 2px solid transparent;
	border-radius: 0.25rem;
	background: #1d4f7a;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.el-cert-result__view:hover {
	background: #153b5c;
	color: #fff;
}

.el-cert-result__view:focus {
	outline: 3px solid #f0b849;
	outline-offset: 2px;
}

.el-cert-viewer {
	box-sizing: border-box;
	max-width: 72rem;
	margin: 0 auto;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid #d8dde3;
	border-radius: 0.375rem;
	background: #fff;
	color: inherit;
}

.el-cert-viewer__heading {
	margin: 0 0 0.5rem;
	font: inherit;
	font-size: clamp(1.4rem, 3vw, 1.9rem);
	font-weight: 700;
}

.el-cert-viewer__number,
.el-cert-viewer__notice {
	margin: 0 0 0.75rem;
}

.el-cert-viewer__number strong {
	margin-left: 0.35rem;
}

.el-cert-viewer__pages {
	display: grid;
	gap: 1rem;
	width: 100%;
	max-height: 78vh;
	min-height: 24rem;
	padding: 0.75rem;
	overflow: auto;
	border: 1px solid #68737d;
	background: #f2f5f7;
	user-select: none;
	-webkit-user-select: none;
}

.el-cert-viewer__page {
	display: flex;
	justify-content: center;
	width: 100%;
}

.el-cert-viewer__page canvas {
	display: block;
	max-width: 100%;
	height: auto !important;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
	background: #fff;
}

.el-cert-viewer__status {
	margin: 0 0 0.75rem;
	font-weight: 600;
}

.el-cert-viewer__status--ready {
	display: none;
}

.el-cert-viewer__status--error {
	padding: 0.75rem;
	border-left: 4px solid #b32d2e;
	background: #fcf0f1;
}

.el-cert-viewer__print-message {
	display: none;
}

@media (max-width: 36rem) {
	.el-cert-search__controls {
		flex-direction: column;
	}

	.el-cert-search__input,
	.el-cert-search__button {
		width: 100%;
	}

	.el-cert-viewer__pages {
		min-height: 20rem;
		padding: 0.4rem;
	}
}

@media print {
	.el-cert-viewer__pages {
		display: none !important;
	}

	.el-cert-viewer__print-message {
		display: block;
		padding: 1rem;
		border: 1px solid #68737d;
	}
}
