/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.site-footer {
	margin: 16px;
	width: auto;
	max-width: none;
	color: var(--gray-100);
}

.footer {
	padding: 60px 0;
	background-color: var(--secondary-100);
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
	overflow: hidden;
}

.footer-main {
	display: grid;
	/* 1: logo | 2: contacto | 3: Dest People + Soluciones | 4: Menú general */
	grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
	grid-template-areas: 'f-brand f-contact f-menus-dest f-menus-gral';
	gap: 60px;
	align-items: flex-start;
}

.footer-col--brand {
	grid-area: f-brand;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	text-align: left;
	gap: 1.5rem;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}

.footer-logo-link {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
	flex-shrink: 0;
}

.footer-logo-link:hover,
.footer-logo-link:focus-visible {
	opacity: 0.9;
}

.footer-logo-img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

.dest-people-logo-footer {
	margin-bottom: 5px;
}

.footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-social--networks {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem 1rem;
}

.footer-social li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--gray-100);
	text-decoration: none;
	line-height: 1;
	transition: opacity 0.2s ease, color 0.2s ease;
}

.footer-col--brand .footer-social--networks .footer-social-link {
	width: 1.5rem;
	height: 1.5rem;
}

.footer-social-link:hover,
.footer-social-link:focus-visible {
	opacity: 0.85;
	color: var(--primary-60);
}

.footer-social-icon {
	display: block;
	flex-shrink: 0;
}

.footer-col--brand .footer-social--networks .footer-social-icon {
	width: 1.5rem;
	height: 1.5rem;
	object-fit: contain;
}

.footer-col--contact {
	grid-area: f-contact;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.footer-contact-block {
	margin: 0;
}

.footer-contact-address {
	margin: 0 0 0.35rem 0;
	color: var(--gray-100);
}

.footer-contact-email {
	margin: 0;
}

.footer-contact-email a {
	color: var(--gray-100);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.footer-contact-email a:hover,
.footer-contact-email a:focus-visible {
	color: var(--primary-60);
}

.footer-col--menus-secondary {
	grid-area: f-menus-dest;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.footer-nav-group {
	margin: 0;
}

.footer-nav-heading {
	margin: 0 0 0.5rem 0;
	padding: 0;
	border: 0;
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu li {
	margin: 0;
}

.footer-menu a {
	display: block;
	padding: 0.5rem 0;
	color: var(--gray-100);
	text-decoration: none;
	transition: color 0.2s ease, opacity 0.2s ease;
}

.footer-menu a:hover,
.footer-menu a:focus-visible {
	color: var(--primary-60);
}

@media screen and (max-width: 991px) {
	.footer-menu a {
		min-height: 50px;
		display: flex;
		align-items: center;
		box-sizing: border-box;
	}

	.downbar-legal a {
		min-height: 50px;
		display: inline-flex;
		align-items: center;
		box-sizing: border-box;
	}
}

.footer-menu--ruled li {
	border-bottom: 1px solid var(--secondary-60);
}

.footer-col--menus-primary {
	grid-area: f-menus-gral;
	justify-self: start;
	text-align: left;
}

.footer-nav-primary .footer-menu--caps {
	text-align: left;
}

.footer-menu--caps li + li {
	margin-top: 0.15rem;
}

/*--------------------------------------------------------------
# Downbar
--------------------------------------------------------------*/

.downbar {
	padding: 1.25rem 0 1.5rem;
	background-color: var(--secondary-100);
	border-top: 1px solid var(--secondary-60);
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	overflow: hidden;
}

.downbar-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1.5rem 2.5rem;
	width: 100%;
}

.downbar-copy {
	margin: 0;
	justify-self: start;
	color: var(--gray-100);
}

.downbar-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	justify-self: center;
	gap: 0.35rem 0.5rem;
	text-align: center;
	color: var(--gray-100);
}

.downbar-legal a {
	color: var(--gray-100);
	text-decoration: none;
	white-space: nowrap;
}

.downbar-legal a:hover,
.downbar-legal a:focus,
.downbar-legal a:focus-visible,
.downbar-legal a:active,
.downbar-legal a:visited {
	color: var(--gray-100);
	text-decoration: none;
}

.downbar-legal .downbar-legal-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 2.5rem;
}

.downbar-legal .downbar-legal-menu li {
	margin: 0;
	padding: 0;
}

.downbar-credit {
	margin: 0;
	justify-self: end;
	text-align: right;
	color: var(--gray-100);
}

.downbar-credit .downbar-credit-link {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.3em 0.5em;
	text-decoration: none;
	color: var(--gray-100);
}

.downbar-credit-label {
	white-space: nowrap;
}

.downbar-credit-img {
	display: block;
	width: auto;
	height: 1em;
	margin-bottom: 5px;
	max-height: 15px;
	object-fit: contain;
	flex-shrink: 0;
}

.downbar-credit .downbar-credit-link:hover,
.downbar-credit .downbar-credit-link:focus-visible {
	opacity: 0.88;
}

.downbar-credit .downbar-credit-link:focus-visible {
	outline: 2px solid var(--primary-60, #86c8bc);
	outline-offset: 3px;
	border-radius: 2px;
}

@media (max-width: 1024px) {
	.footer-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas: none;
		gap: 2.5rem;
	}

	.site-footer .footer .footer-main > .footer-col {
		grid-area: auto;
	}
}

@media (max-width: 720px) {
	.footer {
		padding: 16px 0;
	}

	.footer-main {
		grid-template-columns: 1fr;
		grid-template-areas: none;
		gap: 2.5rem;
		justify-items: start;
	}

	.site-footer .footer .footer-main > .footer-col {
		grid-area: auto;
		text-align: left;
		justify-self: start;
		width: 100%;
	}

	.footer-col--brand {
		align-items: flex-start;
		text-align: left;
	}

	.footer-col--brand .footer-social--networks {
		align-items: center;
		justify-content: flex-start;
	}

	.downbar-inner {
		grid-template-columns: 1fr;
		justify-items: start;
		text-align: left;
		gap: 1.75rem;
	}

	.downbar-copy,
	.downbar-credit {
		justify-self: start;
		text-align: left;
	}

	.downbar-legal {
		justify-self: start;
		justify-content: flex-start;
		align-items: flex-start;
		text-align: left;
	}

	.downbar-legal .downbar-legal-menu {
		flex-direction: column;
		align-items: flex-start;
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 0.875rem;
		width: 100%;
	}
}
