.nad-faq {
	--nad-faq-accent: #246b51;
	--nad-faq-border: #d9dedb;
	--nad-faq-surface: #fff;
	--nad-faq-muted-surface: #f6f8f7;
	--nad-faq-radius: 0.35rem;
	--nad-faq-focus: #1769aa;
	color: inherit;
}

.nad-faq .screen-reader-text,
.nad-faq-search-widget .screen-reader-text,
.nad-faq-assistant .screen-reader-text {
	block-size: 1px;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute !important;
	white-space: nowrap;
}

/* Local FAQ retrieval assistant. */
.nad-faq-assistant {
	--nad-assistant-accent: #24523f;
	--nad-assistant-highlight: #e6e98b;
	--nad-assistant-surface: #fff;
	--nad-assistant-border: #d9dedb;
	color: #25342e;
	font: inherit;
	z-index: 9999;
}

.nad-faq-assistant--floating {
	bottom: var(--nad-assistant-bottom, 1.25rem);
	position: fixed;
	right: var(--nad-assistant-side, 1.25rem);
}

.nad-faq-assistant-side-left .nad-faq-assistant--floating { left: var(--nad-assistant-side, 1.25rem); right: auto; }
.nad-faq-assistant-side-left .nad-faq-assistant--floating .nad-faq-assistant__panel { left: 0; right: auto; }

.nad-faq-assistant__launcher {
	align-items: center;
	background: var(--nad-assistant-accent);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 0.4rem 1.5rem rgb(0 0 0 / 20%);
	color: #fff;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 700;
	gap: 0.55rem;
	margin-left: auto;
	padding: 0.8rem 1.15rem;
}

.nad-faq-assistant__launcher:hover { background: #173d2d; color: #fff; }
.nad-faq-assistant__launcher-icon { align-items: center; background: var(--nad-assistant-highlight); border-radius: 50%; color: var(--nad-assistant-accent); display: inline-flex; font-weight: 800; height: 1.55rem; justify-content: center; width: 1.55rem; }

.nad-faq-assistant__panel {
	background: var(--nad-assistant-surface);
	border: 1px solid var(--nad-assistant-border);
	border-radius: 1rem;
	box-shadow: 0 0.8rem 2.5rem rgb(0 0 0 / 20%);
	overflow: hidden;
	width: min(25rem, calc(100vw - 2rem));
}

.nad-faq-assistant--floating .nad-faq-assistant__panel { bottom: calc(100% + 0.75rem); max-height: min(42rem, calc(100vh - 7rem)); overflow-y: auto; position: absolute; right: 0; }
.nad-faq-assistant--inline .nad-faq-assistant__panel { box-shadow: none; max-width: 100%; width: 100%; }
.nad-faq-assistant--editor-preview .nad-faq-assistant__panel { margin-top: 0.75rem; position: static; }
.nad-faq-assistant [hidden] { display: none !important; }

.nad-faq-assistant__header { align-items: center; background: var(--nad-assistant-accent); color: #fff; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.1rem; }
.nad-faq-assistant__title { color: inherit; font-size: 1.25rem; line-height: 1.25; margin: 0; }
.nad-faq-assistant__close { background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; font-size: 1.7rem; line-height: 1; padding: 0.15rem; }
.nad-faq-assistant__body { padding: 1rem; }
.nad-faq-assistant__intro { margin: 0 0 0.85rem; }
.nad-faq-assistant__form { display: grid; gap: 0.65rem; }
.nad-faq-assistant .nad-faq-assistant__input { background: #fff; border: 1px solid var(--nad-assistant-border); border-radius: 0.5rem; box-shadow: none; color: inherit; font: inherit; min-height: 5rem; padding: 0.7rem; resize: vertical; width: 100%; }
.nad-faq-assistant__submit,
.nad-faq-assistant__contact { background: var(--nad-assistant-accent); border: 0; border-radius: 0.4rem; color: #fff; cursor: pointer; display: inline-block; font: inherit; font-weight: 700; padding: 0.7rem 1rem; text-align: center; text-decoration: none; }
.nad-faq-assistant__submit:hover,
.nad-faq-assistant__contact:hover { background: #173d2d; color: #fff; text-decoration: none; }
.nad-faq-assistant__submit:disabled { cursor: wait; opacity: 0.65; }
.nad-faq-assistant__results { margin-top: 1rem; }
.nad-faq-assistant__loading { align-items: center; color: inherit; display: flex; gap: 0.5rem; justify-content: center; min-height: 4.5rem; padding: 0.75rem; text-align: center; }
.nad-faq-assistant__loading-label { font-weight: 700; }
.nad-faq-assistant__loading-dots { color: var(--nad-assistant-accent); display: inline-flex; font-size: 1.25em; gap: 0.16em; line-height: 1; }
.nad-faq-assistant__loading-dots span { animation: nad-faq-loading-dot 0.9s ease-in-out infinite; opacity: 0.25; }
.nad-faq-assistant__loading-dots span:nth-child(2) { animation-delay: 0.15s; }
.nad-faq-assistant__loading-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes nad-faq-loading-dot { 0%, 70%, 100% { opacity: 0.25; transform: translateY(0); } 35% { opacity: 1; transform: translateY(-0.18em); } }
.nad-faq-assistant__result { border-top: 1px solid var(--nad-assistant-border); padding: 1rem 0; }
.nad-faq-assistant__result:first-child { border-top: 0; padding-top: 0; }
.nad-faq-assistant__result-label { color: var(--nad-assistant-accent); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; margin: 0 0 0.25rem; text-transform: uppercase; }
.nad-faq-assistant__result-title { color: inherit; font-size: 1.05rem; margin: 0 0 0.5rem; }
.nad-faq-assistant__result-answer { font-size: 0.92rem; }
.nad-faq-assistant__result-answer > :first-child { margin-top: 0; }
.nad-faq-assistant__result-answer > :last-child { margin-bottom: 0; }
.nad-faq-assistant__faq-link { color: var(--nad-assistant-accent); display: inline-block; font-weight: 700; margin-top: 0.65rem; }
.nad-faq-assistant__fallback { background: #f6f8f7; border-radius: 0.5rem; margin-top: 1rem; padding: 0.9rem; }
.nad-faq-assistant__fallback p { margin-top: 0; }
.nad-faq-assistant__fallback-faq-link { color: var(--nad-assistant-accent); font-weight: 700; text-decoration: underline; }
.nad-faq-assistant__fallback-faq-link:hover { color: var(--nad-assistant-accent); text-decoration-thickness: 2px; }
.nad-faq-assistant :focus-visible { outline: 3px solid #1769aa; outline-offset: 3px; }

@media (max-width: 600px) {
	.nad-faq-assistant--floating { --nad-assistant-bottom: 0.75rem; --nad-assistant-side: 0.75rem; }
	.nad-faq-assistant--floating .nad-faq-assistant__panel { max-height: calc(100vh - 6rem); width: calc(100vw - 1.5rem); }
}

.nad-faq[hidden],
.nad-faq [hidden] {
	display: none !important;
}

.nad-faq__search {
	margin-block-end: 1.5rem;
}

.nad-faq__search-label {
	display: block;
	font-weight: 600;
	margin-block-end: 0.45rem;
}

.nad-faq__search-controls {
	display: flex;
	gap: 0.5rem;
}

.nad-faq__search-input {
	background: var(--nad-faq-surface);
	border: 1px solid var(--nad-faq-border);
	border-radius: var(--nad-faq-radius);
	color: inherit;
	font: inherit;
	inline-size: 100%;
	min-block-size: 2.8rem;
	padding: 0.65rem 0.8rem;
}

.nad-faq__search-clear,
.nad-faq__topic-button,
.nad-faq__question {
	font: inherit;
}

.nad-faq__search-clear,
.nad-faq__topic-button {
	background: var(--nad-faq-surface);
	border: 1px solid var(--nad-faq-border);
	border-radius: var(--nad-faq-radius);
	color: inherit;
	cursor: pointer;
	padding: 0.55rem 0.8rem;
}

.nad-faq__results-status {
	font-size: 0.9em;
	margin: 0.45rem 0 0;
}

.nad-faq__topic-nav {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	padding-block: 0.1rem 0.65rem;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.nad-faq__topic-button {
	flex: 0 0 auto;
	white-space: nowrap;
}

.nad-faq__topic-button--selected,
.nad-faq__topic-button[aria-pressed="true"] {
	background: var(--nad-faq-accent);
	border-color: var(--nad-faq-accent);
	color: #fff;
}

.nad-faq__section {
	scroll-margin-top: 2rem;
}

.nad-faq__section + .nad-faq__section {
	margin-block-start: 2rem;
}

.nad-faq__section-title {
	margin-block: 1.25rem 0.75rem;
}

.nad-faq__item {
	background: var(--nad-faq-surface);
	border-block-start: 1px solid var(--nad-faq-border);
	scroll-margin-top: 2rem;
}

.nad-faq__item:last-child {
	border-block-end: 1px solid var(--nad-faq-border);
}

.nad-faq__item--search-match {
	box-shadow: inset 0.2rem 0 0 var(--nad-faq-accent);
}

.nad-faq__question-heading {
	font: inherit;
	margin: 0;
}

.nad-faq__question {
	align-items: center;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	font-weight: 600;
	gap: 1rem;
	inline-size: 100%;
	justify-content: space-between;
	line-height: 1.35;
	padding: 1rem 0.75rem;
	text-align: start;
	white-space: normal;
}

.nad-faq__question-text {
	max-inline-size: 100%;
	min-inline-size: 0;
	overflow-wrap: anywhere;
	white-space: normal;
	word-break: normal;
}

.nad-faq__question:hover {
	background: var(--nad-faq-muted-surface);
}

.nad-faq__question-icon {
	block-size: 0.65rem;
	border-block-end: 2px solid currentColor;
	border-inline-end: 2px solid currentColor;
	flex: 0 0 0.65rem;
	transform: rotate(45deg) translateY(-0.15rem);
	transition: transform 160ms ease;
	inline-size: 0.65rem;
}

.nad-faq__question[aria-expanded="true"] .nad-faq__question-icon {
	transform: rotate(225deg) translate(-0.1rem, -0.1rem);
}

.nad-faq__answer {
	overflow: hidden;
}

.nad-faq__answer-content {
	padding: 0 0.75rem 1.2rem;
}

.nad-faq__answer-content > :first-child {
	margin-block-start: 0;
}

.nad-faq__answer-content > :last-child {
	margin-block-end: 0;
}

.nad-faq__no-results {
	background: var(--nad-faq-muted-surface);
	border: 1px solid var(--nad-faq-border);
	border-radius: var(--nad-faq-radius);
	margin-block-start: 1.5rem;
	padding: 1rem;
}

.nad-faq__no-results p {
	margin: 0;
}

.nad-faq :focus-visible {
	outline: 3px solid var(--nad-faq-focus);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.nad-faq__search-controls {
		align-items: stretch;
	}

	.nad-faq__question {
		padding-inline: 0.25rem;
	}

	.nad-faq__answer-content {
		padding-inline: 0.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nad-faq__question-icon {
		transition: none;
	}
	.nad-faq-assistant__loading-dots span { animation: none; opacity: 1; transform: none; }
}

/* Standalone Elementor search widget. */
.nad-faq-search-widget {
	inline-size: 100%;
}

.nad-faq-search-widget__control {
	align-items: center;
	background: #fff;
	border: 0;
	border-radius: 999px;
	display: flex;
	gap: 0.65rem;
	min-block-size: 4rem;
	padding: 0.35rem 1.25rem;
}

.nad-faq-search-widget__icon {
	color: #53616a;
	display: inline-flex;
	flex: 0 0 auto;
}

.nad-faq-search-widget__icon svg {
	block-size: 1.75rem;
	fill: none;
	inline-size: 1.75rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-width: 2.25;
}

.nad-faq-search-widget .nad-faq-search-widget__input {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	color: inherit;
	flex: 1 1 auto;
	font: inherit;
	inline-size: 100%;
	min-inline-size: 0;
	outline: 0 !important;
	padding: 0;
}

.nad-faq-search-widget .nad-faq-search-widget__input:hover,
.nad-faq-search-widget .nad-faq-search-widget__input:focus {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.nad-faq-search-widget__clear {
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	padding: 0.35rem;
}

.nad-faq-search-widget__status {
	color: inherit;
	font-size: 0.9em;
	margin: 0.45rem 1.25rem 0;
}

.nad-faq-search-widget__control:focus-within,
.nad-faq-search-focus-ring .nad-faq-search-widget__control:focus-within {
	outline: 3px solid var(--nad-faq-focus, #1769aa);
	outline-offset: 3px;
}

.nad-faq-search-focus-none .nad-faq-search-widget__control:focus-within {
	box-shadow: none !important;
	outline: 0 !important;
}

.nad-faq-search-widget__clear:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Elementor FAQ Browser layout. */
.nad-faq--browser {
	--nad-faq-index-width: 30%;
	overflow-anchor: none;
}

.nad-faq__browse-heading {
	color: inherit;
	font-size: clamp(1.45rem, 2.4vw, 2rem);
	margin: 0 0 0.75rem;
}

.nad-faq__editor-note {
	background: #fff8d8;
	border: 1px solid #d7bf56;
	border-radius: 0.35rem;
	color: #514711;
	font-size: 0.85rem;
	margin: 0 0 1rem;
	padding: 0.65rem 0.8rem;
}

.nad-faq--browser .nad-faq__topic-cards {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(var(--nad-faq-topic-columns, 10), minmax(0, 1fr));
	overflow: visible;
	padding: 0 0 2.5rem;
}

.nad-faq--browser .nad-faq__topic-card {
	align-items: center;
	background: transparent;
	border: 1px solid var(--nad-faq-accent);
	border-radius: 1rem;
	color: var(--nad-faq-accent);
	display: flex;
	flex-direction: column;
	font-weight: 600;
	gap: 1rem;
	justify-content: center;
	line-height: 1.05;
	min-block-size: 9rem;
	padding: 1rem 0.6rem;
	text-align: center;
	transition-property: background-color, border-color, color, transform;
	transition-timing-function: ease;
	white-space: normal;
}

.nad-faq--browser .nad-faq__topic-card:hover {
	background: transparent;
	border-color: var(--nad-faq-accent);
	color: var(--nad-faq-accent);
}

.nad-faq--browser .nad-faq__topic-card[aria-pressed="true"] {
	background: var(--nad-faq-accent);
	border-color: var(--nad-faq-accent);
	color: #f0f29a;
}

.nad-faq__topic-marker,
.nad-faq__index-marker {
	background: currentColor;
	display: inline-block;
	flex: 0 0 auto;
}

.nad-faq__topic-visual {
	align-items: center;
	color: currentColor;
	display: inline-flex;
	justify-content: center;
	line-height: 1;
}

.nad-faq__topic-visual i,
.nad-faq__topic-visual svg {
	color: inherit;
	display: block;
}

.nad-faq__topic-visual svg,
.nad-faq__topic-visual svg path {
	fill: currentColor !important;
}

.nad-faq__topic-marker {
	block-size: 1rem;
	inline-size: 1rem;
}

.nad-faq__browser-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, var(--nad-faq-index-width)) minmax(0, 1fr);
}

.nad-faq__browser-layout--no-index {
	grid-template-columns: minmax(0, 1fr);
}

.nad-faq__index-panel,
.nad-faq__results-panel {
	background: var(--nad-faq-surface);
	border: 1px solid var(--nad-faq-accent);
	border-radius: 1rem;
	min-inline-size: 0;
	padding: 1.75rem;
}

.nad-faq__index-title,
.nad-faq--browser .nad-faq__section-title {
	color: var(--nad-faq-accent);
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	margin: 0 0 1rem;
}

.nad-faq__index-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nad-faq__index-list li + li {
	border-block-start: 1px solid var(--nad-faq-border);
}

.nad-faq__index-link {
	align-items: flex-start;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	font: inherit;
	gap: 0.65rem;
	inline-size: 100%;
	line-height: 1.35;
	padding: 0.75rem 0;
	text-align: start;
	transition: background-color 180ms ease, color 180ms ease;
	white-space: normal;
}

.nad-faq__index-link > span:last-child {
	max-inline-size: 100%;
	min-inline-size: 0;
	overflow-wrap: anywhere;
	white-space: normal;
	word-break: normal;
}

.nad-faq__index-link:hover {
	color: var(--nad-faq-accent);
}

.nad-faq__index-marker {
	block-size: 0.85rem;
	inline-size: 0.85rem;
	margin-block-start: 0.2rem;
}

.nad-faq--browser .nad-faq__section + .nad-faq__section {
	margin-block-start: 2rem;
}

.nad-faq--browser .nad-faq__item {
	border: 1px solid var(--nad-faq-border);
	border-radius: 0.3rem;
	overflow: clip;
}

.nad-faq--browser .nad-faq__item + .nad-faq__item {
	margin-block-start: 0.4rem;
}

.nad-faq--browser .nad-faq__question {
	background: var(--nad-faq-muted-surface);
	transition: background-color 180ms ease, color 180ms ease;
}

.nad-faq--browser .nad-faq__question[aria-expanded="true"] {
	background: #b2b55b;
	color: #fffdd6;
}

.nad-faq--browser .nad-faq__answer {
	background: #f2f3cf;
}

.nad-faq--browser .nad-faq__answer-content {
	padding: 1rem;
}

.nad-faq__contact-callout {
	align-items: center;
	background: #e6e98b;
	border: 1px solid var(--nad-faq-accent);
	border-radius: 1rem;
	color: var(--nad-faq-accent);
	display: grid;
	gap: 1rem;
	grid-template-columns: 4rem minmax(0, 1fr);
	margin-block-start: 1.5rem;
	padding: 1.25rem;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.nad-faq__contact-content,
.nad-faq__contact-title,
.nad-faq__contact-text {
	max-inline-size: 100%;
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.nad-faq__contact-icon svg {
	block-size: 4rem;
	fill: none;
	inline-size: 4rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.nad-faq__contact-title {
	color: inherit;
	font-size: 1.15rem;
	margin: 0;
}

.nad-faq__contact-text {
	font-size: 0.9rem;
	margin: 0.2rem 0 0.7rem;
}

.nad-faq__contact-button {
	background: var(--nad-faq-accent);
	border-radius: 0.2rem;
	color: #fff;
	display: block;
	font-weight: 600;
	padding: 0.65rem 1rem;
	text-align: center;
	text-decoration: none;
	transition: background-color 180ms ease, color 180ms ease;
}

.nad-faq__contact-button:hover,
.nad-faq__contact-button:focus-visible {
	background: var(--nad-faq-accent);
	color: #fff;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.nad-faq--browser .nad-faq__topic-cards {
		--nad-faq-topic-columns: 5;
	}

	.nad-faq__browser-layout {
		--nad-faq-index-width: 34%;
	}
}

@media (max-width: 767px) {
	.nad-faq--browser .nad-faq__topic-cards {
		display: flex;
		overflow-x: auto;
		padding-block-end: 1.25rem;
		scroll-snap-type: x proximity;
	}

	.nad-faq--browser .nad-faq__topic-card {
		flex: 0 0 9rem;
		min-block-size: 7.5rem;
		scroll-snap-align: start;
	}

	.nad-faq__browser-layout {
		display: flex;
		flex-direction: column;
	}

	.nad-faq__index-panel {
		background: transparent;
		border: 0;
		order: 2;
		padding: 0;
	}

	.nad-faq__index-group {
		display: none !important;
	}

	.nad-faq__results-panel {
		order: 1;
		padding: 1rem;
	}

	.nad-faq__contact-callout {
		margin-block-start: 1rem;
	}
}
