/* Coursemint front-end. Colours come from Settings → Branding via CSS variables. */
.cmint {
	--cmint-primary: #1f3a68;
	--cmint-accent: #f0a500;
	--cmint-ok: #1e7a3c;
	--cmint-bad: #b3261e;
	--cmint-border: #d9dce3;
	--cmint-muted: #5f6672;
	max-width: 860px;
	margin: 0 auto 2em;
	font-size: 1rem;
	line-height: 1.55;
	box-sizing: border-box;
}
.cmint *, .cmint *::before, .cmint *::after { box-sizing: inherit; }
.cmint [hidden] { display: none !important; }
.cmint-title { color: var(--cmint-primary); }
.cmint-video { position: relative; width: 100%; padding-top: 56.25%; margin: 0 0 1.5em; background: #000; border-radius: 8px; overflow: hidden; }
.cmint-video iframe, .cmint-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cmint-panel { background: #fff; border: 1px solid var(--cmint-border); border-top: 4px solid var(--cmint-primary); border-radius: 8px; padding: 1.25em 1.5em; }
.cmint-panel h3 { margin-top: 0; color: var(--cmint-primary); }
.cmint-meta, .cmint-small, .cmint-opt, .cmint-hint { color: var(--cmint-muted); font-size: .9em; }
.cmint-req { color: var(--cmint-bad); }

.cmint-form input[type=text], .cmint-form input[type=email], .cmint-form input[type=tel] {
	width: 100%; max-width: 520px; padding: .65em .75em; border: 1px solid #9aa1ad; border-radius: 6px; font-size: 1em; background: #fff; color: #111;
}
.cmint-form input:focus-visible, .cmint button:focus-visible, .cmint a:focus-visible, .cmint-option input:focus-visible { outline: 3px solid var(--cmint-accent); outline-offset: 2px; }
.cmint-code { max-width: 180px !important; font-size: 1.5em !important; letter-spacing: .3em; text-align: center; }
.cmint-check { display: flex; gap: .6em; align-items: flex-start; cursor: pointer; }
.cmint-check input { margin-top: .3em; width: 1.15em; height: 1.15em; flex: 0 0 auto; }
.cmint-privacy { font-size: .88em; color: var(--cmint-muted); background: #f6f7f9; border-radius: 6px; padding: .6em .9em; margin: 1em 0; }
.cmint-privacy p { margin: .3em 0; }
.cmint-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cmint-captcha { margin: .8em 0; }

.cmint-btn, a.cmint-btn {
	display: inline-block; background: var(--cmint-primary); color: #fff !important; border: 2px solid var(--cmint-primary);
	border-radius: 6px; padding: .65em 1.3em; font-size: 1em; font-weight: 600; cursor: pointer; text-decoration: none; line-height: 1.3;
}
.cmint-btn:hover { filter: brightness(1.12); }
.cmint-btn:disabled { opacity: .5; cursor: not-allowed; filter: none; }
.cmint-btn--ghost { background: transparent; color: var(--cmint-primary) !important; }
.cmint-btn--danger { background: var(--cmint-bad); border-color: var(--cmint-bad); }
.cmint-btn--big { font-size: 1.1em; padding: .85em 1.6em; }
.cmint-link { background: none; border: 0; padding: 0; color: var(--cmint-primary); text-decoration: underline; cursor: pointer; font: inherit; }

.cmint-msg:empty { display: none; }
.cmint-msg { border-radius: 6px; padding: .7em 1em; margin-bottom: 1em; }
.cmint-msg--error { background: #fdecea; color: #7a1712; border: 1px solid #f1b0ab; }
.cmint-msg--success { background: #e7f5ec; color: #14532d; border: 1px solid #a8d8b9; }
.cmint-msg--info { background: #eef3fb; color: #1d3557; border: 1px solid #b9cbe6; }

.cmint-quiz-bar { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5em; font-size: .92em; color: var(--cmint-muted); }
.cmint-timer { font-weight: 700; color: var(--cmint-primary); }
.cmint-timer--low { color: var(--cmint-bad); }
.cmint-progress { height: 6px; background: #eceef2; border-radius: 3px; margin: .4em 0 1.2em; overflow: hidden; }
.cmint-progress span { display: block; height: 100%; width: 0; background: var(--cmint-accent); transition: width .25s; }
.cmint-q { border: 1px solid var(--cmint-border); border-radius: 8px; padding: 1em 1.1em; margin: 0 0 1em; }
.cmint-q legend { padding: 0; width: 100%; float: left; margin-bottom: .6em; }
.cmint-q legend + * { clear: both; }
.cmint-qnum { display: block; font-size: .82em; text-transform: uppercase; letter-spacing: .04em; color: var(--cmint-muted); }
.cmint-qtext { font-weight: 600; }
.cmint-qtext p { margin: .2em 0; }
.cmint-hint { clear: both; margin: 0 0 .4em; }
.cmint-option { clear: both; display: flex; gap: .7em; align-items: flex-start; padding: .55em .7em; border: 1px solid transparent; border-radius: 6px; cursor: pointer; }
.cmint-option:hover { background: #f6f7f9; border-color: var(--cmint-border); }
.cmint-option input { margin-top: .25em; width: 1.15em; height: 1.15em; flex: 0 0 auto; accent-color: var(--cmint-primary); }
.cmint-option:has(input:checked) { background: #f1f5fb; border-color: var(--cmint-primary); }
.cmint-nav { display: flex; gap: .7em; justify-content: space-between; flex-wrap: wrap; margin-top: 1em; }
.cmint-nav .cmint-submit, .cmint-nav .cmint-next { margin-left: auto; }

.cmint-badge { display: inline-block; padding: .25em .8em; border-radius: 999px; color: #fff; font-size: .9em; }
.cmint-badge--pass { background: var(--cmint-ok); }
.cmint-badge--fail { background: var(--cmint-bad); }
.cmint-score { font-weight: 600; }
.cmint-cert-box { background: #f6f7f9; border-left: 4px solid var(--cmint-accent); padding: 1em 1.2em; border-radius: 6px; margin: 1em 0; }
.cmint-disclaimer { font-size: .85em; color: var(--cmint-muted); font-style: italic; }
.cmint-review { margin-top: 1.2em; }
.cmint-review summary { cursor: pointer; font-weight: 600; color: var(--cmint-primary); }
.cmint-review-item { margin: .8em 0; padding: .6em .8em; border-left: 4px solid var(--cmint-border); }
.cmint-review-item--ok { border-color: var(--cmint-ok); }
.cmint-review-item--bad { border-color: var(--cmint-bad); }
.cmint-explanation { background: #f6f7f9; padding: .5em .8em; border-radius: 4px; font-size: .95em; }

.cmint-vbox { border-radius: 8px; padding: 1em 1.2em; margin-top: 1em; border: 2px solid var(--cmint-border); }
.cmint-vbox--ok { border-color: var(--cmint-ok); background: #f0f9f3; }
.cmint-vbox--bad { border-color: var(--cmint-bad); background: #fdf1f0; }
.cmint-vbox--neutral { background: #f6f7f9; }
.cmint-vhead { font-weight: 700; font-size: 1.1em; margin-top: 0; }
.cmint-vbox dl { display: grid; grid-template-columns: max-content 1fr; gap: .3em 1em; margin: 0; }
.cmint-vbox dt { font-weight: 600; color: var(--cmint-muted); }
.cmint-vbox dd { margin: 0; }
.cmint-danger { margin-top: 1.5em; border-top: 1px solid var(--cmint-border); padding-top: 1em; }
.cmint-danger summary { cursor: pointer; color: var(--cmint-bad); font-weight: 600; }
.cmint-cert-list { padding-left: 1.2em; }
.cmint-courses { display: grid; gap: 1em; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.cmint-course-card { border: 1px solid var(--cmint-border); border-radius: 8px; padding: 1em 1.2em; }
.cmint-course-card h3 a { color: var(--cmint-primary); text-decoration: none; }
.cmint-notice { padding: 1em; background: #f6f7f9; border-radius: 6px; }

@media (max-width: 600px) {
	.cmint-panel { padding: 1em; }
	.cmint-nav .cmint-btn { flex: 1 1 auto; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.cmint-progress span { transition: none; }
}
.cmint [tabindex="-1"]:focus { outline: none; }
.cmint-test-note { color: #8a5a00; font-weight: 600; }
.cmint-cert-box--pay { border-left-color: var(--cmint-primary); }
