/* NVLM — public.css */

/* ====== Reset minimal pentru formular ====== */
.nvlm-form {
	display: block;
	max-width: var(--nvlm-width, 100%);
	width: var(--nvlm-width, 100%);
	margin: 0 0 1em;
	box-sizing: border-box;
}
.nvlm-form--centered { margin-left: auto; margin-right: auto; }
.nvlm-form--right    { margin-left: auto; margin-right: 0; }

/* ====== Layout: stacked (default verticală) ====== */
.nvlm-form--stacked .nvlm-fields { display: flex; flex-direction: column; gap: var(--nvlm-gap, 8px); }
.nvlm-form--stacked .nvlm-field { width: 100%; }

/* ====== Layout: inline (flex-wrap, pe linie cu wrap) ====== */
.nvlm-form--inline .nvlm-fields {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nvlm-gap, 8px);
	align-items: flex-end;
}
.nvlm-form--inline .nvlm-field { flex: 0 0 auto; }

/* ====== Layout: inline-compact (totul forțat pe O singură linie) ====== */
.nvlm-form--inline_compact .nvlm-fields {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--nvlm-gap, 8px);
	align-items: flex-end;
}
.nvlm-form--inline_compact .nvlm-field { flex: 0 0 auto; }

/* ====== Label ====== */
.nvlm-form .nvlm-field { display: flex; flex-direction: column; gap: 4px; }
.nvlm-form .nvlm-field label { font-size: 13px; line-height: 1.2; color: inherit; }
.nvlm-form--no-labels .nvlm-field label { display: none !important; }

/* ====== Input ====== */
.nvlm-form input[type="email"],
.nvlm-form input[type="text"],
.nvlm-form input[type="tel"] {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 12px;
	border: 1px solid var(--nvlm-border, #ddd);
	border-radius: var(--nvlm-radius, 6px);
	font-size: 14px;
	height: var(--nvlm-field-h, auto);
	line-height: 1.4;
	background: transparent;
}
.nvlm-form input:focus { outline: 2px solid var(--nvlm-btn-bg, #2bb673); outline-offset: 0; }

/* ====== Submit button ====== */
.nvlm-form .nvlm-field--submit { display: flex; flex-direction: column; gap: 4px; }
.nvlm-form .nvlm-submit {
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	border-radius: var(--nvlm-radius, 6px);
	transition: opacity .2s, transform .1s;
	box-sizing: border-box;
}
.nvlm-form .nvlm-submit:hover { opacity: .92; }
.nvlm-form .nvlm-submit:active { transform: translateY(1px); }
.nvlm-form .nvlm-submit[disabled] { opacity: .5; cursor: wait; }

/* Stil custom (când nu folosim tema) */
.nvlm-form--styled-button .nvlm-submit {
	background: var(--nvlm-btn-bg, #2bb673);
	color: var(--nvlm-btn-color, #fff);
	padding: var(--nvlm-btn-padding, 10px 18px);
	border: 0;
	height: var(--nvlm-field-h, auto);
}

/* Stil temă (lăsăm tema să stilizeze butonul) */
.nvlm-form--theme-button .nvlm-submit {
	/* fără border / background / color — tema își aplică stilurile pe button/.button/.wp-element-button */
	height: var(--nvlm-field-h, auto);
}

/* mc4wp compat: tema poate stiliza .mc4wp-form input[type=submit] */
.nvlm-form.mc4wp-form input[type="submit"].nvlm-submit {
	height: var(--nvlm-field-h, auto);
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	border-radius: var(--nvlm-radius, 6px);
	transition: opacity .2s, transform .1s;
	box-sizing: border-box;
	width: 100%;
}

/* ====== GDPR ====== */
.nvlm-form .nvlm-field--gdpr {
	flex: 1 1 100% !important;
	width: 100% !important;
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.45;
}
.nvlm-form .nvlm-field--gdpr label { flex-direction: row; gap: 6px; align-items: flex-start; cursor: pointer; }
.nvlm-form .nvlm-field--gdpr input[type="checkbox"] { margin-top: 2px; }

/* reCAPTCHA */
.nvlm-form .nvlm-field--recaptcha { flex: 1 1 100%; margin-top: 8px; }

/* ====== Mesaj inline ====== */
.nvlm-form .nvlm-required { color: #c22; }
.nvlm-form .nvlm-message {
	margin-top: 10px;
	padding: 0;
	font-size: 14px;
	line-height: 1.5;
	min-height: 0;
}
.nvlm-form .nvlm-message:empty { display: none; }
.nvlm-form .nvlm-message.is-success {
	color: #0a5128;
	background: #e7f7ee;
	border: 1px solid #b6e3c5;
	padding: 10px 14px;
	border-radius: var(--nvlm-radius, 6px);
}
.nvlm-form .nvlm-message.is-error {
	color: #8a1f1f;
	background: #fdecec;
	border: 1px solid #f5b5b5;
	padding: 10px 14px;
	border-radius: var(--nvlm-radius, 6px);
}
.nvlm-form.is-loading .nvlm-submit { pointer-events: none; opacity: .6; }

/* Când formularul s-a abonat cu succes și ascundem câmpurile */
.nvlm-form.is-done .nvlm-fields,
.nvlm-form.is-done .nvlm-field--gdpr,
.nvlm-form.is-done .nvlm-field--recaptcha { display: none !important; }
.nvlm-form.is-done .nvlm-message {
	margin-top: 0;
	font-size: 15px;
	padding: 16px 18px;
	text-align: center;
}

/* ====== Popup ====== */
.nvlm-popup { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; }
.nvlm-popup--pos-top { align-items: flex-start; padding-top: 4em; }
.nvlm-popup--pos-bottom { align-items: flex-end; padding-bottom: 4em; }
.nvlm-popup[hidden] { display: none !important; }
.nvlm-popup__overlay { position: absolute; inset: 0; background: var(--nvlm-popup-overlay, rgba(0,0,0,0.6)); }
.nvlm-popup__dialog {
	position: relative;
	background: var(--nvlm-popup-bg, #fff);
	color: var(--nvlm-popup-text, #222);
	border-radius: var(--nvlm-popup-radius, 8px);
	max-width: var(--nvlm-popup-width, 480px);
	width: calc(100% - 2em);
	box-shadow: 0 25px 60px rgba(0,0,0,.3);
	overflow: hidden;
	display: flex;
}
.nvlm-popup--image_left .nvlm-popup__dialog { flex-direction: row; }
.nvlm-popup--simple .nvlm-popup__dialog,
.nvlm-popup--image_bg .nvlm-popup__dialog { flex-direction: column; }
.nvlm-popup__image { flex: 0 0 40%; min-height: 240px; background-size: cover; background-position: center; }
.nvlm-popup__body { padding: 1.5em; flex: 1; }
.nvlm-popup__close {
	position: absolute; top: .5em; right: .5em;
	background: rgba(255,255,255,.85); border: 0; cursor: pointer;
	width: 32px; height: 32px; border-radius: 50%; font-size: 22px; line-height: 1;
	z-index: 2;
}
.nvlm-popup__close:hover { background: #fff; }
.nvlm-popup__title { margin: 0 0 .25em; font-size: 1.4em; }
.nvlm-popup__subtitle { margin: 0 0 1em; opacity: .85; }
.nvlm-popup--anim-fade { animation: nvlm-fade .25s ease; }
.nvlm-popup--anim-slide .nvlm-popup__dialog { animation: nvlm-slide .35s ease; }
@keyframes nvlm-fade { from { opacity: 0; } }
@keyframes nvlm-slide { from { transform: translateY(20px); opacity: 0; } }

/* Pages */
.nvlm-page { padding: 4em 1em; }
.nvlm-container { max-width: 600px; margin: 0 auto; text-align: center; }
.nvlm-button {
	display: inline-block; background: #2bb673; color: #fff; padding: .75em 1.5em;
	border-radius: 6px; text-decoration: none; margin-top: 1em;
}

/* Coupon box */
.nvlm-coupon-box { padding: 1.5em; border: 2px dashed #2bb673; border-radius: 8px; text-align: center; }
.nvlm-coupon-code { font-size: 1.6em; font-weight: 700; padding: .5em 1em; background: #f6fff9; display: inline-block; border-radius: 6px; letter-spacing: 2px; }
.nvlm-coupon-expiry { font-size: .9em; opacity: .75; margin-top: .5em; }

/* ====== Mobile ====== */
@media (max-width: 720px) {
	.nvlm-form--inline_compact .nvlm-fields { flex-wrap: wrap; }
	.nvlm-form--inline .nvlm-field,
	.nvlm-form--inline_compact .nvlm-field { flex: 1 1 100%; width: 100% !important; }
	/* Ascunde label-ul spacer de deasupra butonului submit pe mobil */
	.nvlm-form--inline .nvlm-field--submit .nvlm-submit-spacer,
	.nvlm-form--inline_compact .nvlm-field--submit .nvlm-submit-spacer { display: none !important; }
	/* Butonul submit ocupă toată lățimea disponibilă pe mobil */
	.nvlm-form--inline .nvlm-field--submit .nvlm-submit,
	.nvlm-form--inline_compact .nvlm-field--submit .nvlm-submit,
	.nvlm-form--inline .nvlm-field--submit input[type="submit"].nvlm-submit,
	.nvlm-form--inline_compact .nvlm-field--submit input[type="submit"].nvlm-submit { width: 100%; }
	.nvlm-popup--image_left .nvlm-popup__dialog { flex-direction: column; }
	.nvlm-popup__image { min-height: 160px; }
}
