/* NLS Dynamic Content — Phase 4.1 visual polish
   Scoped to body.nls-dc / managed pages. Does not restyle wp-admin or the accessibility widget.
*/

.nls-dc,
.nls-dc *,
.nls-dc *::before,
.nls-dc *::after {
	box-sizing: border-box;
}

.nls-dc .nls-bleed,
.nls-dc .nls-page-section,
.nls-dc .nls-section,
.nls-dc .nls-inner-page-hero,
.nls-dc .nls-newsletter-band,
.nls-dc footer.nls-owned-footer {
	width: 100%;
	max-width: none;
	margin-block: 0;
	margin-left: 0;
	margin-right: 0;
}

.nls-dc .nls-bleed > :first-child,
.nls-dc .nls-section > :first-child,
.nls-dc .nls-page-section > :first-child {
	margin-top: 0;
}

.nls-dc .nls-bleed > :last-child,
.nls-dc .nls-section > :last-child,
.nls-dc .nls-page-section > :last-child {
	margin-bottom: 0;
}

.nls-dc .nls-inner,
.nls-dc .nls-home-hero__inner,
.nls-dc .nls-inner-page-hero__inner,
.nls-dc .nls-contact__inner,
.nls-dc .nls-newsletter-band__inner {
	width: min(100% - 48px, 1240px);
	max-width: 1240px;
	margin-inline: auto;
	background: transparent;
}

@media (max-width: 1024px) {
	.nls-dc .nls-inner,
	.nls-dc .nls-home-hero__inner,
	.nls-dc .nls-inner-page-hero__inner,
	.nls-dc .nls-contact__inner,
	.nls-dc .nls-newsletter-band__inner {
		width: min(100% - 32px, 1240px);
	}
}

@media (max-width: 767px) {
	.nls-dc .nls-inner,
	.nls-dc .nls-home-hero__inner,
	.nls-dc .nls-inner-page-hero__inner,
	.nls-dc .nls-contact__inner,
	.nls-dc .nls-newsletter-band__inner {
		width: min(100% - 24px, 1240px);
	}
}

@media (max-width: 479px) {
	.nls-dc .nls-inner,
	.nls-dc .nls-home-hero__inner,
	.nls-dc .nls-inner-page-hero__inner,
	.nls-dc .nls-contact__inner,
	.nls-dc .nls-newsletter-band__inner {
		width: min(100% - 20px, 1240px);
	}
}

/* Unbox LawSight / WPBakery only on homepage + managed pages. */
body.nls-home #content.site-content,
body.nls-home #content > .content-inner,
body.nls-home .container.content-container,
body.nls-home #content .container,
body.nls-home .content-row,
body.nls-home #primary.content-area,
body.nls-home #main-content,
body.nls-home article.page,
body.nls-home .entry-content,
body.nls-home .wpb-content-wrapper,
body.nls-page-managed #content.site-content,
body.nls-page-managed .container.content-container,
body.nls-page-managed #content .container,
body.nls-page-managed .content-row,
body.nls-page-managed #primary.content-area,
body.nls-page-managed #main-content,
body.nls-page-managed article.page,
body.nls-page-managed .entry-content,
body.nls-page-managed .wpb-content-wrapper {
	max-width: none !important; /* LawSight .container 1170px otherwise bands the bleed */
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.nls-home,
body.nls-home #page,
body.nls-page-managed,
body.nls-page-managed #page {
	overflow-x: clip;
}

/* Pre-navbar strip: LawSight header-layout1 .header-main:not(.h-fixed) { margin-top: 29px } at ≥992px. */
body.nls-dc #header-wrap.header-layout1 .header-main:not(.h-fixed) {
	margin-top: 0 !important; /* exact 29px public gap; not a negative-margin hide */
}

body.nls-dc #wpadminbar {
	display: block;
}

/* Homepage: keep transparent overlay navbar at the top of the public page. */
body.nls-home #header-wrap.header-trans {
	top: 0;
}

/* Inner managed pages: header in-flow so it does not overlay the hero. */
body.nls-page-managed #header-wrap.header-trans,
body.nls-inner-hero.nls-page-managed #header-wrap.header-trans {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
}

/* Nav / buttons / card CTAs / footer nav: no underline in any interaction state. */
body.nls-dc #header-wrap .menu-primary-menu a,
body.nls-dc #header-wrap .primary-menu a,
body.nls-dc #header-wrap .header-menu a,
body.nls-dc #header-wrap .menu-item a,
body.nls-dc .menu-mobile-menu a,
body.nls-dc .ct-header-navigation a,
body.nls-dc .nls-btn,
body.nls-dc .nls-btn:link,
body.nls-dc .nls-btn:visited,
body.nls-dc .nls-btn:hover,
body.nls-dc .nls-btn:focus,
body.nls-dc .nls-btn:active,
body.nls-dc .nls-card-cta a,
body.nls-dc .nls-card-cta a:link,
body.nls-dc .nls-card-cta a:visited,
body.nls-dc .nls-card-cta a:hover,
body.nls-dc .nls-card-cta a:focus,
body.nls-dc .nls-card-cta a:active,
body.nls-dc .nls-leadership-cta a,
body.nls-dc footer.nls-owned-footer a,
body.nls-dc footer.nls-owned-footer a:link,
body.nls-dc footer.nls-owned-footer a:visited,
body.nls-dc footer.nls-owned-footer a:hover,
body.nls-dc footer.nls-owned-footer a:focus,
body.nls-dc footer.nls-owned-footer a:active,
body.nls-dc .nls-breadcrumb a,
body.nls-dc .nls-breadcrumb a:hover,
body.nls-dc .nls-breadcrumb a:focus,
body.nls-dc .nls-breadcrumb a:visited {
	text-decoration: none;
}

body.nls-dc #header-wrap .menu-item a:hover,
body.nls-dc .ct-header-navigation a:hover,
body.nls-dc footer.nls-owned-footer a:hover {
	color: var(--nls-gold);
}

body.nls-dc .nls-btn:hover {
	filter: brightness(1.05);
	outline: none;
}

body.nls-dc .nls-btn:focus-visible,
body.nls-dc .nls-card-cta a:focus-visible,
body.nls-dc #header-wrap a:focus-visible,
body.nls-dc footer.nls-owned-footer a:focus-visible,
body.nls-dc .nls-breadcrumb a:focus-visible,
body.nls-dc .nls-contact__form input:focus-visible,
body.nls-dc .nls-contact__form textarea:focus-visible,
body.nls-dc .nls-newsletter-band input:focus-visible,
body.nls-dc .nls-newsletter-band [type="submit"]:focus-visible {
	outline: 3px solid var(--nls-focus);
	outline-offset: 3px;
}

/* Pattern: full-bleed overlay, not 160px side colour bands. */
body.nls-dc .nls-pattern-surface::before,
body.nls-dc .nls-pattern-surface::after,
body.home .nls-pattern-surface::before,
body.home .nls-pattern-surface::after {
	content: "";
	position: absolute;
	inset: 0;
	width: auto;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	transform: none;
	opacity: 0.07;
	pointer-events: none;
	z-index: 0;
	background-repeat: repeat;
	background-size: 420px;
}

body.nls-dc .nls-pattern-surface::after {
	content: none;
	display: none;
}

body.nls-dc .nls-section-bg--dark.nls-pattern-surface::before,
body.nls-dc .nls-contact.nls-pattern-surface::before {
	opacity: 0.08;
}

/* Welcome / About shared two-column component (not body.home only). */
.nls-dc .nls-home-about {
	padding: 0;
	overflow: hidden;
}

.nls-dc .nls-home-about .nls-inner {
	padding-block: clamp(2rem, 4vw, 3.25rem);
}

.nls-dc .nls-home-about__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: center;
}

.nls-dc .nls-home-about__copy {
	padding: 0;
	color: var(--nls-text);
}

.nls-dc .nls-home-about__subhead {
	margin: 1.25rem 0 0.4rem;
	color: var(--nls-navy);
	font-size: 1.15rem;
}

/* Homepage Welcome Mission body: justified; last line natural start. About Us uses hide_mission. */
body.nls-dc.nls-homepage #welcome .nls-home-about__subhead {
	text-align: justify;
}

body.nls-dc.nls-homepage #welcome .nls-home-about__subhead + p {
	text-align: justify;
	text-align-last: start;
	hyphens: manual;
}

.nls-dc .nls-home-about__media {
	position: relative;
	aspect-ratio: auto;
	overflow: hidden;
	border-radius: 4px;
	background: transparent;
}

.nls-dc .nls-home-about__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nls-dc .nls-home-about__logo {
	position: absolute;
	left: 1rem;
	top: 1rem;
	bottom: auto;
	width: min(32%, 140px);
	height: auto;
	filter: drop-shadow(0 6px 16px rgba(6, 21, 46, 0.35));
}

@media (min-width: 1024px) {
	.nls-dc .nls-home-about__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2.5rem;
		min-height: 420px;
	}

	.nls-dc .nls-home-about__media {
		aspect-ratio: auto;
		min-height: 100%;
	}

	.nls-dc .nls-home-about__logo {
		left: 1.25rem;
		top: 1.25rem;
		bottom: auto;
		transform: none;
		width: clamp(110px, 18%, 190px);
		max-width: 190px;
		object-fit: contain;
	}
}

@media (max-width: 767px) {
	.nls-dc .nls-home-about__logo {
		left: 0.75rem;
		top: 0.75rem;
		bottom: auto;
		width: min(36%, 112px);
		transform: none;
	}
}

/* Mandate cards: equal height, visible gold CTA. */
.nls-dc .nls-card-grid--4 {
	display: grid;
	gap: 1.35rem;
	align-items: stretch;
}

@media (min-width: 1024px) {
	.nls-dc .nls-card-grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 700px) and (max-width: 1023px) {
	.nls-dc .nls-card-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.nls-dc .nls-service-card,
.nls-dc .nls-service-card .nls-card-inner {
	height: 100%;
}

.nls-dc .nls-page-mandate .nls-card-inner,
.nls-dc .nls-services .nls-card-inner {
	padding: 0;
}

.nls-dc .nls-service-card__media {
	margin: 0 0 1rem;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--nls-navy);
}

.nls-dc .nls-service-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nls-dc .nls-page-mandate .nls-card-title,
.nls-dc .nls-committee-card .nls-card-title,
.nls-dc .nls-news-card .nls-card-title,
.nls-dc .nls-news-card .nls-card-title a {
	color: var(--nls-navy);
	text-decoration: none;
}

.nls-dc .nls-card-cta .nls-btn {
	background: var(--nls-gold);
	color: var(--nls-navy);
	border-color: var(--nls-gold);
	min-height: 44px;
	min-width: 8rem;
}

.nls-dc .nls-card-cta .nls-btn:hover {
	background: #d4b56a;
	border-color: #d4b56a;
	color: var(--nls-navy);
}

.nls-dc .nls-page-mandate .nls-section-title,
.nls-dc .nls-page-mandate .nls-home-heading__title {
	font-size: clamp(1.85rem, 2.4vw, 2.35rem);
}

/* Leadership tree on Home and About; one CTA. */
.nls-dc .nls-leadership-row--top {
	display: flex;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nls-dc .nls-leadership-row--grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
}

.nls-dc .nls-leadership-cta {
	margin: 2rem 0 0;
	text-align: center;
}

@media (max-width: 1023px) {
	.nls-dc .nls-leadership-row--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nls-dc .nls-leadership-connectors {
		display: none;
	}
}

@media (max-width: 639px) {
	.nls-dc .nls-leadership-row--grid,
	.nls-dc .nls-leadership-row--top {
		grid-template-columns: 1fr;
		display: grid;
	}
}

/* Contact: content-driven height, full-bleed background. */
.nls-dc .nls-contact {
	padding-block: clamp(2rem, 4vw, 3.25rem);
	min-height: 0;
}

.nls-dc .nls-contact .nls-contact__overlay {
	pointer-events: none;
}

.nls-dc .nls-contact .nls-home-heading__title,
.nls-dc .nls-contact .nls-home-heading__intro,
.nls-dc .nls-contact .nls-section-title,
.nls-dc .nls-contact .nls-section-intro,
.nls-dc .nls-contact__details,
.nls-dc .nls-contact__form label {
	color: var(--nls-ivory);
}

.nls-dc .nls-contact__form input,
.nls-dc .nls-contact__form textarea,
.nls-dc .nls-contact__form .wpcf7-submit,
.nls-dc .nls-newsletter-band input,
.nls-dc .nls-newsletter-band [type="submit"] {
	min-height: 44px;
}

/* Newsletter: distinct band, two-column desktop, flush with contact/footer. */
.nls-dc .nls-newsletter-band {
	margin: 0;
	padding-block: clamp(1.75rem, 3vw, 2.5rem);
	background-color: #12284f;
	color: var(--nls-ivory);
}

.nls-dc .nls-newsletter-band.nls-pattern-surface::before {
	opacity: 0.06;
}

.nls-dc .nls-newsletter-band__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: center;
}

@media (min-width: 900px) {
	.nls-dc .nls-newsletter-band__inner {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
	}
}

.nls-dc .nls-newsletter-band__title {
	color: var(--nls-gold);
}

.nls-dc .nls-newsletter-band input[type="email"],
.nls-dc .nls-newsletter-band .tnp-email {
	background: #fff;
	color: var(--nls-navy);
	border: 1px solid var(--nls-gold);
}

.nls-dc .nls-newsletter-band [type="submit"],
.nls-dc .nls-newsletter-band .tnp-submit {
	background: var(--nls-gold);
	color: var(--nls-navy);
	font-weight: 700;
	border: 0;
	min-width: 8rem;
}

/* Inner hero: taller, vertically centred, breadcrumb first. */
.nls-dc .nls-inner-page-hero {
	min-height: clamp(240px, 42vw, 300px);
	display: flex;
	align-items: center;
	padding-block: 2rem;
}

@media (min-width: 768px) {
	.nls-dc .nls-inner-page-hero {
		min-height: clamp(300px, 32vw, 360px);
	}
}

@media (min-width: 1024px) {
	.nls-dc .nls-inner-page-hero {
		min-height: clamp(330px, 34vw, 440px);
	}
}

.nls-dc .nls-inner-page-hero__inner {
	position: relative;
	z-index: 1;
	padding-block: 1.25rem;
}

.nls-dc .nls-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	list-style: none;
	margin: 0 0 0.85rem;
	padding: 0;
	color: var(--nls-ivory);
	font-size: 0.95rem;
}

.nls-dc .nls-breadcrumb li + li::before {
	content: "/";
	margin-right: 0.4rem;
	color: var(--nls-ivory);
	opacity: 0.7;
}

.nls-dc .nls-breadcrumb [aria-current="page"] {
	color: var(--nls-ivory);
}

.nls-dc .nls-inner-page-hero h1 {
	margin: 0 0 0.65rem;
	font-size: clamp(1.85rem, 3vw, 2.75rem);
	color: var(--nls-ivory);
}

/* News: navy titles, no theme sidebar (template-removed; hide leftover #secondary on this page only). */
body.nls-page-news #secondary,
body.nls-page-news .widget-area,
body.nls-page-news aside.widget-area {
	display: none !important; /* leftover LawSight sidebar-page if a non-shell template is used */
}

body.nls-page-news .nls-shell-managed #secondary {
	display: none;
}

.nls-dc .nls-news-media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--nls-navy);
}

.nls-dc .nls-news-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nls-dc .nls-committee-list {
	display: grid;
	gap: 1.35rem;
	grid-template-columns: 1fr;
	align-items: stretch;
}

@media (min-width: 700px) {
	.nls-dc .nls-committee-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.nls-dc .nls-committee-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.nls-dc .nls-committee-card {
	height: 100%;
	color: var(--nls-navy);
}

.nls-dc .nls-committee-chair-name {
	color: var(--nls-text);
}

/* Footer flush with viewport. Hide leftover LawSight footer chrome after owned footer. */
body.nls-owned-footer,
body.nls-owned-footer #page,
body.nls-owned-footer .site,
body.nls-owned-footer #content {
	margin-bottom: 0;
	padding-bottom: 0;
}

body.nls-owned-footer footer.nls-owned-footer {
	margin-bottom: 0;
	padding-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

body.nls-owned-footer .site-footer,
body.nls-owned-footer .top-footer,
body.nls-owned-footer #footer-wrap,
body.nls-owned-footer .bottom-footer {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: transparent !important;
}

body.nls-owned-footer .nls-owned-footer + *,
body.nls-owned-footer #back-to-top + .site-footer {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.nls-dc .nls-card-inner,
	.nls-dc .nls-btn {
		transition: none;
	}
}

/* Do not restyle the accessibility widget (typically #userway, .uai, .asw-*). */
