/*
 * Site footer. Native replacement for Elementor footer template 15055.
 * Values come from computed styles measured on staging 2026-09-18
 * (docs/reference/elementor-2026-09). Breakpoints follow the Elementor kit:
 * mobile <=767, tablet 768-1024, laptop 1025-1366, desktop 1367-1919, wide >=1920.
 */
.vb-footer {
	--vb-red: #EF4343;
	--vb-ink: #231F20;
	--vb-off-white: #F4F2EB;
	--vb-pink-light: #EDD0E4;
	--vb-white: #FFFFFF;
	--vb-font-body: "Lexend", sans-serif;
	--vb-font-display: "Instrument Serif", serif;
	--vb-font-mono: "Courier Prime", monospace;

	font-family: var(--vb-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--vb-ink);
	clear: both;
}
.vb-footer *, .vb-footer *::before, .vb-footer *::after { box-sizing: border-box; }
.vb-footer ul { list-style: none; margin: 0; padding: 0; }
.vb-footer a { text-decoration: none; }
.vb-footer img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }

.vb-footer__main { background-color: var(--vb-red); }
.vb-footer__inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 1680px;
	margin: 0 auto;
	padding: 100px 0 0;
}

/* Logo */
.vb-footer__logo { text-align: center; margin: 0 0 40px; }
.vb-footer__logo img { width: 40%; display: inline-block; }

/* Newsletter + nav row */
.vb-footer__row {
	display: flex;
	flex-direction: row;
	gap: 32px;
	padding: 0 30px 30px;
}
.vb-footer__newsletter {
	display: flex;
	flex-direction: column;
	gap: 5px;
	flex: 1 1 0;
	min-width: 0;
}
.vb-footer .vb-footer__heading {
	margin: 0;
	padding: 0;
	font-family: var(--vb-font-display);
	font-weight: 500;
	font-size: 30px;
	line-height: 1;
	text-transform: capitalize;
	color: var(--vb-off-white);
}
.vb-footer__form { font-family: var(--vb-font-mono); color: var(--vb-off-white); }

/* Gravity Form 2 (legacy markup), matches the Elementor custom CSS */
.vb-footer__form .gfield_label { color: var(--vb-off-white); font-family: var(--vb-font-mono); font-weight: 400; }
.vb-footer__form .gfield_label .gfield_required { display: inline-block !important; color: var(--vb-white); }
.vb-footer__form .top_label div.ginput_container,
.vb-footer__form #gform_2 .ginput_container { margin-top: 3px; }
.vb-footer__form #input_2_3,
.vb-footer__form #input_2_1,
.vb-footer__form input[type="text"],
.vb-footer__form input[type="email"] {
	width: 100%;
	border: none !important;
	outline: none !important;
	font-family: var(--vb-font-body);
	padding: 15px 20px;
	background: var(--vb-white);
}
.vb-footer__form .gform-footer { padding-left: 0 !important; padding-right: 0 !important; }
.vb-footer__form #gform_submit_button_2,
.vb-footer__form .gform_button {
	background-color: var(--vb-pink-light);
	color: #221F20;
	font-family: var(--vb-font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 24px;
	text-transform: none;
	letter-spacing: normal;
	padding: 7px 20px;
	margin-right: 0;
	border: none;
	cursor: pointer;
}
.vb-footer__form #gform_submit_button_2:hover,
.vb-footer__form .gform_button:hover { background-color: var(--vb-ink); color: var(--vb-white); }

/* Footer nav */
.vb-footer__nav {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: flex-start;
	gap: 50px;
	flex: 1 1 0;
	min-width: 0;
	padding: 50px 0 0;
}
.vb-footer .vb-footer__links li { margin: 0; padding: 0; line-height: 1.6; }
.vb-footer .vb-footer__links li + li { margin-top: 5px; }
.vb-footer .vb-footer__link {
	display: inline-block;
	font-weight: 700;
	color: var(--vb-off-white);
	transition: color 0.3s;
}
.vb-footer .vb-footer__link:hover { color: var(--vb-ink); }
.vb-footer__col--extra {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 130px;
	flex: 0 0 130px;
}
.vb-footer__social { --vb-icon: 13px; display: flex; flex-wrap: wrap; gap: 0 5px; }
.vb-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--vb-icon) * 2);
	height: calc(var(--vb-icon) * 2);
	border-radius: 50%;
	background-color: var(--vb-ink);
	transition: background-color 0.3s;
}
.vb-footer__social-link svg { width: var(--vb-icon); height: var(--vb-icon); fill: var(--vb-white); transition: fill 0.3s; }
.vb-footer__social-link:hover { background-color: var(--vb-off-white); }
.vb-footer__social-link:hover svg { fill: var(--vb-ink); }

/* Partner logos */
.vb-footer__partners {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 45px;
	padding: 10px;
}
.vb-footer__partners a { display: inline-block; line-height: 0; }
.vb-footer__partners img { display: inline-block; height: auto; max-width: 100%; vertical-align: middle; }

/* Copyright */
.vb-footer__copyright { padding: 0 10px 30px; text-align: center; }
.vb-footer__copyright p { margin: 0 0 16px; color: var(--vb-off-white); }

/* Art-deco pattern strip */
.vb-footer__pattern {
	height: 120px;
	background-image: url("../images/footer/pattern-cityhall-artdeco.jpg");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% auto;
}

/* Laptop and below */
@media (max-width: 1366px) {
	.vb-footer__logo { margin-bottom: 20px; }
	.vb-footer__social { --vb-icon: 12px; }
	.vb-footer__row { gap: 50px; }
	.vb-footer__nav { gap: 40px; }
}
/* Tablet and below: stack */
@media (max-width: 1024px) {
	.vb-footer__inner { max-width: 1024px; padding-top: 50px; }
	.vb-footer__row { flex-direction: column; gap: 0; }
	.vb-footer__newsletter, .vb-footer__nav { flex: none; width: 100%; }
	.vb-footer__nav { justify-content: center; padding-top: 0; }
	.vb-footer__col--extra { gap: 12px; }
	.vb-footer__pattern { background-size: 1200px auto; }
}
/* Tablet only: newsletter fields side by side */
@media (min-width: 768px) {
	.vb-footer__form #gform_2,
	.vb-footer__form #gform_fields_2 { display: flex; flex-direction: row; gap: 15px; }
	.vb-footer__form .gform-footer { max-width: 100px; margin-top: 8px !important; }
}
/* Mobile */
@media (max-width: 767px) {
	.vb-footer__inner { max-width: 767px; gap: 10px; }
	.vb-footer__logo img { width: 70%; max-width: 290px; }
	.vb-footer .vb-footer__heading { font-size: 24px; }
	.vb-footer__row, .vb-footer__nav { flex-wrap: wrap; }
	.vb-footer__nav { justify-content: space-between; gap: 6px 5px; }
	.vb-footer__col--extra { width: 100%; flex-basis: 100%; gap: 18px; }
	.vb-footer__social { --vb-icon: 18px; }
	.vb-footer__partners { gap: 20px 30px; }
	.vb-footer__form .gform-footer { justify-content: left; margin-top: 0 !important; padding-top: 10px !important; }
	.vb-footer__form .gform_legacy_markup_wrapper { margin: 0 !important; }
	.vb-footer__pattern { height: 50px; background-size: 800px auto; }
}
/* Wide */
@media (min-width: 1920px) {
	.vb-footer__inner { padding-top: 174px; }
	.vb-footer__logo { margin-bottom: 78px; }
	.vb-footer__logo img { width: 100%; max-width: 898px; }
	.vb-footer__row { padding: 0 10px 66px; }
	.vb-footer .vb-footer__heading { font-size: 40px; }
	.vb-footer__links li + li { margin-top: 15px; }
	.vb-footer__social { --vb-icon: 15px; }
	.vb-footer__copyright { padding-bottom: 39px; }
	.vb-footer__form #gform_2,
	.vb-footer__form #gform_fields_2 { gap: 25px; }
	.vb-footer__form #input_2_3,
	.vb-footer__form #input_2_1 { padding: 30px; }
	.vb-footer__form .gform-footer { max-width: 130px; }
	.vb-footer__form #gform_submit_button_2 { padding: 18px 35px; }
}
