/* Any element with the native [hidden] attribute must stay hidden even if
   a later, equal-specificity class rule also sets display: — otherwise the
   class rule wins by source order and the element stays visible. */
[hidden] { display: none !important; }

.vlplp-signup-card {
	max-width: 640px; margin: 0 auto; background: #fff; border-radius: 18px;
	padding: 32px 28px; box-shadow: 0 10px 40px rgba(11,24,48,.12);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	box-sizing: border-box;
}
.vlplp-signup-card * { box-sizing: border-box; }
.vlplp-signup-logo { display:block; width:64px; height:64px; border-radius:50%; object-fit:cover; margin:0 auto 14px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.vlplp-signup-title { text-align:center; font-size:24px; margin:0 0 6px; color:#0b1830; }
.vlplp-signup-sub { text-align:center; color:#6b7280; font-size:14px; margin:0 0 24px; }
.vlplp-signup-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.vlplp-signup-span2 { grid-column: span 2; }
.vlplp-signup-form label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:#374151; }
.vlplp-signup-form input[type="text"],
.vlplp-signup-form input[type="tel"],
.vlplp-signup-form input[type="email"],
.vlplp-signup-form input[type="date"] {
	font-weight:400; padding:11px 12px; border:1px solid #d1d5db; border-radius:10px; font-size:15px; width:100%;
}
.vlplp-signup-form input[type="file"] { font-size:13px; padding:6px 0; }
.vlplp-signup-consent { display:flex; flex-direction:row !important; align-items:flex-start; gap:10px; font-size:13px; font-weight:400 !important; color:#4b5563; margin-bottom:18px; }
.vlplp-signup-consent input { margin-top:3px; flex-shrink:0; }
.vlplp-signup-error { color:#b3261e; font-size:13px; background:#fdecea; padding:10px 12px; border-radius:8px; margin-bottom:14px; }
.vlplp-signup-submit-btn {
	width:100%; border:none; border-radius:10px; padding:15px; font-size:16px; font-weight:700;
	background: var(--vlplp-primary, #0b1830); color:#fff; cursor:pointer;
	display:flex; align-items:center; justify-content:center; gap:10px;
}
.vlplp-signup-submit-btn:disabled { opacity:.7; cursor:default; }
.vlplp-signup-spinner {
	width:16px; height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
	border-radius:50%; display:inline-block; animation: vlplp-signup-spin 0.7s linear infinite;
}
.vlplp-signup-spinner[hidden] { display: none; }
@keyframes vlplp-signup-spin { to { transform: rotate(360deg); } }

.vlplp-signup-success { text-align:center; padding:10px 0; }
.vlplp-signup-success-icon { font-size:48px; margin-bottom:8px; }
.vlplp-signup-success h3 { color:#0b1830; margin:0 0 8px; font-size:20px; }
.vlplp-signup-success-text { color:#4b5563; font-size:14px; margin:0 0 18px; }
.vlplp-signup-card-btn {
	display:inline-block; background: var(--vlplp-primary, #0b1830); color:#fff; text-decoration:none;
	font-weight:700; padding:14px 24px; border-radius:10px; font-size:15px;
}
.vlplp-signup-hint { color:#9ca3af; font-size:12px; margin-top:12px; }

@media (max-width: 560px) {
	.vlplp-signup-grid { grid-template-columns:1fr; }
	.vlplp-signup-span2 { grid-column: span 1; }
	.vlplp-signup-card { padding:24px 18px; border-radius:14px; }
}

/* --- Popup variant --- */
.vlplp-signup-popup-btn {
	position: fixed !important; right: 20px; bottom: 20px; z-index: 2147483647 !important;
	background: var(--vlplp-primary, #0b1830); color:#fff; border:none; border-radius: 999px;
	padding: 15px 22px; font-size: 15px; font-weight: 700; cursor: pointer;
	box-shadow: 0 10px 30px rgba(11,24,48,.35);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.vlplp-signup-popup-overlay {
	position: fixed !important; inset: 0 !important; background: rgba(11,24,48,.6); z-index: 2147483647 !important;
	display: none; align-items: center; justify-content: center; padding: 20px; overflow-y: auto;
}
.vlplp-signup-popup-overlay.is-open { display: flex !important; }
body.vlplp-signup-popup-locked { overflow: hidden; }
.vlplp-signup-popup-overlay .vlplp-signup-card { position: relative; max-height: 90vh; overflow-y: auto; width: 100%; margin: auto; }
.vlplp-signup-popup-close {
	position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 26px;
	line-height: 1; color: #9ca3af; cursor: pointer;
}
