/*!
 * Codemola Core — Frontend stylesheet
 * Augments the theme with plugin-specific components.
 */

/* === Demo form step UI === */
.cm-demo-form .cm-form-step {
	animation: cmFadeIn 250ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes cmFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.cm-demo-form .form-field {
	margin-bottom: 16px;
}

.cm-demo-form .form-field label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	margin-bottom: 6px;
	color: var(--text-1, #0A1330);
}

.cm-demo-form .form-field input,
.cm-demo-form .form-field select,
.cm-demo-form .form-field textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--border-1, #D5DCE8);
	border-radius: 8px;
	background: var(--bg-surface, #fff);
	font-size: 0.95rem;
	color: var(--text-1, #0A1330);
	transition: border-color 200ms;
}

.cm-demo-form .form-field input:focus,
.cm-demo-form .form-field select:focus,
.cm-demo-form .form-field textarea:focus {
	outline: none;
	border-color: var(--c-electric, #2D6BFF);
	box-shadow: 0 0 0 3px rgba(45, 107, 255, 0.15);
}

.cm-demo-form .cm-form-success {
	animation: cmFadeIn 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* === Recommender === */
.cm-recommender h3 {
	font-family: var(--font-display, 'Space Grotesk', sans-serif);
	font-size: 1.5rem;
	margin-bottom: 8px;
}

.cm-recommender [data-cm-rec-step] {
	animation: cmFadeIn 250ms cubic-bezier(0.22, 1, 0.36, 1);
}

.cm-recommender [data-cm-rec-answer] {
	padding: 16px 20px;
	text-align: left;
	transition: all 200ms;
}

.cm-recommender [data-cm-rec-answer]:hover {
	border-color: var(--c-electric, #2D6BFF);
	background: rgba(45, 107, 255, 0.05);
	transform: translateY(-1px);
}

[data-cm-rec-result] {
	text-align: center;
	padding: 32px 16px;
}

[data-cm-rec-result] h3 {
	font-size: 2rem;
	color: var(--c-electric, #2D6BFF);
}

/* === Brochure gate === */
.cm-brochure-gate input[type="email"] {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--border-1, #D5DCE8);
	border-radius: 8px;
	font-size: 0.95rem;
	margin-bottom: 12px;
}

.cm-brochure-gate input[type="email"]:focus {
	outline: none;
	border-color: var(--c-electric, #2D6BFF);
}

/* === Client portal === */
.cm-portal-dashboard .card {
	min-height: 160px;
}

.cm-portal-login form p {
	margin-bottom: 12px;
}

.cm-portal-login form input[type="text"],
.cm-portal-login form input[type="password"] {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--border-1, #D5DCE8);
	border-radius: 8px;
	font-size: 0.95rem;
	background: var(--bg-surface, #fff);
}

.cm-portal-login form input[type="submit"] {
	width: 100%;
	padding: 12px 24px;
	background: var(--c-electric, #2D6BFF);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-weight: 500;
	cursor: pointer;
	font-size: 0.95rem;
	margin-top: 8px;
}

.cm-portal-login form input[type="submit"]:hover {
	background: #1d56d8;
}

.cm-portal-login .login-remember {
	font-size: 0.85rem;
	color: var(--text-2, #5F6B85);
}

/* === Step progress indicator === */
.cm-step-progress {
	display: flex;
	gap: 8px;
	margin-bottom: 24px;
}

.cm-step-dot {
	flex: 1;
	height: 4px;
	background: var(--border-1, #D5DCE8);
	border-radius: 2px;
	transition: background 250ms;
}

.cm-step-dot.is-active,
.cm-step-dot.is-complete {
	background: var(--c-electric, #2D6BFF);
}
