/* Scoped to .mmv-form — designed to play nice inside Divi5 modules. */
.mmv-form {
	max-width: 720px;
	margin: 0 auto;
	font-family: inherit;
	color: #333;
	line-height: 1.5;
	position: relative;
}
.mmv-form, .mmv-form * { box-sizing: border-box; }

.mmv-form h3 {
	margin: 0 0 14px;
	font-size: 1.25em;
	color: #222;
}
.mmv-form .mmv-help {
	color: #777;
	font-size: 0.9em;
	margin: -4px 0 18px;
}

.mmv-form label {
	display: block;
	margin-bottom: 14px;
	font-size: 0.95em;
	color: #333;
	font-weight: 400;
}

.mmv-form input[type="text"],
.mmv-form input[type="email"],
.mmv-form input[type="date"],
.mmv-form input[type="tel"],
.mmv-form select,
.mmv-form textarea {
	width: 100%;
	background: #ebebeb;
	border: none;
	border-radius: 999px;
	padding: 14px 22px;
	font-size: 1em;
	font-family: inherit;
	color: #333;
	margin-top: 6px;
	transition: background 0.15s, outline-color 0.15s;
	-webkit-appearance: none;
	appearance: none;
}
.mmv-form textarea {
	border-radius: 18px;
	min-height: 90px;
	resize: vertical;
}
.mmv-form select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8'><path d='M1 1l6 6 6-6' stroke='%23555' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 22px center;
	padding-right: 48px;
}
.mmv-form input:focus,
.mmv-form select:focus,
.mmv-form textarea:focus {
	outline: 2px solid #b9d847;
	outline-offset: 1px;
	background: #f3f3f3;
}
.mmv-form .mmv-req {
	color: #d6324d;
	margin-left: 2px;
}

.mmv-form .mmv-section {
	margin-bottom: 22px;
}
.mmv-form .mmv-section-persoon {
	margin-bottom: 36px;
}

.mmv-form .mmv-toggle {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	background: #f6f6f6;
	border-radius: 14px;
	padding: 14px 18px;
	cursor: pointer;
	margin-bottom: 0;
	font-weight: 500;
	transition: background 0.15s;
}
.mmv-form .mmv-toggle:hover {
	background: #efefef;
}
.mmv-form .mmv-toggle-sub {
	background: #fafafa;
	font-weight: 400;
	font-size: 0.92em;
	padding: 10px 14px;
	margin: 6px 0 0;
}
.mmv-form .mmv-toggle-sub:hover {
	background: #f3f3f3;
}
.mmv-form .mmv-toggle input[type="checkbox"] {
	margin: 4px 0 0;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	accent-color: #93b528;
}
.mmv-form .mmv-toggle span { flex: 1; }

.mmv-form .mmv-expand {
	display: none;
	padding: 18px 0 4px 18px;
	border-left: 3px solid #b9d847;
	margin: 14px 0 0 6px;
}
.mmv-form .mmv-expand.is-open { display: block; }
.mmv-form .mmv-expand .mmv-expand {
	border-left-color: #d6e58a;
	margin-top: 8px;
	padding-top: 12px;
}

.mmv-form .mmv-info,
.mmv-form .mmv-warning,
.mmv-form .mmv-empty {
	padding: 12px 16px;
	border-radius: 10px;
	font-size: 0.92em;
	margin-bottom: 14px;
	line-height: 1.4;
}
.mmv-form .mmv-info    { background: #fef6e3; color: #5e4d18; }
.mmv-form .mmv-warning { background: #fce4e8; color: #76253a; }
.mmv-form .mmv-empty   { background: #f0f0f0; color: #666; font-style: italic; }

.mmv-form fieldset {
	border: none;
	padding: 0;
	margin: 0 0 14px;
}
.mmv-form fieldset legend {
	font-size: 0.95em;
	margin-bottom: 8px;
	color: #333;
	padding: 0;
	font-weight: 400;
}
.mmv-form .mmv-radio label,
.mmv-form .mmv-checkboxes label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	padding: 6px 0;
	margin: 0 18px 0 0;
	font-weight: 400;
}
.mmv-form .mmv-checkboxes label {
	display: flex;
	margin: 0 0 6px;
}
.mmv-form .mmv-radio input,
.mmv-form .mmv-checkboxes input {
	accent-color: #93b528;
	width: auto;
	margin: 0;
	flex: 0 0 auto;
}

.mmv-form .mmv-hp {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 0;
	width: 0;
	overflow: hidden;
}

.mmv-form .mmv-submit {
	background: linear-gradient(180deg, #c4dc4e 0%, #93b528 100%);
	border: none;
	color: #fff;
	padding: 14px 38px;
	border-radius: 999px;
	font-size: 1.05em;
	font-weight: 500;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
	transition: filter 0.15s, transform 0.05s;
	margin-top: 8px;
}
.mmv-form .mmv-submit:hover    { filter: brightness(1.06); }
.mmv-form .mmv-submit:active   { transform: translateY(1px); }
.mmv-form .mmv-submit[disabled]{ opacity: 0.6; cursor: wait; }

.mmv-form .mmv-messages { margin: 14px 0; }
.mmv-form .mmv-messages.has-error {
	background: #fce4e8; color: #76253a;
	padding: 12px 16px; border-radius: 10px;
}
.mmv-form .mmv-messages.has-success {
	background: #e8f5d2; color: #2d4a0c;
	padding: 12px 16px; border-radius: 10px;
}

.mmv-form .mmv-field-error {
	color: #d6324d;
	font-size: 0.85em;
	margin-top: 4px;
	padding-left: 6px;
}
.mmv-form input.has-error,
.mmv-form select.has-error,
.mmv-form textarea.has-error {
	outline: 2px solid #d6324d;
	background: #fff5f7;
}

@media (max-width: 600px) {
	.mmv-form input[type="text"],
	.mmv-form input[type="email"],
	.mmv-form input[type="date"],
	.mmv-form input[type="tel"],
	.mmv-form select,
	.mmv-form textarea {
		font-size: 16px;
		padding: 14px 18px;
	}
	.mmv-form .mmv-toggle { padding: 12px 14px; gap: 10px; }
	.mmv-form .mmv-expand { padding-left: 14px; margin-left: 4px; }
	.mmv-form .mmv-radio label,
	.mmv-form .mmv-checkboxes label { margin-right: 14px; min-height: 32px; }
	.mmv-form .mmv-submit { width: 100%; padding: 16px; }
}
