/**
 * Base Accordion Styles for Yoast FAQ Accordion Styler
 *
 * @package Yoast_FAQ_Accordion_Styler
 * @since 1.0.0
 *
 * Note: Dynamic styles are injected inline via PHP based on user settings.
 * This file contains only base structural styles.
 */

/* ==========================================================================
   Reset and Base Styles
   ========================================================================== */

.schema-faq {
	box-sizing: border-box;
}

.schema-faq *,
.schema-faq *:before,
.schema-faq *:after {
	box-sizing: inherit;
}

/* ==========================================================================
   FAQ Container
   ========================================================================== */

.schema-faq {
	width: 100%;
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   FAQ Section (Individual Item)
   ========================================================================== */

.schema-faq-section {
	position: relative;
	list-style: none;
}

/* ==========================================================================
   Question (Toggle Button)
   ========================================================================== */

.schema-faq-question {
	width: 100%;
	text-align: left;
	border: none;
	margin: 0;
	margin-bottom: 0 !important;
	outline: none;
}

.schema-faq-question::-moz-focus-inner {
	border: 0;
}

/* Ensure nested strong tags don't add extra weight */
.schema-faq-question strong {
	font-weight: inherit;
}

/* ==========================================================================
   Answer (Content Area)
   ========================================================================== */

.schema-faq-answer {
	overflow: hidden;
}

/* Hidden state */
.schema-faq-answer:not(.yfas-visible) {
	max-height: 0;
	opacity: 0;
	visibility: hidden;
}

/* Visible state */
.schema-faq-answer.yfas-visible {
	max-height: none;
	opacity: 1;
	visibility: visible;
}

/* Reset paragraph margins inside answer */
.schema-faq-answer > *:first-child {
	margin-top: 0;
}

.schema-faq-answer > *:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Icon Container
   ========================================================================== */

.yfas-icon {
	pointer-events: none;
}

.yfas-icon svg {
	display: block;
}

/* ==========================================================================
   Animation States
   ========================================================================== */

.yfas-animating {
	transition-property: max-height, opacity;
	transition-timing-function: inherit;
	transition-duration: inherit;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

/* Ensure focus is visible */
.schema-faq-question:focus {
	outline: 2px solid;
	outline-offset: 2px;
}

/* Remove default outline in favor of custom */
.schema-faq-question:focus:not(:focus-visible) {
	outline: none;
}

.schema-faq-question:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	.schema-faq-question {
		border: 1px solid currentColor;
	}

	.schema-faq-question:focus {
		outline-width: 3px;
	}
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	.schema-faq-question,
	.schema-faq-answer,
	.yfas-icon,
	.yfas-icon svg {
		transition: none !important;
		animation: none !important;
	}

	.schema-faq-question.yfas-active .yfas-icon {
		transform: none !important;
	}
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
	.schema-faq-answer {
		display: block !important;
		max-height: none !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	.yfas-icon {
		display: none !important;
	}

	.schema-faq-question {
		cursor: default !important;
	}
}

/* ==========================================================================
   RTL Support
   ========================================================================== */

[dir="rtl"] .yfas-icon {
	transform: scaleX(-1);
}

[dir="rtl"] .schema-faq-question.yfas-active .yfas-icon {
	transform: scaleX(-1) rotate(180deg);
}

/* ==========================================================================
   Dark Mode Support (Optional)
   ========================================================================== */

@media (prefers-color-scheme: dark) {
	/* Base dark mode styles can be added here if needed */
	/* User-defined colors from settings will override these */
}
