/**
 * Wavio Funnel — Modern Frontend (Linear/Stripe-Inspiration)
 *
 * Design-Tokens kommen primär vom Theme (CSS-Variablen),
 * Plugin-Defaults als Fallback.
 */

.wavio-funnel-frame {
	--wavio-funnel-mint:        var(--wavio-mint, #c5f5b0);
	--wavio-funnel-mint-soft:   color-mix(in srgb, var(--wavio-funnel-mint) 70%, white);
	--wavio-funnel-mint-deep:   color-mix(in srgb, var(--wavio-funnel-mint) 75%, #1a3d10);
	--wavio-funnel-black:       var(--wavio-black, #0d0f10);
	--wavio-funnel-white:       var(--wavio-white, #ffffff);
	--wavio-funnel-gray-100:    var(--wavio-gray-100, #f6f7f8);
	--wavio-funnel-gray-200:    var(--wavio-gray-200, #e8eaec);
	--wavio-funnel-gray-400:    color-mix(in srgb, var(--wavio-funnel-black) 25%, white);
	--wavio-funnel-gray-600:    var(--wavio-gray-600, #5a5f63);
	--wavio-funnel-radius-sm:   8px;
	--wavio-funnel-radius:      16px;
	--wavio-funnel-radius-lg:   24px;
	--wavio-funnel-radius-pill: 999px;
	--wavio-funnel-shadow-sm:   0 1px 2px rgba(13,15,16,0.06);
	--wavio-funnel-shadow-md:   0 4px 12px rgba(13,15,16,0.06), 0 2px 4px rgba(13,15,16,0.04);
	--wavio-funnel-shadow-lg:   0 24px 64px rgba(13,15,16,0.18), 0 12px 24px rgba(13,15,16,0.08);
	--wavio-funnel-shadow-cta:  0 8px 24px rgba(13,15,16,0.18), 0 2px 8px rgba(13,15,16,0.10);
	--wavio-funnel-font-display: var(--font-display, -apple-system, BlinkMacSystemFont, 'Inter', system-ui, sans-serif);
	--wavio-funnel-font-mono:    var(--font-mono, ui-monospace, 'Geist Mono', 'SFMono-Regular', monospace);
	--wavio-funnel-easing:       cubic-bezier(0.32, 0.72, 0.0, 1);
}

/* ─── Modal-Mode ───────────────────────────────────────── */
.wavio-funnel-frame--modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.wavio-funnel-frame[hidden],
.wavio-funnel-nav__back[hidden],
.wavio-funnel-nav__next[hidden],
.wavio-funnel-nav__submit[hidden],
.wavio-funnel-nav[hidden] { display: none !important; }

.wavio-funnel-overlay {
	position: absolute;
	inset: 0;
	/* Theme-gebunden: nutzt --wavio-black mit 55% Deckkraft (Fallback: dunkel) */
	background: color-mix( in srgb, var(--wavio-funnel-black) 55%, transparent );
	backdrop-filter: blur(8px) saturate(1.2);
	-webkit-backdrop-filter: blur(8px) saturate(1.2);
	animation: wavio-funnel-fade-in 0.25s var(--wavio-funnel-easing);
}

.wavio-funnel-modal {
	position: relative;
	background:
		radial-gradient(ellipse at 20% 0%,
			color-mix(in srgb, var(--wavio-funnel-mint) 80%, white) 0%,
			var(--wavio-funnel-mint) 60%);
	border-radius: var(--wavio-funnel-radius-lg);
	max-width: 720px;
	width: 100%;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	overflow-x: hidden;
	padding: 56px 64px 48px;
	box-shadow: var(--wavio-funnel-shadow-lg);
	animation: wavio-funnel-modal-in 0.4s var(--wavio-funnel-easing);
	scrollbar-width: thin;
	scrollbar-color: rgba(13,15,16,0.2) transparent;
}
.wavio-funnel-modal::-webkit-scrollbar { width: 6px; }
.wavio-funnel-modal::-webkit-scrollbar-thumb { background: rgba(13,15,16,0.2); border-radius: 3px; }

@media (max-width: 720px) {
	.wavio-funnel-frame--modal { padding: 0; }
	.wavio-funnel-modal {
		padding: 48px 24px 32px;
		border-radius: 0;
		max-height: 100vh;
		min-height: 100vh;
	}
}

/* ─── Fullpage-Mode — Komplett-Overlay (randlos, vollflächig, getriggert) ─── */
.wavio-funnel-frame--fullpage {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: stretch;
	justify-content: center;
}
.wavio-funnel-frame--fullpage .wavio-funnel-overlay { display: none; } /* kein Blur-Rand — Funnel füllt alles */
.wavio-funnel-frame--fullpage .wavio-funnel-modal {
	position: relative;
	width: 100%;
	max-width: none;
	max-height: none;
	min-height: 100vh;
	border-radius: 0;
	box-shadow: none;
	background: var(--wavio-funnel-white);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	animation: wavio-funnel-fade-in 0.25s var(--wavio-funnel-easing);
}
/* Vollbild – Hintergrundfarben (wählbar pro Funnel) */
.wavio-funnel-frame--bg-white  .wavio-funnel-modal { background: var(--wavio-funnel-white); color: var(--wavio-funnel-black); }
/* Mint = identischer Radial-Gradient wie die Popup-Modal-Box */
.wavio-funnel-frame--bg-mint   .wavio-funnel-modal {
	background: radial-gradient(ellipse at 20% 0%,
		color-mix(in srgb, var(--wavio-funnel-mint) 80%, white) 0%,
		var(--wavio-funnel-mint) 60%);
	color: var(--wavio-funnel-black);
}
.wavio-funnel-frame--bg-gray   .wavio-funnel-modal { background: var(--wavio-funnel-gray-100); color: var(--wavio-funnel-black); }
.wavio-funnel-frame--bg-dark   .wavio-funnel-modal { background: var(--wavio-funnel-black); color: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-title,
.wavio-funnel-frame--bg-dark .wavio-funnel-subline,
.wavio-funnel-frame--bg-dark .wavio-funnel-field__label { color: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-close { color: var(--wavio-funnel-white); }
/* Dark-Mode: dunkle Elemente lesbar machen (Back, CTA-Buttons, Upload) */
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__back { color: rgba(255,255,255,0.65); }
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__back:hover { color: var(--wavio-funnel-white); background: rgba(255,255,255,0.1); }
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__next,
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__submit { background: var(--wavio-funnel-white); color: var(--wavio-funnel-black); }
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__next:hover:not(:disabled),
.wavio-funnel-frame--bg-dark .wavio-funnel-nav__submit:hover:not(:disabled) { background: rgba(255,255,255,0.85); color: var(--wavio-funnel-black); }
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__drop { border-color: rgba(255,255,255,0.28); background: rgba(255,255,255,0.04); color: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__drop:hover,
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__drop:focus-within,
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload.is-dragging .wavio-funnel-file-upload__drop { border-color: var(--wavio-funnel-white); background: rgba(255,255,255,0.08); }
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__text span,
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__meta { color: rgba(255,255,255,0.6); }
.wavio-funnel-frame--bg-dark .wavio-funnel-file-upload__item-name { color: var(--wavio-funnel-white); }
/* Erfolgsseite (Countdown, Hint, Close-Button, Icon) im Dark-Mode lesbar */
.wavio-funnel-frame--bg-dark .wavio-funnel-success__countdown { color: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-success__hint { color: rgba(255,255,255,0.5); }
.wavio-funnel-frame--bg-dark .wavio-funnel-success__close-btn { background: var(--wavio-funnel-white); color: var(--wavio-funnel-black); }
.wavio-funnel-frame--bg-dark .wavio-funnel-success__icon { background: var(--wavio-funnel-mint); color: var(--wavio-funnel-black); }
/* Dark: Logo-Text + Step-Indikator hell — sonst auf dunklem BG unsichtbar */
.wavio-funnel-frame--bg-dark .wavio-funnel-brand-text { color: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-progress__step { background: rgba(255,255,255,0.22); }
.wavio-funnel-frame--bg-dark .wavio-funnel-progress__step--done,
.wavio-funnel-frame--bg-dark .wavio-funnel-progress__step--active { background: var(--wavio-funnel-white); }
.wavio-funnel-frame--bg-dark .wavio-funnel-logo { filter: brightness(0) invert(1); }
/* Fullpage + Dark: Overlay ~90% deckend → Hintergrund scheint leicht durch (frosted) */
.wavio-funnel-frame--fullpage.wavio-funnel-frame--bg-dark .wavio-funnel-modal {
	background: color-mix( in srgb, var(--wavio-funnel-black) 90%, transparent );
	backdrop-filter: blur(14px) saturate(1.1);
	-webkit-backdrop-filter: blur(14px) saturate(1.1);
}
/* Content innerhalb der Fullpage zentriert + lesbare Breite */
.wavio-funnel-frame--fullpage .wavio-funnel-header,
.wavio-funnel-frame--fullpage .wavio-funnel-form,
.wavio-funnel-frame--fullpage .wavio-funnel-footer {
	width: 100%;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
}
.wavio-funnel-frame--fullpage .wavio-funnel-form { flex: 1; display: flex; flex-direction: column; }

@keyframes wavio-funnel-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes wavio-funnel-modal-in {
	from { opacity: 0; transform: translateY(24px) scale(0.97); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ─── Close-Button (oben links) ─────────────────────── */
.wavio-funnel-close {
	position: absolute;
	top: 16px;
	left: 16px;
	background: rgba(13,15,16,0.06);
	border: 0;
	border-radius: var(--wavio-funnel-radius-pill);
	width: 36px;
	height: 36px;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	color: var(--wavio-funnel-black);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.18s, transform 0.18s;
	z-index: 2;
}
.wavio-funnel-close:hover { background: rgba(13,15,16,0.12); transform: scale(1.05); }
.wavio-funnel-close:active { transform: scale(0.95); }

/* ─── Header (Brand + Progress) ────────────────────── */
.wavio-funnel-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 48px;
	gap: 24px;
}
.wavio-funnel-brand-text {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: -0.01em;
	color: var(--wavio-funnel-black);
}
.wavio-funnel-logo { max-height: 28px; width: auto; }

/* Modern Progress: filled bar mit Step-Pills */
.wavio-funnel-progress {
	display: flex;
	gap: 6px;
	align-items: center;
}
.wavio-funnel-progress__step {
	width: 24px;
	height: 4px;
	border-radius: var(--wavio-funnel-radius-pill);
	background: rgba(13,15,16,0.12);
	transition: all 0.4s var(--wavio-funnel-easing);
	font-size: 0;
	color: transparent;
}
.wavio-funnel-progress__step--done   { background: var(--wavio-funnel-black); }
.wavio-funnel-progress__step--active { background: var(--wavio-funnel-black); width: 36px; }

/* ─── Steps Container ─────────────────────────────── */
.wavio-funnel-steps { position: relative; min-height: 320px; }
.wavio-funnel-step {
	display: none;
	animation: wavio-funnel-step-in 0.45s var(--wavio-funnel-easing);
}
.wavio-funnel-step--active { display: block; }
.wavio-funnel-step--success {
	display: none;
	text-align: center;
	padding: 32px 0;
}
.wavio-funnel-step--success.wavio-funnel-step--active { display: block; }

@keyframes wavio-funnel-step-in {
	from { opacity: 0; transform: translateY(16px); }
	to   { opacity: 1; transform: translateY(0); }
}

.wavio-funnel-title {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 42px);
	color: var(--wavio-funnel-black);
	letter-spacing: -0.025em;
	line-height: 1.08;
	text-align: center;
	margin: 0 0 14px;
}
.wavio-funnel-subline {
	font-family: var(--wavio-funnel-font-display);
	font-size: 16px;
	color: rgba(13,15,16,0.62);
	text-align: center;
	margin: 0 auto 36px;
	max-width: 520px;
	line-height: 1.5;
}

/* ─── Cards (Single + Multi) ─────────────────────── */
.wavio-funnel-cards {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 520px;
	margin: 0 auto;
}
.wavio-funnel-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 22px;
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius);
	cursor: pointer;
	border: 2px solid transparent;
	box-shadow: var(--wavio-funnel-shadow-sm);
	transition: all 0.25s var(--wavio-funnel-easing);
}
.wavio-funnel-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--wavio-funnel-shadow-md);
}
.wavio-funnel-card input { position: absolute; left: -9999px; opacity: 0; }
.wavio-funnel-card.is-selected,
.wavio-funnel-card:has(input:checked) {
	border-color: var(--wavio-funnel-black);
	box-shadow: var(--wavio-funnel-shadow-md), 0 0 0 4px rgba(13,15,16,0.04);
}
.wavio-funnel-card.is-selected::after,
.wavio-funnel-card:has(input:checked)::after {
	content: '✓';
	position: absolute;
	top: 50%;
	right: 22px;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background: var(--wavio-funnel-black);
	color: var(--wavio-funnel-mint);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	animation: wavio-funnel-check-in 0.3s var(--wavio-funnel-easing);
}
@keyframes wavio-funnel-check-in {
	0%   { transform: translateY(-50%) scale(0); }
	60%  { transform: translateY(-50%) scale(1.15); }
	100% { transform: translateY(-50%) scale(1); }
}
.wavio-funnel-card__title {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 16px;
	color: var(--wavio-funnel-black);
	letter-spacing: -0.01em;
}
.wavio-funnel-card__desc {
	font-family: var(--wavio-funnel-font-display);
	font-size: 13px;
	color: rgba(13,15,16,0.55);
	line-height: 1.4;
}

/* ─── Slider (modern) ────────────────────────────── */
.wavio-funnel-slider {
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius);
	padding: 32px 28px;
	box-shadow: var(--wavio-funnel-shadow-sm);
}
.wavio-funnel-slider__display {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.wavio-funnel-slider__value {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 700;
	font-size: clamp(56px, 9vw, 80px);
	letter-spacing: -0.04em;
	color: var(--wavio-funnel-black);
	line-height: 1;
}
.wavio-funnel-slider__unit {
	font-family: var(--wavio-funnel-font-display);
	font-size: 18px;
	font-weight: 500;
	color: rgba(13,15,16,0.55);
	letter-spacing: -0.01em;
}
.wavio-funnel-slider__input {
	width: 100%;
	-webkit-appearance: none;
	appearance: none;
	height: 6px;
	border-radius: var(--wavio-funnel-radius-pill);
	background: linear-gradient(to right, var(--wavio-funnel-black) var(--wavio-funnel-fill, 50%), rgba(13,15,16,0.1) var(--wavio-funnel-fill, 50%));
	outline: none;
	margin: 24px 0 12px;
	cursor: pointer;
}
.wavio-funnel-slider__input::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--wavio-funnel-black);
	cursor: grab;
	border: 4px solid var(--wavio-funnel-white);
	box-shadow: var(--wavio-funnel-shadow-md);
	transition: transform 0.15s var(--wavio-funnel-easing);
}
.wavio-funnel-slider__input::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.15); }
.wavio-funnel-slider__input::-moz-range-thumb {
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--wavio-funnel-black);
	cursor: grab;
	border: 4px solid var(--wavio-funnel-white);
	box-shadow: var(--wavio-funnel-shadow-md);
}
.wavio-funnel-slider__minmax {
	display: flex;
	justify-content: space-between;
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	color: rgba(13,15,16,0.45);
	letter-spacing: 0.04em;
}

/* ─── Date-Range ─────────────────────────────────── */
.wavio-funnel-daterange { max-width: 520px; margin: 0 auto; }
.wavio-funnel-daterange__row {
	display: flex;
	gap: 12px;
	margin-bottom: 12px;
}
.wavio-funnel-daterange__alt {
	margin-top: 12px;
	border-top: 1px solid rgba(13,15,16,0.08);
	padding-top: 12px;
}
.wavio-funnel-daterange__alt summary {
	font-family: var(--wavio-funnel-font-mono);
	font-size: 12px;
	color: rgba(13,15,16,0.6);
	cursor: pointer;
	padding: 8px 0;
	letter-spacing: 0.02em;
	user-select: none;
	list-style: none;
}
.wavio-funnel-daterange__alt summary::before { content: '+ '; font-weight: 600; }
.wavio-funnel-daterange__alt[open] summary::before { content: '− '; }

/* ─── Field + Modern-Input (Floating) ──────────── */
.wavio-funnel-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	min-width: 0;
}
.wavio-funnel-field__label {
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(13,15,16,0.55);
	font-weight: 500;
}
.wavio-funnel-input {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 500;
	font-size: 16px;
	padding: 16px 20px;
	background: var(--wavio-funnel-white);
	border: 0;
	border-radius: var(--wavio-funnel-radius);
	outline: 2px solid transparent;
	outline-offset: 0;
	transition: outline 0.18s, box-shadow 0.18s;
	color: var(--wavio-funnel-black);
	width: 100%;
	box-sizing: border-box;
	box-shadow: var(--wavio-funnel-shadow-sm);
}
.wavio-funnel-input::placeholder { color: rgba(13,15,16,0.35); }
.wavio-funnel-input:focus {
	outline-color: var(--wavio-funnel-black);
	box-shadow: var(--wavio-funnel-shadow-md);
}
/* Select wie ein Input stylen (nativen Chrome ersetzen, eigener Chevron) */
select.wavio-funnel-input {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	padding-right: 48px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230d0f10' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 16px;
}
select.wavio-funnel-input::-ms-expand { display: none; }
.wavio-funnel-input--textarea {
	font-size: 15px;
	resize: vertical;
	min-height: 120px;
	line-height: 1.5;
}
.wavio-funnel-input.has-error {
	outline-color: #d63638;
	animation: wavio-funnel-shake 0.4s;
}
@keyframes wavio-funnel-shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-4px); }
	75% { transform: translateX(4px); }
}

/* Native date input modernisieren — größer, klar klickbar */
input.wavio-funnel-input[type="date"] {
	font-family: var(--wavio-funnel-font-display);
	font-size: 17px;
	font-weight: 500;
	padding: 20px 24px;
	min-height: 64px;
	cursor: pointer;
	color: var(--wavio-funnel-black);
	-webkit-appearance: none;
	appearance: none;
	background: var(--wavio-funnel-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230d0f10' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><path d='M16 2v4M8 2v4M3 10h18'/></svg>") no-repeat right 20px center;
	padding-right: 56px;
}
input.wavio-funnel-input[type="date"]::-webkit-calendar-picker-indicator {
	opacity: 0;
	cursor: pointer;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
input.wavio-funnel-input[type="date"]::-webkit-datetime-edit { font-weight: 500; }
input.wavio-funnel-input[type="date"]::-webkit-datetime-edit-fields-wrapper { color: var(--wavio-funnel-black); }
input.wavio-funnel-input[type="date"]:invalid::-webkit-datetime-edit { color: rgba(13,15,16,0.35); }

/* Daterange Row stacked auf Mobile + größere Spacing */
.wavio-funnel-daterange__row {
	gap: 14px;
}
@media (max-width: 540px) {
	.wavio-funnel-daterange__row { flex-direction: column; gap: 14px; }
}

.wavio-funnel-input__count {
	text-align: right;
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	color: rgba(13,15,16,0.45);
	margin-top: 6px;
	letter-spacing: 0.02em;
}

/* ─── Contact-Block ──────────────────────────────── */
.wavio-funnel-contact {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 520px;
	margin: 0 auto;
}
.wavio-funnel-contact__row { display: flex; gap: 12px; }
@media (max-width: 480px) { .wavio-funnel-contact__row { flex-direction: column; gap: 14px; } }

/* ─── Context-Confirm Card ───────────────────────── */
.wavio-funnel-context-card {
	display: flex;
	gap: 18px;
	align-items: center;
	padding: 18px 22px;
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius);
	max-width: 520px;
	margin: 0 auto;
	box-shadow: var(--wavio-funnel-shadow-md);
}
.wavio-funnel-context-card__img {
	width: 76px;
	height: 76px;
	border-radius: var(--wavio-funnel-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
}
.wavio-funnel-context-card__body { flex: 1; min-width: 0; }
.wavio-funnel-context-card__meta {
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	color: rgba(13,15,16,0.55);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 4px;
	font-weight: 500;
}
.wavio-funnel-context-card__title {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 17px;
	color: var(--wavio-funnel-black);
	letter-spacing: -0.01em;
	display: block;
	line-height: 1.3;
}

/* ─── Submit + Privacy ───────────────────────────── */
.wavio-funnel-summary {
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius);
	padding: 18px 22px;
	margin: 0 auto 20px;
	max-width: 520px;
	font-family: var(--wavio-funnel-font-display);
	font-size: 14px;
	color: var(--wavio-funnel-black);
	line-height: 1.6;
	box-shadow: var(--wavio-funnel-shadow-sm);
}
.wavio-funnel-summary__row {
	padding: 10px 0;
	display: flex;
	gap: 16px;
	align-items: baseline;
	border-bottom: 1px solid rgba(13,15,16,0.06);
	font-size: 14px;
	line-height: 1.4;
}
.wavio-funnel-summary__row:last-child { border-bottom: 0; }
.wavio-funnel-summary__label {
	color: rgba(13,15,16,0.55);
	font-size: 13px;
	font-family: var(--wavio-funnel-font-display);
	font-weight: 500;
	flex-shrink: 0;
	min-width: 160px;
	/* kein uppercase, kein letter-spacing */
}
.wavio-funnel-summary__value {
	color: var(--wavio-funnel-black);
	font-weight: 600;
	font-family: var(--wavio-funnel-font-display);
}

.wavio-funnel-privacy {
	display: flex;
	gap: 12px;
	max-width: 520px;
	margin: 0 auto;
	font-family: var(--wavio-funnel-font-display);
	font-size: 13px;
	color: rgba(13,15,16,0.7);
	line-height: 1.5;
	cursor: pointer;
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius-sm);
	padding: 14px 18px;
	box-shadow: var(--wavio-funnel-shadow-sm);
}
.wavio-funnel-privacy input[type="checkbox"] {
	margin-top: 3px;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	accent-color: var(--wavio-funnel-black);
	cursor: pointer;
}
.wavio-funnel-privacy a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* ─── Nav (Back + Next + Submit) ─────────────────── */
.wavio-funnel-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid rgba(13,15,16,0.08);
}
.wavio-funnel-nav__back {
	background: transparent;
	border: 0;
	font-family: var(--wavio-funnel-font-display);
	font-weight: 500;
	font-size: 14px;
	color: rgba(13,15,16,0.6);
	cursor: pointer;
	padding: 12px 16px;
	border-radius: var(--wavio-funnel-radius-pill);
	transition: all 0.18s;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.wavio-funnel-nav__back:hover { color: var(--wavio-funnel-black); background: rgba(13,15,16,0.06); }
.wavio-funnel-nav__back[hidden] { visibility: hidden; pointer-events: none; }

.wavio-funnel-nav__next,
.wavio-funnel-nav__submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 32px;
	background: var(--wavio-funnel-black);
	color: var(--wavio-funnel-white);
	border: 0;
	border-radius: var(--wavio-funnel-radius-pill);
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: -0.005em;
	cursor: pointer;
	margin-left: auto;
	transition: all 0.2s var(--wavio-funnel-easing);
	box-shadow: var(--wavio-funnel-shadow-cta);
}
.wavio-funnel-nav__next:hover:not(:disabled),
.wavio-funnel-nav__submit:hover:not(:disabled) {
	transform: translateY(-1px);
	box-shadow: 0 12px 32px rgba(13,15,16,0.22), 0 4px 12px rgba(13,15,16,0.12);
}
.wavio-funnel-nav__next:active:not(:disabled),
.wavio-funnel-nav__submit:active:not(:disabled) { transform: translateY(0); }
.wavio-funnel-nav__next:disabled,
.wavio-funnel-nav__submit:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
.wavio-funnel-nav__next > span,
.wavio-funnel-nav__submit > span { transition: transform 0.2s; }
.wavio-funnel-nav__next:hover:not(:disabled) > span,
.wavio-funnel-nav__submit:hover:not(:disabled) > span { transform: translateX(3px); }

/* ─── Footer ─────────────────────────────────────── */
.wavio-funnel-footer {
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	color: rgba(13,15,16,0.4);
	text-align: center;
	margin-top: 32px;
	letter-spacing: 0.04em;
}

/* ─── Success State ──────────────────────────────── */
.wavio-funnel-success__icon {
	width: 88px;
	height: 88px;
	margin: 0 auto 28px;
	background: var(--wavio-funnel-black);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wavio-funnel-mint);
	font-size: 44px;
	box-shadow: var(--wavio-funnel-shadow-cta);
	animation: wavio-funnel-success-pop 0.6s cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes wavio-funnel-success-pop {
	0%   { transform: scale(0); opacity: 0; }
	60%  { transform: scale(1.1); opacity: 1; }
	100% { transform: scale(1); }
}
.wavio-funnel-success__close-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	background: var(--wavio-funnel-black);
	color: var(--wavio-funnel-white);
	border: 0;
	border-radius: var(--wavio-funnel-radius-pill);
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	margin-top: 24px;
	transition: all 0.2s var(--wavio-funnel-easing);
	box-shadow: var(--wavio-funnel-shadow-cta);
}
.wavio-funnel-success__close-btn:hover { transform: translateY(-1px); }
.wavio-funnel-success__hint {
	font-family: var(--wavio-funnel-font-mono);
	font-size: 11px;
	color: rgba(13,15,16,0.45);
	margin-top: 18px;
	letter-spacing: 0.02em;
}
.wavio-funnel-success__countdown { font-weight: 600; color: var(--wavio-funnel-black); }

/* ─── Custom Calendar (Inline Range-Selection) ───── */
.wavio-funnel-cal {
	max-width: 720px;
	margin: 0 auto;
	background: var(--wavio-funnel-white);
	border-radius: var(--wavio-funnel-radius);
	padding: 24px;
	box-shadow: var(--wavio-funnel-shadow-md);
}
.wavio-funnel-cal__display {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid rgba(13,15,16,0.08);
	flex-wrap: wrap;
}
.wavio-funnel-cal__display-row {
	display: flex;
	flex-direction: column;
	gap: 2px;
	align-items: center;
}
.wavio-funnel-cal__display-label {
	font-family: var(--wavio-funnel-font-display);
	font-size: 11px;
	color: rgba(13,15,16,0.55);
	font-weight: 500;
}
.wavio-funnel-cal__display-from,
.wavio-funnel-cal__display-to {
	font-family: var(--wavio-funnel-font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--wavio-funnel-black);
	letter-spacing: -0.01em;
}
.wavio-funnel-cal__display-arrow {
	color: rgba(13,15,16,0.4);
	font-size: 18px;
}

.wavio-funnel-cal__nav {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}
.wavio-funnel-cal__prev,
.wavio-funnel-cal__next {
	background: rgba(13,15,16,0.05);
	border: 0;
	border-radius: var(--wavio-funnel-radius-pill);
	width: 36px;
	height: 36px;
	cursor: pointer;
	font-size: 18px;
	color: var(--wavio-funnel-black);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background 0.18s, transform 0.18s;
}
.wavio-funnel-cal__prev:hover,
.wavio-funnel-cal__next:hover { background: rgba(13,15,16,0.1); }

.wavio-funnel-cal__months {
	flex: 1;
	min-width: 0;
}

.wavio-funnel-cal__month-title {
	font-family: var(--wavio-funnel-font-display);
	font-weight: 600;
	font-size: 15px;
	color: var(--wavio-funnel-black);
	text-align: center;
	margin-bottom: 12px;
	letter-spacing: -0.01em;
}

.wavio-funnel-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	row-gap: 2px;
}

.wavio-funnel-cal__dayname {
	font-family: var(--wavio-funnel-font-display);
	font-size: 12px;
	color: rgba(13,15,16,0.5);
	text-align: center;
	padding: 8px 0 12px;
	font-weight: 500;
}

.wavio-funnel-cal__day {
	background: transparent;
	border: 0;
	padding: 0;
	font-family: var(--wavio-funnel-font-display);
	font-size: 14px;
	font-weight: 500;
	color: var(--wavio-funnel-black);
	cursor: pointer;
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s, background 0.15s;
	position: relative;
	z-index: 1;
}

/* Range-Pill (Background-Layer) */
.wavio-funnel-cal__day--inrange,
.wavio-funnel-cal__day--hover-range,
.wavio-funnel-cal__day--start,
.wavio-funnel-cal__day--end {
	background: rgba(13,15,16,0.06);
}
.wavio-funnel-cal__day--hover-range { background: rgba(13,15,16,0.04); }
.wavio-funnel-cal__day--start { border-radius: 999px 0 0 999px; }
.wavio-funnel-cal__day--end   { border-radius: 0 999px 999px 0; }
.wavio-funnel-cal__day--start.wavio-funnel-cal__day--end { border-radius: 999px; }

/* Solo Day Hover */
.wavio-funnel-cal__day:hover:not(.wavio-funnel-cal__day--disabled):not(.wavio-funnel-cal__day--inrange):not(.wavio-funnel-cal__day--start):not(.wavio-funnel-cal__day--end) {
	background: rgba(13,15,16,0.04);
	border-radius: 999px;
}

/* Selected Day = Filled Black Circle (overlaps Pill) */
.wavio-funnel-cal__day--start::before,
.wavio-funnel-cal__day--end::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--wavio-funnel-black);
	border-radius: 999px;
	z-index: -1;
}
.wavio-funnel-cal__day--start,
.wavio-funnel-cal__day--end {
	color: var(--wavio-funnel-white);
	font-weight: 600;
}

/* Other Month / Disabled / Today */
.wavio-funnel-cal__day--other {
	color: rgba(13,15,16,0.25);
}
.wavio-funnel-cal__day--disabled {
	color: rgba(13,15,16,0.2);
	cursor: not-allowed;
	pointer-events: none;
}
.wavio-funnel-cal__day--today:not(.wavio-funnel-cal__day--start):not(.wavio-funnel-cal__day--end) {
	font-weight: 700;
}
.wavio-funnel-cal__day--today:not(.wavio-funnel-cal__day--start):not(.wavio-funnel-cal__day--end)::after {
	content: '';
	position: absolute;
	bottom: 4px;
	left: 50%;
	transform: translateX(-50%);
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--wavio-funnel-black);
}

.wavio-funnel-cal__clear {
	background: transparent;
	border: 0;
	color: rgba(13,15,16,0.55);
	font-family: var(--wavio-funnel-font-mono);
	font-size: 12px;
	cursor: pointer;
	margin-top: 14px;
	display: block;
	margin-left: auto;
	margin-right: auto;
	padding: 6px 12px;
	border-radius: var(--wavio-funnel-radius-pill);
	transition: all 0.18s;
}
.wavio-funnel-cal__clear:hover { background: rgba(13,15,16,0.06); color: var(--wavio-funnel-black); }

/* ─── Body-Lock when modal open ──────────────────── */
body.wavio-funnel-modal-open { overflow: hidden; }

/* ─── File-Upload Step ─────────────────────────────── */
.wavio-funnel-file-upload { margin-top: 4px; }
.wavio-funnel-file-upload__drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 32px 24px;
	border: 2px dashed rgba(13,15,16,0.18);
	border-radius: 12px;
	background: rgba(13,15,16,0.02);
	color: var(--wavio-funnel-black);
	cursor: pointer;
	text-align: center;
	transition: border-color 0.2s, background 0.2s;
}
.wavio-funnel-file-upload__drop:hover,
.wavio-funnel-file-upload__drop:focus-within,
.wavio-funnel-file-upload.is-dragging .wavio-funnel-file-upload__drop {
	border-color: var(--wavio-funnel-black);
	background: rgba(13,15,16,0.05);
}
.wavio-funnel-file-upload__input { display: none; }
.wavio-funnel-file-upload__text strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 2px;
}
.wavio-funnel-file-upload__text span {
	display: block;
	font-size: 13px;
	color: rgba(13,15,16,0.55);
}
.wavio-funnel-file-upload__meta {
	font-size: 12px;
	color: rgba(13,15,16,0.5);
	font-family: var(--wavio-funnel-mono, ui-monospace, monospace);
}
.wavio-funnel-file-upload__list {
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.wavio-funnel-file-upload__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	background: rgba(13,15,16,0.04);
	border-radius: 8px;
	font-size: 14px;
}
.wavio-funnel-file-upload__item-name {
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.wavio-funnel-file-upload__item-size {
	font-size: 12px;
	color: rgba(13,15,16,0.5);
	font-family: var(--wavio-funnel-mono, ui-monospace, monospace);
}
.wavio-funnel-file-upload__item-remove {
	background: transparent;
	border: 0;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	color: rgba(13,15,16,0.45);
	padding: 4px 8px;
}
.wavio-funnel-file-upload__item-remove:hover { color: #c00; }
.wavio-funnel-file-upload__error {
	margin: 10px 0 0;
	padding: 8px 12px;
	background: #fdecec;
	border-radius: 6px;
	color: #c00;
	font-size: 13px;
}

/* ─── Reduced-Motion Support ─────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.wavio-funnel-modal, .wavio-funnel-overlay, .wavio-funnel-step, .wavio-funnel-success__icon, .wavio-funnel-card,
	.wavio-funnel-nav__next, .wavio-funnel-nav__submit, .wavio-funnel-success__close-btn {
		animation: none !important;
		transition: none !important;
	}
}
