/* ===================== VARIABLES ===================== */
:root {
	--oz-footer-orange: var(--oz-brand-accent, #5b6672);
	--oz-footer-black: #000000;
	--oz-footer-white: #ffffff;
	--oz-footer-muted: rgba(255, 255, 255, 0.9);
	--oz-footer-line: #0f0f0f;

	/* ancho total del footer */
	--oz-footer-max: 1920px;

	/* ancho real del contenido */
	--oz-footer-container: 1440px;

	/* medidas exactas del bloque superior */
	--oz-footer-top-brand-w: 475px;
	--oz-footer-top-gap: 10px;
	--oz-footer-top-contact-w: 955px;
	--oz-footer-top-h: 156px;
}

/* ===================== FOOTER BASE ===================== */
.site-footer-new {
	width: 100%;
	max-width: var(--oz-footer-max);
	min-height: 461px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
	background: var(--oz-footer-black);
	color: var(--oz-footer-white);
	font-family: var(--OZ-Font-Base);
	overflow-x: clip;
	overflow-y: visible;
	padding-top: 0;
}

.site-footer-new *,
.site-footer-new *::before,
.site-footer-new *::after {
	box-sizing: border-box;
}

/* ===================== CONTAINER GENERAL 1440 ===================== */
.site-footer-new__container {
	width: 100%;
	max-width: var(--oz-footer-container);
	margin: 0 auto;
	padding-inline: 0;
}

/* ===================== BLOQUE SUPERIOR FLOTANTE ===================== */
.site-footer-new__top {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -33%);
	width: 100%;
	z-index: 3;
	margin-top: 0;
}

/* el bloque de arriba usa el mismo ancho 1440 */
.site-footer-new__top > .site-footer-new__container,
.site-footer-new__top > .site-footer-new__top-container {
	width: 100%;
	max-width: var(--oz-footer-container);
	margin: 0 auto;
	padding-inline: 0;
}

/* ===================== GRID SUPERIOR EXACTO ===================== */
.site-footer-new__top-grid {
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
	display: grid;
	grid-template-columns: var(--oz-footer-top-brand-w) var(--oz-footer-top-contact-w);
	column-gap: var(--oz-footer-top-gap);
	align-items: stretch;
	min-height: var(--oz-footer-top-h);
	box-shadow:
		0 12px 30px rgba(0, 0, 0, 0.16),
		0 24px 56px rgba(0, 0, 0, 0.22);
}

/* ===================== BLOQUE IZQUIERDO ===================== */
.site-footer-new__top-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 32px;
	background: var(--oz-footer-orange);
	min-height: var(--oz-footer-top-h);
}

.site-footer-new__brand-logo {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: auto;
	height: auto;
	background: transparent;
}

.site-footer-new__brand-logo a,
.site-footer-new__brand-logo .custom-logo-link,
.site-footer-new__logo-image-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
}

.site-footer-new__brand-logo img,
.site-footer-new__logo-image {
	width: 180px;
	max-width: 100%;
	height: 58px;
	object-fit: contain;
	display: block;
}

.site-footer-new__site-name {
	color: #ffffff;
	font-size: 2rem;
	font-weight: 700;
	text-decoration: none;
}

/* ===================== BLOQUE DERECHO ===================== */
.site-footer-new__top-contact {
	display: flex;
	align-items: center;
	background: var(--oz-footer-orange);
	padding: 18px 44px 18px 44px;
	min-height: var(--oz-footer-top-h);
}

.site-footer-new__top-contact-grid {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 34px;
	row-gap: 0;
	align-items: center;
}

.site-footer-new__top-contact-item {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

/* ===================== ICONOS SUPERIORES ===================== */
.site-footer-new__top-icon {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	min-width: 52px;
	min-height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--oz-footer-white);
	border-radius: 50%;
	color: var(--oz-footer-orange);
	line-height: 0;
}

.site-footer-new__top-icon img {
	width: 24px;
	height: 24px;
	display: block;
	object-fit: contain;
	filter: brightness(0) saturate(100%) invert(48%) sepia(79%) saturate(2476%) hue-rotate(359deg) brightness(101%) contrast(104%);
}

.site-footer-new__top-icon svg {
	width: 24px;
	height: 24px;
	display: block;
	fill: currentColor;
	stroke: currentColor;
	color: var(--oz-footer-orange);
}

.site-footer-new__top-icon svg path,
.site-footer-new__top-icon svg circle,
.site-footer-new__top-icon svg rect,
.site-footer-new__top-icon svg line,
.site-footer-new__top-icon svg polyline,
.site-footer-new__top-icon svg polygon,
.site-footer-new__top-icon svg ellipse,
.site-footer-new__top-icon svg g {
	fill: currentColor;
	stroke: currentColor;
}

/* ===================== TEXTOS SUPERIORES ===================== */
.site-footer-new__top-copy h3 {
	margin: 0 0 6px;
	color: #ffffff;
	font-family: var(--OZ-Font-Headings);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.15;
}

.site-footer-new__top-copy p {
	margin: 0;
	color: #ffffff;
	font-size: 13px;
	line-height: 1.22;
}

/* ===================== BLOQUE NEGRO ===================== */
.site-footer-new__main {
	background: var(--oz-footer-black);
	padding: 72px 0;
	display: flex;
	align-items: center;
}

.site-footer-new__main > .site-footer-new__container {
	width: 100%;
}

.site-footer-new__main-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.9fr) minmax(150px, 0.9fr) minmax(180px, 1fr) minmax(220px, 1fr);
	column-gap: 88px;
	row-gap: 48px;
}

/* ===================== TITULOS ===================== */
.site-footer-new__col-title {
	position: relative;
	margin: 0 0 28px;
	padding-bottom: 14px;
	color: #ffffff;
	font-family: var(--OZ-Font-Headings);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.15;
}

.site-footer-new__col-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 2px;
	margin-top: 14px;
	background: var(--oz-brand-accent, #5b6672);
}

/* ===================== COLUMNA ABOUT ===================== */
.site-footer-new__about-text {
	max-width: 408px;
	color: var(--oz-footer-muted);
	font-size: 15px;
	line-height: 1.5;
}

.site-footer-new__about-text p {
	margin: 0 0 12px;
}

.site-footer-new__about-text p:last-child {
	margin-bottom: 0;
}

/* ===================== LIBRO DE RECLAMACIONES ===================== */
.site-footer-new__claims-book {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	margin-top: 24px;
	padding: 18px 22px;
	max-width: 340px;
	width: 100%;
	border: 1px solid var(--oz-brand-accent, #5b6672);
	border-radius: 6px;
	color: #ffffff;
	text-decoration: none;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.05s ease;
	box-sizing: border-box;
}

.site-footer-new__claims-book:hover,
.site-footer-new__claims-book:focus-visible {
	background: rgba(242, 101, 32, 0.12);
	border-color: var(--oz-brand-accent, #5b6672);
	color: #ffffff;
	outline: none;
	text-decoration: none;
}

.site-footer-new__claims-book,
.site-footer-new__claims-book:hover,
.site-footer-new__claims-book:focus-visible,
.site-footer-new__claims-book:hover .site-footer-new__claims-book-lead,
.site-footer-new__claims-book:hover .site-footer-new__claims-book-title,
.site-footer-new__claims-book:hover .site-footer-new__claims-book-badge {
	text-decoration: none;
}

.site-footer-new__claims-book-icon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.site-footer-new__claims-book-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 58px;
	height: 58px;
	color: var(--oz-brand-accent, #5b6672);
}

.site-footer-new__claims-book-icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

.site-footer-new__claims-book-text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	line-height: 1.1;
}

.site-footer-new__claims-book-lead {
	font-size: 15px;
	font-weight: 400;
	color: #ffffff;
	line-height: 1.2;
}

.site-footer-new__claims-book-title {
	font-size: 19px;
	font-weight: 700;
	color: #ffffff;
	letter-spacing: 0;
	line-height: 1.15;
	margin-top: 1px;
}

.site-footer-new__claims-book-badge {
	display: inline-block;
	margin-top: 7px;
	padding: 3px 12px;
	background: var(--oz-brand-accent, #5b6672);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	border-radius: 3px;
	line-height: 1.3;
}

/* ===================== MENUS ===================== */
.site-footer-new__menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer-new__menu-list li {
	margin: 0 0 16px;
}

.site-footer-new__menu-list li:last-child {
	margin-bottom: 0;
}

.site-footer-new__menu-list .children {
	display: none;
}

.site-footer-new__menu-list a {
	color: var(--oz-footer-white);
	font-size: 14px;
	line-height: 1.2;
	text-decoration: none;
}

.site-footer-new__menu-list a:hover {
	color: var(--oz-footer-orange);
	text-decoration: none;
}

.site-footer-new__col--categories .site-footer-new__menu-list {
	max-height: 210px;
	overflow-y: auto;
	padding-right: 10px;
	scrollbar-width: thin;
	scrollbar-color: var(--oz-footer-orange) transparent;
}

.site-footer-new__col--categories .site-footer-new__menu-list::-webkit-scrollbar {
	width: 6px;
}

.site-footer-new__col--categories .site-footer-new__menu-list::-webkit-scrollbar-track {
	background: transparent;
}

.site-footer-new__col--categories .site-footer-new__menu-list::-webkit-scrollbar-thumb {
	background-color: var(--oz-footer-orange);
	border-radius: 3px;
}

.site-footer-new__empty {
	margin: 0;
	color: var(--oz-footer-muted);
	font-size: 12px;
}

/* ===================== CONTACTO INFERIOR ===================== */
.site-footer-new__contact-list {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.site-footer-new__contact-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.site-footer-new__contact-icon {
	flex: 0 0 25px;
	width: 25px;
	height: 25px;
	border-radius: 0;
	background: transparent;
	border: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.site-footer-new__contact-icon svg,
.site-footer-new__contact-icon img {
	width: 25px;
	height: 25px;
	display: block;
	object-fit: contain;
}

.site-footer-new__contact-details {
	min-width: 0;
}

.site-footer-new__contact-label {
	margin: 0 0 4px;
	font-family: var(--OZ-Font-Headings);
	font-size: 16px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.2;
}

.site-footer-new__contact-value {
	margin: 0;
	color: var(--oz-footer-muted);
	font-size: 13px;
	line-height: 1.45;
	text-decoration: none;
	word-break: break-word;
}

a.site-footer-new__contact-value:hover {
	color: var(--oz-footer-orange);
	text-decoration: none;
}

/* ===================== COLUMNA ABOUT (logo + divider + lorem + libro) ===================== */
.site-footer-new__col--about {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
}

.site-footer-new__col--about .site-footer-new__brand-logo {
	margin: 0;
}

.site-footer-new__divider {
	display: block;
	width: 56px;
	height: 2px;
	background: var(--oz-brand-accent, #5b6672);
	opacity: 1;
	margin: 0;
}

/* ===================== RESPONSIVE ===================== */
@media (max-width: 1440px) {
	.site-footer-new__container {
		padding-inline: 24px;
	}
}

/* ===== LAPTOP (1200px–1439px, cubre 1366px) ===== */
@media (min-width: 1200px) and (max-width: 1439px) {
	.site-footer-new__container {
		padding-inline: 100px;
	}
}

/* ===== TABLET (≤1199px, cubre 1024px) ===== */
@media (max-width: 1199px) {
	.site-footer-new {
		min-height: auto;
	}

	.site-footer-new__main {
		padding: 48px 0 56px;
		align-items: flex-start;
	}

	.site-footer-new__main-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 40px;
		row-gap: 40px;
	}

	.site-footer-new__col-title {
		font-size: 18px;
		margin-bottom: 20px;
	}

	.site-footer-new__about-text {
		font-size: 14px;
		max-width: 100%;
	}

	.site-footer-new__claims-book {
		max-width: 100%;
	}
}

/* ===== MOBILE (≤767px, cubre 440px) ===== */
@media (max-width: 767px) {
	.site-footer-new__container {
		padding-inline: 20px;
	}

	.site-footer-new__main {
		padding: 40px 0 48px;
		align-items: flex-start;
	}

	.site-footer-new__main-grid {
		grid-template-columns: 1fr;
		row-gap: 32px;
	}

	.site-footer-new__col-title {
		font-size: 16px;
		margin-bottom: 16px;
		padding-bottom: 10px;
	}

	.site-footer-new__col-title::after {
		margin-top: 10px;
		width: 40px;
	}

	.site-footer-new__brand-logo img,
	.site-footer-new__logo-image {
		width: 150px;
		height: 48px;
	}

	.site-footer-new__about-text {
		font-size: 14px;
		max-width: 100%;
	}

	.site-footer-new__claims-book {
		max-width: 100%;
		padding: 14px 16px;
		gap: 14px;
		margin-top: 16px;
	}

	.site-footer-new__contact-list {
		gap: 18px;
	}

	.site-footer-new__menu-list li {
		margin-bottom: 14px;
	}
}