/**

 * Issue pass — interior hero consistency + calendar light/dark surfaces.

 * Scoped to body.nls-dc. Preserves shared button family and status colours.

 */



/* --- Shared interior hero shell ----------------------------------------- */



body.nls-dc .nls-inner-page-hero {

	position: relative;

	display: flex;

	align-items: stretch;

	width: 100%;

	max-width: none;

	min-height: clamp(14rem, 32vh, 22rem);

	margin: 0;

	padding: 0;

	overflow: hidden;

	color: var(--nls-ivory, #f7f1e3);

	background-color: var(--nls-navy, #0a1f44);

}



body.nls-dc .nls-inner-page-hero.nls-section-bg--light {

	color: var(--nls-navy, #0a1f44);

}



/* Inner hero only — centre content group in usable area below sticky navbar.
   --nls-hero-header-extent is measured live (nls-public.js). Fallback sticky-offset
   already includes admin-bar when body.admin-bar. Never use --nls-header-overlay-offset
   here (that token is only the tiny absolute-header gap). */
body.nls-dc .nls-inner.nls-inner-page-hero__inner,
body.nls-dc.nls-managed .nls-inner.nls-inner-page-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	flex: 1 1 auto;
	align-self: stretch;
	width: min(100% - 32px, 1240px);
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: clamp(0.75rem, 2.5vw, 1.25rem);
	padding-top: calc(var(--nls-hero-header-extent, var(--nls-sticky-offset, 5.75rem)) + 0.85rem);
	padding-bottom: 1.5rem;
	box-sizing: border-box;
	min-height: 100%;
}

body.nls-dc .nls-inner-page-hero .nls-breadcrumb {
	margin: 0 0 0.65rem;
}

body.nls-dc .nls-inner-page-hero h1,
body.nls-dc .nls-inner-hero-heading,
body.nls-dc #nls-inner-hero-heading {
	margin: 0 0 0.55rem;
	line-height: 1.15;
	max-width: none;
	width: 100%;
	overflow-wrap: anywhere;
}

body.nls-dc .nls-inner-page-hero__lede,
body.nls-dc .nls-inner-page-hero p {
	margin: 0;
	max-width: min(48rem, 100%);
}

@media (max-width: 767px) {
	body.nls-dc .nls-inner.nls-inner-page-hero__inner {
		width: min(100% - 20px, 1240px);
		padding-inline: 0.75rem;
	}
}

@media (max-width: 360px) {
	body.nls-dc .nls-inner-page-hero {
		min-height: 11rem;
	}
}



/* --- Calendar light / dark section surfaces ----------------------------- */



body.nls-dc .nls-calendar.nls-section-bg--light,

body.nls-dc .nls-calendar.nls-section-bg--light .nls-home-heading__title,

body.nls-dc .nls-calendar.nls-section-bg--light .nls-home-heading__intro,

body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar__meta,

body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar__status:not(.is-error) {

	color: var(--nls-navy, #0a1f44);

}



body.nls-dc .nls-calendar.nls-section-bg--light .nls-home-heading__accent {

	color: var(--nls-gold-accessible, #8a641f);

}



body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar__meta a {

	color: var(--nls-navy, #0a1f44);

}



body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__title,

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__intro,

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__intro p,

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__meta {

	color: var(--nls-ivory, #f7f1e3);

}



body.nls-dc .nls-calendar.nls-section-bg--dark .nls-home-heading__accent,

body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__meta a {

	color: var(--nls-gold, #c4a35a);

}



body.nls-dc .nls-calendar__meta a {

	text-decoration: underline;

	text-underline-offset: 0.15em;

}



body.nls-dc .nls-calendar.nls-section-bg--dark .nls-calendar__meta a:focus-visible,

body.nls-dc .nls-calendar.nls-section-bg--light .nls-calendar__meta a:focus-visible {

	outline: 3px solid var(--nls-focus, #6b4f16);

	outline-offset: 2px;

}



/* Filters live inside the light toolbar island — always light inputs. */

body.nls-dc .nls-calendar .nls-calendar__filters select,

body.nls-dc .nls-calendar .nls-calendar__filters input {

	background: var(--nls-white, #fff);

	color: var(--nls-text, #1b2433);

	border-color: #8a93a3;

}



body.nls-dc .nls-calendar .nls-calendar__filters select:focus-visible,

body.nls-dc .nls-calendar .nls-calendar__filters input:focus-visible {

	outline: 3px solid var(--nls-focus, #6b4f16);

	outline-offset: 2px;

}



body.nls-dc .nls-calendar .nls-calendar-grid__cell.is-today {

	outline-color: var(--nls-gold, #c4a35a);

}



body.nls-dc .nls-calendar .nls-calendar-event:focus-visible {

	outline: 3px solid var(--nls-focus, #6b4f16);

	outline-offset: 2px;

}



/* Dialog: dim overlay + light panel (panel rules in nls-shared-ui.css). */

body.nls-dc .nls-calendar-dialog {

	background: rgba(10, 31, 68, 0.55);

}



body.nls-dc .nls-calendar .nls-calendar-dialog__panel {

	background: var(--nls-white, #fff);

	color: var(--nls-navy, #0a1f44);

}



body.nls-dc .nls-calendar .nls-calendar-dialog__panel h3,

body.nls-dc .nls-calendar .nls-calendar-dialog__panel p,

body.nls-dc .nls-calendar .nls-calendar-dialog__panel a {

	color: var(--nls-navy, #0a1f44);

}



/* Explicit light cards inside dark sections keep dark text */

body.nls-dc .nls-section-bg--dark .nls-surface-light,

body.nls-dc .nls-section-bg--dark .nls-card.nls-surface-light,

body.nls-dc .nls-section-bg--dark .nls-service-card,

body.nls-dc .nls-section-bg--dark .nls-prac-card,

body.nls-dc .nls-section-bg--dark .nls-news-card {

	color: var(--nls-navy, #0a1f44);

}



body.nls-dc .nls-section-bg--dark .nls-surface-light a,

body.nls-dc .nls-section-bg--dark .nls-card.nls-surface-light a {

	color: var(--nls-navy, #0a1f44);

}


