.avoine-quiz {
	--avoine-quiz-max-width: 640px;
	--avoine-quiz-padding: 32px;
	--avoine-quiz-bg: #fff;
	--avoine-quiz-border: #e5e7eb;
	--avoine-quiz-radius: 16px;
	--avoine-quiz-font: inherit;
	--avoine-quiz-color: #1a1a1a;
	--avoine-quiz-color-muted: #6b7280;
	--avoine-quiz-color-correct: #0d7a3a;
	--avoine-quiz-color-wrong: #c53030;
	--avoine-quiz-bg-correct: #ecfdf5;
	--avoine-quiz-bg-wrong: #fef2f2;
	--avoine-quiz-border-correct: #6ee7b7;
	--avoine-quiz-border-wrong: #fca5a5;
	--avoine-quiz-answer-radius: 12px;
	--avoine-quiz-answer-padding: 12px 16px;
	--avoine-quiz-answer-border: #e5e7eb;
	--avoine-quiz-answer-bg: #fff;
	--avoine-quiz-answer-hover-bg: #f9fafb;
	--avoine-quiz-answer-hover-border: #d1d5db;
	--avoine-quiz-label-size: 28px;
	--avoine-quiz-label-font-size: 0.75em;
	--avoine-quiz-label-bg: #f3f4f6;
	--avoine-quiz-label-color: #6b7280;
	--avoine-quiz-label-correct-bg: #0d7a3a;
	--avoine-quiz-label-correct-color: #fff;
	--avoine-quiz-label-wrong-bg: #c53030;
	--avoine-quiz-label-wrong-color: #fff;
	--avoine-quiz-btn-bg: #1a1a1a;
	--avoine-quiz-btn-color: #fff;
	--avoine-quiz-btn-radius: 8px;
	--avoine-quiz-btn-padding: 12px 24px;
	--avoine-quiz-hint-bg: #f9fafb;
	--avoine-quiz-hint-border: #e5e7eb;
	--avoine-quiz-hint-radius: 12px;

	width: 100%;
	max-width: var(--avoine-quiz-max-width);
	margin: 0;
	padding: var(--avoine-quiz-padding);
	background: var(--avoine-quiz-bg);
	border: 1px solid var(--avoine-quiz-border);
	border-radius: var(--avoine-quiz-radius);
	font-family: var(--avoine-quiz-font);
	color: var(--avoine-quiz-color);
}

/* Header / start screen */

.avoine-quiz__title {
	margin: 0 0 16px;
}

/* Progress */

.avoine-quiz__progress {
	font-size: 0.875em;
	color: var(--avoine-quiz-color-muted);
	margin-bottom: 12px;
}

/* Question */

.avoine-quiz__question-text {
	margin: 0 0 24px;
	font-size: 1.25em;
	font-weight: 600;
	line-height: 1.4;
}

.avoine-quiz__question-image img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin-bottom: 24px;
}

/* Answers */

.avoine-quiz__answers {
	display: flex;
	flex-direction: column;
	gap: 10px;
	counter-reset: answer-letter;
}

.avoine-quiz__answer {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: var(--avoine-quiz-answer-padding);
	border: 1.5px solid var(--avoine-quiz-answer-border);
	border-radius: var(--avoine-quiz-answer-radius);
	background: var(--avoine-quiz-answer-bg);
	font: inherit;
	font-size: 1em;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transform: translateY(0);
	transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}

.avoine-quiz__answer:hover:not(:disabled) {
	border-color: var(--avoine-quiz-answer-hover-border);
	background: var(--avoine-quiz-answer-hover-bg);
	transform: translateY(-2px);
	text-decoration: none;
}

.avoine-quiz__answer:disabled {
	cursor: default;
}

.avoine-quiz__answer:disabled:not(.avoine-quiz__answer--correct):not(.avoine-quiz__answer--wrong):not(.avoine-quiz__answer--selected) {
	opacity: 0.5;
}

.avoine-quiz__answer--selected:not(.avoine-quiz__answer--correct):not(.avoine-quiz__answer--wrong) {
	border-color: var(--avoine-quiz-answer-hover-border);
	background: var(--avoine-quiz-answer-hover-bg);
}

.avoine-quiz__answer--correct {
	border-color: var(--avoine-quiz-border-correct);
	background: var(--avoine-quiz-bg-correct);
}

.avoine-quiz__answer--wrong {
	border-color: var(--avoine-quiz-border-wrong);
	background: var(--avoine-quiz-bg-wrong);
}

/* Answer letter label (CSS counter) */

.avoine-quiz__answer::before {
	counter-increment: answer-letter;
	content: counter(answer-letter, upper-alpha);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: var(--avoine-quiz-label-size);
	height: var(--avoine-quiz-label-size);
	border-radius: 50%;
	background: var(--avoine-quiz-label-bg);
	color: var(--avoine-quiz-label-color);
	font-size: var(--avoine-quiz-label-font-size);
	font-weight: 700;
	transition: background-color 150ms ease, color 150ms ease;
}

.avoine-quiz__answer--correct::before {
	background: var(--avoine-quiz-label-correct-bg);
	color: var(--avoine-quiz-label-correct-color);
}

.avoine-quiz__answer--wrong::before {
	background: var(--avoine-quiz-label-wrong-bg);
	color: var(--avoine-quiz-label-wrong-color);
}

/* Answer status icon */

.avoine-quiz__answer::after {
	flex-shrink: 0;
	margin-left: auto;
	font-size: 1.1em;
	line-height: 1;
}

.avoine-quiz__answer--correct::after {
	content: "\2713";
	color: var(--avoine-quiz-color-correct);
}

.avoine-quiz__answer--wrong::after {
	content: "\2717";
	color: var(--avoine-quiz-color-wrong);
}

/* Answer image */

.avoine-quiz__answer img {
	max-width: 48px;
	height: auto;
	border-radius: 6px;
}

/* Hint / feedback box */

.avoine-quiz__hint {
	margin-top: 16px;
	padding: 16px;
	background: var(--avoine-quiz-hint-bg);
	border: 1px solid var(--avoine-quiz-hint-border);
	border-radius: var(--avoine-quiz-hint-radius);
	font-size: 0.9em;
	line-height: 1.5;
}

.avoine-quiz__hint-label {
	display: inline-block;
	padding: 2px 8px;
	margin-bottom: 8px;
	border-radius: 4px;
	background: var(--avoine-quiz-color-wrong);
	color: #fff;
	font-size: 0.7em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.avoine-quiz__hint--correct .avoine-quiz__hint-label {
	background: var(--avoine-quiz-color-correct);
}

/* Button */

.avoine-quiz__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
	padding: var(--avoine-quiz-btn-padding);
	border: none;
	border-radius: var(--avoine-quiz-btn-radius);
	background: var(--avoine-quiz-btn-bg);
	color: var(--avoine-quiz-btn-color);
	font: inherit;
	font-size: 1em;
	font-weight: 500;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 150ms ease;
}

.avoine-quiz__button:hover {
	background: color-mix(in srgb, var(--avoine-quiz-btn-bg) 85%, #fff);
	text-decoration: none;
}

.avoine-quiz__button--next {
	float: right;
}

.avoine-quiz__button--next::after {
	content: "\2192";
}

/* Results */

.avoine-quiz__score {
	font-size: 1.25em;
	margin: 0 0 16px;
}

.avoine-quiz__result-image img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin-bottom: 16px;
}

.avoine-quiz__result-title {
	margin: 0 0 8px;
}

.avoine-quiz__result-desc {
	margin-bottom: 16px;
}

/* Breakdown */

.avoine-quiz__breakdown {
	margin-top: 24px;
	border-top: 1px solid var(--avoine-quiz-border);
	padding-top: 16px;
}

.avoine-quiz__breakdown-item {
	padding: 16px;
	margin-bottom: 10px;
	border-radius: var(--avoine-quiz-answer-radius);
	border: 1px solid var(--avoine-quiz-border);
}

.avoine-quiz__breakdown-item--correct {
	border-color: var(--avoine-quiz-border-correct);
	background: var(--avoine-quiz-bg-correct);
}

.avoine-quiz__breakdown-item--wrong {
	border-color: var(--avoine-quiz-border-wrong);
	background: var(--avoine-quiz-bg-wrong);
}

.avoine-quiz__breakdown-question {
	font-weight: 600;
	margin: 0 0 4px;
}

.avoine-quiz__breakdown-answer {
	margin: 0 0 4px;
}

.avoine-quiz__breakdown-correct {
	margin: 0 0 4px;
	color: var(--avoine-quiz-color-correct);
	font-size: 0.875em;
}

.avoine-quiz__breakdown-hint {
	margin: 8px 0 0;
	color: var(--avoine-quiz-color-muted);
	font-size: 0.875em;
}

/* Loading */

.avoine-quiz__loading {
	text-align: center;
	padding: 32px;
	color: var(--avoine-quiz-color-muted);
}

/* Utilities */

.avoine-quiz [hidden] {
	display: none !important;
}

.avoine-quiz::after {
	content: "";
	display: table;
	clear: both;
}
