/* =========================================================
   NPC FAQ Accordion — Frontend Styles
   Shortcode: [npc_faq_accordion]
   ========================================================= */

.npc-faq-accordion,
.npc-faq-accordion * {
	box-sizing: border-box;
}

.npc-faq-accordion {
	width: 100%;
	margin: 0;
	padding: 0;
	--npc-faq-accordion-speed: 300ms;
	border-top: 3px solid #d7d7d7;
}

.npc-faq-accordion-item {
	margin: 0;
	padding: 0;
	background: transparent;
	border-top: 1px solid #e3e3e3;
}

.npc-faq-accordion-item:first-child {
	border-top: 0;
}

.npc-faq-accordion-question {
	display: flex;
	align-items: center;
	gap: 11px;
	width: 100%;
	margin: 0 !important;
	padding: 9px 12px !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
	cursor: pointer;
	text-align: left;
	text-decoration: none !important;
	color: #111111 !important;
	font-family: Georgia, serif;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	-webkit-appearance: none;
	appearance: none;
}

.npc-faq-accordion-question:hover,
.npc-faq-accordion-question:focus,
.npc-faq-accordion-question:active {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
	text-decoration: none !important;
	color: #111111 !important;
}

.npc-faq-accordion-question-text {
	flex: 1 1 auto;
	display: block;
	min-width: 0;
	margin: 0;
	padding: 0;
	white-space: normal;
	word-break: break-word;
}

.npc-faq-accordion-icon {
	display: inline-block;
	position: relative;
	flex: 0 0 13px;
	width: 13px;
	height: 13px;
	margin: 0;
	padding: 0;
}

.npc-faq-accordion-icon::before,
.npc-faq-accordion-icon::after {
	content: "";
	position: absolute;
	display: block;
	background: #111111;
	border-radius: 2px;
	transition: background-color 160ms ease, opacity 160ms ease;
}

.npc-faq-accordion-icon::before {
	left: 1px;
	right: 1px;
	top: 50%;
	height: 2px;
	transform: translateY(-50%);
}

.npc-faq-accordion-icon::after {
	top: 1px;
	bottom: 1px;
	left: 50%;
	width: 2px;
	transform: translateX(-50%);
}

.npc-faq-accordion-item.is-open .npc-faq-accordion-question {
	color: #e30613 !important;
	font-weight: 400 !important;
}

.npc-faq-accordion-item.is-open .npc-faq-accordion-question:hover,
.npc-faq-accordion-item.is-open .npc-faq-accordion-question:focus,
.npc-faq-accordion-item.is-open .npc-faq-accordion-question:active {
	color: #e30613 !important;
}

.npc-faq-accordion-item.is-open .npc-faq-accordion-icon::before,
.npc-faq-accordion-item.is-open .npc-faq-accordion-icon::after {
	background: #e30613;
}

.npc-faq-accordion-item.is-open .npc-faq-accordion-icon::after {
	opacity: 0;
}

/* v1.2.0: The shortcode accordion now uses measured height animation instead of
   grid-row animation. This removes the jump/snap effect and avoids hidden closed
   panels adding extra border space between questions. */
.npc-faq-accordion-answer-wrap {
	display: block !important;
	height: 0;
	max-height: none !important;
	overflow: hidden !important;
	transition-property: height, opacity !important;
	transition-duration: var(--npc-faq-accordion-speed, 300ms), var(--npc-faq-accordion-speed, 300ms) !important;
	transition-timing-function: ease, ease !important;
	opacity: 0;
	border: 0 !important;
	will-change: height;
}

.npc-faq-accordion-item.is-open > .npc-faq-accordion-answer-wrap {
	height: auto;
	opacity: 1;
}

.npc-faq-accordion-answer {
	min-height: 0;
	overflow: hidden;
	padding: 7px 12px 8px 36px;
	box-shadow: inset 0 1px 0 #e3e3e3;
	color: #111111;
	font-family: Georgia, serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.45;
}

.npc-faq-accordion-answer p {
	margin: 0;
}

.npc-faq-accordion-answer p + p {
	margin-top: 6px;
}

.npc-faq-accordion-answer ul,
.npc-faq-accordion-answer ol {
	margin: 5px 0 6px 0;
	padding-left: 18px;
}

.npc-faq-accordion-answer li {
	margin-bottom: 4px;
}

.npc-faq-accordion-answer a {
	color: #e30613;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 767px) {
	.npc-faq-accordion-question {
		gap: 10px;
		padding: 9px 8px !important;
		font-size: 15px !important;
		line-height: 1.4 !important;
	}

	.npc-faq-accordion-icon {
		flex-basis: 12px;
		width: 12px;
		height: 12px;
	}

	.npc-faq-accordion-answer {
		padding: 6px 8px 7px 30px;
		font-size: 15px;
		line-height: 1.45;
	}
}

/* Mobile tap/focus fixes: remove transparent blue browser tap box. */
.npc-faq-accordion,
.npc-faq-accordion *,
.npc-faq-accordion-question,
.npc-faq-accordion-question * {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.npc-faq-accordion-question {
	touch-action: manipulation;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
}

.npc-faq-accordion-question:focus,
.npc-faq-accordion-question:active {
	background: transparent !important;
	outline: 0 !important;
	box-shadow: none !important;
}

.npc-faq-accordion-question:focus-visible {
	outline: 2px solid #e30613 !important;
	outline-offset: 2px;
	box-shadow: none !important;
}

/* Elementor Accordion/Toggle consistency layer. */
.elementor-accordion,
.elementor-accordion *,
.elementor-toggle,
.elementor-toggle *,
.e-n-accordion,
.e-n-accordion * {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
}

.elementor-accordion .elementor-tab-title,
.elementor-toggle .elementor-tab-title,
.e-n-accordion .e-n-accordion-item-title {
	touch-action: manipulation;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
	outline: 0 !important;
	box-shadow: none !important;
}

.elementor-accordion .elementor-tab-title:focus,
.elementor-accordion .elementor-tab-title:active,
.elementor-toggle .elementor-tab-title:focus,
.elementor-toggle .elementor-tab-title:active,
.e-n-accordion .e-n-accordion-item-title:focus,
.e-n-accordion .e-n-accordion-item-title:active,
.elementor-accordion .elementor-tab-title *:focus,
.elementor-accordion .elementor-tab-title *:active,
.elementor-toggle .elementor-tab-title *:focus,
.elementor-toggle .elementor-tab-title *:active,
.e-n-accordion .e-n-accordion-item-title *:focus,
.e-n-accordion .e-n-accordion-item-title *:active {
	outline: 0 !important;
	box-shadow: none !important;
}

.elementor-accordion .elementor-tab-title:focus-visible,
.elementor-toggle .elementor-tab-title:focus-visible,
.e-n-accordion .e-n-accordion-item-title:focus-visible {
	outline: 2px solid #e30613 !important;
	outline-offset: 2px;
	box-shadow: none !important;
}

.elementor-accordion .npc-classic-accordion-content,
.elementor-toggle .npc-classic-accordion-content,
.e-n-accordion .npc-native-accordion-content {
	overflow: hidden !important;
}

.e-n-accordion .npc-native-accordion-content {
	transition: height 300ms ease !important;
}
