footer {
	display: grid;
	justify-items: center;
	--_max-width: 100rem;

	.footer-content {
		width: 100%;

		* {
			color: var(--color-primary);
		}
	}
}

.footer-sect {
	display: grid;
	justify-items: center;
	padding: 4rem 2rem;
	border-top: 2px solid var(--color-border);
}


.footer-sect.sect-help {
	.sect-content {
		width: 100%;
		max-width: var(--_max-width);

		.content-grid {
			display: grid;
			gap: 3rem;
			align-items: center;

			@media (min-width: 37.5rem) {
				grid-template-columns: repeat(auto-fit, minmax(18.75rem, 1fr));
			}
		}
	}

	h3 {
		font-weight: 600;
		font-size: 1.75rem;
	}

	.contact-block {
		h4 {
			font-size: 1.375rem;
			margin-bottom: 2em;
		}

		p {
			font-size: 1.375rem;
			margin-bottom: 0.25em;
		}
	}
}


.footer-sect.sect-1 {
	.sect-content {
		width: 100%;
		max-width: var(--_max-width);
	}

	.contact-block {
		display: none;
	}

	h3 {
		font-weight: 600;
		font-size: 1.375rem;
		margin-bottom: 0;
	}

	h4 {
		font-size: 1.125rem;
		text-decoration: underline;
	}

	p {
		font-size: 1.125rem;
		margin-bottom: 0.3em;
	}

	.location-grid {
		display: grid;
		gap: 4rem;

		.location-block,
		.consultancies-block {
			display: grid;
			grid-template-rows: 1fr auto;
			gap: 1rem
		}

		@media (min-width: 37.5rem) {
			grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
		}
	}

	.footer-locations-menu {
		list-style-type: none;

		a {
			display: block;
			font-weight: 500;
			font-size: 1.125rem;
			margin-bottom: 0.3em;
		}
	}
}


.footer-sect.sect-menu {
	nav {
		width: 100%;
		max-width: var(--_max-width);
	}

	.footer-full-menu {
		display: grid;
		gap: 3rem 2rem;

		li {
			list-style-type: none;
			line-height: 2;
			font-size: 1.25rem;
			font-weight: 600;

			.sub-menu a {
				font-weight: 500;
				font-size: 0.85em;
			}
		}

		@media (min-width: 31.25rem) {
			grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
			justify-content: space-evenly;
		}
	}
}


.footer-sect.sect-2 {
	.sect-content {
		width: 100%;
		max-width: var(--_max-width);
		display: grid;
		gap: 4rem;
	}

	h3 {
		font-weight: 600;
		font-size: 1.375rem;
		margin-block: 0 0.5em;
	}

	#form_newsletter {
		fieldset {
			border: none;
		}

		.frm_fields_container {
			gap: 1.5rem;

			p {
				font-size: 1.0625rem;
				margin-bottom: 0;
				line-height: 1.6;
			}

			input {
				width: 100%;
				font-size: 1.125rem;
				padding: 0.45em 0.5em 0.35em;
				border: 1px solid #BABABA;
				background-color: #FAFAFA;

				&::placeholder {
					color: #898989;
				}
			}

			.frm_button_submit {
				font-weight: 700;
				font-size: 1.0625rem;
				color: hsl(0, 0%, 100%);
				border: none;
				border-radius: 0;
				background-color: hsl(0, 0%, 20%);
				width: 100%;
				padding-block: 0.45em 0.35em;
			}
		}
	}

	@media (min-width: 37.5rem) {
		#form_newsletter {
			.frm_fields_container {
				grid-template-columns: 1fr minmax(12.5rem, 40%);
				grid-template-areas:
					'formHeader formEmail'
					'formHeader formSubmit'
				;
				gap: 1.5rem 4rem;

				.form-header {
					grid-area: formHeader;
				}

				.form-email {
					grid-area: formEmail;
				}

				.form-submit {
					grid-area: formSubmit;
				}
			}
		}
	}

	@media (min-width: 56.25rem) {
		.sect-content {
			grid-template-columns: auto minmax(12.5rem, 62.5rem);
		}
	}
}


.footer-sect.sect-3 {
	.sect-content {
		max-width: var(--_max-width);
		display: grid;
		gap: 1.5rem;

		* {
			font-size: 0.75rem;
			color: #333;
		}
	}

	.footer-nav {
		.menu {
			list-style-type: none;
			display: flex;
			justify-content: center;
			gap: 1rem;

			a {
				text-decoration: none;

				&:hover,
				&:focus {
					text-decoration: underline;
				}
			}
		}
	}

	.copyright {
		text-align: center;
	}

	@media (min-width: 50rem) { /* 800px */
		.sect-content {
			display: flex;
			flex-direction: row-reverse;
			justify-content: space-between;

			> * { 
				flex-basis: 50%;
			}
		}

		.footer-nav {
			.menu {
				justify-content: right;
			}
		}

		.copyright {
			text-align: left;
		}
	}
}
