.pypf-replacement-active footer.site-footer:not(.pypf-footer) {
	display: none !important;
}

.pypf-footer,
.pypf-footer *,
.pypf-scroll-top,
.pypf-scroll-top * {
	box-sizing: border-box;
}

.pypf-footer {
	position: relative;
	z-index: 0 !important;
	isolation: isolate;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0;
	clear: both;
	background: var(--pypf-bg);
	color: var(--pypf-text);
	font-family: var(--pypf-body-font);
	font-size: var(--pypf-body-size);
	line-height: 1.55;
	border-top: 1px solid var(--pypf-border);
}

/*
 * The invitation/flyer plugin intentionally lets its card extend below the
 * content area. Keep that card on top instead of allowing the footer's theme
 * z-index to paint over its lower edge.
 */
.pyp-home-concept-page main,
.pyp-home-concept-page .wp-site-blocks > main,
.pyp-home-concept-page .entry-content {
	position: relative;
	z-index: 1;
}

.pypf-footer a {
	color: inherit;
	text-decoration-color: var(--pypf-accent);
	text-underline-offset: 0.2em;
	transition: color 220ms ease, text-decoration-color 220ms ease;
}

.pypf-footer a:hover,
.pypf-footer a:focus-visible {
	color: var(--pypf-accent);
}

/*
 * Plum is intentionally limited to the clickable contact and navigation
 * elements requested for the footer. Form chrome and dividers use gray.
 */
.pypf-footer__phone a,
.pypf-footer__email a,
.pypf-footer__socials a,
.pypf-footer__nav a,
.pypf-footer__legal a {
	color: var(--pypf-accent) !important;
	text-decoration-color: var(--pypf-accent) !important;
}

.pypf-footer__phone a:visited,
.pypf-footer__email a:visited,
.pypf-footer__socials a:visited,
.pypf-footer__nav a:visited,
.pypf-footer__legal a:visited {
	color: var(--pypf-accent) !important;
}

.pypf-footer__phone a:hover,
.pypf-footer__email a:hover,
.pypf-footer__socials a:hover,
.pypf-footer__nav a:hover,
.pypf-footer__legal a:hover,
.pypf-footer__phone a:focus-visible,
.pypf-footer__email a:focus-visible,
.pypf-footer__socials a:focus-visible,
.pypf-footer__nav a:focus-visible,
.pypf-footer__legal a:focus-visible {
	color: var(--pypf-text) !important;
	text-decoration-color: var(--pypf-text) !important;
}

.pypf-footer a:focus-visible,
.pypf-scroll-top:focus-visible {
	outline: 3px solid var(--pypf-accent);
	outline-offset: 4px;
}

.pypf-footer__inner {
	display: grid;
	grid-template-columns: minmax(260px, 1.05fr) minmax(330px, 1.25fr) minmax(300px, 1fr);
	align-items: center;
	gap: var(--pypf-column-gap);
	width: min(100%, var(--pypf-max-width));
	margin: 0 auto;
	padding: var(--pypf-pad-top) var(--pypf-pad-inline) var(--pypf-pad-bottom);
}

.pypf-footer__photo-wrap {
	position: relative;
	min-width: 0;
	height: var(--pypf-photo-height);
	overflow: hidden;
	border-radius: 0 42px 42px 0;
	isolation: isolate;
}

.pypf-footer__photo-wrap::after {
	--pypf-active-photo-fade: var(--pypf-photo-fade);
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			var(--pypf-bg) 0,
			transparent var(--pypf-active-photo-fade),
			transparent calc(100% - var(--pypf-active-photo-fade)),
			var(--pypf-bg) 100%
		),
		linear-gradient(
			180deg,
			var(--pypf-bg) 0,
			transparent var(--pypf-active-photo-fade),
			transparent calc(100% - var(--pypf-active-photo-fade)),
			var(--pypf-bg) 100%
		);
	pointer-events: none;
}

.pypf-footer__photo {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--pypf-photo-position);
}

.pypf-footer__contact,
.pypf-footer__links {
	min-width: 0;
	text-align: center;
}

.pypf-footer h2 {
	margin: 0 0 0.35em;
	color: var(--pypf-text);
	font-family: var(--pypf-heading-font);
	font-size: var(--pypf-heading-size);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: var(--pypf-heading-spacing);
	text-transform: uppercase;
}

.pypf-footer__contact p,
.pypf-footer__links p {
	margin: 0.15em 0;
}

.pypf-footer__phone,
.pypf-footer__email {
	font-size: 1.03em;
}

.pypf-footer__email a {
	text-decoration: underline;
}

.pypf-footer__subscribe-heading {
	margin-top: 0.65em !important;
	color: var(--pypf-muted);
}

.pypf-footer__form {
	width: min(100%, 680px);
	margin: 1rem auto 0;
}

.pypf-footer__form .wpforms-container,
.pypf-footer__form .wpforms-form,
.pypf-footer__form .wpforms-field-container {
	margin: 0 !important;
	padding: 0 !important;
}

.pypf-footer__form .wpforms-field {
	padding: 5px 0 !important;
}

.pypf-footer__form .wpforms-field-label,
.pypf-footer__form .wpforms-field-sublabel,
.pypf-footer__form .wpforms-field-description {
	color: var(--pypf-muted) !important;
}

.pypf-footer__form input[type="text"],
.pypf-footer__form input[type="email"],
.pypf-footer__form input[type="tel"],
.pypf-footer__form select,
.pypf-footer__form textarea {
	width: 100% !important;
	max-width: none !important;
	min-height: 50px !important;
	margin: 0 !important;
	padding: 10px 18px !important;
	border: 2px solid var(--pypf-border) !important;
	border-radius: var(--pypf-field-radius) !important;
	background: var(--pypf-field-bg) !important;
	box-shadow: none !important;
	color: var(--pypf-field-text) !important;
	font: inherit !important;
	text-align: center;
}

.pypf-footer__form input::placeholder,
.pypf-footer__form textarea::placeholder {
	color: var(--pypf-placeholder) !important;
	opacity: 1;
}

.pypf-footer__form input:focus,
.pypf-footer__form select:focus,
.pypf-footer__form textarea:focus {
	border-color: var(--pypf-accent) !important;
	outline: 3px solid var(--pypf-accent) !important;
	outline-offset: 2px;
}

.pypf-footer__form .wpforms-submit-container {
	margin: 6px 0 0 !important;
	padding: 0 !important;
	text-align: center;
}

.pypf-footer__form button[type="submit"],
.pypf-footer__form input[type="submit"] {
	min-width: min(100%, 290px) !important;
	min-height: 50px !important;
	padding: 10px 28px !important;
	border: 2px solid var(--pypf-button-bg) !important;
	border-radius: var(--pypf-button-radius) !important;
	background: var(--pypf-button-bg) !important;
	box-shadow: none !important;
	color: var(--pypf-button-text) !important;
	font: 700 1em/1 var(--pypf-heading-font) !important;
	cursor: pointer;
	transition: transform 180ms ease, filter 180ms ease;
}

.pypf-footer__form button[type="submit"]:hover,
.pypf-footer__form input[type="submit"]:hover {
	filter: brightness(1.1);
	transform: translateY(-2px);
}

.pypf-footer__form-note {
	padding: 12px;
	border: 1px dashed var(--pypf-border);
	color: var(--pypf-muted);
}

.pypf-footer__socials {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin-bottom: 18px;
}

.pypf-footer__socials a {
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	color: var(--pypf-accent);
	transition: transform 180ms ease, color 180ms ease;
}

.pypf-footer__socials a:hover {
	transform: translateY(-3px);
}

.pypf-footer__socials svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.pypf-footer__socials a[aria-label="Instagram"] svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.pypf-footer__socials .pypf-fill {
	fill: currentColor;
	stroke: none;
}

.pypf-footer__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 18px;
	margin-bottom: 22px;
	font-family: var(--pypf-heading-font);
	font-size: var(--pypf-nav-size);
	font-weight: 700;
}

.pypf-footer__nav a {
	text-decoration: none;
}

.pypf-footer__badges {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--pypf-badge-gap);
	margin: 0 auto 16px;
}

.pypf-footer__badges a {
	display: block;
	flex: 0 1 var(--pypf-badge-size);
	width: var(--pypf-badge-size);
	max-width: 30%;
	border-radius: 50%;
	transition: transform 180ms ease, filter 180ms ease;
}

.pypf-footer__badges a:hover {
	filter: brightness(1.12);
	transform: translateY(-3px);
}

.pypf-footer__badges img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
}

.pypf-footer__patent {
	color: var(--pypf-muted);
	font-size: 0.94em;
}

.pypf-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 14px;
	width: 100%;
	min-height: 54px;
	padding: 12px var(--pypf-pad-inline);
	border-top: 1px solid var(--pypf-border);
	color: var(--pypf-muted);
	font-size: 0.9em;
	text-align: center;
}

.pypf-scroll-top {
	position: fixed;
	right: var(--pypf-scroll-right);
	bottom: var(--pypf-scroll-bottom);
	z-index: 9998;
	display: grid;
	width: var(--pypf-scroll-size);
	height: var(--pypf-scroll-size);
	padding: 0;
	place-items: center;
	border: 2px solid var(--pypf-scroll-border);
	border-radius: 50%;
	background: var(--pypf-scroll-bg);
	box-shadow: 0 10px 30px rgb(0 0 0 / 25%);
	color: var(--pypf-scroll-color);
	opacity: 0;
	pointer-events: none;
	transform: translateY(14px);
	transition: opacity 180ms ease, transform 180ms ease, filter 180ms ease;
	cursor: pointer;
}

.pypf-scroll-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.pypf-scroll-top:hover {
	filter: brightness(1.1);
}

.pypf-scroll-top svg {
	width: 52%;
	height: 52%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

@media (max-width: 1080px) {
	.pypf-footer__inner {
		grid-template-columns: minmax(230px, 0.9fr) minmax(300px, 1.1fr);
	}

	.pypf-footer__links {
		grid-column: 1 / -1;
	}

	.pypf-footer__badges {
		max-width: 520px;
	}
}

@media (max-width: 720px) {
	.pypf-footer {
		font-size: var(--pypf-body-size-mobile);
	}

	.pypf-footer__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--pypf-section-gap-mobile);
		padding: var(--pypf-pad-top-mobile) var(--pypf-pad-inline-mobile) var(--pypf-pad-bottom-mobile);
	}

	.pypf-footer__photo-wrap {
		height: var(--pypf-photo-height-mobile);
		margin-inline: calc(-1 * var(--pypf-pad-inline-mobile));
		border-radius: 0 0 38px 38px;
	}

	.pypf-footer__photo-wrap::after {
		--pypf-active-photo-fade: var(--pypf-photo-fade-mobile);
	}

	.pypf-footer h2 {
		font-size: var(--pypf-heading-size-mobile);
	}

	.pypf-footer__nav {
		font-size: var(--pypf-nav-size-mobile);
	}

	.pypf-footer__socials a {
		width: 42px;
		height: 42px;
	}

	.pypf-footer__badges {
		gap: min(var(--pypf-badge-gap), 12px);
	}

	.pypf-footer__badges a {
		flex-basis: var(--pypf-badge-size-mobile);
		width: var(--pypf-badge-size-mobile);
		max-width: calc((100% - 24px) / 3);
	}

	.pypf-footer__legal {
		padding-inline: var(--pypf-pad-inline-mobile);
	}

	.pypf-scroll-top {
		right: var(--pypf-scroll-right-mobile);
		bottom: var(--pypf-scroll-bottom-mobile);
		width: var(--pypf-scroll-size-mobile);
		height: var(--pypf-scroll-size-mobile);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pypf-footer *,
	.pypf-scroll-top {
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}
