.njcms-btn,
.njcms-reports__btn,
.njcms-announcements__btn,
.njcms-home-court-card__button,
.njcms-courts__btn,
.njcms-guides__btn,
.njcms-decisions__btn,
.njcms-registry__btn,
.njcms-staff__btn,
.njcms-vacancies__btn,
.njcms-forms__btn,
.njcms-announcement-single__btn,
.njcms-decision-single__btn,
.njcms-report-single__btn,
.njcms-registry-single__btn,
.njcms-staff-single__btn,
.njcms-vacancy-single__btn,
.njcms-court-guide-single__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--njcms-button-gap);
	min-height: var(--njcms-button-height);
	padding: var(--njcms-button-padding-y) var(--njcms-button-padding-x);
	border: 1px solid transparent;
	border-radius: var(--njcms-button-radius);
	background: var(--njcms-color-primary);
	color: #fff;
	box-shadow: var(--njcms-button-shadow);
	font-size: var(--njcms-button-font-size);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	vertical-align: middle;
	cursor: pointer;
	transition:
		background-color var(--njcms-transition-fast),
		border-color var(--njcms-transition-fast),
		color var(--njcms-transition-fast),
		box-shadow var(--njcms-transition-fast),
		transform var(--njcms-transition-fast);
}

.njcms-btn:hover,
.njcms-btn:focus,
.njcms-reports__btn:hover,
.njcms-reports__btn:focus,
.njcms-announcements__btn:hover,
.njcms-announcements__btn:focus,
.njcms-home-court-card__button:hover,
.njcms-home-court-card__button:focus,
.njcms-courts__btn:hover,
.njcms-courts__btn:focus,
.njcms-guides__btn:hover,
.njcms-guides__btn:focus,
.njcms-decisions__btn:hover,
.njcms-decisions__btn:focus,
.njcms-registry__btn:hover,
.njcms-registry__btn:focus,
.njcms-staff__btn:hover,
.njcms-staff__btn:focus,
.njcms-vacancies__btn:hover,
.njcms-vacancies__btn:focus,
.njcms-forms__btn:hover,
.njcms-forms__btn:focus,
.njcms-announcement-single__btn:hover,
.njcms-announcement-single__btn:focus,
.njcms-decision-single__btn:hover,
.njcms-decision-single__btn:focus,
.njcms-report-single__btn:hover,
.njcms-report-single__btn:focus,
.njcms-registry-single__btn:hover,
.njcms-registry-single__btn:focus,
.njcms-staff-single__btn:hover,
.njcms-staff-single__btn:focus,
.njcms-vacancy-single__btn:hover,
.njcms-vacancy-single__btn:focus,
.njcms-court-guide-single__btn:hover,
.njcms-court-guide-single__btn:focus {
	background: var(--njcms-color-primary-dark);
	border-color: var(--njcms-color-primary-dark);
	color: #fff;
	box-shadow: var(--njcms-button-shadow-hover);
	text-decoration: none;
	transform: translateY(-1px);
}

.njcms-btn:active,
.njcms-reports__btn:active,
.njcms-announcements__btn:active,
.njcms-home-court-card__button:active,
.njcms-courts__btn:active,
.njcms-guides__btn:active,
.njcms-decisions__btn:active,
.njcms-registry__btn:active,
.njcms-staff__btn:active,
.njcms-vacancies__btn:active,
.njcms-forms__btn:active,
.njcms-announcement-single__btn:active,
.njcms-decision-single__btn:active,
.njcms-report-single__btn:active,
.njcms-registry-single__btn:active,
.njcms-staff-single__btn:active,
.njcms-vacancy-single__btn:active,
.njcms-court-guide-single__btn:active {
	box-shadow: var(--njcms-button-shadow);
	transform: translateY(1px);
}

.njcms-btn:focus-visible,
.njcms-reports__btn:focus-visible,
.njcms-announcements__btn:focus-visible,
.njcms-home-court-card__button:focus-visible,
.njcms-courts__btn:focus-visible,
.njcms-guides__btn:focus-visible,
.njcms-decisions__btn:focus-visible,
.njcms-registry__btn:focus-visible,
.njcms-staff__btn:focus-visible,
.njcms-vacancies__btn:focus-visible,
.njcms-forms__btn:focus-visible,
.njcms-announcement-single__btn:focus-visible,
.njcms-decision-single__btn:focus-visible,
.njcms-report-single__btn:focus-visible,
.njcms-registry-single__btn:focus-visible,
.njcms-staff-single__btn:focus-visible,
.njcms-vacancy-single__btn:focus-visible,
.njcms-court-guide-single__btn:focus-visible {
	outline: 3px solid var(--njcms-color-focus);
	outline-offset: 3px;
}

.njcms-btn::after,
.njcms-reports__btn--primary::after,
.njcms-announcements__btn--primary::after,
.njcms-home-court-card__button::after {
	content: "";
	display: inline-block;
	width: 0.65em;
	height: 0.65em;
	border-top: 1.8px solid currentColor;
	border-right: 1.8px solid currentColor;
	transform: translateX(0) rotate(45deg);
	transition: transform var(--njcms-transition-fast);
}

.njcms-btn:hover::after,
.njcms-btn:focus-visible::after,
.njcms-reports__btn--primary:hover::after,
.njcms-reports__btn--primary:focus-visible::after,
.njcms-announcements__btn--primary:hover::after,
.njcms-announcements__btn--primary:focus-visible::after,
.njcms-home-court-card__button:hover::after,
.njcms-home-court-card__button:focus-visible::after {
	transform: translateX(2px) rotate(45deg);
}

.njcms-btn-primary,
.njcms-button-primary .njcms-btn,
.njcms-button-primary .njcms-reports__btn--primary,
.njcms-button-primary .njcms-announcements__btn--primary,
.njcms-button-primary .njcms-home-court-card__button {
	background: var(--njcms-color-primary);
	border-color: var(--njcms-color-primary);
	color: #fff;
}

.njcms-btn-outline,
.njcms-button-outline .njcms-btn,
.njcms-button-outline .njcms-reports__btn,
.njcms-button-outline .njcms-announcements__btn,
.njcms-button-outline .njcms-home-court-card__button {
	background: #fff;
	border-color: var(--njcms-color-primary);
	color: var(--njcms-color-primary);
	box-shadow: none;
}

.njcms-btn-outline:hover,
.njcms-btn-outline:focus,
.njcms-button-outline .njcms-btn:hover,
.njcms-button-outline .njcms-btn:focus,
.njcms-button-outline .njcms-reports__btn:hover,
.njcms-button-outline .njcms-reports__btn:focus,
.njcms-button-outline .njcms-announcements__btn:hover,
.njcms-button-outline .njcms-announcements__btn:focus,
.njcms-button-outline .njcms-home-court-card__button:hover,
.njcms-button-outline .njcms-home-court-card__button:focus {
	background: var(--njcms-color-surface-alt);
	border-color: var(--njcms-color-primary-dark);
	color: var(--njcms-color-primary-dark);
	box-shadow: none;
}

.njcms-btn-text,
.njcms-button-text .njcms-btn {
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--njcms-color-link);
	box-shadow: none;
	text-align: left;
	text-decoration: none;
}

.njcms-btn-text:hover,
.njcms-btn-text:focus,
.njcms-button-text .njcms-btn:hover,
.njcms-button-text .njcms-btn:focus {
	background: transparent;
	color: var(--njcms-color-link-hover);
	box-shadow: none;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	transform: none;
}

.njcms-reports__btn--small,
.njcms-announcements__btn--small,
.njcms-courts__btn--small,
.njcms-guides__btn--small,
.njcms-registry__btn--small,
.njcms-vacancies__btn--small {
	min-height: var(--njcms-button-height-sm);
	padding: var(--njcms-button-padding-y-sm) var(--njcms-button-padding-x-sm);
	font-size: var(--njcms-button-font-size-sm);
}

.njcms-reports__btn--pdf,
.njcms-reports__btn--external,
.njcms-announcements__btn--pdf,
.njcms-announcements__btn--external,
.njcms-decisions__btn--pdf,
.njcms-decisions__btn--external,
.njcms-registry__btn--external,
.njcms-vacancies__btn--pdf,
.njcms-vacancies__btn--external,
.njcms-forms__btn--pdf,
.njcms-forms__btn--docx,
.njcms-forms__btn--external,
.njcms-announcement-single__btn--back,
.njcms-decision-single__btn--back,
.njcms-report-single__btn--back,
.njcms-registry-single__btn--back,
.njcms-staff-single__btn--back,
.njcms-vacancy-single__btn--back,
.njcms-court-guide-single__btn--back {
	background: #fff;
	border-color: var(--njcms-color-border);
	color: var(--njcms-color-primary);
	box-shadow: none;
}

.njcms-reports__btn--pdf:hover,
.njcms-reports__btn--external:hover,
.njcms-announcements__btn--pdf:hover,
.njcms-announcements__btn--external:hover,
.njcms-decisions__btn--pdf:hover,
.njcms-decisions__btn--external:hover,
.njcms-registry__btn--external:hover,
.njcms-vacancies__btn--pdf:hover,
.njcms-vacancies__btn--external:hover,
.njcms-forms__btn--pdf:hover,
.njcms-forms__btn--docx:hover,
.njcms-forms__btn--external:hover,
.njcms-announcement-single__btn--back:hover,
.njcms-decision-single__btn--back:hover,
.njcms-report-single__btn--back:hover,
.njcms-registry-single__btn--back:hover,
.njcms-staff-single__btn--back:hover,
.njcms-vacancy-single__btn--back:hover,
.njcms-court-guide-single__btn--back:hover {
	background: var(--njcms-color-surface-alt);
	border-color: var(--njcms-color-primary);
	color: var(--njcms-color-primary-dark);
}

@media (max-width: 760px) {
	.njcms-btn,
	.njcms-reports__btn,
	.njcms-announcements__btn,
	.njcms-home-court-card__button,
	.njcms-courts__btn,
	.njcms-guides__btn,
	.njcms-decisions__btn,
	.njcms-registry__btn,
	.njcms-staff__btn,
	.njcms-vacancies__btn,
	.njcms-forms__btn {
		min-height: 3rem;
		padding-inline: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.njcms-btn,
	.njcms-reports__btn,
	.njcms-announcements__btn,
	.njcms-home-court-card__button,
	.njcms-courts__btn,
	.njcms-guides__btn,
	.njcms-decisions__btn,
	.njcms-registry__btn,
	.njcms-staff__btn,
	.njcms-vacancies__btn,
	.njcms-forms__btn {
		transition: none;
	}

	.njcms-btn:hover,
	.njcms-reports__btn:hover,
	.njcms-announcements__btn:hover,
	.njcms-home-court-card__button:hover,
	.njcms-courts__btn:hover,
	.njcms-guides__btn:hover,
	.njcms-decisions__btn:hover,
	.njcms-registry__btn:hover,
	.njcms-staff__btn:hover,
	.njcms-vacancies__btn:hover,
	.njcms-forms__btn:hover {
		transform: none;
	}
}
