:root {
	--nas-lp-navy: #233461;
	--nas-lp-blue: #aebeea;
	--nas-lp-pale: #eef2fb;
	--nas-lp-burgundy: #7d2032;
	--nas-lp-ink: #111827;
	--nas-lp-muted: #5f6878;
	--nas-lp-line: #d8deeb;
	--nas-lp-paper: #ffffff;
}

/* Keep owned templates in the same header stack as normal theme pages. */
body.nas-lp-directory-template .wp-site-blocks > .wp-block-navigation,
body.nas-lp-provider-template .wp-site-blocks > .wp-block-navigation,
body.nas-lp-submission-template .wp-site-blocks > .wp-block-navigation,
body.nas-lp-quote-template .wp-site-blocks > .wp-block-navigation,
body.nas-lp-directory-template .wp-site-blocks > main,
body.nas-lp-provider-template .wp-site-blocks > main,
body.nas-lp-submission-template .wp-site-blocks > main,
body.nas-lp-quote-template .wp-site-blocks > main {
	margin-block-start: 0 !important;
}

body:is(.nas-lp-directory-template, .nas-lp-provider-template, .nas-lp-submission-template, .nas-lp-quote-template) header.wp-block-template-part {
	position: relative;
	z-index: 100;
}

body:is(.nas-lp-directory-template, .nas-lp-provider-template, .nas-lp-submission-template, .nas-lp-quote-template) .wp-block-navigation__responsive-container-open {
	position: relative;
	z-index: 101;
	pointer-events: auto !important;
}

body:is(.nas-lp-directory-template, .nas-lp-provider-template, .nas-lp-submission-template, .nas-lp-quote-template) .wp-block-navigation__responsive-container {
	z-index: 100000;
}

@media (min-width: 1024px) {
	body.nas-lp-directory-template .wp-block-navigation,
	body.nas-lp-provider-template .wp-block-navigation,
	body.nas-lp-submission-template .wp-block-navigation,
	body.nas-lp-quote-template .wp-block-navigation,
	body.nas-lp-directory-template .wp-block-navigation__container,
	body.nas-lp-provider-template .wp-block-navigation__container,
	body.nas-lp-submission-template .wp-block-navigation__container,
	body.nas-lp-quote-template .wp-block-navigation__container {
		justify-content: center !important;
		flex-wrap: wrap !important;
		gap: 0 !important;
	}
}

.nas-lp-shell,
.nas-lp-directory,
.nas-lp-submission,
.nas-lp-quote {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 40px));
	margin-inline: auto;
}

.nas-lp-directory *,
.nas-lp-single *,
.nas-lp-submission *,
.nas-lp-quote * {
	box-sizing: border-box;
}

.nas-lp-directory {
	padding-block: 36px 64px;
	color: var(--nas-lp-ink);
	color-scheme: light;
}

.nas-lp-directory-intro {
	max-width: 790px;
	margin-bottom: 26px;
}

.nas-lp-kicker {
	margin: 0 0 8px;
	color: var(--nas-lp-burgundy);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.nas-lp-directory h2,
.nas-lp-tax-header h1 {
	margin: 0 0 10px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(34px, 5vw, 55px);
	line-height: 1.05;
}

.nas-lp-directory-intro > p:not(.nas-lp-kicker),
.nas-lp-tax-header > div {
	margin: 0;
	color: var(--nas-lp-muted);
	font-size: 18px;
	line-height: 1.55;
}

.nas-lp-join-link {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	margin-top: 15px;
	color: var(--nas-lp-navy);
	font-weight: 800;
	text-decoration: none;
}

.nas-lp-filters {
	display: grid;
	grid-template-columns: minmax(210px, 1.15fr) minmax(170px, 1fr) minmax(170px, 1fr) auto auto;
	gap: 12px;
	align-items: end;
	padding: 18px;
	margin: 0 0 22px;
	background: var(--nas-lp-pale);
	border: 1px solid var(--nas-lp-line);
	border-radius: 10px;
}

.nas-lp-filters label > span,
.nas-lp-form-grid label > span {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 750;
}

.nas-lp-filters select,
.nas-lp-filters input,
.nas-lp-form-grid input,
.nas-lp-form-grid select,
.nas-lp-form-grid textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 12px;
	color: var(--nas-lp-ink);
	background: var(--nas-lp-paper);
	border: 1px solid #aeb7c8;
	border-radius: 5px;
	font: inherit;
}

.nas-lp-form-grid textarea {
	min-height: 180px;
	resize: vertical;
}

.nas-lp-filters button,
.nas-lp-submit,
.nas-lp-primary-action,
.nas-lp-secondary-action {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 11px 18px;
	border: 0;
	border-radius: 5px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}

.nas-lp-filters button,
.nas-lp-submit,
.nas-lp-primary-action {
	color: #fff;
	background: var(--nas-lp-navy);
}

.nas-lp-filters button:hover,
.nas-lp-submit:hover,
.nas-lp-primary-action:hover {
	color: #fff;
	background: #162649;
}

.nas-lp-clear {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	padding-inline: 8px;
	color: var(--nas-lp-navy);
	font-weight: 700;
}

.nas-lp-results-count {
	margin: 0 0 14px;
	color: var(--nas-lp-muted);
	font-size: 14px;
	font-weight: 700;
}

.nas-lp-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.nas-lp-card {
	overflow: hidden;
	background: var(--nas-lp-paper);
	border: 1px solid var(--nas-lp-line);
	border-radius: 9px;
	box-shadow: 0 7px 24px rgba(27, 44, 78, .06);
}

.nas-lp-card.is-featured {
	border-top: 4px solid var(--nas-lp-burgundy);
}

.nas-lp-card-image {
	display: flex;
	height: 190px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	color: var(--nas-lp-navy);
	background: linear-gradient(135deg, #e7ecf8, #bac8eb);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 54px;
	font-weight: 700;
	text-decoration: none;
}

.nas-lp-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nas-lp-card-body {
	padding: 19px;
}

.nas-lp-card h3 {
	margin: 8px 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 25px;
	line-height: 1.14;
}

.nas-lp-card h3 a,
.nas-lp-card-link {
	color: var(--nas-lp-ink);
	text-decoration: none;
}

.nas-lp-card h3 a:hover,
.nas-lp-card-link:hover {
	color: var(--nas-lp-burgundy);
}

.nas-lp-card-meta,
.nas-lp-card-body > p {
	margin: 0 0 12px;
	color: var(--nas-lp-muted);
	font-size: 15px;
	line-height: 1.5;
}

.nas-lp-card-link {
	font-weight: 800;
}

.nas-lp-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

.nas-lp-badges span {
	display: inline-flex;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .025em;
}

.nas-lp-badges .is-verified {
	color: #0f5438;
	background: #dff4e8;
}

.nas-lp-badges .is-featured {
	color: #6c1729;
	background: #f7e5e9;
}

.nas-lp-badges .is-partner {
	color: #263c73;
	background: #dfe7fa;
}

.nas-lp-pagination {
	margin-top: 34px;
}

.nas-lp-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.nas-lp-pagination a,
.nas-lp-pagination span {
	display: grid;
	min-width: 40px;
	height: 40px;
	place-items: center;
	padding-inline: 8px;
	border: 1px solid var(--nas-lp-line);
	border-radius: 4px;
	text-decoration: none;
}

.nas-lp-pagination .current {
	color: #fff;
	background: var(--nas-lp-navy);
}

.nas-lp-empty {
	padding: 34px;
	text-align: center;
	background: var(--nas-lp-pale);
	border-radius: 8px;
}

.nas-lp-join-panel {
	display: flex;
	gap: 28px;
	align-items: center;
	justify-content: space-between;
	padding: 25px 28px;
	margin-top: 38px;
	background: var(--nas-lp-pale);
	border: 1px solid var(--nas-lp-line);
	border-radius: 9px;
}

.nas-lp-join-panel h3 {
	margin: 0 0 5px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 25px;
}

.nas-lp-join-panel p:not(.nas-lp-kicker) {
	margin: 0;
	color: var(--nas-lp-muted);
}

.nas-lp-join-panel .nas-lp-primary-action {
	width: auto;
	min-width: 205px;
	margin: 0;
}

.nas-lp-join-panel.is-compact {
	align-items: flex-start;
	margin-top: 24px;
}

.nas-lp-category-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.nas-lp-category-list a {
	display: flex;
	justify-content: space-between;
	padding: 14px;
	color: var(--nas-lp-ink);
	border: 1px solid var(--nas-lp-line);
	border-radius: 6px;
	text-decoration: none;
}

.nas-lp-category-list span {
	color: var(--nas-lp-muted);
}

.nas-lp-single,
.nas-lp-archive-page,
.nas-lp-quote-page,
.nas-lp-submission-page {
	padding-block: 38px 72px;
	color: var(--nas-lp-ink);
	color-scheme: light;
}

.nas-lp-back {
	display: inline-block;
	margin-bottom: 22px;
	color: var(--nas-lp-navy);
	font-weight: 750;
	text-decoration: none;
}

.nas-lp-provider-header {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	padding-bottom: 30px;
	border-bottom: 1px solid var(--nas-lp-line);
}

.nas-lp-provider-logo {
	display: grid;
	width: 170px;
	height: 140px;
	place-items: center;
	overflow: hidden;
	color: var(--nas-lp-navy);
	background: linear-gradient(135deg, #e7ecf8, #bac8eb);
	border-radius: 8px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 46px;
	font-weight: 700;
}

.nas-lp-provider-logo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nas-lp-provider-header h1 {
	margin: 3px 0 9px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(38px, 6vw, 64px);
	line-height: 1.02;
}

.nas-lp-provider-meta {
	margin: 0;
	color: var(--nas-lp-muted);
	font-size: 18px;
}

.nas-lp-single-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 50px;
	align-items: start;
	padding-top: 34px;
}

.nas-lp-provider-content {
	font-size: 18px;
	line-height: 1.72;
}

.nas-lp-provider-content > :first-child {
	margin-top: 0;
}

.nas-lp-provider-content h2,
.nas-lp-provider-content h3 {
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.18;
}

.nas-lp-contact-card {
	position: sticky;
	z-index: 20;
	top: 28px;
	isolation: isolate;
	padding: 24px;
	background: var(--nas-lp-pale);
	border: 1px solid var(--nas-lp-line);
	border-radius: 9px;
}

.nas-lp-contact-card h2 {
	margin: 0 0 16px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 25px;
}

.nas-lp-primary-action,
.nas-lp-secondary-action {
	width: 100%;
	margin-bottom: 9px;
}

.nas-lp-quote-launch {
	position: relative;
	z-index: 2;
	width: 100%;
	margin: 0;
}

.nas-lp-secondary-action {
	font: inherit;
	color: var(--nas-lp-navy);
	background: #fff;
	border: 2px solid var(--nas-lp-navy);
}

.nas-lp-secondary-action:hover,
.nas-lp-secondary-action:focus-visible {
	color: #fff;
	background: var(--nas-lp-navy);
}

.nas-lp-contact-card dl {
	margin: 17px 0;
}

.nas-lp-contact-card dl > div {
	padding-block: 11px;
	border-top: 1px solid var(--nas-lp-line);
}

.nas-lp-contact-card dt {
	color: var(--nas-lp-muted);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.nas-lp-contact-card dd {
	margin: 3px 0 0;
	overflow-wrap: anywhere;
}

.nas-lp-map-actions {
	display: flex;
	gap: 12px;
	font-size: 14px;
	font-weight: 700;
}

.nas-lp-contact-note {
	margin: 17px 0 0;
	color: var(--nas-lp-muted);
	font-size: 12px;
	line-height: 1.45;
}

.nas-lp-claim {
	padding: 17px;
	margin-top: 34px;
	background: var(--nas-lp-pale);
	border-left: 4px solid var(--nas-lp-navy);
	font-size: 15px;
}

.nas-lp-tax-header {
	max-width: 800px;
	padding-bottom: 4px;
}

.nas-lp-submission {
	padding-block: 22px 60px;
}

.nas-lp-submission-page .nas-lp-submission,
.nas-lp-quote-page .nas-lp-quote {
	width: 100%;
	margin-inline: 0;
}

.nas-lp-submission-header,
.nas-lp-quote-header {
	max-width: 850px;
	margin-bottom: 24px;
}

.nas-lp-submission-header h1,
.nas-lp-quote-header h1 {
	margin: 0 0 10px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(38px, 6vw, 62px);
	line-height: 1.04;
}

.nas-lp-submission-header > p:last-child,
.nas-lp-quote-header > p:last-child {
	margin: 0;
	color: var(--nas-lp-muted);
	font-size: 18px;
	line-height: 1.55;
}

.nas-lp-quote {
	padding-bottom: 45px;
}

.nas-lp-quote form {
	max-width: 760px;
	padding: 26px;
	background: var(--nas-lp-pale);
	border: 1px solid var(--nas-lp-line);
	border-radius: 9px;
}

.nas-lp-quote-provider {
	display: flex;
	max-width: 760px;
	gap: 9px;
	align-items: baseline;
	padding: 14px 18px;
	background: var(--nas-lp-navy);
	color: #fff;
	border-radius: 7px 7px 0 0;
}

.nas-lp-quote-provider span {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.nas-lp-quote-provider + form {
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.nas-lp-submission form {
	max-width: 900px;
}

.nas-lp-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.nas-lp-form-grid .is-wide {
	grid-column: 1 / -1;
}

.nas-lp-form-grid small {
	display: block;
	margin-top: 5px;
	color: var(--nas-lp-muted);
}

.nas-lp-service-areas {
	min-width: 0;
	margin: 0;
	padding: 12px 16px 16px;
	border: 1px solid var(--nas-lp-line);
	border-radius: 6px;
	color: var(--nas-lp-ink);
	background: var(--nas-lp-paper);
}

.nas-lp-service-areas legend {
	padding: 0 5px;
	font-size: 14px;
	font-weight: 750;
}

.nas-lp-area-help {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--nas-lp-muted);
}

.nas-lp-area-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 4px 18px;
}

.nas-lp-form-grid .nas-lp-area-option {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-height: 44px;
	padding: 10px 4px;
	cursor: pointer;
}

.nas-lp-form-grid .nas-lp-area-option input {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	min-height: 20px;
	margin: 1px 0 0;
	padding: 0;
	accent-color: var(--nas-lp-navy);
	cursor: pointer;
}

.nas-lp-form-grid .nas-lp-area-option > span {
	min-width: 0;
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.nas-lp-area-option:focus-within {
	outline: 2px solid var(--nas-lp-muted);
	outline-offset: 1px;
	border-radius: 3px;
}

.nas-lp-consent {
	display: flex;
	gap: 9px;
	align-items: flex-start;
	margin: 20px 0 10px;
}

.nas-lp-form-note {
	color: var(--nas-lp-muted);
	font-size: 14px;
}

.nas-lp-notice {
	max-width: 900px;
	padding: 17px 20px;
	margin-bottom: 20px;
	border-left: 4px solid;
}

.nas-lp-notice.is-success {
	background: #edf8f1;
	border-color: #2f7a50;
}

.nas-lp-notice.is-error {
	background: #fff1f2;
	border-color: #bc283e;
}

.nas-lp-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 900px) {
	.nas-lp-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nas-lp-filters {
		grid-template-columns: 1fr 1fr;
	}

	.nas-lp-single-grid {
		grid-template-columns: 1fr;
	}

	.nas-lp-contact-card {
		position: static;
	}

	.nas-lp-join-panel {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 620px) {
	.nas-lp-shell,
	.nas-lp-directory,
	.nas-lp-submission,
	.nas-lp-quote {
		width: min(100% - 28px, 1180px);
	}

	.nas-lp-grid,
	.nas-lp-filters,
	.nas-lp-form-grid,
	.nas-lp-category-list {
		grid-template-columns: 1fr;
	}

	.nas-lp-form-grid .is-wide {
		grid-column: auto;
	}

	.nas-lp-provider-header {
		grid-template-columns: 1fr;
	}

	.nas-lp-provider-logo {
		width: 120px;
		height: 100px;
	}

	.nas-lp-card-image {
		height: 175px;
	}
}

/* Follow the NAS Light/Dark switch, not the device setting by itself. */
html[data-wp-dark-mode-active] body.nas-local-providers-screen,
body.dark-mode.nas-local-providers-screen,
body.is-dark-theme.nas-local-providers-screen,
body.has-dark-mode.nas-local-providers-screen {
	--nas-lp-ink: #f4f6fb;
	--nas-lp-muted: #c7cede;
	--nas-lp-line: #53617e;
	--nas-lp-paper: #18233c;
	--nas-lp-pale: #202e4c;
	--nas-lp-burgundy: #f0a0b0;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-directory, .nas-lp-single, .nas-lp-archive-page, .nas-lp-quote-page, .nas-lp-submission-page) {
	color: var(--nas-lp-ink) !important;
	color-scheme: dark;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-directory-intro > p:not(.nas-lp-kicker), .nas-lp-tax-header > div, .nas-lp-results-count, .nas-lp-card-meta, .nas-lp-card-body > p, .nas-lp-provider-meta, .nas-lp-contact-card dt, .nas-lp-contact-note, .nas-lp-join-panel p:not(.nas-lp-kicker), .nas-lp-submission-header > p:last-child, .nas-lp-quote-header > p:last-child, .nas-lp-form-grid small, .nas-lp-form-note) {
	color: var(--nas-lp-muted) !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-card, .nas-lp-contact-card, .nas-lp-claim, .nas-lp-join-panel, .nas-lp-empty, .nas-lp-filters, .nas-lp-quote form) {
	color: var(--nas-lp-ink) !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-card h3 a, .nas-lp-provider-header h1, .nas-lp-contact-card h2, .nas-lp-join-panel h3, .nas-lp-directory h2, .nas-lp-tax-header h1) {
	color: var(--nas-lp-ink) !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-back, .nas-lp-join-link, .nas-lp-clear, .nas-lp-card-link, .nas-lp-map-actions a) {
	color: #7ddcff !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen :is(.nas-lp-filters button, .nas-lp-submit, .nas-lp-primary-action) {
	background: #2e89ff !important;
	color: #fff !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen .nas-lp-secondary-action {
	border-color: #83b8ff !important;
	background: #18233c !important;
	color: #e5efff !important;
}

html[data-wp-dark-mode-active] body.nas-local-providers-screen .nas-lp-secondary-action:hover,
html[data-wp-dark-mode-active] body.nas-local-providers-screen .nas-lp-secondary-action:focus-visible {
	background: #83b8ff !important;
	color: #111827 !important;
}
