/*
 * VLINZZA Footer — CRITICAL (above-the-fold) subset.
 * Task 3.3B (2026-09-19, Report 41). Extracted verbatim, in source order,
 * from the live footer.css approved subset (Report 40): BTT-01, DOCK-02,
 * DOCK-03, DOCK-04, DOCK-05, DOCK-06. The full footer.css remains
 * byte-identical and still owns every rule here; this file exists only so
 * these six rules can load before the full file on non-Thank-You,
 * non-/proposal-form/ routes.
 */

.vlz-single-back-to-top {
	--btt-size: 52px;
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: var(--vlz-z-sticky);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--btt-size);
	height: var(--btt-size);
	padding: 0;
	border: 0;
	border-radius: var(--vlz-radius-pill);
	background: var(--vlz-color-surface);
	color: var(--vlz-color-primary-strong);
	box-shadow: 0 4px 14px rgba(23, 102, 156, 0.18);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	pointer-events: none;
}

.vlz-contact-dock {
	display: none;
}

@media (max-width: 767.98px) {
	.vlz-contact-dock {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-wrap: wrap;
		gap: var(--vlz-space-sm);
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: var(--vlz-dock-z);
		padding-block: var(--vlz-space-2xs);
		padding-block-end: max(var(--vlz-space-sm), env(safe-area-inset-bottom, 0px));
	}

	.vlz-contact-dock__pill {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		/*
		 * DOM order is icon-then-label; in this RTL document a plain "row"
		 * would place that first child (the icon) at the inline-start, i.e.
		 * the right - row-reverse flips the visual order only, so the icon
		 * renders at the left and the label at the right (spec §23), with no
		 * markup/JS change.
		 */
		flex-direction: row-reverse;
		gap: var(--vlz-space-2xs);
		min-inline-size: 132px;
		max-inline-size: 45vw;
		min-block-size: 48px;
		padding-inline: var(--vlz-space-md);
		border-radius: 999px;
		font-weight: var(--vlz-weight-semibold);
		font-size: 14px;
		text-decoration: none;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
		/* background-color / color are set inline per button from the Owner's
		   own Dock Button settings (inc/footer/contact-dock.php) - no fixed
		   colour class here. */
	}

	.vlz-contact-dock__icon {
		flex: none;
		display: inline-flex;
		align-items: center;
	}

	/*
	 * The dock is position:fixed and does not participate in document flow,
	 * so reserved space is needed to guarantee the fixed bar never visually
	 * covers page content that follows the Footer. Reserved via the
	 * transparent `.vlz-footer` wrapper's own margin-block-end (invisible,
	 * no colour) rather than inflating the copyright strip's own padding.
	 */
	.vlz-footer {
		/* +4px safety buffer over the dock's own measured height. */
		margin-block-end: calc(env(safe-area-inset-bottom, 0px) + var(--vlz-dock-height) + 4px);
	}
}
