/*
 * Behavior cq-footer: footer del Theme Builder (widgets nativos + Conqr Social). Port exacto de site.css:
 * footer, footer .big, .fgrid, .fgrid h4, .fgrid a, footer .social a/svg, .fnav, .fnav a, .legal y sus @media.
 * Estructura: .cq-footer > Heading .cq-big (link) + .cq-fgrid > .cq-fitem ×4 (Heading h4 + Heading .cq-fval
 * o Conqr Social) + Nav Menu .cq-fnav + .cq-legal (Heading span año dinámico + Heading span m1).
 */

.e-con.cq-footer {
	display: block;
	position: relative;
	z-index: 3;
	min-height: 0;
	padding: clamp(160px, 30vh, 300px) var(--cq-m) calc(env(safe-area-inset-bottom, 0px) + 36px);
}
.cq-footer .elementor-element.elementor-widget {
	margin: 0;
}
.cq-footer .elementor-heading-title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: normal;
	line-height: inherit;
	text-transform: none;
	color: inherit;
}
.cq-footer .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

/* footer .big */
.cq-footer > .cq-big {
	width: max-content;
	max-width: 100%;
}
.cq-big .elementor-heading-title {
	font-size: clamp(72px, 15vw, 260px);
	font-weight: 700;
	letter-spacing: -.065em;
	line-height: .88;
	text-transform: lowercase;
}
.cq-big .elementor-heading-title a {
	display: block;
}
.cq-big .elementor-heading-title a:hover {
	color: var(--cq-sky);
}

/* .fgrid */
.cq-footer > .e-con.cq-fgrid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	width: auto;
	min-height: 0;
	padding: 0;
	margin-top: clamp(56px, 10vh, 110px);
	font-size: 15px;
	line-height: 1.6;
}
.cq-fgrid > .e-con.cq-fitem {
	display: block;
	width: auto;
	min-height: 0;
	padding: 0;
}
.cq-fitem h4.elementor-heading-title {
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, .72);
}
.cq-fval .elementor-heading-title a:hover {
	text-decoration: underline;
}

/* footer .social */
.cq-footer .cq-social a {
	width: 44px;
	height: 44px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}
.cq-footer .cq-social svg {
	width: 18px;
	height: 18px;
}

/* .fnav (Nav Menu). El widget imprime también su versión desplegable y el botón aunque el desplegable sea "none". */
.cq-footer > .elementor-element.elementor-widget.cq-fnav {
	margin-top: 44px;
}
.cq-fnav .elementor-nav-menu--dropdown,
.cq-fnav .elementor-menu-toggle {
	display: none !important;
}
.cq-fnav .elementor-nav-menu--main,
.cq-fnav .elementor-nav-menu__container {
	display: block;
}
.cq-fnav ul.elementor-nav-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
}
.cq-fnav ul.elementor-nav-menu > li {
	display: block;
	margin: 0;
	padding: 0;
}
.cq-fnav .elementor-nav-menu--main .elementor-nav-menu a.elementor-item {
	display: block;
	padding: 0;
	margin: 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
	fill: inherit;
	text-decoration: none;
	opacity: .8;
	transition: none;
}
.cq-fnav .elementor-nav-menu--main .elementor-nav-menu a.elementor-item:hover,
.cq-fnav .elementor-nav-menu--main .elementor-nav-menu a.elementor-item:focus {
	opacity: 1;
	text-decoration: underline;
	color: inherit;
}

/* .legal */
.cq-footer > .e-con.cq-legal {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: normal;
	gap: 16px;
	width: auto;
	min-height: 0;
	margin-top: 56px;
	padding: 20px 0 0;
	border-top: 1px solid rgba(255, 255, 255, .28);
	font-size: 13px;
	color: rgba(255, 255, 255, .78);
}
.cq-legal > .elementor-widget {
	flex: 0 1 auto;
}

@media (max-width: 820px) {
	.cq-footer > .e-con.cq-fgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* WP · teléfono en horizontal (no está en el original): el footer medía más que la pantalla y al llegar
   al final «let’s talk.» quedaba bajo el logo del header. Compacto para que entre completo. */
@media (orientation: landscape) and (max-height: 500px) {
	.e-con.cq-footer {
		padding-top: calc(env(safe-area-inset-top, 0px) + 92px);
		padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
	}
	.cq-big .elementor-heading-title {
		font-size: min(clamp(72px, 15vw, 260px), 19vh);
	}
	.cq-footer > .e-con.cq-fgrid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		margin-top: 22px;
		line-height: 1.45;
	}
	.cq-footer > .elementor-element.elementor-widget.cq-fnav {
		margin-top: 18px;
	}
	.cq-footer > .e-con.cq-legal {
		margin-top: 18px;
	}
}

/* ES en móvil: «hablemos.» a 72 px mide más que la pantalla (el original desborda 7 px a 390; decisión de la
   sección 1: no se copia). Solo por debajo de ~421 px, donde clamp() ya está en su mínimo. */
html[lang^="es"] .cq-big .elementor-heading-title {
	font-size: min(clamp(72px, 15vw, 260px), 17.1vw);
}

/* WP (2026-10-29, pedido): enlace «Cookies» en la línea legal (reabre las preferencias del banner, overlays.js),
   junto al año; el lema se queda a la derecha. */
.cq-footer > .e-con.cq-legal:has(.cq-ckl) {
	justify-content: flex-start;
}
.cq-legal > .elementor-widget.cq-m1 {
	margin-left: auto;
}
.cq-legal .cq-ckl .elementor-heading-title::before {
	content: "·";
	margin-right: 16px;
	color: var(--cq-dim);
}
.cq-legal .cq-ckl a {
	position: relative;
	color: inherit;
	text-decoration: none;
	transition: color .3s ease;
}
.cq-legal .cq-ckl a:hover,
.cq-legal .cq-ckl a:focus-visible {
	color: var(--cq-paper);
}
@media (pointer: coarse) {
	.cq-legal .cq-ckl a::after {
		content: "";
		position: absolute;
		left: -12px;
		right: -12px;
		top: 50%;
		height: 44px;
		transform: translateY(-50%);
	}
}
