/* Viloer Footer – v1.1.0 */

.vf-footer *, .vf-footer *::before, .vf-footer *::after { box-sizing: border-box; margin: 0; padding: 0; }
.vf-footer { position: relative; width: 100%; }

/* ── Layout ── */
.vf-inner { display: flex; flex-wrap: wrap; align-items: flex-start; }
.vf-col-form { flex: 0 0 42%; max-width: 42%; display: flex; flex-direction: column; }
.vf-col-nav { flex: 1 1 0%; display: flex; flex-direction: column; }

/* ── Heading ── */
.vf-heading { line-height: 1.2; }

/* ── Form ── */
.vf-form { display: flex; flex-direction: column; }

/* INPUT: Full border reset — only bottom line */
.vf-footer .vf-input,
.vf-footer .vf-form input.vf-input,
.vf-footer .vf-form input[type="text"].vf-input,
.vf-footer .vf-form input[type="email"].vf-input {
	width: 100%;
	border: none !important;
	border-top: none !important;
	border-left: none !important;
	border-right: none !important;
	border-bottom: 1px solid rgba(200,230,160,0.3) !important;
	border-radius: 0 !important;
	background: transparent;
	color: #c8e6a0;
	padding: 10px 0;
	font-size: 15px;
	font-family: inherit;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	transition: border-color 0.25s ease;
}
.vf-footer .vf-input:focus,
.vf-footer .vf-form input.vf-input:focus {
	border-bottom-color: #c8e6a0 !important;
	border-top: none !important;
	border-left: none !important;
	border-right: none !important;
	outline: none !important;
	box-shadow: none !important;
}

/* Error state on input */
.vf-footer .vf-input.vf-input--error,
.vf-footer .vf-form input.vf-input--error {
	border-bottom-color: #ff6b6b !important;
}

/* ── Checkbox ── */
.vf-checkbox-wrap {
	display: flex; align-items: flex-start; gap: 8px;
	cursor: pointer; -webkit-user-select: none; user-select: none;
}
.vf-check-input {
	position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.vf-check-box {
	width: 16px; height: 16px; min-width: 16px;
	border: 1.5px solid rgba(200,230,160,0.5); border-radius: 3px;
	display: flex; align-items: center; justify-content: center;
	transition: background-color 0.2s ease, border-color 0.2s ease;
	margin-top: 2px;
}
.vf-check-svg { width: 10px; height: 10px; color: #0d2a1f; opacity: 0; transition: opacity 0.15s ease; }
.vf-check-input:checked + .vf-check-box { background-color: #c8e6a0; border-color: #c8e6a0; }
.vf-check-input:checked + .vf-check-box .vf-check-svg { opacity: 1; }
.vf-check-label { font-size: 13px; line-height: 1.4; }

/* Checkbox error */
.vf-check--error .vf-check-box {
	border-color: #ff6b6b !important;
}

/* ── Button ── */
.vf-btn-wrap { display: flex; }
.vf-btn {
	display: inline-flex; align-items: center; justify-content: center;
	border: none; cursor: pointer; font-family: inherit;
	transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.3s ease, transform 0.2s ease;
	box-shadow: 0 0 var(--vf-glow-blur, 30px) var(--vf-glow-spread, 20px) var(--vf-glow-color, rgba(200,230,160,0.35));
}

/* Full width variant */
.vf-btn--full { width: 100%; }

/* Hover glow — uses separate hover vars */
.vf-anim .vf-btn:hover {
	box-shadow: 0 0 var(--vf-hover-blur, 40px) var(--vf-hover-spread, 30px) var(--vf-glow-color, rgba(200,230,160,0.35));
	transform: translateY(-1px);
}
.vf-anim .vf-btn:active { transform: translateY(0); }

/* ── Messages ── */
.vf-msg {
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.4;
	min-height: 0;
}
.vf-msg:empty { display: none; }
.vf-msg.vf-success { color: #c8e6a0; }
.vf-msg.vf-error { color: #ff6b6b; }
.vf-msg:not(:empty) {
	animation: vf-fade-in 0.3s ease;
}

/* ── Menus ── */
.vf-menus-col { display: flex; flex-direction: column; }
.vf-menu-list { list-style: none; padding: 0; margin: 0; }
.vf-menu a {
	text-decoration: none; transition: color 0.2s ease, transform 0.2s ease; display: inline-block;
}
.vf-anim .vf-menu a:hover { transform: translateX(2px); }

/* ── Logo ── */
.vf-logo { display: flex; }
.vf-logo img { height: auto; max-width: 100%; }
.vf-logo a { display: inline-flex; }
.vf-anim .vf-logo img { transition: opacity 0.2s ease; }
.vf-anim .vf-logo img:hover { opacity: 0.8; }

/* ── Payment ── */
.vf-payment { display: flex; }
.vf-payment img { height: auto; max-width: 100%; }

/* ── Entrance ── */
.vf-entrance { opacity: 0; transform: translateY(20px); }
.vf-entrance.vf-visible {
	opacity: 1; transform: translateY(0);
	transition: opacity var(--vf-entrance-dur, 600ms) ease, transform var(--vf-entrance-dur, 600ms) ease;
}

@keyframes vf-fade-in {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ── */
@media (max-width: 1024px) and (min-width: 768px) {
	.vf-col-form { flex: 0 0 50%; max-width: 50%; }
}
@media (max-width: 767px) {
	.vf-inner { flex-direction: column; }
	.vf-col-form, .vf-col-nav { flex: 1 1 100%; max-width: 100%; }
	.vf-footer[data-mobile-cols="2"] .vf-menus-col { flex-direction: row; flex-wrap: wrap; }
	.vf-footer[data-mobile-cols="2"] .vf-menus-col > .vf-menu { flex: 1 1 45%; min-width: 45%; }
	.vf-footer[data-mobile-cols="1"] .vf-menus-col { flex-direction: column; }
	.vf-logo { justify-content: center; }
	.vf-payment { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.vf-entrance { opacity: 1; transform: none; }
	.vf-btn, .vf-menu a, .vf-logo img, .vf-input { transition: none !important; }
}
