/* NLS Dynamic Content — Phase 4.2.3 targeted UI fixes.
   Loaded after nls-phase422.css at version 1.4.3.
   Scoped to body.nls-dc. Does not change header mechanics, menu items, or stored content.
*/

body.nls-dc {
	--nls-navy-deep: #06152e;
	--nls-navy: #0a1f44;
	--nls-gold-accessible: #8a641f;
}

/* --------------------------------------------------------------------------
   1. Sticky navbar link colour.
      LawSight prints .primary-menu > li > a { color: … !important } from
      main_menu_color, including after .h-fixed turns the bar white.
      Only .header-main.h-fixed is recoloured. The transparent bar stays light.
   -------------------------------------------------------------------------- */

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li > a {
	color: var(--nls-navy) !important;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li > a:hover,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li > a:focus,
body.nls-dc #header-wrap .header-main.h-fixed .h-btn-search {
	color: var(--nls-gold-accessible) !important;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current-menu-item > a,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current_page_item > a,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current-menu-ancestor > a,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current_page_ancestor > a,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li > a.current {
	color: var(--nls-navy-deep) !important;
	box-shadow: none;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current-menu-item > a::before,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current_page_item > a::before,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li.current-menu-ancestor > a::before,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu.primary-menu > li > a.current::before {
	background-color: var(--nls-gold) !important;
	width: 100%;
	opacity: 1;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu .sub-menu a {
	color: var(--nls-navy) !important;
	background-color: #fff;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu .sub-menu a:hover,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu .sub-menu a:focus,
body.nls-dc #header-wrap .header-main.h-fixed #mastmenu .sub-menu .current-menu-item > a {
	color: var(--nls-gold-accessible) !important;
}

body.nls-dc #header-wrap .header-main.h-fixed #mastmenu a:focus-visible,
body.nls-dc #header-wrap .header-main.h-fixed .h-btn-search:focus-visible {
	outline: 3px solid var(--nls-focus);
	outline-offset: 3px;
}

/* Off-canvas panel is white. Keep its links navy so pale gold is not on white. */
@media (max-width: 1199px) {
	body.nls-dc #header-wrap .header-navigation .primary-menu a,
	body.nls-dc #header-wrap .header-navigation .main-menu-toggle::before {
		color: var(--nls-navy) !important;
	}

	body.nls-dc #header-wrap .header-navigation .primary-menu a:hover,
	body.nls-dc #header-wrap .header-navigation .primary-menu a:focus,
	body.nls-dc #header-wrap .header-navigation .primary-menu .current-menu-item > a,
	body.nls-dc #header-wrap .header-navigation .primary-menu .current_page_item > a {
		color: var(--nls-gold-accessible) !important;
	}

	body.nls-dc #header-wrap .header-navigation a:focus-visible,
	body.nls-dc #header-wrap #main-menu-mobile .btn-nav-mobile:focus-visible {
		outline: 3px solid var(--nls-focus);
		outline-offset: 3px;
	}
}

/* --------------------------------------------------------------------------
   2. Leadership tree. Continuous desktop connectors; simplified below 1024px.
      Lines use pseudo-elements and sit behind the cards.
   -------------------------------------------------------------------------- */

body.nls-dc .nls-leadership--home .nls-leadership-tree {
	gap: 0;
	max-width: 100%;
}

body.nls-dc .nls-leadership--home .nls-leadership-row--grid {
	margin-top: 0;
	align-items: stretch;
}

body.nls-dc .nls-leadership--home .nls-leadership-row--top > li,
body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li {
	position: relative;
	display: flex;
	justify-content: center;
	min-width: 0;
	height: 100%;
}

body.nls-dc .nls-leadership--home .nls-leader-card {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 280px;
	height: 100%;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
}

body.nls-dc .nls-leadership--home .nls-leadership-connectors {
	display: block;
	position: relative;
	height: 36px;
	max-width: none;
	margin: 0;
	pointer-events: none;
}

body.nls-dc .nls-leadership--home .nls-leadership-connectors::before,
body.nls-dc .nls-leadership--home .nls-leadership-connectors::after,
body.home .nls-leadership--home .nls-leadership-connectors::before,
body.home .nls-leadership--home .nls-leadership-connectors::after {
	content: none;
	display: none;
}

@media (min-width: 1024px) {
	body.nls-dc .nls-leadership--home .nls-leadership-row--grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.25rem;
		align-items: stretch;
		margin-top: 0;
		padding-top: 0;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--top > li::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: -18px;
		width: 2px;
		height: 18px;
		background: var(--nls-gold);
		transform: translateX(-50%);
		z-index: 0;
		pointer-events: none;
	}

	/* Horizontal run from the centre of the first child to the centre of the last.
	   Each cell paints its own segment; the outer halves of the end cards are omitted
	   and the gap (1.25rem) is bridged so the line stays continuous. */
	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::after {
		content: "";
		position: absolute;
		top: -18px;
		left: -0.625rem;
		right: -0.625rem;
		height: 2px;
		background: var(--nls-gold);
		z-index: 0;
		pointer-events: none;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li:first-child::after {
		left: 50%;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li:last-child::after {
		right: 50%;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li:only-child::after {
		display: none;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::before {
		content: "";
		position: absolute;
		top: -18px;
		left: 50%;
		width: 2px;
		height: 18px;
		background: var(--nls-gold);
		transform: translateX(-50%);
		z-index: 0;
		pointer-events: none;
	}
}

@media (max-width: 1023px) {
	body.nls-dc .nls-leadership--home .nls-leadership-connectors {
		height: 16px;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--top > li::after,
	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::before {
		content: "";
		position: absolute;
		left: 50%;
		width: 2px;
		background: var(--nls-gold);
		transform: translateX(-50%);
		z-index: 0;
		pointer-events: none;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--top > li::after {
		bottom: -16px;
		height: 16px;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::before {
		top: -16px;
		height: 16px;
		display: block;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::after {
		display: none;
	}
}

@media (max-width: 639px) {
	body.nls-dc .nls-leadership--home .nls-leadership-tree {
		overflow-x: hidden;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid,
	body.nls-dc .nls-leadership--home .nls-leadership-row--top {
		grid-template-columns: 1fr;
	}

	body.nls-dc .nls-leadership--home .nls-leadership-row--grid > li::after {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   3. Welcome main image and overlay. The live tree wraps the bitmap in
      .wpa-alt.nls-home-about__image, so object-fit on the wrapper does not
      reach the img (it computes as fill and stays ~400px inside an ~850px box).
   -------------------------------------------------------------------------- */

body.nls-dc .nls-home-about__media,
body.nls-dc .nls-home-about__visual {
	position: relative;
	height: 100%;
	min-height: 100%;
	background-color: transparent;
}

body.nls-dc .nls-home-about__visual > .nls-home-about__image,
body.nls-dc .nls-home-about__image.wpa-alt {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 100%;
	margin: 0;
	max-width: none;
}

body.nls-dc .nls-home-about__visual > img.nls-home-about__image,
body.nls-dc .nls-home-about__image > img {
	display: block;
	width: 100%;
	height: 100% !important;
	min-height: 100%;
	max-width: none;
	object-fit: cover !important;
}

@media (min-width: 1024px) {
	body.nls-dc .nls-home-about__grid {
		align-items: stretch;
	}

	body.nls-dc .nls-home-about__copy {
		align-self: center;
	}

	body.nls-dc .nls-home-about__media,
	body.nls-dc .nls-home-about__visual {
		align-self: stretch;
		height: 100%;
		min-height: 560px;
	}
}

body.nls-dc .nls-home-about__visual > .nls-home-about__overlay,
body.nls-dc .nls-home-about__visual > .nls-home-about__logo.nls-home-about__overlay,
body.nls-dc .nls-home-about__logo.nls-home-about__overlay {
	position: absolute;
	--nls-overlay-inset: 24px;
	left: var(--nls-overlay-inset);
	top: var(--nls-overlay-inset);
	right: auto;
	bottom: auto;
	width: auto;
	height: clamp(160px, 28%, 240px);
	max-width: 32%;
	max-height: calc(100% - (2 * var(--nls-overlay-inset)));
	object-fit: contain;
	object-position: left top;
	z-index: 2;
	pointer-events: none;
	transform: none;
}

body.nls-dc .nls-home-about__overlay > img,
body.nls-dc .nls-home-about__logo.nls-home-about__overlay > img {
	display: block;
	width: auto;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	object-position: left top;
	pointer-events: none;
}

@media (max-width: 1023px) {
	body.nls-dc .nls-home-about__visual > .nls-home-about__overlay,
	body.nls-dc .nls-home-about__visual > .nls-home-about__logo.nls-home-about__overlay,
	body.nls-dc .nls-home-about__logo.nls-home-about__overlay {
		--nls-overlay-inset: 16px;
		height: clamp(110px, 26%, 180px);
		max-width: 36%;
	}
}

/* Overlay logo position modifiers (homepage + About Us shared Welcome). */
body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--top-left,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--top-left {
	left: var(--nls-overlay-inset, 24px);
	top: var(--nls-overlay-inset, 24px);
	right: auto;
	bottom: auto;
	transform: none;
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--top-centre,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--top-centre {
	left: 50%;
	top: var(--nls-overlay-inset, 24px);
	right: auto;
	bottom: auto;
	transform: translateX(-50%);
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--top-right,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--top-right {
	left: auto;
	top: var(--nls-overlay-inset, 24px);
	right: var(--nls-overlay-inset, 24px);
	bottom: auto;
	transform: none;
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--centre-left,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--centre-left {
	left: var(--nls-overlay-inset, 24px);
	top: 50%;
	right: auto;
	bottom: auto;
	transform: translateY(-50%);
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--centre,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--centre {
	left: 50%;
	top: 50%;
	right: auto;
	bottom: auto;
	transform: translate(-50%, -50%);
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--centre-right,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--centre-right {
	left: auto;
	top: 50%;
	right: var(--nls-overlay-inset, 24px);
	bottom: auto;
	transform: translateY(-50%);
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--bottom-left,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--bottom-left {
	left: var(--nls-overlay-inset, 24px);
	top: auto;
	right: auto;
	bottom: var(--nls-overlay-inset, 24px);
	transform: none;
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--bottom-centre,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--bottom-centre {
	left: 50%;
	top: auto;
	right: auto;
	bottom: var(--nls-overlay-inset, 24px);
	transform: translateX(-50%);
}

body.nls-dc .nls-home-about__logo.nls-home-about__overlay.nls-home-about__overlay--bottom-right,
body.nls-dc .nls-home-about__overlay.nls-home-about__overlay--bottom-right {
	left: auto;
	top: auto;
	right: var(--nls-overlay-inset, 24px);
	bottom: var(--nls-overlay-inset, 24px);
	transform: none;
}

/* --------------------------------------------------------------------------
   4. Desktop menu from 1200px. nls-public.css forces the off-canvas menu
      from 992px through 1365px, which hides #mastmenu and overlaps search.
   -------------------------------------------------------------------------- */

@media (min-width: 1200px) {
	body.nls-dc #header-wrap #main-menu-mobile,
	body.nls-dc #header-wrap .menu-toggle {
		display: none !important;
	}
	/* Phase D: keep #mastmenu submenu disclosure toggles visible on desktop. */

	body.nls-dc #header-wrap .header-navigation {
		display: block !important;
		position: static;
		height: auto;
		width: auto;
		visibility: visible;
		overflow: visible;
		z-index: auto;
	}

	body.nls-dc #header-wrap .header-navigation .main-navigation {
		position: static;
		transform: none;
		width: auto;
		height: auto;
		overflow: visible;
		visibility: visible;
		background: transparent;
		padding: 0;
	}

	body.nls-dc #header-wrap #mastmenu.primary-menu {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		white-space: nowrap;
		visibility: visible;
	}

	body.nls-dc #header-wrap #mastmenu.primary-menu > li,
	body.nls-dc #header-wrap #mastmenu.primary-menu > li > a {
		visibility: visible;
		white-space: nowrap;
	}

	body.nls-dc #header-wrap .h-btn-search {
		display: inline-flex;
		visibility: visible;
	}
}

@media (min-width: 1200px) and (max-width: 1399px) {
	body.nls-dc #header-wrap #mastmenu.primary-menu > li {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	body.nls-dc #header-wrap #mastmenu.primary-menu > li > a {
		padding-left: 10px;
		padding-right: 10px;
		font-size: 13px;
		white-space: nowrap;
	}
}

@media (min-width: 1200px) and (max-width: 1279px) {
	body.nls-dc #header-wrap #mastmenu.primary-menu > li > a {
		padding-left: 8px;
		padding-right: 8px;
		font-size: 12px;
	}
}

@media (max-width: 1199px) {
	body.nls-dc #header-wrap #main-menu-mobile {
		display: flex !important;
		visibility: visible;
		z-index: 6;
		right: 12px;
	}

	body.nls-dc #header-wrap #main-menu-mobile .btn-nav-mobile {
		display: inline-block !important;
		visibility: visible;
	}

	body.nls-dc #header-wrap .header-right,
	body.nls-dc #header-wrap .header-icon {
		margin-right: 56px;
	}
}

/* --------------------------------------------------------------------------
   5. Contact page. CF7 / LawSight still cap the control chain below the card.
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {
	body.nls-page-contact .nls-contact__grid {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		gap: 28px;
		align-items: start;
	}
}

@media (max-width: 767px) {
	body.nls-page-contact .nls-contact__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

body.nls-page-contact .nls-contact__card {
	padding: 1.75rem;
	box-sizing: border-box;
}

body.nls-dc .nls-contact .wpcf7,
body.nls-dc .nls-contact .wpcf7 form,
body.nls-dc .nls-contact .wpcf7-form > p,
body.nls-dc .nls-contact .wpcf7-form-control-wrap,
body.nls-dc .nls-contact input[type="text"],
body.nls-dc .nls-contact input[type="email"],
body.nls-dc .nls-contact input[type="tel"],
body.nls-dc .nls-contact input[type="url"],
body.nls-dc .nls-contact select,
body.nls-dc .nls-contact textarea {
	display: block;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	box-sizing: border-box;
}

body.nls-dc .nls-contact .wpcf7-form > p {
	margin: 0 0 1rem;
}

body.nls-dc .nls-contact label,
body.nls-dc .nls-contact .wpcf7 label {
	display: block;
	margin-bottom: 0.35rem;
}

body.nls-dc .nls-contact input[type="text"],
body.nls-dc .nls-contact input[type="email"],
body.nls-dc .nls-contact input[type="tel"],
body.nls-dc .nls-contact input[type="url"],
body.nls-dc .nls-contact select,
body.nls-dc .nls-contact textarea {
	min-height: 44px;
	background: #fff;
	color: var(--nls-navy);
	border: 1px solid rgba(10, 31, 68, 0.28);
}

body.nls-dc .nls-contact textarea {
	min-height: 9rem;
}

body.nls-dc .nls-contact input::placeholder,
body.nls-dc .nls-contact textarea::placeholder {
	color: #4b5563;
	opacity: 1;
}

body.nls-dc .nls-contact .wpcf7-submit,
body.nls-dc .nls-contact input[type="submit"],
body.nls-dc .nls-contact button[type="submit"] {
	display: inline-block;
	width: auto !important;
	max-width: 100%;
	min-height: 44px;
	float: none !important;
}

body.nls-dc .nls-contact input:focus-visible,
body.nls-dc .nls-contact select:focus-visible,
body.nls-dc .nls-contact textarea:focus-visible,
body.nls-dc .nls-contact .wpcf7-submit:focus-visible {
	outline: 3px solid var(--nls-gold-accessible);
	outline-offset: 2px;
}

body.nls-dc .nls-contact .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.init .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.resetting .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.submitting .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7-response-output:empty {
	display: none;
	margin: 0;
	padding: 0;
	border: 0;
}

body.nls-dc .nls-contact .wpcf7 form.sent .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.invalid .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.failed .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.aborted .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.spam .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.unaccepted .wpcf7-response-output,
body.nls-dc .nls-contact .wpcf7 form.payment-required .wpcf7-response-output {
	display: block;
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
}

/* --------------------------------------------------------------------------
   6. Related Mandates on service details. Three equal columns; mandate page untouched.
   -------------------------------------------------------------------------- */

body.nls-dc .nls-related-mandates {
	padding-block: clamp(2rem, 4vw, 3.25rem);
	background: #eef2f7;
}

body.nls-dc .nls-related-mandates .nls-section-title {
	color: var(--nls-navy);
	text-align: center;
	margin-bottom: 1.5rem;
}

body.nls-dc .nls-related-mandates .nls-card-grid {
	display: grid;
	gap: 1.35rem;
	align-items: stretch;
	grid-template-columns: minmax(0, 1fr);
}

body.nls-dc .nls-related-mandates .nls-service-card,
body.nls-dc .nls-related-mandates .nls-service-card .nls-card-inner {
	height: 100%;
}

body.nls-dc .nls-related-mandates .nls-service-card__media {
	margin: 0;
	padding: 0;
}

body.nls-dc .nls-related-mandates .nls-service-card__body {
	padding: 1.35rem;
}

@media (min-width: 700px) and (max-width: 1023px) {
	body.nls-dc .nls-related-mandates .nls-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	body.nls-dc .nls-related-mandates .nls-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   7. Managed news article. Full width, light surface, no theme sidebar.
   -------------------------------------------------------------------------- */

body.nls-page-news-detail #secondary,
body.nls-page-news-detail aside.widget-area,
body.nls-page-news-detail .widget_search,
body.nls-page-news-detail .widget_categories,
body.nls-page-news-detail .widget_archive,
body.nls-page-news-detail .widget_recent_entries,
body.nls-page-news-detail .comments-area,
body.nls-page-news-detail .entry-author,
body.nls-page-news-detail .post-author,
body.nls-page-news-detail .author-avatar {
	display: none !important;
}

body.nls-page-news-detail #primary,
body.nls-page-news-detail #primary.content-has-sidebar {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}

body.nls-dc.nls-managed .nls-shell-news .vc_column-inner {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.nls-dc .nls-news-detail {
	background: #f7f5f0;
	color: var(--nls-text);
	padding-block: clamp(2rem, 4vw, 3.25rem);
}

body.nls-dc .nls-news-detail__article {
	max-width: 820px;
	margin-inline: auto;
	background: #fff;
	color: #1b2433;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border-radius: 4px;
	box-sizing: border-box;
}

body.nls-dc .nls-news-detail__figure {
	display: block;
	margin: 0 0 1.25rem;
	width: 100%;
	max-width: 100%;
}

body.nls-dc .nls-news-detail__figure img,
body.nls-dc .nls-news-detail__image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	max-height: 520px;
	object-fit: cover;
	aspect-ratio: auto;
}

body.nls-dc .nls-news-detail__meta,
body.nls-dc .nls-news-detail__category {
	margin: 0 0 0.75rem;
	color: var(--nls-navy);
}

body.nls-dc .nls-news-detail__body,
body.nls-dc .nls-news-detail__body p,
body.nls-dc .nls-news-detail__body li {
	color: #1b2433 !important;
}

body.nls-dc .nls-news-detail__body h2,
body.nls-dc .nls-news-detail__body h3,
body.nls-dc .nls-news-detail__body h4 {
	color: var(--nls-navy);
	margin: 1.5rem 0 0.6rem;
}

body.nls-dc .nls-news-detail__body a {
	color: var(--nls-navy);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

body.nls-dc .nls-news-detail__body ul,
body.nls-dc .nls-news-detail__body ol {
	margin: 0 0 1rem 1.25rem;
	padding: 0;
}

body.nls-dc .nls-news-detail__body img,
body.nls-dc .nls-news-detail__body video,
body.nls-dc .nls-news-detail__body iframe,
body.nls-dc .nls-news-detail__body embed {
	max-width: 100%;
	height: auto;
}

body.nls-dc .nls-news-detail__body .wp-block-embed,
body.nls-dc .nls-news-detail__body .wp-block-embed__wrapper {
	max-width: 100%;
}

body.nls-dc .nls-news-detail__pager {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	justify-content: space-between;
	max-width: 820px;
	margin: 1.5rem auto 0;
}

body.nls-dc .nls-news-detail__pager a {
	color: var(--nls-navy);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

body.nls-dc .nls-news-detail__back {
	max-width: 820px;
	margin: 1.25rem auto 0;
}

body.nls-dc .nls-related-news {
	padding-block: clamp(2rem, 4vw, 3rem);
	background: #fff;
}

body.nls-dc .nls-related-news .nls-section-title {
	color: var(--nls-navy);
}

@media (min-width: 700px) and (max-width: 1023px) {
	body.nls-dc .nls-related-news .nls-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	body.nls-dc .nls-related-news .nls-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   8. Gallery album detail. Listing cards stay on the listing template only.
   -------------------------------------------------------------------------- */

body.nls-dc .nls-gallery-detail__title {
	margin: 0 0 0.75rem;
	color: var(--nls-navy);
	text-align: center;
}

body.nls-page-gallery .nls-gallery-detail.nls-section-bg--dark .nls-gallery-detail__title,
body.nls-page-gallery .nls-gallery-detail.nls-section-bg--dark .nls-gallery-detail__description,
body.nls-page-gallery .nls-gallery-detail.nls-section-bg--dark .nls-gallery-detail__count {
	color: var(--nls-ivory);
}

body.nls-dc .nls-gallery-detail__description,
body.nls-dc .nls-gallery-detail__count,
body.nls-dc .nls-gallery-detail__missing {
	max-width: 42rem;
	margin: 0 auto 1rem;
	text-align: center;
	color: var(--nls-text);
}

body.nls-dc .nls-gallery-detail__back {
	text-align: center;
	margin: 0 0 1.5rem;
}

body.nls-dc .nls-gallery-embed,
body.nls-dc .nls-gallery-detail__grid {
	margin-top: 0.5rem;
}

body.nls-dc .nls-gallery-detail__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.nls-dc .nls-gallery-detail__grid img,
body.nls-dc .nls-gallery-embed img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Gallery and News card titles. Beats .nls-owned-footer a:not(#top) ivory links. */
body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):link,
body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):visited,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):link,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):visited {
	color: var(--nls-navy);
	text-decoration: none;
}

body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):hover,
body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):focus,
body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):focus-visible,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):hover,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):focus,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):focus-visible {
	color: #7a5e1e;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

body.nls-page-gallery section.nls-page-gallery .nls-card-title a:not(#top):focus-visible,
body.nls-page-news section.nls-page-news .nls-card-title a:not(#top):focus-visible {
	outline: 3px solid var(--nls-focus);
	outline-offset: 3px;
}

/* Mandate/service detail: same light pattern surface as Our Mandate cards. Hero untouched. */
body.nls-dc .nls-service-detail.nls-pattern-surface {
	position: relative;
	isolation: isolate;
	background-color: var(--nls-ivory);
	color: var(--nls-text, #24324d);
}

body.nls-dc .nls-service-detail.nls-pattern-surface::before {
	opacity: 0.07;
}

body.nls-dc .nls-service-detail.nls-pattern-surface .nls-service-detail__body,
body.nls-dc .nls-service-detail.nls-pattern-surface .nls-service-detail__main,
body.nls-dc .nls-service-detail.nls-pattern-surface .nls-breadcrumb {
	color: inherit;
}

@media (max-width: 767px) {
	body.nls-dc .nls-service-detail.nls-pattern-surface::before {
		opacity: 0.05;
	}
}

/* Same light pattern surface as Our Mandate card section. Hero is untouched. */
body.nls-page-gallery section.nls-page-gallery:not(.nls-gallery-detail),
body.nls-page-news section.nls-page-news {
	position: relative;
	isolation: isolate;
	background-color: var(--nls-ivory);
}

body.nls-page-gallery section.nls-page-gallery:not(.nls-gallery-detail)::before,
body.nls-page-news section.nls-page-news::before {
	content: "";
	position: absolute;
	inset: 0;
	background-repeat: repeat;
	background-size: 420px;
	opacity: 0.07;
	pointer-events: none;
	z-index: 0;
}

body.nls-page-gallery section.nls-page-gallery:not(.nls-gallery-detail) > *,
body.nls-page-news section.nls-page-news > * {
	position: relative;
	z-index: 1;
}

@media (max-width: 767px) {
	body.nls-page-gallery section.nls-page-gallery:not(.nls-gallery-detail)::before,
	body.nls-page-news section.nls-page-news::before {
		opacity: 0.05;
	}
}
