/**
 * Cookie consent banner + shared plugin form styles.
 * Uses the theme's CSS custom properties where available, with fallbacks
 * so the plugin still looks correct under any other theme.
 */

.zvg-consent {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 9999;
	background: var(--zvg-surface, #ffffff);
	border-top: 1px solid var(--zvg-line, #e2e8e6);
	box-shadow: 0 -6px 32px rgba(20, 32, 30, .12);
	padding: 1.15rem 1.25rem;
}

.zvg-consent[hidden] {
	display: none;
}

.zvg-consent-inner {
	max-width: 1180px;
	margin-inline: auto;
	display: flex;
	align-items: center;
	gap: 1.75rem;
	flex-wrap: wrap;
}

.zvg-consent-text {
	flex: 1 1 420px;
}

.zvg-consent-text h2 {
	margin: 0 0 .3rem;
	font-size: 1rem;
	line-height: 1.3;
}

.zvg-consent-text p {
	margin: 0;
	font-size: .87rem;
	line-height: 1.6;
	color: var(--zvg-ink-soft, #5b6b68);
}

.zvg-consent-actions {
	display: flex;
	gap: .6rem;
	flex-wrap: wrap;
}

/* ------------------------------ Buttons ------------------------------ */

.zvg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .68rem 1.3rem;
	border-radius: var(--zvg-radius, 8px);
	border: 1px solid transparent;
	font-size: .9rem;
	font-weight: 600;
	font-family: inherit;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.zvg-btn-primary {
	background: var(--zvg-accent, #1f6f5c);
	color: #fff;
}

.zvg-btn-primary:hover,
.zvg-btn-primary:focus {
	background: var(--zvg-accent-dark, #175647);
	color: #fff;
}

.zvg-btn-outline {
	background: transparent;
	color: var(--zvg-ink, #16211f);
	border-color: var(--zvg-line, #cfdad7);
}

.zvg-btn-outline:hover,
.zvg-btn-outline:focus {
	border-color: var(--zvg-accent, #1f6f5c);
	color: var(--zvg-accent, #1f6f5c);
}

/* ------------------------------- Forms ------------------------------- */

.zvg-form .zvg-field {
	margin: 0 0 1.1rem;
}

.zvg-form label {
	display: block;
	font-size: .85rem;
	font-weight: 600;
	margin-bottom: .35rem;
}

.zvg-form input[type="text"],
.zvg-form input[type="email"],
.zvg-form textarea {
	width: 100%;
	padding: .72rem .85rem;
	border: 1px solid var(--zvg-line, #d8e0de);
	border-radius: var(--zvg-radius, 8px);
	font-size: .95rem;
	font-family: inherit;
	background: #fff;
	color: inherit;
}

.zvg-form input:focus,
.zvg-form textarea:focus {
	border-color: var(--zvg-accent, #1f6f5c);
	outline: 2px solid transparent;
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(31, 111, 92, .15);
}

.zvg-field-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0 1.1rem;
}

.zvg-req {
	color: #9a3412;
}

.zvg-form-note {
	font-size: .82rem;
	color: var(--zvg-ink-soft, #5b6b68);
}

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.zvg-field-honey {
	position: absolute !important;
	left: -9999px !important;
	height: 1px;
	overflow: hidden;
}

/* ------------------------------- Alerts ------------------------------ */

.zvg-alert {
	padding: .85rem 1.1rem;
	border-radius: var(--zvg-radius, 8px);
	border: 1px solid;
	font-size: .92rem;
	margin-bottom: 1.25rem;
}

.zvg-alert ul {
	margin: 0;
	padding-left: 1.1rem;
}

.zvg-alert-success {
	background: #eaf6ee;
	border-color: #bfe3cc;
	color: #14532d;
}

.zvg-alert-error {
	background: #fef2e8;
	border-color: #f3d3ba;
	color: #9a3412;
}

/* Editor-only guidance blocks left in seeded page content. */
.zvg-editor-note {
	background: #fffbea;
	border: 1px dashed #e3c766;
	border-radius: var(--zvg-radius, 8px);
	padding: 1rem 1.15rem;
	font-size: .88rem;
	color: #6b5310;
	margin-bottom: 1.5rem;
}

@media (max-width: 640px) {
	.zvg-consent-inner {
		gap: 1rem;
	}

	.zvg-consent-actions .zvg-btn {
		flex: 1 1 auto;
	}
}
