/* Shared public shell and theme controller styles. */
.nh-site-shell > .nh-global-nav {
	position: relative;
	top: auto;
	right: auto;
	left: auto;
	min-height: 86px;
	padding: 14px clamp(24px, 5vw, 82px);
	background: #04150f;
	box-sizing: border-box;
}
.nh-site-shell > .nh-global-nav .np-brand { display: block; flex: 0 0 auto; }
.nh-site-shell > .nh-global-nav .np-brand img { display: block; width: auto; height: clamp(58px, 5.2vw, 78px); max-width: min(32vw, 300px); object-fit: contain; }
.nh-site-shell > .nh-global-nav nav { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 36px); margin-left: auto; }
.nh-site-shell > .nh-global-nav nav a { color: rgba(255,255,255,.87); font-size: 15px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.nh-site-shell > .nh-global-nav nav a:hover { color: #a8cb64; }
.nh-site-shell > .nh-global-nav .np-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 13px 25px; border: 1px solid #65964f; border-radius: 8px; background: linear-gradient(135deg, #76aa5b, #5d8e49); color: #fff !important; font-weight: 750; text-decoration: none; white-space: nowrap; }
.nh-global-nav .nh-theme-toggle,
.np-home .nh-global-nav .nh-theme-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 40px; padding: 9px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.9); font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1; cursor: pointer; }
.nh-global-nav .nh-theme-toggle span:last-child { display: none; }
.nh-global-nav .nh-theme-toggle:hover { border-color: #a8cb64; color: #a8cb64; }
.np-home .nh-global-nav { position: absolute; top: 0; right: 0; left: 0; }
.nh-join-shell > .nh-global-nav,
.nh-portal-page > .nh-global-nav { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: clamp(12px, 2vw, 28px); min-height: 86px; padding: 14px clamp(20px, 5vw, 82px); background: #04150f; border-bottom: 1px solid rgba(255,255,255,.12); box-sizing: border-box; }
.nh-join-shell > .nh-global-nav .np-brand img,
.nh-portal-page > .nh-global-nav .np-brand img { display: block; width: auto; height: clamp(54px, 5vw, 76px); max-width: min(30vw, 300px); object-fit: contain; }
.nh-join-shell > .nh-global-nav nav,
.nh-portal-page > .nh-global-nav nav { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 32px); margin-left: auto; }
.nh-join-shell > .nh-global-nav nav a,
.nh-portal-page > .nh-global-nav nav a { color: rgba(255,255,255,.88); font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.nh-join-shell > .nh-global-nav .np-button,
.nh-portal-page > .nh-global-nav .np-button { min-height: 48px; padding: 11px 18px; }
body.nh-theme-dark .nh-join-shell,
body.nh-theme-dark .nh-portal-page { background: linear-gradient(145deg, #04150f, #0b2b1e); color: #edf6ee; }

/* Shared dark mode for non-profile plugin-owned pages. */
body.nh-theme-dark.nh-shell-body { background: #04150f; }
body.nh-theme-dark.nh-shell-body .nh-site-shell { background: #071d14; }
body.nh-theme-dark.nh-shell-body .nh-page-content,
body.nh-theme-dark.nh-shell-body .nh-service-guidance,
body.nh-theme-dark.nh-shell-body .nh-service-faq { background: linear-gradient(145deg, #071d14, #0b2b1e); color: #edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-page-content h2,
body.nh-theme-dark.nh-shell-body .nh-page-content h3,
body.nh-theme-dark.nh-shell-body .nh-service-guidance h2,
body.nh-theme-dark.nh-shell-body .nh-service-faq h2 { color: #f4fbf4; }
body.nh-theme-dark.nh-shell-body .nh-page-prose,
body.nh-theme-dark.nh-shell-body .nh-page-prose p,
body.nh-theme-dark.nh-shell-body .nh-service-guidance p,
body.nh-theme-dark.nh-shell-body .nh-service-faq p { color: rgba(237,246,238,.76); }
body.nh-theme-dark.nh-shell-body .nh-info-card,
body.nh-theme-dark.nh-shell-body .nh-page-steps li,
body.nh-theme-dark.nh-shell-body .nh-link-grid a,
body.nh-theme-dark.nh-shell-body .nh-faq-list details,
body.nh-theme-dark.nh-shell-body .nh-contact-card,
body.nh-theme-dark.nh-shell-body .nh-service-guidance li { background: rgba(11,49,33,.96); border-color: rgba(168,203,100,.22); color: #edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-info-card h2,
body.nh-theme-dark.nh-shell-body .nh-info-card h3,
body.nh-theme-dark.nh-shell-body .nh-link-grid a,
body.nh-theme-dark.nh-shell-body .nh-faq-list summary,
body.nh-theme-dark.nh-shell-body .nh-contact-card h2 { color: #f4fbf4; }
body.nh-theme-dark.nh-shell-body .nh-content-card { background: rgba(11,49,33,.96); border-color: rgba(168,203,100,.22); color: #edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-content-card h2 a,
body.nh-theme-dark.nh-shell-body .nh-content-card > p:not(.nh-content-card__meta) { color: #edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-service-guidance li::before { background: #9bdc2d; }

/* Directory contrast and spacing. These rules apply to both the searchable
   directory and the compact card grid rendered by the homepage. */
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory {
	background: var(--nhs-cream);
	color: var(--nhs-ink);
}
body.nh-shell-body .nh-page-content--directory .nh-page-prose > p:first-child {
	margin: 0 0 26px;
	padding: 0 4px;
}
body.nh-shell-body .nh-page-content--directory .nh-wrap { padding-top: 0; }
body.nh-shell-body .nh-page-content--directory .nh-directory__searchbar {
	margin-top: 0;
	margin-bottom: 22px;
}
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__searchbar {
	background: rgba(13,43,31,.92);
	border-color: rgba(168,203,100,.24);
	box-shadow: 0 12px 28px rgba(0,0,0,.14);
}
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__searchbar label,
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__filters,
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__count { color: rgba(237,246,238,.78); }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__searchbar input,
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__searchbar select {
	background: #f7faf5;
	color: #17362a;
	border-color: rgba(168,203,100,.28);
}
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-card {
	background: #0d2b1f;
	border-color: rgba(168,203,100,.24);
	box-shadow: 0 12px 26px rgba(0,0,0,.16);
}
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-card__name,
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-card__name a { color: #f4fbf4 !important; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-card__specialty { color: #ccec91; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-card__area { color: rgba(237,246,238,.7); }
body.nh-theme-dark .nh-service-summary__item { background: rgba(168,203,100,.14); color: #ccec91; }
body.nh-theme-dark .nh-dservice { background: rgba(168,203,100,.14); color: #ccec91; }
body.nh-theme-dark .nh-pop-service { background: rgba(168,203,100,.16); color: #ccec91; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-chip { background: rgba(168,203,100,.16); color: #e4f3c6; }
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory .nh-card__name,
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory .nh-card__name a { color: #17362a !important; }
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory .nh-card__specialty { color: #3c704a; }

/* The map/list cards use the same readable dark panel in dark mode. */
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dcard {
	background: #0d2b1f;
	border-color: rgba(168,203,100,.24);
	color: #edf6ee;
}
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dcard__title h3 a { color: #f4fbf4; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dcard__meta { color: rgba(237,246,238,.72); }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dbtn:not(.nh-dbtn--primary) { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); color: #edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dbtn--primary { background: #9bdc2d; border-color: #9bdc2d; color: #0d2418; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dbtn--profile { background:#9bdc2d; border-color:#9bdc2d; color:#0d2418; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dbtn--profile:hover { background:#b2ed43; border-color:#b2ed43; color:#0d2418; }
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory .nh-dbtn--primary,
body:not(.nh-theme-dark).nh-shell-body .nh-page-content--directory .nh-dbtn--primary:hover { color: #fff !important; }
body:not(.nh-theme-dark) .nh-dcard .nh-dbtn--primary,
body:not(.nh-theme-dark) .nh-dcard .nh-dbtn--primary:hover { color: #fff !important; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory #nh-dir-map .leaflet-tile-pane { filter: grayscale(.42) saturate(.48) hue-rotate(32deg) brightness(.68) contrast(1.32); }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory #nh-dir-map { background:#0b2b1e; border-color:rgba(168,203,100,.34); }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-dchip--closed { background:rgba(177,62,54,.2); border-color:rgba(230,115,101,.55); color:#ffb9af; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory__searchbar .nh-dbtn--ghost { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#edf6ee; }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory .leaflet-control-attribution { background: rgba(5,46,29,.94); color: #dcebd5; border: 1px solid rgba(168,203,100,.35); }
body.nh-theme-dark.nh-shell-body .nh-page-content--directory .nh-directory .leaflet-control-attribution a { color: #bfe37a; }
body:not(.nh-theme-dark) .np-home .np-coverage #nh-dir-map .leaflet-tile-pane { filter: grayscale(.2) saturate(.55) hue-rotate(30deg) brightness(1.02) contrast(1.12); }
body.nh-theme-dark .np-home .np-coverage #nh-dir-map .leaflet-tile-pane { filter: grayscale(.42) saturate(.48) hue-rotate(32deg) brightness(.68) contrast(1.32); }
body.nh-theme-dark .np-home .np-coverage #nh-dir-map { background:#0b2b1e; border-color:rgba(168,203,100,.34); }
body:not(.nh-theme-dark) .nhp.nhp--basic .nhp-business-map .maplibregl-canvas { filter: none !important; }
body:not(.nh-theme-dark) .nhp.nhp--basic .nhp-business-map .maplibregl-ctrl-attrib { background: rgba(247,250,245,.95) !important; color: #365c47 !important; border: 1px solid #dce7da; border-radius: 999px; padding: 3px 8px; box-shadow: 0 4px 12px rgba(20,55,35,.1); }
body:not(.nh-theme-dark) .nhp.nhp--basic .nhp-business-map .maplibregl-ctrl-attrib a { color: #4f8b4f !important; }

@media (max-width: 1500px) {
	.nh-site-shell > .nh-global-nav { gap: 12px; }
	.nh-site-shell > .nh-global-nav .np-brand img { height: 64px; max-width: 250px; }
	.nh-site-shell > .nh-global-nav nav { gap: 16px; }
	.nh-site-shell > .nh-global-nav nav a { font-size: 13px; }
	.nh-site-shell > .nh-global-nav .np-button { min-height: 48px; padding-inline: 18px; font-size: 14px; }
}
@media (max-width: 1100px) {
	.nh-site-shell > .nh-global-nav nav { display: none; }
	.nh-join-shell > .nh-global-nav nav, .nh-portal-page > .nh-global-nav nav { display: none; }
}
@media (max-width: 640px) {
	.nh-site-shell > .nh-global-nav { min-height: 78px; padding: 10px 18px; }
	.nh-site-shell > .nh-global-nav .np-brand img { height: 50px; max-width: 190px; }
	.nh-site-shell > .nh-global-nav .np-button { min-height: 42px; padding: 9px 12px; font-size: 13px; }
}
