/* Zikosoft Newsletter Capture - front styles */

/* Subscribed visitors: hide the content blocks (popups never open for them). */
.zks-nc-subscribed .zks-nc-block {
	display: none !important;
}

/* Inline block inside post content. */
.zks-nc-inline {
	margin: 32px 0;
}

/* Reveal on scroll. Only active when the JS flag is set on <html>.
   Intensity classes set distance, scale, duration and easing. */
.zks-nc-js .zks-nc-reveal {
	--zks-nc-y: 28px;
	--zks-nc-s: 1;
	--zks-nc-d: 0.6s;
	--zks-nc-e: ease-out;
	opacity: 0;
	transform: translateY(var(--zks-nc-y)) scale(var(--zks-nc-s));
	transition: opacity var(--zks-nc-d) ease-out, transform var(--zks-nc-d) var(--zks-nc-e);
}
.zks-nc-js .zks-nc-reveal.is-visible {
	opacity: 1;
	transform: none;
}
.zks-nc-js .zks-nc-reveal.zks-nc-i-very-subtle {
	--zks-nc-y: 8px;
	--zks-nc-d: 0.4s;
}
.zks-nc-js .zks-nc-reveal.zks-nc-i-subtle {
	--zks-nc-y: 16px;
	--zks-nc-d: 0.5s;
}
.zks-nc-js .zks-nc-reveal.zks-nc-i-strong {
	--zks-nc-y: 44px;
	--zks-nc-s: 0.97;
	--zks-nc-d: 0.7s;
}
.zks-nc-js .zks-nc-reveal.zks-nc-i-very-strong {
	--zks-nc-y: 64px;
	--zks-nc-s: 0.94;
	--zks-nc-d: 0.8s;
	--zks-nc-e: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Forms inside blocks and popups: compact spacing. */
.zks-nc-block p:empty,
.zks-nc-popup p:empty {
	display: none;
}
.zks-nc-block .fluentform .ff-el-group,
.zks-nc-popup .fluentform .ff-el-group {
	margin-bottom: 12px;
}
.zks-nc-block .fluentform .ff-el-group:last-child,
.zks-nc-popup .fluentform .ff-el-group:last-child {
	margin-bottom: 0;
}

/* Small legal line added in the forms (Custom HTML field). */
.zks-nc-note {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
	opacity: 0.8;
}
.zks-nc-inline .zks-nc-note {
	text-align: left;
}

/* Product page block: same spacing and type scale as the other product sections. */
.zks-nc-block.zks-nc-product {
	clear: both;
	margin-top: 72px;
	margin-bottom: 0;
}
.zks-nc-product h2 {
	margin: 0 0 16px;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.2;
}
.zks-nc-product p {
	font-size: 16px;
	line-height: 1.7;
}

/* Full-width green band without widening the page. */
.zks-nc-band-green {
	background: var(--zks-nc-green, #edfbe2);
	box-shadow: 0 0 0 100vmax var(--zks-nc-green, #edfbe2);
	clip-path: inset(0 -100vmax);
	padding-top: 72px;
	padding-bottom: 72px;
}

@media (max-width: 781px) {
	.zks-nc-block.zks-nc-product {
		margin-top: 52px;
	}
	.zks-nc-band-green {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}

/* Popups (above the cookie banner). */
html.zks-nc-popup-open {
	overflow: hidden;
}
.zks-nc-popup[hidden] {
	display: none !important;
}
.zks-nc-popup {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.zks-nc-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}
.zks-nc-dialog {
	position: relative;
	width: 100%;
	max-width: 560px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: 40px 32px 32px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
	outline: none;
}
.zks-nc-dialog h2 {
	margin: 0 0 12px;
	font-size: clamp(22px, 3vw, 28px);
	line-height: 1.2;
}
.zks-nc-content > *:first-child {
	margin-top: 0;
}
.zks-nc-content > *:last-child {
	margin-bottom: 0;
}
.zks-nc-popup .zks-nc-close {
	position: absolute;
	top: 10px;
	right: 12px;
	z-index: 1;
	width: 36px;
	height: 36px;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: #333;
	font-size: 28px;
	line-height: 36px;
	text-align: center;
	cursor: pointer;
}
.zks-nc-popup .zks-nc-close:hover,
.zks-nc-popup .zks-nc-close:focus {
	background: #f0f0f0;
	color: #000;
}

@media (max-width: 600px) {
	.zks-nc-dialog {
		padding: 36px 20px 24px;
	}
}

/* Popup animation. Intensity classes set distance, scale, duration and easing.
   Closing is always a quick fade. */
.zks-nc-popup.zks-nc-animate {
	--zks-nc-py: 24px;
	--zks-nc-ps: 0.96;
	--zks-nc-pd: 0.3s;
	--zks-nc-pe: ease-out;
}
.zks-nc-popup.zks-nc-i-very-subtle {
	--zks-nc-py: 0px;
	--zks-nc-ps: 1;
	--zks-nc-pd: 0.2s;
}
.zks-nc-popup.zks-nc-i-subtle {
	--zks-nc-py: 12px;
	--zks-nc-ps: 0.98;
	--zks-nc-pd: 0.25s;
}
.zks-nc-popup.zks-nc-i-strong {
	--zks-nc-py: 40px;
	--zks-nc-ps: 0.92;
	--zks-nc-pd: 0.35s;
}
.zks-nc-popup.zks-nc-i-very-strong {
	--zks-nc-py: 0px;
	--zks-nc-ps: 0.85;
	--zks-nc-pd: 0.45s;
	--zks-nc-pe: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.zks-nc-popup.zks-nc-animate .zks-nc-overlay {
	animation: zksNcFadeIn var(--zks-nc-pd) ease-out both;
}
.zks-nc-popup.zks-nc-animate .zks-nc-dialog {
	animation: zksNcRise var(--zks-nc-pd) var(--zks-nc-pe) both;
}
.zks-nc-popup.zks-nc-animate.is-closing .zks-nc-overlay,
.zks-nc-popup.zks-nc-animate.is-closing .zks-nc-dialog {
	animation: zksNcFadeOut 0.15s ease-in both;
}

@keyframes zksNcFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
@keyframes zksNcRise {
	from { opacity: 0; transform: translateY(var(--zks-nc-py)) scale(var(--zks-nc-ps)); }
	to { opacity: 1; transform: none; }
}
@keyframes zksNcFadeOut {
	from { opacity: 1; }
	to { opacity: 0; }
}

/* Visitors who ask for less motion: no animation at all. */
@media (prefers-reduced-motion: reduce) {
	.zks-nc-js .zks-nc-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.zks-nc-popup.zks-nc-animate .zks-nc-overlay,
	.zks-nc-popup.zks-nc-animate .zks-nc-dialog {
		animation: none;
	}
}
