/*
 * Localização e rodapé — estrutura atual da plantilla Elementor 201.
 * Os estilos pertencem ao tema; não requerem um widget HTML.
 */

footer {
	margin-top: 85px;
}

.nk-footer-design {
	--nk-footer-map-height: 400px;
	--nk-footer-gutter: max(24px, calc((100% - 1180px) / 2));
	padding: 0 !important;
	gap: 0 !important;
	color: var(--nikko-brand-ink);
	background: #faf8f4;
	font-family: var(--nikko-font-sans);
	width: 100%;
	max-width: none;
}

.nk-footer-design .e-con {
	min-width: 0;
}

.nk-footer-design .elementor-widget {
	min-width: 0;
	margin: 0;
}

.nk-footer-design .nk-location {
	display: flex;
	flex-direction: column;
	gap: 26px;
	background: radial-gradient(ellipse at 80% 0%, #efe9df66, transparent 65%), #faf8f4;
	padding: var(--nikko-section-space) var(--nk-footer-gutter);
}

.nk-footer-design .nk-intro {
	display: flex;
	flex-direction: column;
	gap: 9px;
	padding: 0;
}

.nk-footer-design .nk-eyebrow p {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	color: var(--nikko-brand-wine);
	font-size: var(--nikko-text-small);
	font-weight: 700;
	letter-spacing: .12em;
}

.nk-footer-design .nk-eyebrow p::before {
	height: 2px;
	flex-shrink: 0;
	background: currentColor;
	content: '';
	width: 38px;
}

.nk-footer-design .nk-title .elementor-heading-title {
	margin: 0;
	color: var(--nikko-brand-ink) !important;
}

.nk-footer-design .nk-description p {
	margin: 0;
	color: #57514c;
	font-size: var(--nikko-text-body);
	line-height: var(--nikko-copy-leading);
}

.nk-footer-design .nk-location-row {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.3fr);
	align-items: stretch;
	gap: 24px;
	padding: 0;
}

.nk-footer-design .nk-location-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 18px;
	padding: 28px;
	border: 1px solid #eee9e4;
	background: #fff;
	box-shadow: 0 6px 25px #35261909;
	border-radius: var(--nikko-radius-md);
}

.nk-footer-design .nk-brand-logo .hfe-site-logo-container {
	text-align: left;
}

.nk-footer-design .nk-brand-logo .hfe-site-logo-img {
	display: block;
	height: 82px;
	object-fit: contain;
	width: 82px;
}

.nk-footer-design .nk-address p {
	margin: 0;
	color: #514b46;
	font-size: var(--nikko-text-body);
	line-height: var(--nikko-copy-leading);
}

.nk-footer-design .nk-card-label .elementor-heading-title {
	margin: 0;
	padding-top: 18px;
	border-top: 1px solid #ebe5df;
	color: var(--nikko-brand-wine) !important;
	font-weight: 700;
	font-size: var(--nikko-text-label);
}

.nk-footer-design .nk-location-contact .elementor-icon-list-items {
	display: grid;
	gap: 12px;
}

.nk-footer-design .nk-location-contact .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
}

.nk-footer-design .nk-location-contact .elementor-icon-list-item a {
	min-width: 0;
	align-items: flex-start;
}

.nk-footer-design .nk-location-contact .elementor-icon-list-icon {
	flex-shrink: 0;
	padding: 3px 12px 0 0;
	color: var(--nikko-brand-wine);
}

.nk-footer-design .nk-location-contact svg {
	height: 18px;
	fill: var(--nikko-brand-wine);
	width: 18px;
}

.nk-footer-design .nk-location-contact .elementor-icon-list-text {
	min-width: 0;
	color: #35302d;
	font-size: 0.9rem;
	line-height: 1.6;
	overflow-wrap: anywhere;
}

.nk-footer-design .nk-social {
	text-align: left;
}

.nk-footer-design .nk-social .ha-social-icons-wrapper {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.nk-footer-design .nk-social .ha-social-icon {
	display: inline-flex;
	height: 38px !important;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 20px;
	line-height: 1;
	color: var(--nikko-brand-cream) !important;
	text-decoration: none;
	border: 1px solid var(--nikko-brand-wine);
	border-radius: 50%;
	background: var(--nikko-brand-wine) !important;
	width: 38px !important;
}

.nk-footer-design .nk-social .ha-social-icon svg {
	display: block;
	height: 20px;
	flex: 0 0 20px;
	margin: 0;
	fill: currentColor !important;
	width: 20px;
}

.nk-footer-design .nk-social .ha-social-icon:hover,
.nk-footer-design .nk-social .ha-social-icon:focus-visible {
	border-color: var(--nikko-brand-wine-dark) !important;
	color: var(--nikko-brand-wine-dark) !important;
	background: var(--nikko-brand-wine-soft) !important;
}

.nk-footer-design .nk-social .ha-social-icon:hover svg,
.nk-footer-design .nk-social .ha-social-icon:focus-visible svg {
	fill: currentColor !important;
}

.nk-footer-design .nk-location-map {
	display: flex;
	min-height: var(--nk-footer-map-height);
	padding: 0;
	overflow: hidden;
	border: 3px solid #fff;
	box-shadow: 0 6px 25px #35261909;
	border-radius: var(--nikko-radius-md);
}

.nk-footer-design .nk-map,
.nk-footer-design .nk-map > .elementor-widget-container,
.nk-footer-design .nk-map .elementor-custom-embed {
	height: 100%;
	width: 100%;
}

.nk-footer-design .nk-map iframe {
	display: block;
	height: 100% !important;
	min-height: 100% !important;
	border: 0;
	width: 100%;
}

/* O placeholder de consentimento ocupa o mesmo espaço que o mapa. */

.nk-footer-design .nk-map .cmplz-placeholder-parent,
.nk-footer-design .nk-map .cmplz-blocked-content-container {
	min-height: var(--nk-footer-map-height);
	height: 100%;
	width: 100%;
}

.nk-footer-design .nk-dark {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0 var(--nk-footer-gutter);
	color: #f6f3ef;
	background: #211f1e;
}

.nk-footer-design .nk-bottom {
	display: grid;
	grid-template-columns: auto minmax(180px, 1fr) auto;
	align-items: center;
	gap: 18px 28px;
	padding: 20px 0;
}

.nk-footer-design .nk-bottom-logo {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 9px;
	padding: 0;
	margin: 0;
	width: auto;
}

.nk-footer-design .nk-bottom-logo .site-logo-img {
	flex: 0 0 30px;
	width: auto;
}

.nk-footer-design .nk-bottom-logo .site-logo-img img {
	display: block;
	height: 34px;
	object-fit: contain;
	width: 30px;
}

/* A segunda parte do logo é um contêiner atômico, com classe duplicada pelo Elementor. */

.nk-footer-design .nk-bottom-logo > .e-con {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	padding: 0;
	width: auto;
}

.nk-footer-design .nk-bottom-logo .elementor-heading-title {
	margin: 0;
	color: #f8f5f0 !important;
	font-weight: 500;
	line-height: 1.2;
}

.nk-footer-design .nk-bottom-logo .site-logo-title .elementor-heading-title {
	letter-spacing: 0.14em;
	font-size: var(--nikko-text-label);
}

.nk-footer-design .nk-bottom-logo .site-logo-subtitle .elementor-heading-title {
	letter-spacing: 0.18em;
	font-size: var(--nikko-text-small);
}

.nk-footer-design .nk-copyright {
	text-align: center;
	width: auto;
}

.nk-footer-design .nk-copyright .hfe-copyright-wrapper,
.nk-footer-design .nk-copyright .hfe-copyright-wrapper a {
	color: #c3b9b0;
	line-height: 1.6;
	font-size: var(--nikko-text-small);
}

.nk-footer-design .nk-legal {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px 16px;
	padding: 0;
	width: auto;
}

/* Os links legais são parágrafos atômicos, não widgets clássicos. */

.nk-footer-design .nk-legal .e-paragraph-base {
	margin: 0;
	color: #e5ddd5 !important;
	line-height: 1.6;
	font-size: var(--nikko-text-small) !important;
}

.nk-footer-design .nk-legal a {
	color: inherit;
	text-decoration: none;
}

.nk-footer-design .nk-location a:hover,
.nk-footer-design a:hover .elementor-icon-list-text {
	color: var(--nikko-brand-wine);
}

.nk-footer-design .nk-dark a:hover {
	color: #ee9ba4;
}

.nk-footer-design .nk-location a:focus-visible,
.nk-footer-design .nk-dark a:focus-visible {
	outline: 2px solid #d86572;
	outline-offset: 4px;
}

@media (max-width: 1024px) {
	.nk-footer-design {
		--nk-footer-gutter: 28px;
	}

	.nk-footer-design .nk-bottom {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.nk-footer-design .nk-legal {
		grid-column: 1 / -1;
		justify-content: center;
	}
}

@media (max-width: 767px) {
	.nk-footer-design {
		--nk-footer-map-height: 290px;
		--nk-footer-gutter: 20px;
	}

	.nk-footer-design .nk-location {
		gap: 22px;
		padding-block: 32px;
		padding: var(--nikko-section-space) var(--nk-footer-gutter);
	}

	.nk-footer-design .nk-location-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.nk-footer-design .nk-location-card {
		padding: 24px;
	}

	.nk-footer-design .nk-bottom {
		grid-template-columns: minmax(0, 1fr);
		justify-items: start;
		padding: 24px 0 95px;
	}

	.nk-footer-design .nk-copyright {
		text-align: left;
	}

	.nk-footer-design .nk-legal {
		justify-content: flex-start;
		gap: 12px 18px;
	}
}
