/*
 * QuizSEO Pro <> Discy compatibility layer (compat3 — hard isolation)
 * ------------------------------------------------------------------
 * Goal: Theme styles MUST NOT affect any plugin markup. Plugin is
 * never modified. All rules below are scoped to plugin roots only.
 *
 * Root-cause work already done in main.css / rtl.css / responsive.css /
 * skins: previously global .question-header / .question-navigation
 * rules are now limited to .article-question / .question-articles /
 * .single-question.
 *
 * This file is the safety net + nuclear isolation for anything that
 * still leaks (floats, loaders, z-index, post-author, post-meta, etc).
 * ------------------------------------------------------------------
 */

/* ========== 1. HARD ISOLATION INSIDE PLUGIN ROOTS ========== */
.quizSEO_content,
.quizseo-question-page,
.quizSEO_ssc_official,
.quizseo-contest-exam-shell,
[id^="quizSEO_"],
[class*="quizSEO_"],
.wpProQuiz_content,
.wpProQuiz_quiz,
.wpProQuiz_list,
.wpProQuiz_listItem {
	/* Contain floats so theme clearfixs cannot escape */
	overflow: visible;
	float: none !important;
	clear: none !important;
	box-sizing: border-box;
}

/* Neutralise theme float/overflow/display on shared class names
   ONLY when they live inside a plugin root */
.quizSEO_content .question-header,
.quizseo-question-page .question-header,
[id^="quizSEO_"] .question-header,
[class*="quizSEO_"] .question-header,
.wpProQuiz_content .question-header,
.quizSEO_ssc_official .question-header,
.quizseo-contest-exam-shell .question-header {
	overflow: visible !important;
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	margin-bottom: 40px !important;
	border-bottom: 2px solid #e9ecef !important;
	padding-bottom: 20px !important;
	clear: none !important;
}

.quizSEO_content .question-header .post-author,
.quizSEO_content .question-header .question-author-un,
.quizseo-question-page .question-header .post-author,
.quizseo-question-page .question-header .question-author-un,
[id^="quizSEO_"] .question-header .post-author,
[class*="quizSEO_"] .question-header .post-author {
	float: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.quizSEO_content .question-header h1,
.quizseo-question-page .question-header h1,
[id^="quizSEO_"] .question-header h1 {
	font-size: clamp(24px, 4vw, 32px) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	margin: 0 0 15px !important;
	float: none !important;
	overflow: visible !important;
	white-space: normal !important;
}

/* Navigation: plugin uses flex; theme forced float:right */
.quizSEO_content .question-navigation,
.quizseo-question-page .question-navigation,
[id^="quizSEO_"] .question-navigation,
[class*="quizSEO_"] .question-navigation,
.wpProQuiz_content .question-navigation,
.quizSEO_ssc_official .question-navigation,
.quizseo-contest-exam-shell .question-navigation {
	display: flex !important;
	flex-wrap: wrap !important;
	float: none !important;
	justify-content: space-between !important;
	align-items: center !important;
	gap: 12px !important;
	margin: 20px 0 0 !important;
	overflow: visible !important;
	width: auto !important;
	max-width: 100% !important;
}

.quizSEO_content .question-navigation a,
.quizseo-question-page .question-navigation a,
[id^="quizSEO_"] .question-navigation a,
[class*="quizSEO_"] .question-navigation a,
.wpProQuiz_content .question-navigation a {
	float: none !important;
	display: inline-flex !important;
	align-items: center !important;
	margin: 0 !important;
	padding: 10px 18px !important;
	font-weight: 600 !important;
}

.quizSEO_content .question-navigation i,
.quizseo-question-page .question-navigation i {
	margin: 0 6px !important;
}

/* Meta row: flex, not floated spans */
.quizSEO_content .question-meta,
.quizseo-question-page .question-meta,
[id^="quizSEO_"] .question-meta,
[class*="quizSEO_"] .question-meta {
	display: flex !important;
	flex-wrap: wrap !important;
	float: none !important;
	gap: 12px 20px !important;
	overflow: visible !important;
	width: auto !important;
}

.quizSEO_content .question-meta span,
.quizseo-question-page .question-meta span,
[id^="quizSEO_"] .question-meta span {
	float: none !important;
	display: inline-flex !important;
	align-items: center !important;
	margin: 0 !important;
}

/* Related questions block */
.quizSEO_content .related-questions,
.quizseo-question-page .related-questions,
[id^="quizSEO_"] .related-questions {
	float: none !important;
	clear: both !important;
	width: auto !important;
	max-width: 100% !important;
	margin-top: 60px !important;
	padding-top: 40px !important;
	border-top: 2px solid #e9ecef !important;
	overflow: visible !important;
}

.quizSEO_content .related-questions-list,
.quizseo-question-page .related-questions-list {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
	gap: 25px !important;
	float: none !important;
}

/* Theme post-* classes inside plugin must not float */
.quizSEO_content .post-author,
.quizSEO_content .post-meta,
.quizSEO_content .post-share,
.quizSEO_content .post-content,
.quizseo-question-page .post-author,
.quizseo-question-page .post-meta,
.quizseo-question-page .post-share,
.quizseo-question-page .post-content,
[id^="quizSEO_"] .post-author,
[id^="quizSEO_"] .post-meta,
[class*="quizSEO_"] .post-author,
[class*="quizSEO_"] .post-meta {
	float: none !important;
	clear: none !important;
}

/* Generic: no theme float/clear on any quizSEO_ prefixed node */
[class*="quizSEO_"],
[id^="quizSEO_"] {
	float: none !important;
}

/* ========== 2. Z-INDEX / CLICK-BLOCKING (fullscreen exam) ========== */
html.quizSEO_ssc_fs_lock .dark-light-switcher-2,
html.quizSEO_ssc_fs_lock .loader,
html.quizSEO_ssc_fs_lock .loader_html {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
	opacity: 0 !important;
	z-index: -1 !important;
}

.quizSEO_ssc_official.ssc-pseudo-fullscreen,
.quizSEO_ssc_official.ssc-is-fullscreen,
.quizseo-contest-exam-shell.ssc-pseudo-fullscreen,
.quizseo-contest-exam-shell.ssc-is-fullscreen,
.quizSEO_lock,
.quizSEO_prerequisite,
.quizSEO_waitExpiredOverlay {
	z-index: 2147483000 !important;
}

html.quizSEO_ssc_fs_lock #wpadminbar,
html.quizSEO_ssc_fs_lock header.header,
html.quizSEO_ssc_fs_lock .mobile-aside,
html.quizSEO_ssc_fs_lock .the-mobile-bar,
html.quizSEO_ssc_fs_lock .go-up {
	z-index: 1 !important;
}

/* ========== 3. BODY-CLASS HARD MODE (plugin pages) ========== */
/* Added by theme when plugin shortcodes / SSC exam are present */
body.quizseo-active .loader:not([class*="quizSEO"]),
body.quizseo-active .loader_html {
	/* Do not let Discy page loader sit over plugin UI */
	pointer-events: none;
}

body.quizseo-active.quizseo-exam-page .dark-light-switcher-2 {
	/* Hide theme night toggle on full exam pages; plugin has its own */
	display: none !important;
}

/* Prevent theme .button / input styles from fighting plugin buttons */
.quizSEO_content input[type="button"],
.quizSEO_content input[type="submit"],
.quizSEO_content button,
.quizseo-question-page input[type="button"],
.quizseo-question-page button,
[class*="quizSEO_"] input[type="button"],
[class*="quizSEO_"] button,
.quizSEO_QuestionButton,
.quizSEO_button,
.quizSEO_button2 {
	float: none !important;
	box-sizing: border-box !important;
}

/* ========== 4. PREVENT THEME .loader SPINNER LEAK ========== */
/* Theme defines .loader / .loader_2 / .loader_3 globally. Plugin may
   use similar names or sit under them. Never show theme loader over
   plugin exam shells. */
.quizSEO_ssc_official ~ .loader,
.quizseo-contest-exam-shell ~ .loader,
body:has(.quizSEO_ssc_official) > .loader,
body:has(.quizseo-contest-exam-shell) > .loader {
	display: none !important;
	pointer-events: none !important;
}
