/**
 * Naoero Judiciary — Pass 6 island institutional design system.
 * Single controlled final style layer. Enqueue last (after brand overrides).
 */

:root {
	--nj-ocean-900: #0D3164;
	--nj-ocean-800: #123A6E;
	--nj-blue-700: #1655AB;
	--nj-blue-600: #1B5AAF;
	--nj-sky-100: #DCF1FC;
	--nj-sky-050: #F5FAFC;
	--nj-gold-600: #DCA10A;
	--nj-gold-500: #ECBC33;
	--nj-sand-100: #FBF4E1;
	--nj-ink: #102A4C;
	--nj-muted: #526987;
	--nj-white: #FFFFFF;
	--nj-border: #C9DCEE;

	--nj-font: "DM Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--nj-radius-card: 14px;
	--nj-radius-btn: 8px;
	--nj-shadow-soft: 0 8px 24px rgba(13, 49, 100, 0.08);
	--nj-shadow-card: 0 4px 16px rgba(13, 49, 100, 0.07);
	--nj-focus: 0 0 0 3px rgba(236, 188, 51, 0.55);

	/* Bridge prior tokens */
	--nj-brand-primary: var(--nj-ocean-900);
	--nj-brand-primary-dark: var(--nj-ocean-800);
	--nj-brand-primary-light: var(--nj-sky-100);
	--nj-brand-link: #0d3164;
	--nj-brand-accent: var(--nj-gold-600);
	--nj-brand-on-primary: var(--nj-white);
	--nj-brand-overlay: rgba(13, 49, 100, 0.72);
	--nj-ds-surface: var(--nj-white);
	--nj-ds-surface-soft: var(--nj-sky-050);
	--nj-ds-border: var(--nj-border);
	--nj-ds-text: var(--nj-ink);
	--nj-ds-muted: var(--nj-muted);
	--njcms-color-primary: var(--nj-ocean-900);
	--njcms-color-accent: var(--nj-gold-600);
	--njcms-color-link: var(--nj-blue-700);
	--wgl-primary-color: var(--nj-ocean-900);
	--wgl-theme-color: var(--nj-ocean-900);
}

/* -------------------------------------------------------------------------- */
/* Typography — DM Sans, no Georgia/Times on public heroes/headings           */
/* -------------------------------------------------------------------------- */

body,
.site,
.wgl-theme,
.elementor-widget-container,
.njcms-ia,
.nj-page-shell,
.njcms-soft-intro,
.njcms-home-hero,
.wgl-page-title,
.page-header,
.page_title {
	font-family: var(--nj-font);
	color: var(--nj-ink);
}

h1, h2, h3, h4, h5, h6,
.wgl-page-title .page-title_title,
.wgl-page-title h1,
.page-header h1,
.njcms-soft-intro__title,
.nj-section__title,
.njcms-home-hero__headline,
.njcms-about-hero-split__title,
.njcms-ia-section-title {
	font-family: var(--nj-font) !important;
	font-weight: 700;
	color: var(--nj-ink);
	letter-spacing: -0.01em;
	line-height: 1.25;
}

h1,
.wgl-page-title .page-title_title,
.wgl-page-title h1,
.page-header h1,
.njcms-home-hero__headline {
	font-weight: 800;
}

body,
p,
.njcms-soft-intro__text,
.nj-card__summary {
	font-weight: 400;
	line-height: 1.6;
}

/* -------------------------------------------------------------------------- */
/* Decorative wave                                                            */
/* -------------------------------------------------------------------------- */

.nj-wave,
.nj-wave--bottom,
.nj-wave--top {
	display: block;
	width: 100%;
	height: clamp(40px, 4.5vw, 72px);
	line-height: 0;
	pointer-events: none;
	overflow: hidden;
}

.nj-wave svg,
.nj-wave img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.nj-wave--top {
	transform: scaleY(-1);
}

.njcms-home-hero,
.njcms-home-hero-block,
.wgl-page-title,
.page-header {
	position: relative;
}

/* Homepage hero only: absolute decorative waves (must not become flex/grid columns) */
.njcms-home-hero {
	/* Desktop ~55–72px; scales down on tablet/mobile */
	--njcms-home-hero-wave-h: clamp(36px, 4.5vw, 72px);
	position: relative;
	display: block;
	width: 100%;
	max-width: none;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	margin-top: 0;
	padding-top: 0;
	height: var(--njcms-home-hero-h);
	min-height: var(--njcms-home-hero-h);
	max-height: none;
}

/*
 * Do NOT set transform: none on .njcms-home-hero — fullbleed uses
 * left: 50% + translateX(-50%). Killing transform leaves the hero half off-screen.
 */
body.njcms-homepage-has-custom-hero .njcms-home-hero-block,
body.njcms-custom-home-hero-active .njcms-home-hero-block,
body.njcms-homepage-has-custom-hero #main > .njcms-home-hero-block:first-child,
body.njcms-custom-home-hero-active #main > .njcms-home-hero-block:first-child {
	margin-top: 0;
	padding-top: 0;
}

/* Hero starts flush under the navbar — no empty band above the wave */
body.njcms-homepage-has-custom-hero .wgl-theme-header + #main,
body.njcms-custom-home-hero-active .wgl-theme-header + #main,
body.njcms-homepage-has-custom-hero .elementor-location-header + #main,
body.njcms-custom-home-hero-active .elementor-location-header + #main {
	margin-top: 0;
	padding-top: 0;
}

.njcms-home-hero::before,
.njcms-home-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	height: var(--njcms-home-hero-wave-h);
	background: url("../assets/svg/nj-wave-ocean.svg") center / 100% 100% no-repeat;
	background-size: 100% 100%;
	z-index: 5;
	pointer-events: none;
}

/* Top edge stays straight. The wave lives on the bottom element only. */
.njcms-home-hero::before,
.njcms-home-hero::after {
	content: none;
}

.njcms-home-hero > .nj-wave--hero-top,
.njcms-home-hero .nj-wave--hero-top,
.njcms-home-hero-block > .nj-wave--hero-top {
	display: none;
}

/*
 * Injected Pass-6 wave nodes stay decorative: full hero width, no layout height.
 * Do not inherit 940/1200px content wrappers.
 */
.njcms-home-hero > .nj-wave--hero-top,
.njcms-home-hero .nj-wave--hero-top,
.njcms-home-hero-block > .nj-wave--hero-top {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
	max-width: none;
	z-index: 5;
	height: var(--njcms-home-hero-wave-h, clamp(36px, 4.5vw, 72px));
	margin: 0;
	padding: 0;
	overflow: hidden;
	opacity: 1;
	pointer-events: none;
}

.njcms-home-hero > .nj-wave--hero-top img,
.njcms-home-hero .nj-wave--hero-top img,
.njcms-home-hero > .nj-wave--hero-bottom img,
.njcms-home-hero .nj-wave--hero-bottom img,
.njcms-home-hero-block > .nj-wave img {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	object-fit: cover;
	object-position: center;
	pointer-events: none;
}

.njcms-home-hero > .nj-wave--hero-bottom,
.njcms-home-hero .nj-wave--hero-bottom,
.njcms-home-hero .nj-wave--hero.nj-wave--bottom,
.njcms-home-hero-block > .nj-wave--hero-bottom {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	width: 100%;
	max-width: none;
	z-index: 5;
	height: var(--njcms-home-hero-wave-h, clamp(36px, 4.5vw, 72px));
	margin: 0;
	padding: 0;
	overflow: hidden;
	opacity: 1;
	pointer-events: none;
}

.njcms-home-hero .njcms-home-hero__viewport {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	box-sizing: border-box;
	overflow: hidden;
}

/*
 * Last-layer cover fill: hero media must occupy the configured hero height,
 * not the image's intrinsic ratio. Beats global/Elementor `height: auto`.
 */
html body .njcms-home-hero .njcms-home-hero__media,
html body .njcms-home-hero .njcms-home-hero__track,
html body .njcms-home-hero .njcms-home-hero__slide,
html body .njcms-home-hero .njcms-home-hero__media picture,
html body .njcms-home-hero .njcms-home-hero__media img,
html body .njcms-home-hero .njcms-home-hero__media video {
	position: absolute;
	inset: 0;
	display: block;
	z-index: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-width: 100%;
	min-height: 100%;
	aspect-ratio: auto !important;
}

html body .njcms-home-hero .njcms-home-hero__media img,
html body .njcms-home-hero .njcms-home-hero__media img.njcms-home-hero__image {
	object-fit: cover !important;
	object-position: var(--njcms-home-hero-focal, center center);
}

html body .njcms-home-hero .njcms-home-hero__media video,
html body .njcms-home-hero .njcms-home-hero__media video.njcms-home-hero__video {
	object-fit: cover !important;
	object-position: var(--njcms-hero-video-pos, var(--njcms-home-hero-focal, center center));
}

html body .njcms-home-hero .njcms-home-hero__media video.njcms-home-hero__video.is-framed {
	inset: auto !important;
	left: var(--njcms-video-x, 0px) !important;
	top: var(--njcms-video-y, 0px) !important;
	width: var(--njcms-video-w, 100%) !important;
	height: var(--njcms-video-h, 100%) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	object-fit: fill !important;
	transform: none !important;
}

@media (max-width: 767px) {
	html body .njcms-home-hero .njcms-home-hero__media video,
	html body .njcms-home-hero .njcms-home-hero__media video.njcms-home-hero__video {
		object-position: var(--njcms-hero-video-pos-mobile, var(--njcms-hero-video-pos, var(--njcms-home-hero-focal, center center)));
	}
}

.njcms-home-hero .njcms-home-hero__content {
	position: absolute;
	inset: 0;
	z-index: 4;
}

.njcms-home-hero .njcms-home-hero__content-inner,
.njcms-home-hero .njcms-home-hero__scroll {
	position: relative;
	z-index: 4;
}

/*
 * Arrows, pagination and pause sit on the hero, above the decorative waves.
 * Do not set these to position: relative — that collapses them into the top edge.
 */
.njcms-home-hero .njcms-home-hero__controls {
	position: absolute;
	inset: 0;
	z-index: 6;
	pointer-events: none;
}

.njcms-home-hero .njcms-home-hero__nav {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	max-width: 2.75rem;
	max-height: 2.75rem;
	padding: 0;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
}

.njcms-home-hero .njcms-home-hero__pagination {
	position: absolute;
	z-index: 6;
	left: 50%;
	bottom: calc(var(--njcms-home-hero-wave-h, 48px) + 0.7rem);
	transform: translateX(-50%);
	pointer-events: auto;
}

.njcms-home-hero .njcms-home-hero__toggle {
	position: absolute;
	z-index: 6;
	right: 0.85rem;
	bottom: calc(var(--njcms-home-hero-wave-h, 48px) + 0.7rem);
	pointer-events: auto;
}

.njcms-home-hero .njcms-home-hero__content--vpos-center {
	justify-content: center;
	align-items: center;
}

.njcms-home-hero-block {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	max-width: none;
}

.njcms-home-hero-block + *,
.njcms-home-hero + * {
	margin-top: 0;
}

/* Inner-page title waves (non-homepage) keep bottom placement only */
.wgl-page-title .nj-wave--hero,
.page-header .nj-wave--hero,
.nj-island-hero .nj-wave--hero {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	z-index: 3;
}

/* Footer must not render a trailing wave (wave relocated to homepage hero). */
.site-footer .nj-wave--footer,
.footer .nj-wave--footer,
.wgl-footer .nj-wave--footer,
body .elementor-location-footer .nj-wave--footer,
body > .nj-wave--footer {
	display: none;
	height: 0;
	margin: 0;
	overflow: hidden;
}

/* -------------------------------------------------------------------------- */
/* Header / navigation — dropdown indicator colour                            */
/* -------------------------------------------------------------------------- */

.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus,
.elementor-widget-wgl-menu .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > .njcms-wgl-menu-trigger-wrap > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > .njcms-wgl-menu-trigger-wrap > button.button_switcher,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > .njcms-wgl-menu-trigger-wrap > button.button_switcher_vertical,
.elementor-widget-wgl-menu .primary-nav > ul > li.menu-item-has-children > .njcms-wgl-menu-trigger-wrap > button.button_switcher,
.elementor-widget-wgl-menu .primary-nav > ul > li.menu-item-has-children > .njcms-wgl-menu-trigger-wrap > button.button_switcher_vertical,
.mobile_nav_wrapper .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus,
.mobile_nav_wrapper .primary-nav > ul > li.menu-item-has-children button.button_switcher,
.mobile_nav_wrapper .primary-nav > ul > li.menu-item-has-children button.button_switcher_vertical,
.wgl-menu-outer_content .primary-nav > ul > li.menu-item-has-children button.button_switcher,
.wgl-menu-outer_content .primary-nav > ul > li.menu-item-has-children button.button_switcher_vertical {
	color: inherit;
}

.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus::before,
.elementor-widget-wgl-menu .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus::before,
.mobile_nav_wrapper .primary-nav > ul > li.menu-item-has-children > a > .menu-item__plus::before {
	background-color: currentColor;
	opacity: 1;
}

.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > a:hover > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > a:focus > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children > a:focus-visible > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.menu-item-has-children:hover > a > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.current-menu-item > a > .menu-item__plus,
.wgl-theme-header .primary-nav > ul > li.current-menu-ancestor > a > .menu-item__plus,
.elementor-widget-wgl-menu .primary-nav > ul > li.menu-item-has-children > a:hover > .menu-item__plus,
.elementor-widget-wgl-menu .primary-nav > ul > li.current-menu-item > a > .menu-item__plus,
.elementor-widget-wgl-menu .primary-nav > ul > li.current-menu-ancestor > a > .menu-item__plus {
	color: inherit;
}

/* -------------------------------------------------------------------------- */
/* Header / navigation                                                        */
/* -------------------------------------------------------------------------- */

.wgl-top-header,
.wgl-theme-header .header_top-area,
.elementor-location-header .nj-topbar,
.header_area .top-bar {
	background: var(--nj-ocean-900) !important;
	color: var(--nj-white) !important;
	min-height: 36px;
	font-size: 0.875rem;
}

.wgl-top-header a,
.header_area .top-bar a {
	color: var(--nj-white) !important;
}

.wgl-theme-header,
.wgl-theme-header .wgl-sticky-header,
.header_area,
.elementor-location-header .elementor-section:not(.nj-topbar) {
	background: var(--nj-white) !important;
	border-bottom: 1px solid var(--nj-border);
	box-shadow: 0 1px 0 rgba(13, 49, 100, 0.04);
}

.wgl-theme-header .primary-nav > ul > li > a,
.elementor-widget-wgl-menu .primary-nav > ul > li > a {
	color: var(--nj-ocean-900) !important;
	font-family: var(--verdox-menu-font-family, var(--nj-font)), "DM Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	font-weight: 600;
	font-size: clamp(0.8125rem, 0.72rem + 0.28vw, 0.98rem);
	margin: 0 7px;
}

/*
 * Desktop header: keep Home visible as the first item. Compact spacing so
 * the full top-level list (including Home) fits beside the logo without
 * overflow. Mobile drawer and sticky header use the same menu markup.
 */
@media (min-width: 1025px) {
	.wgl-theme-header .primary-nav > ul.menu > li.menu-item-home {
		display: flex !important;
	}

	.wgl-theme-header .primary-nav > ul.menu {
		justify-content: flex-end;
		flex-wrap: nowrap;
		max-width: 100%;
		min-width: 0;
	}

	.wgl-theme-header .primary-nav > ul.menu > li > a {
		margin-left: 4px;
		margin-right: 4px;
		font-size: clamp(0.75rem, 0.68rem + 0.22vw, 0.9rem);
		white-space: nowrap;
	}

	.wgl-theme-header .wgl-logotype,
	.wgl-theme-header .wgl-logotype-container,
	.wgl-theme-header .elementor-widget-theme-site-logo,
	.wgl-theme-header .elementor-widget-image {
		position: relative;
		z-index: 2;
	}
}

.wgl-theme-header .primary-nav > ul > li.current-menu-item > a,
.wgl-theme-header .primary-nav > ul > li.current-menu-ancestor > a,
.wgl-theme-header .primary-nav > ul > li > a:hover,
.wgl-theme-header .primary-nav > ul > li > a:focus-visible {
	color: var(--nj-blue-700) !important;
}

.wgl-theme-header .primary-nav > ul > li.current-menu-item > a::after,
.wgl-theme-header .primary-nav > ul > li.current-menu-ancestor > a::after {
	content: "";
	display: block;
	height: 3px;
	margin-top: 0.2rem;
	background: var(--nj-gold-500);
	border-radius: 2px;
}

.wgl-theme-header .logo-name img,
.wgl-theme-header .wgl-logotype img,
.wgl-theme-header .wgl-logotype-container img,
.elementor-widget-theme-site-logo img,
.elementor-widget-image .elementor-widget-container img.custom-logo,
.custom-logo-link img,
.wgl-mobile-header .wgl-logotype img,
.mobile_nav_wrapper .wgl-logotype img,
.site-footer .wgl-logotype img,
.site-footer .custom-logo-link img,
.elementor-location-footer .custom-logo-link img,
.elementor-location-footer .elementor-widget-theme-site-logo img {
	height: auto;
	max-height: var(--njcms-logo-max-h, 64px);
	max-width: var(--njcms-logo-max-w, none);
	width: auto;
	object-fit: contain;
	image-rendering: -webkit-optimize-contrast;
}

@media (max-width: 1199px) {
	.wgl-theme-header .wgl-logotype-container img,
	.wgl-mobile-header .wgl-logotype img,
	.mobile_nav_wrapper .wgl-logotype img,
	.custom-logo-link img {
		max-height: var(--njcms-logo-max-h-m, 56px);
		max-width: var(--njcms-logo-max-w-m, var(--njcms-logo-max-w, none));
	}

	/*
	 * Mobile / tablet chrome: keep the circular logo and hamburger fully
	 * inside the header. Parent overflow:hidden was clipping the crest.
	 */
	.wgl-mobile-header,
	.wgl-mobile-header .wgl-logotype,
	.wgl-mobile-header .wgl-logotype-container,
	.wgl-mobile-header .custom-logo-link,
	.mobile_nav_wrapper .wgl-logotype,
	.mobile_nav_wrapper .wgl-logotype-container,
	.wgl-theme-header .wgl-mobile-header,
	.header_area .wgl-mobile-header {
		overflow: visible !important;
	}

	.wgl-mobile-header .wgl-logotype img,
	.wgl-mobile-header .custom-logo-link img,
	.mobile_nav_wrapper .wgl-logotype img {
		display: block;
		object-fit: contain;
		object-position: left center;
		overflow: visible;
	}
}

/* Footer logos: own controls (Site Layout > Design > Site logo), defaults unchanged. */
.site-footer .wgl-logotype img,
.site-footer .custom-logo-link img,
.elementor-location-footer .custom-logo-link img,
.elementor-location-footer .elementor-widget-theme-site-logo img {
	max-height: var(--njcms-logo-footer-max-h, 64px);
	max-width: var(--njcms-logo-footer-max-w, none);
}

.wgl-theme-header .primary-nav > ul > li > .sub-menu > li > a:focus-visible,
.elementor-widget-wgl-menu .primary-nav > ul > li > .sub-menu > li > a:focus-visible,
a:focus-visible,
button:focus-visible,
.nj-button:focus-visible,
.njcms-btn:focus-visible {
	outline: none;
	box-shadow: var(--nj-focus);
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */

.nj-button,
.njcms-btn,
.njcms-home-hero__btn,
.njcms-courts__btn--primary,
.elementor-button,
.wgl-button:not(.wgl-button-link) {
	font-family: var(--nj-font);
	font-weight: 600;
	border-radius: var(--nj-radius-btn);
	min-height: 44px;
	padding: 0.65rem 1.25rem;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.nj-button--primary,
.njcms-btn--primary,
.njcms-home-hero__btn--primary,
.njcms-courts__btn--primary,
.elementor-button,
.wgl-button:not(.wgl-button-link) {
	background: var(--nj-blue-700) !important;
	border: 2px solid var(--nj-blue-700) !important;
	color: var(--nj-white) !important;
}

.nj-button--primary:hover,
.nj-button--primary:focus-visible,
.njcms-btn--primary:hover,
.njcms-home-hero__btn--primary:hover,
.njcms-courts__btn--primary:hover,
.njcms-courts__btn--primary:focus-visible,
.elementor-button:hover,
.wgl-button:not(.wgl-button-link):hover {
	background: var(--nj-ocean-900) !important;
	border-color: var(--nj-gold-500) !important;
	color: var(--nj-white) !important;
}

/*
 * Our Courts list actions. !important is required: brand-overrides.css resets
 * .njcms-courts__btn--primary padding/min-height/background with !important.
 * Island loads last, so this is the winning button treatment for list rows only.
 */
.njcms-courts--list .njcms-courts__btn--primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto;
	gap: 0.35rem !important;
	box-sizing: border-box;
	min-height: 44px !important;
	min-width: 112px !important;
	width: auto !important;
	max-width: 100%;
	padding: 0.65rem 1.2rem !important;
	border-radius: var(--nj-radius-btn) !important;
	border: 2px solid var(--nj-ocean-900) !important;
	background: var(--nj-ocean-900) !important;
	color: var(--nj-white) !important;
	font-size: 0.9375rem !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: none !important;
	overflow: visible !important;
	transform: none !important;
}

.njcms-courts--list .njcms-courts__btn--primary:hover,
.njcms-courts--list .njcms-courts__btn--primary:focus {
	background: var(--nj-blue-700) !important;
	border-color: var(--nj-gold-500) !important;
	color: var(--nj-white) !important;
	text-decoration: none !important;
	transform: none !important;
}

.njcms-courts--list .njcms-courts__btn--primary:focus-visible {
	outline: none;
	box-shadow: var(--nj-focus) !important;
}

.nj-button--secondary,
.njcms-btn--secondary,
.njcms-home-hero__btn--secondary,
.njcms-courts__btn--external {
	background: var(--nj-white) !important;
	border: 2px solid var(--nj-blue-700) !important;
	color: var(--nj-blue-700) !important;
}

.nj-button--secondary:hover,
.njcms-home-hero__btn--secondary:hover {
	border-color: var(--nj-gold-600) !important;
	color: var(--nj-ocean-900) !important;
}

/* -------------------------------------------------------------------------- */
/* Cards, filters, tables, empty states                                       */
/* -------------------------------------------------------------------------- */

.nj-card,
.njcms-courts__card,
.njcms-publications-hub__card,
.njcms-ia-related-laws__item,
.nj-filter-bar,
.njcms-ia-staff-grid > *,
.nj-profile-grid > * {
	background: var(--nj-white);
	border: 1px solid var(--nj-border);
	border-radius: var(--nj-radius-card);
	box-shadow: var(--nj-shadow-card);
}

/* People sections are heading+grid containers, not cards — avoid double-box with person cards. */
.nj-people-section {
	border: 0;
	box-shadow: none;
	background: transparent;
	max-width: 100%;
}

.nj-people-section + .nj-people-section {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
}

.nj-people-section--empty + .nj-people-section,
.nj-people-section + .nj-people-section--empty,
.nj-people-section--empty + .nj-people-section--empty {
	margin-top: 1.75rem;
	padding-top: 1.75rem;
}

.nj-people-section--empty .njcms-ia-empty,
.nj-people-section--empty .nj-empty-state {
	display: none;
}

.nj-card,
.njcms-courts__card,
.njcms-publications-hub__card {
	position: relative;
	overflow: hidden;
}

.nj-card::before,
.njcms-courts__card::before,
.njcms-publications-hub__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--nj-blue-700), var(--nj-gold-500));
}

/* Quick Access cards: white cards on navy section (do not inherit generic card text). */
.njcms-home-major-pages__card {
	position: relative;
	overflow: hidden;
	background: var(--nj-white);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--nj-radius-card);
	box-shadow: var(--nj-shadow-card);
}

.njcms-home-major-pages__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--nj-blue-700), var(--nj-gold-500));
}

.nj-icon-circle,
.njcms-publications-hub__icon,
.njcms-home-major-pages__icon,
.njcms-courts__icon-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--nj-sky-100);
	color: var(--nj-blue-700);
	flex-shrink: 0;
}

.nj-icon-circle--gold,
.njcms-publications-hub__icon--gold {
	background: var(--nj-sand-100);
	color: var(--nj-gold-600);
}

.nj-filter-bar {
	padding: 1rem 1.15rem;
	margin-bottom: 1.25rem;
}

.nj-filter-bar__input,
.nj-filter-bar__select,
.njcms-ia input[type="search"],
.njcms-ia select {
	border: 1px solid var(--nj-border);
	border-radius: 8px;
	min-height: 44px;
	padding: 0.5rem 0.75rem;
	background: var(--nj-white);
	color: var(--nj-ink);
}

.nj-filter-bar__input:focus,
.nj-filter-bar__select:focus,
.njcms-ia input[type="search"]:focus,
.njcms-ia select:focus {
	outline: none;
	border-color: var(--nj-blue-700);
	box-shadow: var(--nj-focus);
}

.njcms-ia table thead th,
.nj-table thead th,
.cause-list-table thead th {
	background: var(--nj-ocean-900) !important;
	color: var(--nj-white) !important;
	font-weight: 600;
	border-color: var(--nj-ocean-800) !important;
}

.njcms-ia table tbody tr:nth-child(even),
.nj-table tbody tr:nth-child(even) {
	background: var(--nj-sky-050);
}

.njcms-ia table tbody tr:nth-child(odd),
.nj-table tbody tr:nth-child(odd) {
	background: var(--nj-white);
}

.njcms-empty-state,
.nj-empty-state,
.njcms-ia-empty {
	background: var(--nj-sky-100);
	border: 1px solid var(--nj-border);
	border-radius: var(--nj-radius-card);
	padding: 1.25rem 1.5rem;
	color: var(--nj-ink);
}

/* -------------------------------------------------------------------------- */
/* Soft intro + inner heroes                                                  */
/* -------------------------------------------------------------------------- */

.njcms-soft-intro,
.nj-page-shell__intro,
.njcms-page-chrome-intro-soft {
	background: var(--nj-sky-050);
	border-bottom: 1px solid var(--nj-border);
	padding: 1.5rem 0 1.75rem;
}

.njcms-soft-intro__title,
.njcms-page-chrome-intro-soft__title {
	font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem);
	margin: 0 0 0.5rem;
	color: var(--nj-ocean-900);
}

.njcms-soft-intro__text {
	color: var(--nj-muted);
	max-width: 48rem;
	margin: 0;
}

.wgl-page-title,
.page-header,
.page_title,
.nj-island-hero {
	background-color: var(--nj-ocean-900);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	min-height: 240px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: visible;
	padding-block: 40px;
	box-sizing: border-box;
}

@media (min-width: 768px) {
	.wgl-page-title,
	.page-header,
	.page_title,
	.nj-island-hero {
		min-height: 300px;
	}
}

@media (min-width: 1024px) {
	.wgl-page-title,
	.page-header,
	.page_title,
	.nj-island-hero {
		min-height: 380px;
	}
}

.wgl-page-title .page-title_content,
.page-header .page-header-content,
.page-header .page-header_content,
.page-header .page-header_wrapper {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	width: 100%;
	flex: 1 1 auto;
	padding-bottom: 0;
	margin-top: 0;
	transform: none;
}

.wgl-page-title .page-title_title,
.wgl-page-title h1,
.page-header h1 {
	color: var(--nj-white) !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.wgl-page-title .breadcrumbs,
.wgl-page-title .breadcrumbs a,
.page-header .breadcrumbs,
.page-header .breadcrumbs a {
	color: rgba(255, 255, 255, 0.92) !important;
	font-size: 0.9rem;
}

.wgl-page-title .page-title_subtitle,
.njcms-soft-intro .njcms-eyebrow,
.nj-eyebrow {
	display: none !important;
}

/* Section banding */
.nj-section--sand,
.njcms-home-stats {
	background: var(--nj-sand-100);
}

.njcms-home-principles {
	background: #e9ecf5;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-block: clamp(1.75rem, 3.8vw, 3.25rem);
	padding-inline: 0;
	box-sizing: border-box;
}

.njcms-home-principles__head,
.njcms-home-principles__tabs,
.njcms-home-principles__panel {
	width: min(1220px, calc(100% - 48px));
	max-width: 1220px;
	margin-inline: auto;
}

.nj-section--sky,
.njcms-publications-hub {
	background: var(--nj-sky-050);
}

.njcms-home-major-pages {
	background: linear-gradient(180deg, var(--nj-ocean-900) 0%, #123a7a 55%, var(--nj-blue-700) 100%);
	color: var(--nj-white);
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
}

.njcms-home-major-pages__card {
	color: var(--nj-ocean-900);
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;
	writing-mode: horizontal-tb;
	transform: none;
}

.njcms-home-major-pages__card-title,
.njcms-home-major-pages__card-title a {
	color: var(--nj-ocean-900);
}

.njcms-home-major-pages__card-desc {
	color: rgba(10, 32, 68, 0.78);
}

.njcms-home-major-pages__card-arrow {
	color: var(--nj-ocean-900);
}

.nj-section--cta,
.njcms-contact-cta,
.njcms-home-stats--island {
	background: var(--nj-ocean-900);
	color: var(--nj-white);
	position: relative;
}

.nj-section--cta h2,
.njcms-home-stats h2,
.njcms-home-stats .njcms-home-stats__title {
	color: var(--nj-white);
}

/* -------------------------------------------------------------------------- */
/* Publications hub icons                                                     */
/* -------------------------------------------------------------------------- */

.njcms-publications-hub__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.njcms-publications-hub__card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: 1.35rem 1.25rem 1.25rem;
	text-decoration: none;
	color: inherit;
	min-height: 11rem;
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.njcms-publications-hub__card:hover,
.njcms-publications-hub__card:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--nj-shadow-soft);
	text-decoration: none;
}

.njcms-publications-hub__card-title {
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--nj-ocean-900);
}

.njcms-publications-hub__card-desc {
	color: var(--nj-muted);
	font-size: 0.95rem;
	flex: 1;
}

.njcms-publications-hub__card-cta {
	font-weight: 600;
	color: var(--nj-blue-700);
	font-size: 0.9rem;
}

/* -------------------------------------------------------------------------- */
/* Courts cards                                                               */
/* -------------------------------------------------------------------------- */

.njcms-courts__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
}

.njcms-courts__card {
	display: flex;
	flex-direction: column;
	padding: 0;
}

.njcms-courts__body {
	padding: 1.15rem 1.2rem 1.35rem;
}

.njcms-courts__title a {
	color: var(--nj-ocean-900);
	text-decoration: none;
	font-weight: 700;
}

.njcms-courts__type {
	color: var(--nj-blue-700);
	font-weight: 600;
	font-size: 0.85rem;
	margin: 0.25rem 0 0.5rem;
}

.njcms-courts__summary {
	color: var(--nj-muted);
	margin: 0 0 1rem;
}

/* -------------------------------------------------------------------------- */
/* Footer                                                                     */
/* -------------------------------------------------------------------------- */

.site-footer,
.wgl-footer,
.footer,
.elementor-location-footer {
	background: var(--nj-ocean-900) !important;
	color: rgba(255, 255, 255, 0.92) !important;
}

.site-footer a,
.wgl-footer a,
.elementor-location-footer a {
	color: rgba(255, 255, 255, 0.92) !important;
}

.site-footer a:hover,
.wgl-footer a:hover,
.elementor-location-footer a:hover {
	color: var(--nj-gold-500) !important;
}

.site-footer .elementor-heading-title,
.wgl-footer h2,
.wgl-footer h3,
.elementor-location-footer h2,
.elementor-location-footer h3 {
	color: var(--nj-white) !important;
	font-family: var(--nj-font) !important;
}

.site-footer::before,
.elementor-location-footer > .elementor-element:first-child {
	border-top: 2px solid var(--nj-gold-500);
}

/* -------------------------------------------------------------------------- */
/* Contact + related laws                                                     */
/* -------------------------------------------------------------------------- */

.njcms-contact-page,
.njcms-ia-related-laws {
	background: var(--nj-sky-050);
}

.njcms-ia-related-laws__item {
	padding: 1.15rem 1.25rem;
}

.njcms-ia-related-laws__link-note {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: var(--nj-muted);
}

/* -------------------------------------------------------------------------- */
/* Homepage hero readability                                                  */
/* -------------------------------------------------------------------------- */

.njcms-home-hero__headline,
.njcms-home-hero__subtitle {
	color: var(--nj-white);
	text-shadow: 0 2px 8px rgba(0, 0, 0, .22);
}

/* Tint only — never a separate navy slab under the image. */
.njcms-home-hero__overlay,
.njcms-home-hero__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

/* Sticky header offset — keep hero below chrome */
body.admin-bar .wgl-theme-header.header_sticky-on,
.wgl-theme-header.header_sticky-on,
.wgl-sticky-header.is_stuck {
	/* Keep above hero media so open search / dropdowns receive pointer events. */
	z-index: 10040;
}

/* Mobile touch targets */
@media (max-width: 1199px) {
	.mobile_nav_wrapper .primary-nav a,
	.wgl-menu-outer_content .primary-nav a {
		min-height: 44px;
		padding: 0.75rem 1rem;
	}
}

@media (max-width: 767px) {
	.njcms-ia table,
	.cause-list-table-wrap,
	.nj-table-wrap {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.njcms-publications-hub__card:hover {
		transform: none;
	}
}

/* -------------------------------------------------------------------------- */
/* Authoritative hero hotfix (loads last). One layout, not competing layers. */
/* -------------------------------------------------------------------------- */

.njcms-home-hero.njcms-home-hero--fullbleed {
	width: 100vw;
	max-width: 100vw;
	position: relative;
	left: 50%;
	right: auto;
	margin-left: 0;
	margin-right: 0;
	transform: translateX(-50%);
}

.njcms-home-hero .njcms-home-hero__content {
	position: absolute;
	inset: 0;
	z-index: 4;
}

html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
html body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
	display: flex !important;
	flex-direction: column;
	justify-content: center !important;
	align-items: center !important;
	text-align: center;
	width: 100%;
	max-width: none;
	min-height: calc(var(--nj-inner-hero-clearance, var(--nj-hero-clearance, var(--nj-measured-header-height, clamp(5.5rem, 11vw + 2rem, 11rem)))) + var(--nj-inner-hero-usable-mobile, var(--nj-hero-usable-mobile, 240px))) !important;
	height: auto !important;
	padding-top: var(--nj-inner-hero-clearance, var(--nj-hero-clearance, var(--nj-measured-header-height, clamp(5.5rem, 11vw + 2rem, 11rem)))) !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	overflow: visible !important;
	box-sizing: border-box;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	transform: none;
}

html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
html[data-nj-header-overlap="0"] body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
	padding-top: 0 !important;
	min-height: var(--nj-inner-hero-usable-mobile, var(--nj-hero-usable-mobile, 240px)) !important;
}

@media (min-width: 768px) {
	html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
	html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
	html body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
		min-height: calc(var(--nj-inner-hero-clearance, var(--nj-hero-clearance, var(--nj-measured-header-height, clamp(5.5rem, 11vw + 2rem, 11rem)))) + var(--nj-inner-hero-usable-tablet, var(--nj-hero-usable-tablet, 300px))) !important;
	}

	html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
	html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
	html[data-nj-header-overlap="0"] body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
		min-height: var(--nj-inner-hero-usable-tablet, var(--nj-hero-usable-tablet, 300px)) !important;
	}
}

@media (min-width: 1024px) {
	html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
	html body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
	html body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
		min-height: calc(var(--nj-inner-hero-clearance, var(--nj-hero-clearance, var(--nj-measured-header-height, clamp(5.5rem, 11vw + 2rem, 11rem)))) + var(--nj-inner-hero-usable-desktop, var(--nj-hero-usable-desktop, 380px))) !important;
	}

	html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .page-header,
	html[data-nj-header-overlap="0"] body:not(.home):not(.page-id-175):not(.njcms-homepage-has-custom-hero):not(.njcms-custom-home-hero-active) .wgl-page-title,
	html[data-nj-header-overlap="0"] body.nj-plugin-page:not(.home):not(.page-id-175) .page-header {
		min-height: var(--nj-inner-hero-usable-desktop, var(--nj-hero-usable-desktop, 380px)) !important;
	}
}

html body.has-njcms-hero-bg .page-header,
html body.has-njcms-hero-bg .wgl-page-title,
html body.nj-plugin-page.has-njcms-hero-bg .page-header {
	background-image:
		linear-gradient(rgba(11, 31, 58, 0.38), rgba(11, 31, 58, 0.42)),
		var(--njcms-hero-bg-image) !important;
	background-size: cover !important;
	background-position: center center !important;
}

html body:not(.home):not(.page-id-175) .page-header .page-header_wrapper,
html body:not(.home):not(.page-id-175) .page-header .page-header_content,
html body.nj-plugin-page .page-header .page-header_wrapper,
html body.nj-plugin-page .page-header .page-header_content {
	display: flex !important;
	flex-direction: column;
	justify-content: center !important;
	align-items: center !important;
	text-align: center;
	width: 100%;
	max-width: none;
	margin-top: 0 !important;
	padding-top: 0 !important;
	position: relative !important;
	top: auto !important;
	transform: none !important;
	overflow: visible !important;
	flex: 1 1 auto;
}

html body:not(.home) .page-header .page-header_title,
html body:not(.home) .page-header h1,
html body.nj-plugin-page .page-header .page-header_title {
	margin-top: 0 !important;
	line-height: 1.15 !important;
	overflow: visible !important;
	transform: none !important;
}

html body:not(.home) .page-header .page-header_breadcrumbs,
html body.nj-plugin-page .page-header .page-header_breadcrumbs {
	display: flex !important;
	justify-content: center !important;
	align-self: center !important;
	width: 100% !important;
	max-width: min(40rem, 100%);
	margin: 0.85rem auto 0 !important;
	padding-top: 0 !important;
	text-align: center !important;
}
