.lor-category-faq {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--lor-faq-section-max-width, 100%);
	margin-top: var(--lor-faq-section-margin-top, 32px);
	margin-bottom: var(--lor-faq-section-margin-bottom, 32px);
	padding-top: var(--lor-faq-section-padding-top, 0);
	padding-right: var(--lor-faq-section-padding-right, 0);
	padding-bottom: var(--lor-faq-section-padding-bottom, 0);
	padding-left: var(--lor-faq-section-padding-left, 0);
	background: var(--lor-faq-section-background, transparent);
	color: var(--lor-faq-answer-color, #234b52);
	font-family: inherit;
}

.lor-category-faq[data-lor-section-align="left"] {
	margin-right: auto;
	margin-left: 0;
}

.lor-category-faq[data-lor-section-align="center"] {
	margin-right: auto;
	margin-left: auto;
}

.lor-category-faq[data-lor-section-align="right"] {
	margin-right: 0;
	margin-left: auto;
}

.lor-category-faq *,
.lor-category-faq *::before,
.lor-category-faq *::after {
	box-sizing: border-box;
}

.lor-category-faq__title {
	/*
	 * Reset heading margins with priority because Astra/Elementor can replace
	 * them after the plugin stylesheet. The configured separation is applied
	 * to the items container below, where it cannot collapse with the H2.
	 */
	margin: 0 !important;
	padding: 0;
	color: var(--lor-faq-title-color, #295e67);
	font-family: var(--lor-faq-title-font-family, inherit);
	font-size: var(--lor-faq-title-size-desktop, 28px);
	font-weight: var(--lor-faq-title-font-weight, 700);
	line-height: var(--lor-faq-title-line-height, 1.25);
	text-align: var(--lor-faq-title-align, left);
}

section.lor-category-faq > .lor-category-faq__items {
	display: grid;
	gap: var(--lor-faq-item-gap, 10px);
	margin-top: var(--lor-faq-title-margin-bottom, 20px) !important;
}

.lor-category-faq__item {
	overflow: hidden;
	background: var(--lor-faq-item-background, #fff6e7);
	border-width: var(--lor-faq-border-width, 1px);
	border-style: var(--lor-faq-border-style, solid);
	border-color: var(--lor-faq-border-color, #73aa9c);
	border-radius: var(--lor-faq-border-radius, 8px);
	box-shadow: var(--lor-faq-box-shadow, none);
	transition: background-color var(--lor-faq-transition-duration, 240ms) ease;
}

.lor-category-faq__item.is-open {
	background: var(--lor-faq-item-open-background, #fff6e7);
}

.lor-category-faq__question {
	margin: 0;
	padding: 0;
	font: inherit;
}

.lor-category-faq__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	margin: 0;
	padding-top: var(--lor-faq-question-padding-top, 16px);
	padding-right: var(--lor-faq-question-padding-right, 18px);
	padding-bottom: var(--lor-faq-question-padding-bottom, 16px);
	padding-left: var(--lor-faq-question-padding-left, 18px);
	border: 0;
	border-radius: inherit;
	background: transparent;
	color: var(--lor-faq-question-color, #234b52);
	font-family: var(--lor-faq-question-font-family, inherit);
	font-size: var(--lor-faq-question-size-desktop, 17px);
	font-weight: var(--lor-faq-question-font-weight, 700) !important;
	line-height: var(--lor-faq-question-line-height, 1.4);
	text-align: var(--lor-faq-question-align, left);
	cursor: pointer;
	appearance: none;
	transition: background-color var(--lor-faq-transition-duration, 240ms) ease;
}

.lor-category-faq__button:hover {
	background: var(--lor-faq-item-hover-background, #fce8de);
}

/*
 * Astra, Elementor and other global button styles may add a temporary
 * background, text color or shadow while the button keeps focus after a click.
 * Keep the configured FAQ appearance and use only the plugin focus outline.
 */
.lor-category-faq .lor-category-faq__button:focus,
.lor-category-faq .lor-category-faq__button:active {
	background: transparent !important;
	color: var(--lor-faq-question-color, #234b52) !important;
	box-shadow: none !important;
	outline: 3px solid var(--lor-faq-focus-color, #eba189);
	outline-offset: -3px;
}

.lor-category-faq .lor-category-faq__button:focus:not(:focus-visible) {
	outline: none;
}

.lor-category-faq .lor-category-faq__button:focus-visible {
	background: transparent !important;
	color: var(--lor-faq-question-color, #234b52) !important;
	box-shadow: none !important;
	outline: 3px solid var(--lor-faq-focus-color, #eba189);
	outline-offset: -3px;
}

.lor-category-faq__question-text {
	flex: 1 1 auto;
	min-width: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: var(--lor-faq-question-font-weight, 700) !important;
	line-height: inherit;
	text-align: inherit;
}

/*
 * Lock the configured question typography across every interactive state.
 * Some Astra/Elementor button rules target hover, active or expanded buttons
 * (and sometimes their inner spans) with a different weight or text color.
 */
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:hover,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:focus,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:focus-visible,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:active,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button[aria-expanded="true"],
section.lor-category-faq .lor-category-faq__item.is-open .lor-category-faq__question > button.lor-category-faq__button {
	color: var(--lor-faq-question-color, #234b52) !important;
	font-weight: var(--lor-faq-question-font-weight, 700) !important;
}

section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:hover > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:focus > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:focus-visible > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button:active > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item .lor-category-faq__question > button.lor-category-faq__button[aria-expanded="true"] > .lor-category-faq__question-text,
section.lor-category-faq .lor-category-faq__item.is-open .lor-category-faq__question > button.lor-category-faq__button > .lor-category-faq__question-text {
	color: var(--lor-faq-question-color, #234b52) !important;
	font-weight: var(--lor-faq-question-font-weight, 700) !important;
}

.lor-category-faq__indicator {
	position: relative;
	flex: 0 0 var(--lor-faq-indicator-size, 18px);
	width: var(--lor-faq-indicator-size, 18px);
	height: var(--lor-faq-indicator-size, 18px);
	color: var(--lor-faq-indicator-color, #295e67);
}

.lor-category-faq[data-lor-indicator-style="plus"] .lor-category-faq__indicator::before,
.lor-category-faq[data-lor-indicator-style="plus"] .lor-category-faq__indicator::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 80%;
	height: var(--lor-faq-indicator-thickness, 2px);
	background: currentColor;
	content: "";
	transform: translate(-50%, -50%);
	transition: transform var(--lor-faq-transition-duration, 240ms) ease;
}

.lor-category-faq[data-lor-indicator-style="plus"] .lor-category-faq__indicator::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.lor-category-faq[data-lor-indicator-style="plus"] .lor-category-faq__item.is-open .lor-category-faq__indicator::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.lor-category-faq[data-lor-indicator-style="chevron"] .lor-category-faq__indicator::before {
	position: absolute;
	top: 44%;
	left: 50%;
	width: 55%;
	height: 55%;
	border-right: var(--lor-faq-indicator-thickness, 2px) solid currentColor;
	border-bottom: var(--lor-faq-indicator-thickness, 2px) solid currentColor;
	content: "";
	transform: translate(-50%, -50%) rotate(45deg);
	transition: transform var(--lor-faq-transition-duration, 240ms) ease;
}

.lor-category-faq[data-lor-indicator-style="chevron"] .lor-category-faq__item.is-open .lor-category-faq__indicator::before {
	transform: translate(-50%, -15%) rotate(225deg);
}

.lor-category-faq[data-lor-indicator-style="none"] .lor-category-faq__indicator {
	display: none;
}

.lor-category-faq__answer {
	overflow: hidden;
	transition: height var(--lor-faq-transition-duration, 240ms) ease;
}

.lor-category-faq__answer[hidden] {
	display: none !important;
}

.lor-category-faq__answer-inner {
	padding-top: var(--lor-faq-answer-padding-top, 0);
	padding-right: var(--lor-faq-answer-padding-right, 18px);
	padding-bottom: var(--lor-faq-answer-padding-bottom, 18px);
	padding-left: var(--lor-faq-answer-padding-left, 18px);
	color: var(--lor-faq-answer-color, #234b52);
	font-family: var(--lor-faq-answer-font-family, inherit);
	font-size: var(--lor-faq-answer-size-desktop, 15px);
	font-weight: var(--lor-faq-answer-font-weight, 400);
	line-height: var(--lor-faq-answer-line-height, 1.65);
}

.lor-category-faq__answer-inner > :first-child {
	margin-top: 0;
}

.lor-category-faq__answer-inner > :last-child {
	margin-bottom: 0;
}

.lor-category-faq__answer-inner p {
	margin-top: 0;
	margin-bottom: var(--lor-faq-answer-paragraph-spacing, 12px);
}

.lor-category-faq__answer-inner a {
	color: var(--lor-faq-link-color, #295e67);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.lor-category-faq__answer-inner ul,
.lor-category-faq__answer-inner ol {
	padding-inline-start: 1.4em;
}

/* Explicitly override Astra, Elementor or global button rules unless “Heredar del tema” is selected. */
.lor-category-faq:not([data-lor-title-text-transform="inherit"]) .lor-category-faq__title {
	text-transform: var(--lor-faq-title-text-transform, none) !important;
}

.lor-category-faq:not([data-lor-question-text-transform="inherit"]) .lor-category-faq__button {
	text-transform: var(--lor-faq-question-text-transform, none) !important;
}

.lor-category-faq:not([data-lor-answer-text-transform="inherit"]) .lor-category-faq__answer-inner {
	text-transform: var(--lor-faq-answer-text-transform, none) !important;
}

@media (max-width: 1024px) {
	.lor-category-faq__title {
		font-size: var(--lor-faq-title-size-tablet, 26px);
	}

	.lor-category-faq__button {
		font-size: var(--lor-faq-question-size-tablet, 16px);
	}

	.lor-category-faq__answer-inner {
		font-size: var(--lor-faq-answer-size-tablet, 15px);
	}
}

@media (max-width: 767px) {
	.lor-category-faq__title {
		font-size: var(--lor-faq-title-size-mobile, 23px);
	}

	.lor-category-faq__button {
		gap: 12px;
		font-size: var(--lor-faq-question-size-mobile, 15px);
	}

	.lor-category-faq__answer-inner {
		font-size: var(--lor-faq-answer-size-mobile, 14px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lor-category-faq {
		--lor-faq-transition-duration: 1ms !important;
	}
}
