/* Revolution Locatiescan — stijl volgens brandkit
 * Alle kleuren/maten lopen via CSS-variabelen; de Elementor-stijlcontrols
 * van de widget overschrijven deze per instantie.
 */
.rhsls {
	/* basis */
	--rhsls-accent: #A68A6D;
	--rhsls-ink: #1A1A1A;
	--rhsls-bg: #F5F3EF;
	--rhsls-radius: 16px;
	--rhsls-muted: #57534C;
	--rhsls-line: rgba(26, 26, 26, 0.14);
	/* vraag & labels */
	--rhsls-q-color: var(--rhsls-ink);
	--rhsls-eyebrow: var(--rhsls-accent);
	--rhsls-count: var(--rhsls-muted);
	/* keuzeknoppen */
	--rhsls-opt-bg: #ffffff;
	--rhsls-opt-color: var(--rhsls-ink);
	--rhsls-opt-border: var(--rhsls-line);
	--rhsls-opt-bg-hover: color-mix(in srgb, var(--rhsls-accent) 8%, #ffffff);
	--rhsls-opt-color-hover: var(--rhsls-ink);
	--rhsls-opt-border-hover: var(--rhsls-accent);
	--rhsls-opt-radius: 9px;
	/* invoervelden */
	--rhsls-field-bg: #ffffff;
	--rhsls-field-border: var(--rhsls-line);
	/* actieknop */
	--rhsls-btn-bg: var(--rhsls-ink);
	--rhsls-btn-color: #F5F3EF;
	--rhsls-btn-bg-hover: var(--rhsls-accent);
	--rhsls-btn-color-hover: var(--rhsls-ink);
	--rhsls-btn-radius: 8px;
	/* voortgang */
	--rhsls-bar: var(--rhsls-accent);
	--rhsls-track: rgba(26, 26, 26, 0.1);

	position: relative;
	background: var(--rhsls-bg);
	color: var(--rhsls-ink);
	border-radius: var(--rhsls-radius);
	padding: 36px 38px 34px;
	min-height: 420px;
	display: flex;
	flex-direction: column;
	font-size: 15px;
	line-height: 1.6;
}
.rhsls-shadow-yes .rhsls { box-shadow: 0 30px 70px rgba(0, 0, 0, 0.28); }

/* ------------------------------------------------------------------
 * Reset: voorkom dat thema- of Elementor-kit buttonstyles doorlekken.
 * Bewust met !important — dit is widget-scoped en de Elementor-controls
 * sturen dezelfde variabelen aan, dus die blijven gewoon werken.
 * ------------------------------------------------------------------ */
.rhsls button,
.rhsls input,
.rhsls textarea {
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none !important;
	text-shadow: none !important;
	background-image: none !important;
	text-transform: none;
	letter-spacing: normal;
	margin: 0;
	font-family: inherit;
	line-height: 1.5;
}
.rhsls button:focus,
.rhsls button:active {
	outline: none;
	box-shadow: none !important;
}
.rhsls button:focus-visible {
	outline: 2px solid var(--rhsls-accent);
	outline-offset: 2px;
}

.rhsls-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14px;
}
.rhsls-eyebrow {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--rhsls-eyebrow);
}
.rhsls-count { font-size: 12.5px; color: var(--rhsls-count); }

.rhsls-progress {
	height: 3px;
	background: var(--rhsls-track);
	border-radius: 99px;
	overflow: hidden;
	margin-bottom: 30px;
}
.rhsls-progress i {
	display: block;
	height: 100%;
	background: var(--rhsls-bar);
	width: 0;
	transition: width 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.rhsls-body { flex: 1; overflow: hidden; }

.rhsls-pane {
	opacity: 0;
	transform: translateX(22px);
	transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.rhsls-pane.rhsls-from-left { transform: translateX(-22px); }
.rhsls-pane.rhsls-in { opacity: 1; transform: translateX(0); }
@media (prefers-reduced-motion: reduce) {
	.rhsls-pane, .rhsls-progress i { transition: none; }
}

.rhsls-q {
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.35;
	margin: 0 0 22px;
	color: var(--rhsls-q-color);
}
.rhsls-q.rhsls-q-has-intro { margin-bottom: 8px; }
.rhsls-intro {
	margin: 0 0 20px;
	color: var(--rhsls-muted);
	max-width: 60ch;
}
.rhsls-optional {
	display: inline-block;
	margin-left: 10px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rhsls-muted);
	vertical-align: middle;
}

.rhsls-error {
	display: none;
	margin: -10px 0 16px;
	font-size: 13.5px;
	color: #9c3a2e;
}

/* keuzeknoppen */
.rhsls-options { display: grid; gap: 10px; }
.rhsls button.rhsls-option {
	text-align: left;
	font-size: 15px;
	font-weight: 600;
	color: var(--rhsls-opt-color) !important;
	background: var(--rhsls-opt-bg) !important;
	border: 1px solid var(--rhsls-opt-border) !important;
	border-radius: var(--rhsls-opt-radius);
	padding: 15px 18px;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	width: 100%;
	transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.rhsls button.rhsls-option:hover,
.rhsls button.rhsls-option:focus-visible,
.rhsls button.rhsls-option:active,
.rhsls button.rhsls-option.rhsls-selected {
	color: var(--rhsls-opt-color-hover) !important;
	background: var(--rhsls-opt-bg-hover) !important;
	border-color: var(--rhsls-opt-border-hover) !important;
}
.rhsls-option svg { opacity: 0; color: var(--rhsls-opt-border-hover); transition: opacity 0.2s; flex: none; }
.rhsls-option:hover svg,
.rhsls-option:focus-visible svg,
.rhsls-option.rhsls-selected svg { opacity: 1; }

/* tekstveld & inputs */
.rhsls .rhsls-textarea,
.rhsls .rhsls-input {
	width: 100%;
	font-size: 15px;
	color: var(--rhsls-ink);
	background: var(--rhsls-field-bg) !important;
	border: 1px solid var(--rhsls-field-border) !important;
	border-radius: var(--rhsls-opt-radius);
	padding: 13px 16px;
	transition: border-color 0.2s;
	box-sizing: border-box;
}
.rhsls .rhsls-textarea:focus,
.rhsls .rhsls-input:focus {
	outline: none;
	border-color: var(--rhsls-accent) !important;
}
.rhsls .rhsls-textarea { resize: vertical; min-height: 180px; line-height: 1.6; }
.rhsls .rhsls-textarea::placeholder,
.rhsls .rhsls-input::placeholder { color: var(--rhsls-muted); opacity: 0.75; }
.rhsls .rhsls-textarea.rhsls-invalid,
.rhsls .rhsls-input.rhsls-invalid { border-color: #9c3a2e !important; }

/* contact */
.rhsls-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rhsls-field { display: block; }
.rhsls-req { margin-left: 3px; color: var(--rhsls-accent); }
.rhsls-field-label {
	display: block;
	font-size: 12.5px;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--rhsls-ink);
}
@media (max-width: 560px) {
	.rhsls-contact { grid-template-columns: 1fr; }
}

/* footer / navigatie */
.rhsls-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--rhsls-line);
}
.rhsls button.rhsls-back {
	background: transparent !important;
	border: 0 !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: var(--rhsls-muted) !important;
	padding: 8px 4px;
	width: auto;
	transition: color 0.2s;
}
.rhsls button.rhsls-back:hover { color: var(--rhsls-ink) !important; }

.rhsls button.rhsls-next {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rhsls-btn-color) !important;
	background: var(--rhsls-btn-bg) !important;
	border: 0 !important;
	border-radius: var(--rhsls-btn-radius);
	padding: 15px 26px;
	width: auto;
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}
.rhsls button.rhsls-next:hover:not(:disabled),
.rhsls button.rhsls-next:focus-visible:not(:disabled) {
	background: var(--rhsls-btn-bg-hover) !important;
	color: var(--rhsls-btn-color-hover) !important;
}
.rhsls button.rhsls-next:disabled { opacity: 0.6; cursor: default; }

/* success */
.rhsls-check {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--rhsls-accent) 16%, transparent);
	color: var(--rhsls-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}
.rhsls-success-text { color: var(--rhsls-muted); max-width: 46ch; margin: 0; }

@media (max-width: 560px) {
	.rhsls { padding: 26px 22px; }
}
