/**
 * Bersoft Universal Inicio — Estilos de Frontend
 *
 * Utiliza exclusivamente variables CSS del tema Bersoft.
 * Cumple con estándares de Emil Kowalski, Impeccable, Taste Skill y Redesign Skill.
 * Cero desbordamiento horizontal garantizado en 320px, 375px, 414px, Tablet y Desktop.
 *
 * @package Bersoft_Universal_Inicio
 */

/* ==========================================================================
   1. RESET Y CONTENEDOR BASE
   ========================================================================== */

.universal-inicio-wrapper {
	width: 100%;
	background-color: var(--bs-color-background, #FFFFFF);
	color: var(--bs-color-text, #4B5563);
	font-family: var(--bs-font-body, system-ui, -apple-system, sans-serif);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

.universal-inicio-wrapper *,
.universal-inicio-wrapper *::before,
.universal-inicio-wrapper *::after {
	box-sizing: border-box;
}

.ui-container {
	width: 100%;
	max-width: var(--bs-container-max, 1360px);
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(16px, 3vw, 32px);
	padding-right: clamp(16px, 3vw, 32px);
}

.ui-section {
	width: 100%;
	padding: clamp(48px, 6vw, 84px) 0;
	position: relative;
	background-color: var(--ui-block-bg, transparent);
	color: var(--ui-block-text, inherit);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.universal-inicio-wrapper > .ui-section,
.ui-hero,
.ui-hero-fullscreen,
#block-hero,
.ui-categories-section,
#block-categorias_destacadas {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.universal-inicio-wrapper > p,
.universal-inicio-wrapper > br {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

/* ==========================================================================
   2. TIPOGRAFÍA Y JERARQUÍA EDITORIAL
   ========================================================================== */

.ui-eyebrow {
	display: inline-block;
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ui-block-accent, var(--bs-color-primary, #0A58CA));
	margin-bottom: 10px;
}

.ui-section-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(24px, 3vw, 36px));
	font-weight: var(--ui-title-weight, 700);
	line-height: var(--ui-title-lh, 1.2);
	letter-spacing: var(--ui-title-ls, -0.015em);
	text-transform: var(--ui-title-transform, none);
	text-align: var(--ui-title-align, inherit);
	color: var(--ui-block-heading, var(--bs-color-heading, #172126));
	margin: 0 0 12px;
	text-wrap: balance;
}

.ui-section-lead {
	font-size: clamp(15px, 1.6vw, 17px);
	line-height: 1.6;
	color: var(--bs-color-text, #4B5563);
	margin: 0 0 20px;
	max-width: 680px;
}

.ui-section-head.text-center {
	text-align: center;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: clamp(32px, 4vw, 48px);
}

.ui-section-head.text-center .ui-section-lead {
	margin-left: auto;
	margin-right: auto;
}

/* Botones Base — Coherentes con páginas interiores y Tema Bersoft */
.ui-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--bs-font-body, system-ui, sans-serif);
	font-size: var(--bs-btn-font-size, 15px);
	font-weight: var(--bs-btn-font-weight, 600);
	text-transform: var(--bs-btn-transform, none);
	line-height: 1.2;
	text-decoration: none;
	border-radius: var(--bs-btn-radius, var(--bs-border-radius, 8px));
	padding: var(--bs-btn-padding-y, 12px) var(--bs-btn-padding-x, 24px);
	min-height: 44px;
	width: auto;
	max-width: 100%;
	cursor: pointer;
	border: 1px solid transparent;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
	user-select: none;
}

.ui-btn:active {
	transform: scale(0.98);
}

.ui-btn-primary {
	background-color: var(--ui-btn-bg, var(--bs-color-primary, #0A58CA));
	color: var(--ui-btn-color, #FFFFFF);
	border-color: var(--ui-btn-border, var(--bs-color-primary, #0A58CA));
}

.ui-btn-primary:hover,
.ui-btn-primary:focus-visible {
	background-color: var(--ui-btn-bg-hover, var(--bs-color-primary-dark, #073B8A));
	border-color: var(--ui-btn-bg-hover, var(--bs-color-primary-dark, #073B8A));
	color: var(--ui-btn-color-hover, #FFFFFF);
	box-shadow: 0 4px 12px rgba(10, 88, 202, 0.25);
}

.ui-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--bs-color-primary, #0A58CA);
	text-decoration: none;
	transition: color 140ms ease, gap 140ms ease;
}

.ui-link-arrow:hover,
.ui-link-arrow:focus-visible {
	color: var(--bs-color-primary-dark, #073B8A);
	gap: 10px;
}

/* ==========================================================================
   3. BLOQUE 1: HERO INDUSTRIAL DE ANCHO COMPLETO
   ========================================================================== */

.ui-hero-fullscreen {
	position: relative;
	min-height: clamp(560px, 80vh, 760px);
	display: flex;
	align-items: center;
	padding-top: clamp(90px, 9vw, 130px);
	padding-bottom: clamp(60px, 7vw, 100px);
	overflow: hidden;
	color: #FFFFFF;
}

.ui-hero-fullscreen.ulhh-hero-bound {
	min-height: clamp(600px, 100vh, 880px);
	min-height: clamp(600px, 100svh, 880px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}

.ui-hero-bg-layer {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	display: block !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

.ui-hero-picture,
.ui-hero-bg-img,
.ui-hero-poster-img {
	width: 100%;
	height: 100%;
	display: block !important;
	vertical-align: bottom !important;
	object-fit: cover;
	object-position: var(--ui-focus-pc, center center);
}

@media (max-width: 1024px) {
	.ui-hero-bg-img {
		object-position: var(--ui-focus-tab, center center);
	}
}

@media (max-width: 640px) {
	.ui-hero-bg-img {
		object-position: var(--ui-focus-mob, center center);
	}
}

.ui-hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	background: linear-gradient(90deg, rgba(11, 19, 32, 0.90) 0%, rgba(11, 19, 32, 0.72) 48%, rgba(11, 19, 32, 0.28) 100%);
}

@media (max-width: 768px) {
	.ui-hero-fullscreen.ulhh-hero-bound {
		min-height: clamp(520px, 100vh, 720px);
		min-height: clamp(520px, 100svh, 720px);
	}
	.ui-hero-overlay {
		background: linear-gradient(180deg, rgba(11, 19, 32, 0.88) 0%, rgba(11, 19, 32, 0.72) 55%, rgba(11, 19, 32, 0.50) 100%);
	}
}

.ui-hero-video-wrap {
	position: relative;
	width: 100%;
	height: 100%;
}

.ui-video-iframe-slot {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: none;
}

.ui-video-ctrl-btn {
	position: absolute;
	bottom: 20px;
	right: 20px;
	z-index: 10;
	background: rgba(0, 0, 0, 0.6);
	color: #FFFFFF;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	width: 40px;
	height: 40px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(4px);
}

.ui-hero-container {
	position: relative;
	z-index: 5;
}

.ui-hero-content-box {
	max-width: 720px;
}

.ui-eyebrow-hero {
	color: #93C5FD;
	font-size: 13px;
	letter-spacing: 0.1em;
	margin-bottom: 14px;
}

.ui-hero-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(32px, 4.4vw, 54px));
	font-weight: var(--ui-title-weight, 700);
	line-height: var(--ui-title-lh, 1.12);
	color: #FFFFFF;
	margin: 0 0 18px;
	letter-spacing: var(--ui-title-ls, -0.02em);
	text-wrap: balance;
}

.ui-hero-subtitle {
	font-size: clamp(16px, 1.8vw, 19px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 32px;
	max-width: 600px;
}

.ui-hero-actions {
	display: flex;
	align-items: center;
}

.ui-hero-btn {
	padding: 15px 36px;
	font-size: 16px;
}

/* ==========================================================================
   3.5. BLOQUE 1.5: CATEGORÍAS DESTACADAS (ACCESOS SOBRE SUPERFICIE OSCURA)
   ========================================================================== */

.ui-categories-section {
	background-color: var(--bs-color-dark-surface, #0B1320);
	padding: clamp(36px, 4.5vw, 64px) 0;
}

.ui-cat-access-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 28px);
	width: 100%;
}

@media (max-width: 768px) {
	.ui-cat-access-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}
}

.ui-cat-access-card {
	position: relative;
	border-radius: var(--bs-radius-card, 8px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(260px, 30vw, 360px);
	text-decoration: none;
	color: #FFFFFF;
	background-color: #152238;
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.ui-cat-access-card:hover,
.ui-cat-access-card:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(0, 0, 0, 0.38);
	border-color: rgba(255, 255, 255, 0.25);
}

.ui-cat-access-card:active {
	transform: translateY(-1px);
}

.ui-cat-access-media {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ui-cat-access-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

.ui-cat-access-card:hover .ui-cat-access-img {
	transform: scale(1.04);
}

.ui-cat-access-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(180deg, rgba(11, 19, 32, 0.15) 0%, rgba(11, 19, 32, 0.82) 65%, rgba(11, 19, 32, 0.96) 100%);
}

.ui-cat-access-content {
	position: relative;
	z-index: 3;
	padding: clamp(20px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ui-cat-access-tag {
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #93C5FD;
}

.ui-cat-access-title {
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 700;
	line-height: 1.25;
	color: #FFFFFF;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ui-cat-arrow-icon {
	flex-shrink: 0;
	color: #FFFFFF;
	transition: transform 180ms ease, color 180ms ease;
}

.ui-cat-access-card:hover .ui-cat-arrow-icon {
	transform: translate(3px, -3px);
	color: #60A5FA;
}

.ui-cat-access-desc {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
}

/* ==========================================================================
   4. BLOQUE 2: PRESENTACIÓN INSTITUCIONAL
   ========================================================================== */

.ui-presentacion-section {
	border-bottom: 1px solid var(--bs-color-border, #E5E7EB);
}

.ui-editorial-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

.ui-editorial-grid.is-img-left {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
}

.ui-editorial-grid.is-img-left .ui-editorial-text-col {
	order: 2;
}

.ui-editorial-grid.is-img-left .ui-editorial-media-col {
	order: 1;
}

@media (max-width: 900px) {
	.ui-editorial-grid,
	.ui-editorial-grid.is-img-left {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}
	.ui-editorial-grid.is-img-left .ui-editorial-text-col {
		order: 1;
	}
	.ui-editorial-grid.is-img-left .ui-editorial-media-col {
		order: 2;
	}
}

.ui-editorial-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(26px, 3.2vw, 38px));
	font-weight: 700;
	line-height: 1.18;
	color: var(--bs-color-heading, #172126);
	margin: 0 0 16px;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.ui-editorial-body {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--bs-color-text, #4B5563);
	margin-bottom: 24px;
}

.ui-editorial-media-frame {
	width: 100%;
	background: var(--bs-color-surface, #F8F9FA);
	border-radius: var(--bs-radius-card, 6px);
	overflow: hidden;
}

.ui-ratio-4-5 {
	aspect-ratio: 4 / 5;
}

.ui-ratio-3-2 {
	aspect-ratio: 3 / 2;
}

.ui-ratio-16-9 {
	aspect-ratio: 16 / 9;
}

.ui-editorial-img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/* ==========================================================================
   5. BLOQUE 3 Y 6: CARRUSEL DE PRODUCTOS (3 EN PC / 3 EN TABLET / 2 EN MÓVIL)
   ========================================================================== */

.ui-carrusel-section {
	border-bottom: 1px solid var(--bs-color-border, #E5E7EB);
	--ui-gap: 24px;
}

.ui-carrusel-header-flex {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: clamp(24px, 3.5vw, 36px);
}

.ui-carrusel-titles {
	min-width: 0;
}

.ui-carrusel-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(24px, 2.8vw, 34px));
	font-weight: 700;
	line-height: 1.2;
	color: var(--bs-color-heading, #172126);
	margin: 0 0 6px;
}

.ui-carrusel-subtitle {
	font-size: 15px;
	color: var(--bs-color-text, #4B5563);
	margin: 0;
}

.ui-carousel-nav-arrows {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

/* Contenedor táctil de 44x44 px (accesibilidad WCAG) */
.ui-arrow-btn {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	max-width: 44px !important;
	max-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	position: relative !important;
	box-shadow: none !important;
	outline: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	touch-action: manipulation;
	flex-shrink: 0;
	transition: opacity 160ms ease;
}

/* Círculo visible de 32 px */
.ui-arrow-disc {
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	max-width: 32px;
	max-height: 32px;
	border-radius: 50% !important;
	border: 1px solid var(--bs-color-border, #E5E7EB);
	background-color: var(--bs-color-surface, #FFFFFF);
	color: var(--bs-color-heading, #172126);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 120ms ease, box-shadow 140ms ease;
	pointer-events: none;
}

/* Iconos SVG explícitos e independientes de Elementor o temas */
.ui-arrow-btn svg,
.ui-arrow-disc svg,
svg.ui-arrow-svg {
	display: block !important;
	width: 15px !important;
	height: 15px !important;
	min-width: 15px !important;
	min-height: 15px !important;
	max-width: 15px !important;
	max-height: 15px !important;
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 2.5 !important;
	stroke-linecap: round !important;
	stroke-linejoin: round !important;
	color: inherit !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: none !important;
	overflow: visible !important;
}

.ui-arrow-btn svg polyline,
.ui-arrow-disc svg polyline,
svg.ui-arrow-svg polyline {
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 2.5 !important;
	stroke-linecap: round !important;
	stroke-linejoin: round !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Estados */
.ui-arrow-btn:hover:not(:disabled):not([disabled]):not([aria-disabled="true"]) .ui-arrow-disc {
	background-color: var(--bs-color-primary, #0A58CA);
	border-color: var(--bs-color-primary, #0A58CA);
	color: #FFFFFF !important;
	box-shadow: 0 4px 12px rgba(10, 88, 202, 0.28);
	transform: scale(1.06);
}

.ui-arrow-btn:focus-visible .ui-arrow-disc {
	outline: 2px solid var(--bs-color-primary, #0A58CA);
	outline-offset: 2px;
}

.ui-arrow-btn:active:not(:disabled):not([disabled]) .ui-arrow-disc {
	transform: scale(0.92);
}

.ui-arrow-btn:disabled,
.ui-arrow-btn[disabled],
.ui-arrow-btn[aria-disabled="true"] {
	cursor: not-allowed !important;
	pointer-events: none !important;
	opacity: 0.35 !important;
}

.ui-arrow-btn:disabled .ui-arrow-disc,
.ui-arrow-btn[disabled] .ui-arrow-disc,
.ui-arrow-btn[aria-disabled="true"] .ui-arrow-disc {
	background-color: var(--bs-color-surface, #F8F9FA) !important;
	border-color: var(--bs-color-border, #E5E7EB) !important;
	color: var(--bs-color-text-secondary, #9CA3AF) !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Viewport con Scroll-Snap */
.ui-carousel-viewport {
	width: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
	padding-bottom: 8px;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.ui-carousel-viewport::-webkit-scrollbar {
	display: none;
}

.ui-carousel-track {
	display: flex;
	width: 100%;
	gap: var(--ui-gap);
}

/* Tarjeta de Producto: Cálculo Exacto
   Desktop & Tablet = 3 tarjetas visibles
   Mobile = 2 tarjetas visibles */
.ui-product-card {
	flex: 0 0 calc((100% - (2 * var(--ui-gap))) / 3);
	width: calc((100% - (2 * var(--ui-gap))) / 3);
	max-width: calc((100% - (2 * var(--ui-gap))) / 3);
	min-width: 0;
	scroll-snap-align: start;
	background-color: var(--bs-color-background, #FFFFFF);
	display: flex;
	flex-direction: column;
}

@media (max-width: 768px) {
	.ui-carrusel-section {
		--ui-gap: 16px;
	}
	.ui-product-card {
		flex: 0 0 calc((100% - (2 * var(--ui-gap))) / 3);
		width: calc((100% - (2 * var(--ui-gap))) / 3);
		max-width: calc((100% - (2 * var(--ui-gap))) / 3);
	}
}

@media (max-width: 640px) {
	.ui-carrusel-section {
		--ui-gap: 12px;
	}
	.ui-product-card {
		flex: 0 0 calc((100% - var(--ui-gap)) / 2);
		width: calc((100% - var(--ui-gap)) / 2);
		max-width: calc((100% - var(--ui-gap)) / 2);
	}
}

/* Fotografía 16:9 a sangre sin recuadro ni padding interno */
.ui-card-photo-wrap {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--bs-color-surface, #F8F9FA);
	overflow: hidden;
}

.ui-card-photo {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 300ms ease;
}

.ui-product-card:hover .ui-card-photo {
	transform: scale(1.03);
}

.ui-card-info-pane {
	padding: 14px 2px 8px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.ui-card-name {
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: clamp(14px, 1.4vw, 16px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--bs-color-heading, #172126);
	margin: 0 0 6px;
}

.ui-card-name a {
	color: inherit;
	text-decoration: none;
}

.ui-card-name a:hover {
	color: var(--bs-color-primary, #0A58CA);
}

.ui-card-desc {
	font-size: 13px;
	line-height: 1.45;
	color: var(--bs-color-text, #4B5563);
	margin: 0 0 12px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ui-card-cta {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: 13px;
	font-weight: 700;
	color: var(--bs-color-primary, #0A58CA);
	text-decoration: none;
	margin-top: auto;
}

.ui-card-cta:hover {
	color: var(--bs-color-primary-dark, #073B8A);
}

.ui-carrusel-footer-wrap {
	margin-top: clamp(20px, 3vw, 32px);
	text-align: right;
}

/* ==========================================================================
   6. BLOQUE 4: MARCAS DE CHASIS EN CARRUSEL CONTINUO
   ========================================================================== */

.ui-marcas-section {
	background-color: var(--bs-color-surface, #F8F9FA);
	border-bottom: 1px solid var(--bs-color-border, #E5E7EB);
}

.ui-brands-carousel-wrap {
	position: relative;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.ui-brands-prev,
.ui-brands-next {
	z-index: 2;
}

.ui-brands-viewport {
	flex: 1 1 0%;
	min-width: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ui-brands-viewport::-webkit-scrollbar {
	display: none;
}

.ui-brands-track {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3.5vw, 40px);
	padding: 10px 4px;
}

.ui-brand-item {
	flex: 0 0 auto;
	height: 52px;
	padding: 0 clamp(8px, 2vw, 16px);
	display: flex;
	align-items: center;
	justify-content: center;
	scroll-snap-align: center;
	color: #64748B;
	transition: color 180ms ease, transform 180ms ease;
}

.ui-brand-item:hover {
	color: #0F172A;
	transform: scale(1.05);
}

.ui-brand-svg-box {
	display: flex;
	align-items: center;
	justify-content: center;
}

.ui-brand-svg-box svg,
.ui-brand-svg-box img,
.ui-brand-img {
	max-height: 38px;
	width: auto;
	max-width: 120px;
	object-fit: contain;
	display: block;
	filter: grayscale(100%) opacity(0.75);
	transition: filter 200ms ease, opacity 200ms ease, transform 200ms ease;
}

/* Balance visual de proporciones y tamaños de logos */
.ui-brand-img-volvo { max-height: 18px !important; max-width: 105px !important; }
.ui-brand-img-mercedes-benz { max-height: 38px !important; }
.ui-brand-img-autoespar { max-height: 34px !important; }
.ui-brand-img-volkswagen { max-height: 36px !important; }
.ui-brand-img-scania { max-height: 34px !important; }
.ui-brand-img-hino { max-height: 32px !important; }
.ui-brand-img-jac { max-height: 26px !important; }

.ui-brand-item:hover .ui-brand-svg-box svg,
.ui-brand-item:hover .ui-brand-svg-box img,
.ui-brand-item:hover .ui-brand-img {
	filter: grayscale(0%) opacity(1);
}

/* ==========================================================================
   7. BLOQUE 5: DISEÑO, FABRICACIÓN Y POST VENTA (PILARES — ESTILO DRIVELODGE)
   ========================================================================== */

.ui-pilares-section {
	background-color: var(--bs-color-dark-surface, #0B1320);
	color: #FFFFFF;
	padding: clamp(56px, 7vw, 96px) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ui-pilares-header {
	text-align: left;
	max-width: 820px;
	margin: 0 0 clamp(32px, 4.5vw, 52px);
}

.ui-pilares-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(28px, 3.4vw, 42px));
	font-weight: 700;
	line-height: 1.18;
	color: #FFFFFF;
	margin: 0 0 12px;
	letter-spacing: -0.015em;
}

.ui-pilares-subtitle {
	font-size: clamp(15px, 1.6vw, 17px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
}

.ui-pilares-content-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

@media (max-width: 900px) {
	.ui-pilares-content-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}
}

.ui-pilares-hero-media {
	width: 100%;
	aspect-ratio: 16 / 10;
	border-radius: var(--bs-radius-card, 8px);
	overflow: hidden;
	box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
	border: 1px solid rgba(255, 255, 255, 0.1);
	background-color: #152238;
	margin: 0;
}

.ui-pilares-wide-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ui-pilares-stacked-col {
	display: flex;
	flex-direction: column;
}

.ui-pilar-item {
	display: flex;
	align-items: flex-start;
	gap: clamp(16px, 2.5vw, 24px);
	padding: clamp(20px, 2.5vw, 28px) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.ui-pilar-item:first-child {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ui-pilar-step-num {
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 800;
	color: var(--bs-color-primary, #3B82F6);
	line-height: 1;
	flex-shrink: 0;
	padding-top: 2px;
}

.ui-pilar-text-pane {
	flex: 1;
	min-width: 0;
}

.ui-pilar-heading {
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 700;
	color: #FFFFFF;
	margin: 0 0 6px;
	line-height: 1.25;
}

.ui-pilar-text {
	font-size: 14.5px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.78);
	margin: 0;
}

/* Fallback / 3-col legacy support */
.ui-pilares-3col-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 3.5vw, 48px);
}

@media (max-width: 768px) {
	.ui-pilares-3col-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
}

.ui-pilar-col {
	display: flex;
	flex-direction: column;
}

.ui-pilar-step-line {
	display: block;
	width: 36px;
	height: 3px;
	background-color: var(--bs-color-primary, #0A58CA);
	margin-bottom: 16px;
}

/* ==========================================================================
   7.5. BANNER EDITORIAL FOTOGRÁFICO: CONOCE LA UNIVERSAL
   ========================================================================== */

.ui-banner-conoce {
	position: relative;
	width: 100%;
	min-height: clamp(520px, 56.25vw, 820px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: #FFFFFF;
	background-color: #0B1320;
	padding: clamp(56px, 7vw, 96px) 0;
}

.ui-banner-conoce-bg {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ui-banner-conoce-picture,
.ui-banner-conoce-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	display: block;
}

.ui-banner-conoce-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(90deg, rgba(11, 19, 32, 0.94) 0%, rgba(11, 19, 32, 0.76) 38%, rgba(11, 19, 32, 0.20) 62%, rgba(11, 19, 32, 0) 84%);
	pointer-events: none;
}

@media (max-width: 768px) {
	.ui-banner-conoce {
		min-height: clamp(420px, 85vw, 560px);
		align-items: flex-end;
	}
	.ui-banner-conoce-overlay {
		background: linear-gradient(180deg, rgba(11, 19, 32, 0.25) 0%, rgba(11, 19, 32, 0.80) 50%, rgba(11, 19, 32, 0.96) 100%);
	}
}

.ui-banner-conoce-container {
	position: relative;
	z-index: 4;
}

.ui-banner-conoce-content {
	max-width: 680px;
}

.ui-banner-conoce-eyebrow {
	display: inline-block;
	font-family: var(--bs-font-heading, system-ui, sans-serif);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--bs-color-primary-light, #93C5FD);
	margin-bottom: 8px;
}

.ui-banner-conoce-title {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(32px, 4.4vw, 54px));
	font-weight: 800;
	line-height: 1.12;
	color: #FFFFFF;
	margin: 8px 0 16px;
	letter-spacing: -0.02em;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

.ui-banner-conoce-desc {
	font-family: var(--bs-font-body, system-ui, sans-serif);
	font-size: clamp(15px, 1.6vw, 18px);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.92);
	margin: 0;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
}

.ui-banner-conoce-play-slot {
	position: absolute;
	top: 50%;
	right: clamp(24px, 8vw, 120px);
	transform: translateY(-50%);
	z-index: 5;
}

.ui-play-circle-btn {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(8px);
	border: 2px solid rgba(255, 255, 255, 0.6);
	color: #FFFFFF;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform 160ms ease, background 160ms ease;
}

.ui-play-circle-btn:hover {
	transform: scale(1.08);
	background: var(--bs-color-primary, #0A58CA);
	border-color: var(--bs-color-primary, #0A58CA);
}

/* ==========================================================================
   8. BLOQUE 7: HOMOLOGACIÓN Y AUTORIZACIÓN PRODUCE (SUPERFICIE CLARA PREMIUM)
   ========================================================================== */

.ui-produce-premium {
	background-color: var(--bs-color-surface, #F8F9FA);
	border-top: 1px solid var(--bs-color-border, #EEF0F2);
	border-bottom: 1px solid var(--bs-color-border, #EEF0F2);
	color: var(--bs-color-heading, #172126);
	padding: clamp(36px, 4vw, 52px) 0;
}

.ui-produce-fullwidth {
	background-color: var(--ui-btn-bg, var(--bs-color-primary, #0A58CA));
	color: #FFFFFF;
	padding: clamp(40px, 5vw, 60px) 0;
}

.ui-produce-flex-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

@media (max-width: 800px) {
	.ui-produce-flex-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
	}
}

.ui-produce-text-col {
	max-width: 760px;
	min-width: 0;
}

.ui-produce-accent {
	color: #DC2626;
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	display: inline-block;
	margin-bottom: 6px;
}

.ui-eyebrow-light {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 8px;
}

.ui-produce-title-dark {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(22px, 2.5vw, 30px));
	font-weight: 700;
	line-height: 1.2;
	color: var(--bs-color-heading, #172126);
	margin: 0 0 8px;
}

.ui-produce-desc-dark {
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--bs-color-text, #4B5563);
	margin: 0;
}

.ui-produce-title-white {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(22px, 2.6vw, 32px));
	font-weight: 700;
	line-height: 1.2;
	color: #FFFFFF;
	margin: 0 0 10px;
}

.ui-produce-desc-white {
	font-size: 14.5px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.9);
	margin: 0;
}

.ui-produce-badge-col {
	flex-shrink: 0;
}

/* Distintivo Oficial PRODUCE desde Medios */
.ui-produce-badge-frame {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	background: #FFFFFF;
	border: 1px solid var(--bs-color-border, #E5E7EB);
	border-radius: var(--bs-btn-radius, var(--bs-border-radius, 8px));
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.ui-produce-official-img {
	display: block;
	width: auto;
	max-width: 280px;
	height: 60px;
	max-height: 60px;
	object-fit: contain;
}

@media (max-width: 640px) {
	.ui-produce-official-img {
		max-width: 220px;
		height: 48px;
	}
}

/* Distintivo Oficial PRODUCE (Fallback) */
.ui-produce-official-badge {
	display: inline-flex;
	align-items: center;
	background: #FFFFFF;
	color: #172126;
	padding: 8px 16px;
	border-radius: 4px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	border: 1px solid var(--bs-color-border, #E5E7EB);
	gap: 12px;
}

.ui-produce-flag-box {
	display: flex;
	align-items: center;
	gap: 2px;
	border-right: 1px solid #E5E7EB;
	padding-right: 12px;
}

.ui-flag-red {
	width: 5px;
	height: 16px;
	background-color: #D91023;
}

.ui-flag-white {
	width: 5px;
	height: 16px;
	background-color: #FFFFFF;
	border: 1px solid #E5E7EB;
}

.ui-flag-text {
	font-family: sans-serif;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #172126;
	margin-left: 4px;
}

.ui-produce-label-box {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}

.ui-produce-inst {
	font-size: 11px;
	color: #4B5563;
}

.ui-produce-inst-sub {
	font-size: 12px;
	font-weight: 700;
	color: #172126;
}

/* ==========================================================================
   9. BLOQUE 8: CIERRE FINAL CON FOTOGRAFÍA REAL Y WHATSAPP DIRECTO
   ========================================================================== */

.ui-cierre-final {
	position: relative;
	background-color: #0B1320;
	color: #FFFFFF;
	padding-top: clamp(64px, 8vw, 100px);
	padding-bottom: 0;
	margin-bottom: 0;
	overflow: hidden;
}

.ui-cierre-center-container {
	position: relative;
	z-index: 3;
	text-align: center;
}

.ui-cierre-center-box {
	max-width: 720px;
	margin: 0 auto clamp(32px, 4vw, 56px);
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ui-cierre-headline {
	font-family: var(--ui-title-font, var(--bs-font-heading, system-ui, sans-serif));
	font-size: var(--ui-title-size-pc, clamp(28px, 3.8vw, 44px));
	font-weight: 700;
	line-height: 1.15;
	color: #FFFFFF;
	margin: 8px 0 14px;
	letter-spacing: -0.015em;
}

.ui-cierre-subtext {
	font-size: clamp(15px, 1.5vw, 17px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 28px;
	max-width: 600px;
}

.ui-cierre-actions {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Cisterna completa sin cortes en la parte superior */
.ui-cierre-vehicle-stage {
	position: relative;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	line-height: 0;
	overflow: hidden;
}

.ui-cierre-vehicle-photo {
	width: 100%;
	height: auto;
	display: block;
	max-height: none !important;
}

.ui-cierre-fade-gradient {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 16%;
	background: linear-gradient(180deg, #0B1320 0%, rgba(11, 19, 32, 0.4) 40%, rgba(11, 19, 32, 0) 100%);
	pointer-events: none;
}

/* Botón WhatsApp — Coherente con las páginas interiores y Bersoft */
.ui-btn-whatsapp-theme {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background-color: var(--ui-btn-bg, var(--bs-color-primary, #0A58CA));
	color: var(--ui-btn-color, #FFFFFF);
	border: 1px solid var(--ui-btn-border, var(--bs-color-primary, #0A58CA));
	border-radius: var(--bs-btn-radius, var(--bs-border-radius, 8px));
	padding: var(--bs-btn-padding-y, 12px) var(--bs-btn-padding-x, 24px);
	font-family: var(--bs-font-body, system-ui, sans-serif);
	font-size: var(--bs-btn-font-size, 15px);
	font-weight: var(--bs-btn-font-weight, 600);
	text-transform: var(--bs-btn-transform, none);
	text-decoration: none;
	cursor: pointer;
	width: auto;
	max-width: 100%;
	min-height: 44px;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.ui-btn-whatsapp-theme:hover,
.ui-btn-whatsapp-theme:focus-visible {
	background-color: var(--ui-btn-bg-hover, var(--bs-color-primary-dark, #073B8A));
	border-color: var(--ui-btn-bg-hover, var(--bs-color-primary-dark, #073B8A));
	color: #FFFFFF;
	box-shadow: 0 4px 12px rgba(10, 88, 202, 0.25);
}

.ui-btn-whatsapp-theme:active {
	transform: scale(0.98);
}

.ui-wa-svg-icon {
	display: inline-block !important;
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	min-height: 20px !important;
	fill: currentColor !important;
	stroke: none !important;
	flex-shrink: 0 !important;
	vertical-align: middle !important;
}

.ui-wa-svg-icon path {
	fill: currentColor !important;
	stroke: none !important;
}

/* ==========================================================================
   10. RESPONSIVE Y PREFERS-REDUCED-MOTION
   ========================================================================== */

@media (max-width: 768px) {
	.ui-section-title {
		font-size: var(--ui-title-size-tab, clamp(22px, 3.5vw, 28px));
	}
	.ui-hero-title {
		font-size: var(--ui-title-size-tab, clamp(28px, 4.2vw, 38px));
	}
}

@media (max-width: 480px) {
	.ui-section-title {
		font-size: var(--ui-title-size-mob, 22px);
	}
	.ui-hero-title {
		font-size: var(--ui-title-size-mob, 26px);
	}
	.ui-btn {
		width: auto;
		max-width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
