/**
 * Spiro footer — 2026 redesign (CONNECT WITH US).
 * Type sizes from footer.pdf / Artboard 1.
 * Hover: 42-hover-effects-detail.pdf — "ROLLOVER: ETWAS DUNKLER"
 */
.spiro-footer {
	--spiro-footer-hover: var(--spiro-hover-dim-strong);
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.spiro-footer__main {
	background: var(--spiro-color-navy, #002c41);
	color: #fff;
	padding: 56px 0 100px;
}

.spiro-footer__headline {
	margin-bottom: 48px;
	line-height: 0.95;
}

.spiro-footer__headline-connect,
.spiro-footer__headline-with {
	display: block;
	font-size: clamp(54px, 11vw, 135px);
	font-weight: 800;
	letter-spacing: 0;
	line-height: 0.95;
	text-transform: uppercase;
}

/* Keep footer type/colors if contact title class is reused for motion */
.spiro-footer__headline .spiro-contact__title {
	max-width: none;
	font-size: clamp(54px, 11vw, 135px);

	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0;
	text-transform: uppercase;
}

.spiro-footer__headline .spiro-footer__headline-connect,
.spiro-footer__headline .spiro-footer__headline-connect.spiro-contact__title {
	color: var(--spiro-color-blue, #007ec1);
}

.spiro-footer__headline .spiro-footer__headline-with,
.spiro-footer__headline .spiro-footer__headline-with.spiro-contact__title {
	color: #fff;
}

.spiro-footer__grid,
.spiro-footer__meta {
	display: grid;
	grid-template-columns: 2fr 0.75fr 0.75fr 1.3fr;
	gap: 28px 36px;
	align-items: start;
}

.spiro-footer__grid {
	margin-bottom: 44px;
}

.spiro-footer__col {
	min-width: 0;
}

.spiro-footer__contact-item {
	margin: 0 0 16px;
}

.spiro-footer__contact-item a {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	color: #fff;
	text-decoration: none;
	font-size: 37.5px;
	font-weight: 500;
	line-height: 1.14;
	white-space: nowrap;
	transition: filter 0.25s ease, color 0.25s ease;
}

.spiro-footer__contact-item a:hover,
.spiro-footer__contact-item a:focus,
.spiro-footer__contact-item a:focus-visible {
	color: #fff;
	filter: var(--spiro-footer-hover);
	text-decoration: none;
}

.spiro-footer__contact-icon {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
}

.spiro-footer__quote {
	display: inline-block;
	margin-top: 24px;
	padding: 14px 34px;
	border-radius: 999px;
	background: #fff;
	color: var(--spiro-color-dark, #000000);
	font-size: 19.5px;
	font-weight: 500;
	line-height: 1.14;
	text-decoration: none;
	transition: filter 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.spiro-footer__quote:hover,
.spiro-footer__quote:focus,
.spiro-footer__quote:focus-visible {
	background: #fff;
	color: var(--spiro-color-dark, #000000);
	filter: var(--spiro-footer-hover);
	text-decoration: none;
}

.spiro-footer h2,
.spiro-footer h3 {
	margin: 0 0 14px;
	color: #fff;
	font-size: 18.75px;
	font-weight: 700;
	line-height: 1.14;
}

.spiro-footer__address,
.spiro-footer__newsletter-lead {
	margin: 0;
	color: #fff;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.5;
}

.spiro-footer__newsletter-lead {
	margin-bottom: 18px !important;
}

.spiro-footer__newsletter-form {
	width: 100%;
}

.spiro-footer__newsletter-errors {
	margin: 0 0 10px;
	color: #ffb4b4;
	font-size: 14px;
	line-height: 1.35;
}

.spiro-footer__newsletter-status:not([hidden]) {
	margin: 0 0 14px;
	padding: 12px 18px;
	border-radius: 12px;
	background: #ffffff;
	color: var(--spiro-color-navy, #002c41);
	font-family: var(--spiro-font-family, "Outfit", Arial, sans-serif);
	font-size: 15px;
	font-weight: var(--spiro-font-weight-medium, 500);
	line-height: 1.35;
	text-align: center;
	opacity: 1;
	transition: opacity 0.4s ease;
}

.spiro-footer__newsletter-status.is-leaving {
	opacity: 0;
}

.spiro-footer__newsletter-form .newsletter_form,
.spiro-footer__newsletter-form .vr-signup-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: stretch;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	margin: 0;
	position: relative;
	border-radius: 0;
	overflow: visible;
	background: transparent;
}

/* Pill row: email + send */
.spiro-footer__newsletter-form .vr-signup-form .vr-field,
.spiro-footer__newsletter-form .vr-signup-form .vr-submit {
	background: var(--spiro-color-rollover, #174054);
	transition: background-color 0.25s ease;
}

.spiro-footer__newsletter-form .vr-signup-form .vr-field {
	grid-column: 1;
	grid-row: 2;
	border-radius: 999px 0 0 999px;
	min-width: 0;
}

.spiro-footer__newsletter-form .vr-signup-form .vr-submit {
	grid-column: 2;
	grid-row: 2;
	border-radius: 0 999px 999px 0;
}

.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:hover) .vr-field,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus) .vr-field,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus-visible) .vr-field,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:hover) .vr-submit,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus) .vr-submit,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus-visible) .vr-submit {
	background: #102f40;
}

.spiro-footer__newsletter-form .vr-notice {
	display: none;
	grid-column: 1 / -1;
	grid-row: 1;
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 14px;
	padding: 12px 18px;
	border-radius: 12px;
	background: #ffffff;
	color: var(--spiro-color-navy, #002c41);
	font-family: var(--spiro-font-family, "Outfit", Arial, sans-serif);
	font-size: 15px;
	font-weight: var(--spiro-font-weight-medium, 500);
	line-height: 1.35;
	text-align: center;
	pointer-events: none;
}

.spiro-footer__newsletter-form .vr-notice:not(:empty) {
	display: block;
}

.spiro-footer__newsletter-form .vr-notice.vr-notice-failure {
	background: #dd131a;
	color: #fff;
}

/* After successful subscribe: show only the status message */
.spiro-footer__newsletter-form .vr-signup-form:has(.vr-notice-success:not(:empty)) .vr-field,
.spiro-footer__newsletter-form .vr-signup-form:has(.vr-notice-success:not(:empty)) .vr-submit {
	display: none !important;
}

.spiro-footer__newsletter-form .vr-signup-form:has(.vr-notice-success:not(:empty)) .vr-notice {
	margin-bottom: 0;
}

.spiro-footer__newsletter-form .vr-field {
	width: auto;
	min-width: 0;
	max-width: none;
	margin: 0;
}

.spiro-footer__newsletter-form input[type="email"]#newsletter2 {
	width: 100%;
	min-width: 0;
	height: 52px;
	margin: 0;
	padding: 0 22px;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent;
	color: #fff;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.14;
	color-scheme: dark;
	cursor: text;
	transition: color 0.25s ease;
}

.spiro-footer__newsletter-form input[type="email"]#newsletter2:-webkit-autofill,
.spiro-footer__newsletter-form input[type="email"]#newsletter2:-webkit-autofill:hover,
.spiro-footer__newsletter-form input[type="email"]#newsletter2:-webkit-autofill:focus,
.spiro-footer__newsletter-form input[type="email"]#newsletter2:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 1000px var(--spiro-color-rollover, #174054) inset !important;
	box-shadow: 0 0 0 1000px var(--spiro-color-rollover, #174054) inset !important;
	-webkit-text-fill-color: #fff !important;
	caret-color: #fff;
	transition: background-color 5000s ease-in-out 0s;
}

.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:hover) input[type="email"]#newsletter2:-webkit-autofill,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus) input[type="email"]#newsletter2:-webkit-autofill,
.spiro-footer__newsletter-form .vr-signup-form:has(input[type="email"]:focus-visible) input[type="email"]#newsletter2:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #102f40 inset !important;
	box-shadow: 0 0 0 1000px #102f40 inset !important;
}

.spiro-footer__newsletter-form input[type="email"]#newsletter2:-moz-autofill {
	background-color: var(--spiro-color-rollover, #174054) !important;
	color: #fff !important;
}

.spiro-footer__newsletter-form input[type="email"]#newsletter2::placeholder {
	color: rgba(255, 255, 255, 0.55);
	font-size: 14px;
}

.spiro-footer__newsletter-form .vr-submit {
	margin: 0;
	position: relative;
}

.spiro-footer__newsletter-form #sendnewsletter2 {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: auto !important;
	min-width: 92px !important;
	height: 52px !important;
	margin: 0 !important;
	padding: 0 24px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--spiro-color-blue, #007ec1) !important;
	color: #fff !important;
	font-size: 18px !important;
	font-weight: 500 !important;
	line-height: 1.14 !important;
	float: none !important;
	cursor: pointer;
	transition: filter 0.25s ease, background-color 0.25s ease;
}

.spiro-footer__newsletter-form #sendnewsletter2:hover,
.spiro-footer__newsletter-form #sendnewsletter2:focus,
.spiro-footer__newsletter-form #sendnewsletter2:focus-visible {
	background: var(--spiro-color-blue, #007ec1) !important;
	filter: var(--spiro-footer-hover);
}

.spiro-footer__meta {
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	align-items: center;
}

.spiro-footer__col--legal {
	grid-column: 2;
}

.spiro-footer__social {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.spiro-footer__social-label {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.14;
}

.spiro-footer__social a {
	display: inline-flex;
	line-height: 0;
	border-radius: 50%;
	transition: filter 0.25s ease;
}

.spiro-footer__social a:hover,
.spiro-footer__social a:focus,
.spiro-footer__social a:focus-visible {
	filter: var(--spiro-footer-hover);
}

.spiro-footer__social img {
	width: 36px;
	height: 36px;
}

.spiro-footer__legal {
	color: #fff;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.14;
	text-decoration: none;
	transition: filter 0.25s ease, color 0.25s ease;
}

.spiro-footer__legal:hover,
.spiro-footer__legal:focus,
.spiro-footer__legal:focus-visible {
	color: #fff;
	filter: var(--spiro-footer-hover);
	text-decoration: none;
}

/* Bottom white strip — desktop: motto/copyright left, logo overlaps navy on the right */
.spiro-footer__bar {
	position: relative;
	background: #fff;
	padding: 0 0 24px;
	overflow: visible;
}

.spiro-footer__bar-inner {
	position: relative;
	display: block;
	min-height: 200px;
	padding-right: 300px;
}

.spiro-footer__bar-text {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 200px;
	padding-top: 52px;
	box-sizing: border-box;
}

.spiro-footer__tagline {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	font-weight: 800;
	line-height: 1.08;
	text-transform: uppercase;
}

.spiro-footer__tagline-accent,
.spiro-footer__tagline-since {
	display: block;
	color: var(--spiro-color-blue, #007ec1);
	font-size: 31.5px;
}

.spiro-footer__copyright {
	margin: 0;
	padding-top: 32px;
	color: black;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.14;
}

.spiro-footer__logo {
	position: absolute;
	top: 0;
	right: 0;
	height: 260px;
	width: auto;
	transform: translateY(-22%);
	pointer-events: none;
	z-index: 3;
}

.spiro-footer__logo img {
	display: block;
	height: 260px;
	width: auto;
	max-width: none;
}

@media (prefers-reduced-motion: reduce) {
	.spiro-footer__contact-item a,
	.spiro-footer__quote,
	.spiro-footer__social a,
	.spiro-footer__legal,
	.spiro-footer__newsletter-form .newsletter_form,
	.spiro-footer__newsletter-form .vr-signup-form,
	.spiro-footer__newsletter-form #sendnewsletter2,
	.spiro-footer__newsletter-status {
		transition: none;
	}
}

@media (min-width: 992px) {

	.spiro-footer__tagline-accent,
	.spiro-footer__tagline-since {
		white-space: nowrap;
	}
}

@media (max-width: 1630px) {

	.spiro-footer__headline-connect,
	.spiro-footer__headline-with {
		font-size: clamp(54px, 11vw, 135px);
	}

	.spiro-footer__contact-item a {
		font-size: clamp(21px, 3.2vw, 37.5px);
	}

	.spiro-footer__contact-icon {
		width: 64px;
		height: 64px;
	}
}

@media (max-width: 1100px) {

	.spiro-footer__grid,
	.spiro-footer__meta {
		grid-template-columns: 1fr 1fr;
	}

	.spiro-footer__col--contact {
		grid-column: 1 / -1;
	}

	.spiro-footer__col--newsletter {
		grid-column: 1 / -1;
	}

	.spiro-footer__col--legal {
		grid-column: 1;
	}

	.spiro-footer__col--social {
		grid-column: 1 / -1;
	}
}

@media (max-width: 767px) {
	.spiro-footer__bar {
		padding: 0 0 28px;
		overflow: visible;
	}

	.spiro-footer__bar-inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		min-height: 0;
		padding-right: 0;
		gap: 24px;
		text-align: center;
	}

	.spiro-footer__bar-text {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		order: 2;
		width: 100%;
		min-height: 0;
		padding-top: 0;
		text-align: center;
	}

	.spiro-footer__tagline {
		align-items: center;
		text-align: center;
	}

	.spiro-footer__copyright {
		padding-top: 16px;
		text-align: center;
	}

	.spiro-footer__logo {
		position: relative;
		order: 1;
		right: auto;
		height: 180px;
		margin: -35px 0 0;
		transform: none;
	}

	.spiro-footer__logo img {
		height: 180px;
		max-width: 100%;
		margin-inline: auto;
	}
}

@media (max-width: 640px) {
	.spiro-footer__main {
		padding: 40px 0 48px;
	}

	.spiro-footer__headline {
		margin-bottom: 32px;
	}

	.spiro-footer__headline-connect,
	.spiro-footer__headline-with {
		font-size: clamp(36px, 14vw, 54px);
	}

	.spiro-footer__grid,
	.spiro-footer__meta {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.spiro-footer__col--contact,
	.spiro-footer__col--legal,
	.spiro-footer__col--social,
	.spiro-footer__col--newsletter {
		grid-column: auto;
	}

	.spiro-footer__contact-item a {
		font-size: clamp(16.5px, 6vw, 24px);
		white-space: normal;
	}

	.spiro-footer h2,
	.spiro-footer h3,
	.spiro-footer__address,
	.spiro-footer__newsletter-lead,
	.spiro-footer__quote,
	.spiro-footer__social-label {
		font-size: clamp(13.5px, 4.5vw, 18.75px);
	}

	.spiro-footer__tagline-accent,
	.spiro-footer__tagline-since {
		font-size: clamp(18px, 6vw, 31.5px);
		white-space: normal;
	}

	.spiro-footer__copyright {
		font-size: 12px;
	}

	.spiro-footer__legal {
		font-size: 12px;
	}

	.spiro-footer__meta {
		align-items: flex-start;
	}

	.spiro-footer__logo {
		height: 140px;
	}

	.spiro-footer__logo img {
		height: 140px;
	}
}

/* Mobile: hide reCAPTCHA badge until a newsletter zone is in view. Size stays Google default. */
@media (max-width: 767px) {
	html.spiro-recaptcha-badge-ready .grecaptcha-badge {
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transition: opacity 0.25s ease, visibility 0.25s ease;
	}

	html.spiro-recaptcha-badge-on .grecaptcha-badge {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}
}