@charset "utf-8";

:root {
	--blue: #49A7DE;
	--blue-dark: #2489C6;
	--blue-deep: #1D6D9E;
	--blue-pale: #C1E1F4;
	--gray: #888888;
	--gray-dark: #444444;
	--ink: #273746;
	--muted: #667784;
	--line: #DCE7ED;
	--surface: #FFFFFF;
	--canvas: #F3F7F9;
	--shadow-sm: 0 5px 16px rgba(29, 70, 96, 0.09);
	--shadow-md: 0 16px 40px rgba(29, 70, 96, 0.14);
	--radius-sm: 3px;
	--radius: 5px;
	--radius-lg: 6px;
	--content: 1180px;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body,
div,
section,
article,
header,
footer,
nav,
main,
ul,
ol,
li,
h1,
h2,
h3,
h4,
p,
form,
fieldset {
	margin: 0;
	padding: 0;
}

body {
	min-width: 280px;
	background: var(--canvas);
	color: var(--ink);
	font-family: "Roboto Condensed", sans-serif;
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img {
	display: block;
	max-width: 100%;
	border: 0;
}

ul,
ol {
	list-style: none;
}

a {
	color: inherit;
	text-decoration: none;
}

a,
button,
input[type="button"],
input[type="submit"] {
	cursor: pointer;
}

button,
input,
textarea,
select {
	font: inherit;
}

a,
button,
input,
textarea,
select {
	transition: color 0.2s ease, background-color 0.2s ease,
		border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

:focus-visible {
	outline: 3px solid rgba(73, 167, 222, 0.4);
	outline-offset: 3px;
}

/* Main navigation */
header#tablet,
header#mobile,
nav#mobile {
	display: none;
}

header#desktop {
	position: sticky;
	top: 0;
	z-index: 100;
	min-height: 104px;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid rgba(73, 167, 222, 0.16);
	box-shadow: 0 8px 28px rgba(29, 70, 96, 0.1);
	backdrop-filter: blur(14px);
}

header#desktop #header_wrapper {
	position: relative;
	display: flex;
	align-items: center;
	width: min(calc(100% - 40px), var(--content));
	min-height: 104px;
	margin: 0 auto;
}

header#desktop #detail {
	display: none;
}

header#desktop #logo_wrapper {
	flex: 0 0 185px;
}

header#desktop #logo_wrapper img {
	width: 185px;
	height: auto;
}

header#desktop #user_wrapper {
	position: absolute;
	top: 10px;
	right: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 30px;
	color: var(--muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

header#desktop #login {
	display: flex;
	align-items: center;
	gap: 7px;
}

header#desktop #login a:hover {
	color: var(--blue-deep);
}

header#desktop #login p,
header#desktop #login .especial_sesion,
header#desktop #login a {
	color: inherit;
}

header#desktop #carrito,
header#desktop #carrito_login,
header#desktop #cerrar_sesion,
header#desktop #pago {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 4px 10px;
	border-radius: var(--radius);
	background: var(--canvas);
	color: var(--blue-deep);
}

header#desktop #carrito::before {
	content: "CARRITO";
}

header#desktop #carrito_login::before {
	content: "CARRITO";
	margin-right: 4px;
}

header#desktop #cerrar_sesion::before {
	content: "SALIR";
}

header#desktop #carrito:hover,
header#desktop #carrito_login:hover,
header#desktop #cerrar_sesion:hover,
header#desktop #pago:hover {
	background: var(--blue);
	color: #FFFFFF;
}

header#desktop .cantidad_padre {
	display: none;
}

header#desktop .cantidad {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--blue);
	color: #FFFFFF;
	font-size: 12px;
}

header#desktop nav {
	align-self: flex-end;
	margin-left: auto;
}

header#desktop nav > ul {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: 2px;
}

header#desktop nav > ul > li {
	position: relative;
}

header#desktop nav > ul > li > a {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 18px 10px 14px;
	border-bottom: 3px solid transparent;
	color: var(--gray-dark);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.025em;
	white-space: nowrap;
}

header#desktop nav > ul > li > a p {
	color: inherit;
}

header#desktop nav > ul > li > a img {
	display: none;
}

header#desktop nav > ul > li:hover > a,
header#desktop nav > ul > li.hovering > a,
header#desktop nav > ul > li.active > a {
	border-bottom-color: var(--blue);
	color: var(--blue-deep);
}

header#desktop nav a.buscar {
	width: 42px;
	min-height: 42px;
	margin-left: 5px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--blue);
}

header#desktop nav a.buscar::before {
	content: "";
	width: 14px;
	height: 14px;
	margin: auto;
	border: 2px solid #FFFFFF;
	border-radius: 50%;
}

header#desktop nav a.buscar::after {
	content: "";
	position: absolute;
	right: 11px;
	bottom: 10px;
	width: 7px;
	height: 2px;
	background: #FFFFFF;
	transform: rotate(45deg);
}

header#desktop #hide_buscar {
	display: none;
	position: absolute;
	top: 104px;
	left: 0;
	width: 100%;
	padding: 20px;
	background: var(--surface);
	border-top: 1px solid var(--line);
	box-shadow: var(--shadow-md);
}

header#desktop #container_buscar {
	width: min(100%, 680px);
	margin: 0 auto;
}

#buscador_productos {
	display: flex;
	gap: 10px;
}

#buscador_productos .valor_buscar {
	flex: 1;
}

#submenu_prod,
#submenu_servicios,
#submenu_contacto {
	display: none;
	position: absolute;
	top: 104px;
	left: 0;
	z-index: 110;
	width: 100%;
	background: var(--surface);
	border-top: 1px solid var(--line);
	box-shadow: var(--shadow-md);
}

#submenu_prod > ul,
#submenu_servicios > ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	width: min(calc(100% - 40px), var(--content));
	margin: 0 auto;
	padding: 20px 0;
}

#submenu_prod > ul a,
#submenu_servicios > ul a {
	display: block;
	padding: 10px 16px;
	border-radius: var(--radius);
	background: var(--canvas);
	color: var(--gray-dark);
	font-size: 14px;
	font-weight: 700;
}

#submenu_prod > ul a:hover,
#submenu_servicios > ul a:hover {
	background: var(--blue);
	color: #FFFFFF;
}

.subcategory_options_wrapper {
	display: none;
	position: fixed;
	top: 174px;
	left: 50%;
	z-index: 120;
	width: min(420px, calc(100% - 30px));
	max-height: 360px;
	padding: 10px;
	overflow-y: auto;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-md);
	transform: translateX(-50%);
}

.subcategory_options_wrapper a {
	display: block;
	padding: 10px 12px;
	border-radius: var(--radius-sm);
	color: var(--muted);
	font-size: 14px;
	font-weight: 700;
}

.subcategory_options_wrapper a:hover {
	background: var(--canvas);
	color: var(--blue-deep);
}

#submenu_contacto #container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	width: min(calc(100% - 40px), var(--content));
	margin: 0 auto;
	padding: 28px 0;
}

#submenu_contacto h1,
#contacto h1 {
	margin-bottom: 16px;
	color: var(--gray-dark);
	font-size: 22px;
	font-weight: 300;
}

#submenu_contacto h1 span,
#contacto h1 span {
	color: var(--blue-deep);
	font-weight: 700;
}

#submenu_contacto #info,
#submenu_contacto form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 18px;
}

#submenu_contacto p {
	margin-bottom: 5px;
	color: var(--gray);
	font-size: 14px;
}

#submenu_contacto p span,
#submenu_contacto p a {
	color: var(--ink);
}

/* Page shell and hero */
#wrapper_body {
	width: 100%;
	overflow: hidden;
}

#background #wrapper_body {
	background: var(--canvas) !important;
}

#main_container {
	width: min(calc(100% - 40px), var(--content));
	margin: 0 auto;
	padding: 54px 0 72px;
}

#banner_alternativo {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 220px;
	padding: 44px max(20px, calc((100% - var(--content)) / 2));
	overflow: hidden;
	background: linear-gradient(135deg, var(--blue-deep), var(--blue));
}

#banner_alternativo::after {
	content: "";
	position: absolute;
	right: -90px;
	bottom: -150px;
	width: 380px;
	height: 380px;
	border: 65px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
}

#banner_alternativo #title {
	position: relative;
	z-index: 1;
}

#banner_alternativo h1 {
	max-width: 760px;
	color: #FFFFFF;
	font-size: clamp(36px, 5vw, 66px);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.035em;
}

#banner_alternativo h1 span {
	color: #FFFFFF;
	font-weight: 700;
}

#banner_alternativo #detail,
#banner_footer {
	display: none;
}

section.page,
#main_container > section {
	width: 100%;
}

section > #header,
#productos > #header,
#servicios > #header,
#nosotros > #header,
#programas > #header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 28px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}

section > #header #title h2,
#titles h2,
#home #titles h2 {
	color: var(--ink);
	font-size: clamp(27px, 3vw, 38px);
	font-weight: 700;
	line-height: 1.05;
}

section > #header .subtitle,
#titles .subtitle,
#home #titles .subtitle {
	margin-top: 5px;
	color: var(--blue-deep);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

section > #header #icon {
	width: 44px;
	height: 5px;
	border-radius: var(--radius);
	background: var(--blue);
}

/* Slider — banners include baked-in copy, so they must stay fully visible */
#slider_wrapper {
	width: 100%;
	max-height: 400px;
	overflow: hidden;
	background: var(--gray-dark);
}

#slider_wrapper .banner {
	position: relative;
	width: 100% !important;
	overflow: hidden;
}

#slider_wrapper .banner > ul,
#slider_wrapper .banner > ul > li {
	height: clamp(180px, 21vw, 400px);
	min-height: 0;
}

#slider_wrapper .banner > ul > li {
	float: left;
	width: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100% 100%;
}

#slider_wrapper .dots {
	position: absolute;
	right: 0;
	bottom: 24px;
	left: 0;
	display: flex;
	justify-content: center;
	gap: 8px;
}

#slider_wrapper .dots li {
	width: 9px;
	height: 9px;
	overflow: hidden;
	border: 1px solid #FFFFFF;
	border-radius: 50%;
	color: transparent;
}

#slider_wrapper .dots li.active {
	background: #FFFFFF;
}

#slider_wrapper_mobile {
	display: none;
}

/* Common section blocks and pagination */
#home .subsection,
#nosotros > div,
#productos > div,
#servicios > div,
#programas > div {
	margin-bottom: 48px;
}

#home [id^="page_container_"],
#productos [id^="page_container_"],
#nosotros [id^="page_container_"],
.page_events [id^="page_container_"] {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	column-gap: 16px;
}

#home [id^="page_container_"] > #titles,
#productos [id^="page_container_"] > #titles,
#nosotros [id^="page_container_"] > #titles,
.page_events [id^="page_container_"] > #titles {
	grid-column: 1;
	margin-bottom: 0;
}

#home [id^="page_container_"] > .page_navigation,
#productos [id^="page_container_"] > .page_navigation,
#nosotros [id^="page_container_"] > .page_navigation,
.page_events [id^="page_container_"] > .page_navigation {
	grid-column: 2;
	grid-row: 1;
}

#home [id^="page_container_"] > ul.content,
#productos [id^="page_container_"] > ul.content,
#nosotros [id^="page_container_"] > ul.content,
.page_events [id^="page_container_"] > ul.content {
	grid-column: 1 / -1;
	margin-top: 22px;
}

#page_container_productos {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

#page_container_productos > #combo_categoria {
	grid-column: 1;
	grid-row: 1;
}

#page_container_productos > #combo_subcategoria {
	grid-column: 2;
	grid-row: 1;
}

#page_container_productos > #options_categoria,
#page_container_productos > #options_subcategoria {
	grid-column: 1 / -1;
}

#productos #page_container_productos > .page_navigation,
#page_container_productos > .page_navigation {
	grid-column: 1 / -1 !important;
	grid-row: auto !important;
	align-self: start;
	justify-content: flex-end;
	margin: 8px 0 12px;
}

#page_container_productos > ul.content {
	grid-column: 1 / -1;
}

.page_navigation {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin: 0;
	min-height: 38px;
}

.page_navigation .first_link,
.page_navigation .last_link {
	display: none !important;
}

.page_navigation .ellipse {
	width: 18px;
	color: var(--muted);
	font-size: 16px;
	line-height: 1;
	text-align: center;
}

.page_navigation .next_link,
.page_navigation .previous_link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: var(--surface);
	box-shadow: var(--shadow-sm);
	color: transparent;
	font-size: 0;
}

.page_navigation .next_link::before,
.page_navigation .previous_link::before {
	color: var(--ink);
	font-size: 22px;
	line-height: 1;
}

.page_navigation .next_link::before {
	content: "›";
}

.page_navigation .previous_link::before {
	content: "‹";
}

.page_navigation .next_link:hover,
.page_navigation .previous_link:hover {
	border-color: var(--blue);
	background: var(--blue);
}

.page_navigation .next_link:hover::before,
.page_navigation .previous_link:hover::before {
	color: #FFFFFF;
}

.page_navigation .page_link {
	display: inline-flex;
	width: 10px;
	height: 10px;
	min-width: 10px;
	overflow: hidden;
	border-radius: 50%;
	background: #C5D4DC;
	color: transparent;
	font-size: 0;
}

.page_navigation .active_page {
	background: var(--blue);
	color: transparent;
}

/* Home cards */
#home ul.content,
#home #page_container_news ul.content,
#home #page_container_events ul.content {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 22px;
}

#home #page_container_cursos ul.content,
#home #page_container_descargables ul.content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

#home ul.content > li {
	min-width: 0;
}

#home article,
#home ul.content > li > div,
.page_events ul.content > li,
#programas article {
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#home article {
	display: flex;
	flex-direction: column;
}

#home article #image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--canvas);
}

#home article #image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#home article #text {
	flex: 1;
	padding: 22px;
}

#home article h3,
#home ul.content h3 {
	margin-bottom: 10px;
	color: var(--ink);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}

#home article p,
#home ul.content p {
	color: var(--muted);
}

#home article .button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 22px 22px;
	padding: 12px 15px;
	border-radius: var(--radius-sm);
	background: var(--blue);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
}

#home article .button p {
	color: #FFFFFF;
}

#home article .button:hover,
#home a.button:hover {
	background: var(--blue-deep);
	transform: translateY(-2px);
}

#home a.button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 22px 22px;
	padding: 12px 16px;
	border-radius: var(--radius-sm);
	background: var(--blue);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
}

#home a.button p,
#home a.button #button_text,
#home a.button #date,
#home a.button #button_wrapper {
	color: #FFFFFF;
}

#home a.button img {
	display: none;
}

#home #page_container_events ul.content > li {
	display: grid;
	grid-template-columns: minmax(220px, 34%) 1fr;
	padding: 0;
}

#home #page_container_events #event_image {
	min-height: 240px;
	background: var(--canvas);
}

#home #page_container_events #event_image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#home #page_container_events article {
	border: 0;
	box-shadow: none;
}

#home #page_container_events a.button {
	grid-column: 1 / -1;
	margin: 0;
	border-radius: 0 0 var(--radius) var(--radius);
}

#home #page_container_cursos ul.content > li,
#home #page_container_descargables ul.content > li {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}

#home #page_container_cursos ul li #image,
#home #page_container_descargables ul li #image {
	min-height: 180px;
	background-size: cover !important;
	background-position: center !important;
}

#home #page_container_cursos article,
#home #page_container_descargables article {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin-top: 0 !important;
	padding: 22px;
	border: 0;
	box-shadow: none;
}

#home #page_container_cursos article #title,
#home #page_container_descargables article #title {
	margin-bottom: 12px;
}

#home #page_container_cursos article #title h2,
#home #page_container_cursos article #title span {
	display: inline;
	color: var(--ink);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}

#home #page_container_cursos article #text,
#home #page_container_descargables article #text {
	flex: 1;
	padding: 0 0 16px;
}

#home #page_container_cursos a.button,
#home #page_container_descargables a.button {
	margin: 0;
	align-self: flex-start;
}

/* Product catalog */
#productos #catalogo {
	position: relative;
}

#combo_categoria,
#combo_subcategoria,
#combo_tipo,
#nosotros #ubicanos #combo,
#equipos_combo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 52px;
	margin-bottom: 12px;
	padding: 0 18px;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
	color: var(--ink);
	font-weight: 700;
}

#combo_categoria p,
#combo_subcategoria p,
#combo_tipo p,
#nosotros #ubicanos #combo p {
	color: inherit;
}

#combo_categoria img,
#combo_subcategoria img,
#combo_tipo img,
#nosotros #ubicanos #combo img {
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--blue);
	border-bottom: 2px solid var(--blue);
	transform: rotate(45deg);
}

#options_categoria,
#options_subcategoria,
#options_tipo,
#nosotros #ubicanos #options,
#equipos_options,
#unidades_options {
	display: none;
	position: relative;
	z-index: 10;
	margin: -7px 0 14px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--surface);
	box-shadow: var(--shadow-md);
}

#options_categoria a,
#options_subcategoria a,
#options_tipo a,
#nosotros #ubicanos #options a,
#equipos_options a,
#unidades_options a {
	display: block;
	padding: 10px 12px;
	border-radius: 6px;
	color: var(--muted);
}

#options_categoria a:hover,
#options_subcategoria a:hover,
#options_tipo a:hover,
#nosotros #ubicanos #options a:hover,
#equipos_options a:hover,
#unidades_options a:hover {
	background: var(--canvas);
	color: var(--blue-deep);
}

#productos #catalogo ul.content_prod {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

#productos #catalogo ul.content_prod > li {
	display: grid;
	grid-template-columns: 210px minmax(0, 1fr);
	align-items: stretch;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#productos #catalogo ul.content_prod > li:hover {
	border-color: rgba(73, 167, 222, 0.55);
	box-shadow: var(--shadow-md);
	transform: translateY(-3px);
}

#productos #catalogo ul.content_prod > li #image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	padding: 18px;
	background: #FFFFFF;
}

#productos #catalogo ul.content_prod > li #image img {
	width: 100%;
	max-height: 190px;
	object-fit: contain;
}

#productos #catalogo ul.content_prod > li #details {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	padding: 22px 22px 20px;
}

#productos #catalogo ul.content_prod > li h3 {
	margin-bottom: 10px;
	color: var(--blue-deep);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
}

#productos #catalogo ul.content_prod > li p {
	flex: 1;
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	color: var(--muted);
	line-height: 1.45;
}

#productos #catalogo ul.content_prod > li a {
	margin-top: 16px;
	padding: 10px 17px;
	border-radius: var(--radius);
	background: var(--blue);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
}

#productos #catalogo ul.content_prod > li a:hover {
	background: var(--blue-deep);
}

#productos h1.ausencia,
p.no_registros {
	grid-column: 1 / -1;
	padding: 30px;
	border: 1px dashed var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--muted);
	text-align: center;
}

#productos #ofertas ul.content {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
}

#productos #ofertas li {
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#productos #ofertas li img {
	width: 100%;
	max-height: 320px;
	object-fit: contain;
	background: #FFFFFF;
}

/* Services */
#servicios #filtros {
	position: relative;
	display: grid;
	grid-template-columns: minmax(240px, 1fr) auto;
	align-items: center;
	gap: 18px;
}

#servicios #instrucciones {
	color: var(--muted);
	text-align: right;
}

#servicios #content {
	display: grid;
	gap: 26px;
}

#servicios #content > #item {
	display: grid;
	grid-template-columns: minmax(260px, 38%) 1fr;
	min-height: 340px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#servicios #content > #item > #image {
	min-height: 340px;
	background-position: center;
	background-size: cover;
}

#servicios #content > #item > #image > #text {
	display: flex;
	align-items: flex-end;
	width: 100%;
	height: 100%;
	padding: 24px;
}

#servicios #content > #item > #image h3 {
	color: #FFFFFF;
	font-size: 26px;
	font-weight: 300;
	line-height: 1.1;
}

#servicios #content > #item > #image h3 span {
	color: #FFFFFF;
	font-weight: 700;
}

#servicios #content > #item > #text {
	padding: 30px;
}

#servicios #content article {
	height: auto !important;
	overflow: visible !important;
}

#servicios #content article p {
	color: var(--muted);
}

#trap_top,
#trap_bottom {
	display: none;
}

.scroll-pane,
.jspContainer,
.jspPane {
	position: static !important;
	width: 100% !important;
	height: auto !important;
	overflow: visible !important;
}

.jspVerticalBar,
.jspHorizontalBar {
	display: none !important;
}

/* About and contact */
#nosotros #historia {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#nosotros #historia article {
	padding: clamp(26px, 5vw, 58px);
}

#nosotros #historia article p,
#nosotros #empresas article p {
	color: var(--muted);
	font-size: 18px;
}

#nosotros #historia #img {
	min-height: 280px;
	background-color: #FFFFFF;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

#nosotros #empresas {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

#nosotros #empresas > #item,
#nosotros #ubicacion > #item,
#nosotros #empleo {
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#nosotros #empresas article {
	margin-top: 18px;
}

#nosotros #empleos {
	margin-top: 18px;
}

#nosotros #empleos h3 {
	margin-bottom: 8px;
	color: var(--ink);
	font-size: 20px;
}

#nosotros #empleos > p {
	margin-bottom: 16px;
	color: var(--muted);
}

#nosotros #empleos form,
#nosotros form#form_empleo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

#nosotros #empleos form input,
#nosotros form#form_empleo input {
	width: 100%;
	margin: 0;
}

#nosotros #empleos #curriculum,
#nosotros form #curriculum {
	display: flex;
	grid-column: 1;
	align-items: stretch;
	gap: 8px;
}

#nosotros #empleos .cv_txt,
#nosotros form #curriculum .cv_txt {
	flex: 1;
	min-width: 0;
}

#nosotros #empleos .cv_button,
#nosotros form #curriculum .cv_button {
	flex: 0 0 48px;
	width: 48px;
	min-height: 48px;
	padding: 0;
	border-radius: var(--radius-sm);
	background: var(--blue-dark);
	color: transparent;
	font-size: 0;
}

#nosotros #empleos .cv_button::before,
#nosotros form #curriculum .cv_button::before {
	content: "CV";
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
}

#nosotros #empleos .input_button,
#nosotros form#form_empleo .input_button {
	grid-column: 2;
	width: 100%;
}

#nosotros #page_container_marcas {
	grid-template-columns: minmax(0, 1fr);
}

#nosotros #page_container_marcas > .page_navigation {
	display: none;
}

#nosotros #marcas_viewport,
#nosotros .marcas-belt {
	grid-column: 1 / -1;
	overflow: hidden;
	width: 100%;
	margin-top: 18px;
	padding: 28px 0;
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

@keyframes medex-marcas-belt {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

#nosotros .marcas-track {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center;
	justify-content: flex-start !important;
	width: max-content !important;
	max-width: none !important;
	margin: 0;
	padding: 0;
	gap: 80px;
	list-style: none;
	animation: medex-marcas-belt 32s linear infinite;
	will-change: transform;
}

#nosotros .marcas-belt:hover .marcas-track {
	animation-play-state: paused;
}

#nosotros .marcas-track > li {
	display: flex !important;
	flex: 0 0 auto !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: 0;
	min-height: 0;
	padding: 0 !important;
	overflow: visible !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

#nosotros .marcas-track img {
	display: block;
	width: auto !important;
	max-width: 240px !important;
	height: auto !important;
	max-height: 110px !important;
	object-fit: contain;
}

#nosotros #ubicanos #text {
	padding: 22px 0;
}

#nosotros #ubicanos #text h3 {
	margin-bottom: 8px;
	color: var(--ink);
	font-size: 24px;
}

#nosotros #ubicanos #text p {
	color: var(--muted);
}

#nosotros #ubicanos #map {
	display: flex;
	align-items: flex-end;
	min-height: 280px;
	padding: 20px;
	border-radius: var(--radius);
	background-position: center;
	background-size: cover;
}

#nosotros #ubicanos #map a {
	padding: 11px 16px;
	border-radius: var(--radius);
	background: var(--blue);
	color: #FFFFFF;
	font-weight: 700;
}

#contacto #container {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 24px;
}

#contacto #info_wrapper,
#contacto #form_wrapper {
	padding: clamp(26px, 4vw, 44px);
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#contacto #info {
	display: grid;
	gap: 8px;
}

#contacto #info p {
	margin-bottom: 8px;
	color: var(--gray);
}

#contacto #info p span,
#contacto #info p a {
	color: var(--ink);
}

#contacto form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

/* Forms and buttons */
.input_txt,
.textarea_txt,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
textarea,
select {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: #FFFFFF;
	color: var(--ink);
}

textarea,
.textarea_txt {
	min-height: 120px;
	resize: vertical;
}

.input_txt:focus,
.textarea_txt:focus,
input:focus,
textarea:focus,
select:focus {
	border-color: var(--blue);
	box-shadow: 0 0 0 4px rgba(73, 167, 222, 0.14);
}

.input_button,
input[type="button"],
input[type="submit"],
a.button {
	min-height: 46px;
	padding: 11px 20px;
	border: 0;
	border-radius: var(--radius);
	background: var(--blue);
	color: #FFFFFF;
	font-weight: 700;
}

.input_button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
a.button:hover {
	background: var(--blue-deep);
	box-shadow: 0 8px 18px rgba(29, 109, 158, 0.22);
	transform: translateY(-1px);
}

#cantidad_carrito_form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
}

#cantidad_carrito_form input[type="text"] {
	width: 92px;
	min-height: 42px;
}

#cantidad_carrito_form #precio_txt {
	display: none !important;
}

#cantidad_carrito_form #combo_unidades {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 8px 14px;
	border-radius: var(--radius);
	background: #E8F4FB;
	color: var(--blue-deep);
	font-weight: 700;
}

#cantidad_carrito_form #combo_unidades img {
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--blue);
	border-bottom: 2px solid var(--blue);
	transform: rotate(45deg);
}

#cantidad_carrito_form .input_button {
	min-height: 42px;
	padding: 10px 16px;
}

/* News/event listings, user pages, cart and generic legacy sections */
.page_events ul.content,
#eventos ul.content,
#noticias ul.content,
#carrito ul.content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.page_events ul.content > li,
#eventos ul.content > li,
#noticias ul.content > li,
#carrito ul.content > li {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#pop_wrapper,
#mobile_producto {
	width: min(100%, 520px);
	padding: 32px 28px 24px;
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-md);
}

#mobile_producto #img img {
	width: 100%;
	max-height: 320px;
	object-fit: contain;
	margin: 0 auto 16px;
	background: var(--canvas);
}

#mobile_producto a.ficha,
#thickbox_producto a.ficha {
	display: inline-block;
	margin-bottom: 12px;
	color: var(--blue-deep);
	font-size: 14px;
	font-weight: 700;
}

#thickbox_producto {
	display: grid;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
	width: 100%;
	max-width: 920px;
	min-height: 420px;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 0;
	background: #FFFFFF;
	box-shadow: none;
}

#thickbox_producto #img {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	background: var(--canvas);
}

#thickbox_producto #img img {
	display: block;
	width: 100%;
	height: 360px;
	max-height: 46vh;
	padding: 28px 24px 12px;
	object-fit: contain;
}

#thickbox_producto #img a.ficha {
	display: block;
	margin: auto 0 0;
	padding: 12px 16px;
	background: #49A7DE;
	color: #FFFFFF;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
}

#thickbox_producto #img a.ficha:hover {
	background: var(--blue-deep);
}

#thickbox_producto article {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 28px 36px 24px;
}

#thickbox_producto article h1 {
	margin: 0 0 6px;
	color: var(--ink);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.15;
}

#thickbox_producto article p.subtitle {
	margin: 0;
	color: var(--muted);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.02em;
}

#thickbox_producto article #texto {
	height: 168px;
	margin-top: 16px;
	overflow: auto;
}

#thickbox_producto article #texto p {
	color: var(--muted);
	font-size: 16px;
	line-height: 1.45;
}

#pop_wrapper #title {
	margin-bottom: 18px;
}

#pop_wrapper #title h1 {
	margin: 0 0 4px;
	color: var(--ink);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.15;
}

#pop_wrapper #title h2,
#pop_wrapper .instructions {
	margin: 0;
	color: var(--muted);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
}

#pop_wrapper #title br {
	display: none;
}

#pop_wrapper,
#pop_wrapper input,
#pop_wrapper select,
#pop_wrapper .input_button {
	font-family: "Roboto Condensed", sans-serif;
	font-size: 16px;
}

#pop_wrapper #combo_registro,
#pop_wrapper select {
	width: 100%;
	min-height: 48px;
	margin-bottom: 10px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: #FFFFFF;
	color: var(--ink);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	appearance: none;
	-webkit-appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, #667784 50%), linear-gradient(135deg, #667784 50%, transparent 50%);
	background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

#pop_wrapper form {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 14px 58px;
	gap: 10px;
	margin-top: 4px;
}

#pop_wrapper form > * {
	grid-column: 1 / -1;
	width: 100% !important;
	margin: 0 !important;
}

#pop_wrapper form #status_combo {
	grid-column: 1;
	min-width: 0;
	margin: 0 !important;
}

#pop_wrapper form #cedula_txt,
#pop_wrapper form #rif_juridica_txt {
	grid-column: 2;
}

#pop_wrapper form .doc_sep {
	grid-column: 3;
	align-self: center;
	color: #878787;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

#pop_wrapper form #digito_cedula_txt,
#pop_wrapper form #digito_rif_txt {
	grid-column: 4;
	text-align: center;
}

#pop_wrapper a.recuperate {
	display: block;
	margin-top: 14px;
	color: var(--blue-deep);
	font-size: 14px;
	font-weight: 700;
	text-align: center;
}

#pop_wrapper a.recuperate:hover {
	color: var(--blue);
}

#TB_overlay {
	position: fixed !important;
	background: #273746 !important;
	opacity: 0.52 !important;
}

#TB_HideSelect {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

#TB_window {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	overflow: visible;
	border-radius: var(--radius);
	box-shadow: var(--shadow-md) !important;
	transform: translate(-50%, -50%);
}

#TB_window:has(#thickbox_producto),
#TB_window:has(#pop_wrapper) {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	width: min(920px, calc(100vw - 40px)) !important;
	height: auto !important;
	max-height: calc(100vh - 40px);
	overflow: hidden;
	transform: translate(-50%, -50%);
}

#TB_window:has(#pop_wrapper) {
	width: min(520px, calc(100vw - 32px)) !important;
}

#TB_window #pop_wrapper {
	width: 100%;
	max-width: none;
	border: 0;
	box-shadow: none;
}

#TB_window:has(#thickbox_producto) #TB_ajaxContent,
#TB_window:has(#pop_wrapper) #TB_ajaxContent {
	width: auto !important;
	height: auto !important;
	max-height: calc(100vh - 40px);
	overflow: auto;
	padding: 0 !important;
}

#TB_window:has(#thickbox_producto) #TB_title,
#TB_window:has(#pop_wrapper) #TB_title {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 20;
	width: 48px;
	height: 48px;
}

#TB_closeAjaxWindow,
#TB_closeWindow {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 21;
	width: 36px;
	height: 36px;
	padding: 0;
	margin: 0;
}

#contenedor_x,
#TB_closeWindowButton {
	display: flex !important;
	align-items: center;
	justify-content: center;
	float: none !important;
	width: 36px !important;
	height: 36px !important;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 50%;
	background: #273746 !important;
	background-image: none !important;
	color: #FFFFFF;
	font-size: 0;
	line-height: 1;
}

#contenedor_x::after,
#TB_closeWindowButton::after {
	content: "\00d7";
	color: #FFFFFF;
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
}

#contenedor_x:hover,
#TB_closeWindowButton:hover {
	background: #49A7DE !important;
	background-image: none !important;
}

/* Formación */
#formacion_home {
	width: min(calc(100% - 40px), var(--content));
	margin: 0 auto;
	padding: 64px 0 76px;
}

#formacion_home #text,
#formacion_home #impact {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

#formacion_home article {
	min-height: 260px;
	padding: clamp(26px, 4vw, 42px);
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#formacion_home article h2,
#formacion_home article h3 {
	margin-bottom: 15px;
	color: var(--ink);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.1;
}

#formacion_home article p {
	color: var(--muted);
}

#programas #catalogo_programas #wrapper_items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

#programas #catalogo_programas article {
	display: flex;
	flex-direction: column;
	min-height: 260px;
	padding: 28px;
}

#programas #catalogo_programas article #content {
	flex: 1;
}

#programas #catalogo_programas article h2,
#programas #catalogo_programas article h3 {
	margin-bottom: 12px;
	color: var(--ink);
	font-size: 24px;
	font-weight: 700;
}

/* Formación editorial layout */
#formacion_home #text,
#formacion_home #impact {
	display: block;
	margin-bottom: 28px;
}

#formacion_home #text #item {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#formacion_home #text #item > article {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 390px;
	border-radius: 0;
	box-shadow: none;
}

#formacion_home #text #item > img {
	width: 100%;
	height: 100%;
	max-height: 360px;
	min-height: 260px;
	object-fit: contain;
	background: #FFFFFF;
}

#formacion_home #impact {
	display: flex;
	align-items: flex-end;
	min-height: 430px;
	padding: 34px;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-position: center;
	background-size: cover;
	box-shadow: var(--shadow-md);
}

#formacion_home #impact article {
	width: min(100%, 540px);
	min-height: 0;
	padding: 30px;
	background: rgba(39, 55, 70, 0.88);
	backdrop-filter: blur(8px);
}

#formacion_home #impact article h2,
#formacion_home #impact article p {
	color: #FFFFFF;
}

#formacion_home #impact article a,
#programas article a.arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 18px;
	padding: 11px 18px;
	border-radius: var(--radius);
	background: var(--blue);
	color: #FFFFFF;
	font-weight: 700;
}

#programas #catalogo_programas article #content {
	width: auto !important;
}

#programas article a.arrow {
	align-self: flex-start;
	width: 44px;
	height: 44px;
	padding: 0;
	font-size: 25px;
}

/* Cart rows */
.page_cart #page_container_productos,
.page_cart #page_container_servicios {
	padding: 26px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

.page_cart #tag_carrito {
	margin-bottom: 16px;
	color: var(--ink);
	font-size: 18px;
	font-weight: 700;
}

.page_cart #carrito_cotizacion_button,
.page_cart #carrito_borrar_button {
	display: inline-flex;
	margin: 0 8px 18px 0;
	padding: 10px 16px;
	border-radius: var(--radius);
	background: var(--blue);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
}

.page_cart #carrito_borrar_button {
	background: var(--gray-dark);
}

.page_cart ul.content,
.page_events.page_cart ul.content {
	display: flex;
	flex-direction: column;
	grid-template-columns: none;
	gap: 12px;
}

.page_cart ul.content > li,
.page_events.page_cart ul.content > li {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) 118px 40px;
	align-items: center;
	gap: 16px;
	min-height: 0;
	padding: 14px 16px;
	overflow: hidden;
}

.page_cart ul.content > li > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 92px;
	height: 92px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #F7FBFE;
}

.page_cart ul.content > li img {
	width: 100%;
	height: 100%;
	max-height: 76px;
	object-fit: contain;
}

.page_cart .carrito_item_info {
	min-width: 0;
}

.page_cart .carrito_item_info h3 {
	margin: 0 0 4px;
	color: var(--ink);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.25;
}

.page_cart .carrito_item_info p {
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	font-weight: 700;
}

.page_cart #delete_cart_button {
	width: 36px;
	min-height: 36px;
	padding: 0;
	border: 0;
	border-radius: var(--radius);
	background: #273746;
	color: #FFFFFF;
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.page_cart #delete_cart_button:hover {
	background: #EB2E42;
	transform: none;
}

.page_cart #form_editar_carrito {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	width: 100%;
	margin: 0;
}

.page_cart .carrito_cant_label {
	color: var(--muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.page_cart .input_editar_cantidad_producto {
	width: 72px;
	min-height: 40px;
	text-align: center;
}

.page_cart #detail_p {
	margin-top: 14px;
	color: var(--muted);
	font-size: 13px;
}

/* Technical service and warranty forms */
#servicios #content > form {
	width: 100%;
	padding: clamp(22px, 4vw, 44px);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

#encabezado_servicio_tecnico {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

#encabezado_servicio_tecnico #area {
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--canvas);
}

#encabezado_servicio_tecnico #area > #title,
#encabezado_servicio_tecnico #title_blue,
#contenido_servicio_tecnico #item > #title {
	margin-bottom: 16px;
	color: var(--blue-deep);
	font-weight: 700;
}

#encabezado_servicio_tecnico #details,
#contenido_servicio_tecnico #datos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

#encabezado_servicio_tecnico #description {
	display: grid;
	gap: 10px;
}

#contenido_servicio_tecnico {
	display: grid;
	gap: 22px;
	margin-top: 24px;
}

#contenido_servicio_tecnico #item {
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--canvas);
}

#contenido_servicio_tecnico textarea {
	grid-column: 1 / -1;
}

.tipo_servicio_seleccionar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	grid-column: 1 / -1;
}

.tipo_servicio_seleccionar #tipo_servicio {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 7px 10px;
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--muted);
}

.tipo_servicio_seleccionar .radio_input {
	width: 18px;
	min-height: 18px;
	padding: 0;
	border: 3px solid var(--line);
	border-radius: 50%;
	background: var(--surface);
}

.tipo_servicio_seleccionar .radio_input.selected {
	border-color: var(--blue);
	background: var(--blue);
}

#final_servicio_tecnico {
	margin-top: 22px;
}

/* News and event cards */
#eventos ul.content,
#noticias ul.content {
	align-items: start;
}

#eventos ul.content > li,
#noticias ul.content > li {
	display: flex;
	flex-direction: column;
	width: 100%;
}

#eventos #event_image,
#noticias #news_image,
#noticias article #img,
#eventos article #img,
#eventos li > img,
#noticias li > img {
	width: 100%;
	aspect-ratio: 16 / 8;
	overflow: hidden;
	background: var(--canvas);
}

#eventos #event_image img,
#noticias #news_image img,
#noticias article #img img,
#eventos article #img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#eventos article,
#noticias article {
	flex: 1;
	padding: 24px;
}

#eventos article h3,
#noticias article h3 {
	margin-bottom: 10px;
	color: var(--ink);
	font-size: 24px;
	line-height: 1.15;
}

#eventos article p,
#noticias article p {
	color: var(--muted);
}

#eventos a.button,
#noticias a.button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 24px 24px;
	padding: 11px 15px;
}

#eventos a.button p,
#noticias a.button p {
	color: #FFFFFF;
}

/* Footer */
footer#mobile {
	display: none;
}

footer#desktop {
	background: var(--gray-dark);
	color: #FFFFFF;
}

footer#desktop #content {
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: center;
	gap: 28px;
	width: min(calc(100% - 40px), var(--content));
	min-height: 104px;
	margin: 0 auto;
	padding: 22px 0;
}

footer#desktop #left,
footer#desktop #redes,
footer#desktop #encore {
	display: flex;
	align-items: center;
	gap: 12px;
}

footer#desktop p {
	color: rgba(255, 255, 255, 0.76);
	font-size: 13px;
}

footer#desktop #left img {
	display: none;
}

footer#desktop #redes a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 50%;
	color: #FFFFFF;
}

footer#desktop #redes a.twitter::before {
	content: "X";
}

footer#desktop #redes a.facebook::before {
	content: "f";
	font-weight: 700;
}

footer#desktop #redes a:hover {
	border-color: var(--blue);
	background: var(--blue);
}

footer#desktop #encore {
	flex-direction: row-reverse;
}

footer#desktop #encore img {
	max-width: 100px;
	max-height: 32px;
	object-fit: contain;
}

@media (max-width: 1000px) {
	header#desktop nav > ul > li > a {
		padding-right: 7px;
		padding-left: 7px;
		font-size: 13px;
	}

	#home #page_container_cursos ul.content,
	#home #page_container_descargables ul.content,
	#programas #catalogo_programas #wrapper_items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (max-width: 900px) {
	header#desktop,
	header#tablet {
		display: none !important;
	}

	header#mobile {
		position: sticky;
		top: 0;
		z-index: 100;
		display: block;
		height: 72px;
		background: rgba(255, 255, 255, 0.98);
		border-bottom: 1px solid var(--line);
		box-shadow: 0 7px 22px rgba(29, 70, 96, 0.12);
	}

	header#mobile #container {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: min(calc(100% - 30px), var(--content));
		height: 72px;
		margin: 0 auto;
	}

	header#mobile #logo img {
		width: auto;
		max-width: 175px;
		max-height: 44px;
	}

	header#mobile #menu {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border-radius: 50%;
		background: var(--blue);
	}

	header#mobile #menu img {
		position: absolute;
		opacity: 0;
	}

	header#mobile #menu::before {
		content: "";
		width: 18px;
		height: 2px;
		background: #FFFFFF;
		box-shadow: 0 -6px 0 #FFFFFF, 0 6px 0 #FFFFFF;
	}

	nav#mobile {
		position: fixed;
		top: 0;
		right: -280px;
		z-index: 200;
		display: block;
		width: 280px;
		height: 100vh;
		height: 100dvh;
		overflow-y: auto;
		background: var(--gray-dark);
		box-shadow: -16px 0 40px rgba(0, 0, 0, 0.2);
	}

	nav#mobile > ul {
		padding: 24px 16px;
	}

	nav#mobile li a {
		display: block;
		padding: 13px 15px;
		border-radius: var(--radius-sm);
		color: rgba(255, 255, 255, 0.78);
		font-weight: 700;
	}

	nav#mobile li a:hover,
	nav#mobile li.active a {
		background: var(--blue);
		color: #FFFFFF;
	}

	nav#mobile #mas_opciones {
		position: absolute;
		top: 0;
		right: -280px;
		width: 280px;
		min-height: 100%;
		padding: 24px 16px;
		background: var(--gray-dark);
	}

	.subcategory_options_wrapper {
		display: none !important;
	}

	#main_container {
		width: min(calc(100% - 30px), var(--content));
		padding: 42px 0 58px;
	}

	#banner_alternativo {
		min-height: 180px;
	}

	#submenu_contacto {
		display: none !important;
	}

	#home ul.content,
	#home #page_container_cursos ul.content,
	#home #page_container_descargables ul.content {
		grid-template-columns: minmax(0, 1fr);
	}

	#page_container_productos {
		grid-template-columns: minmax(0, 1fr);
	}

	#page_container_productos > #combo_categoria,
	#page_container_productos > #combo_subcategoria,
	#page_container_productos > .page_navigation {
		grid-column: 1;
		grid-row: auto;
	}

	#page_container_productos > .page_navigation {
		justify-content: flex-start;
		margin: 4px 0 8px;
	}

	#nosotros #historia,
	#servicios #content > #item {
		grid-template-columns: 1fr;
	}

	#nosotros #historia #img {
		min-height: 280px;
	}

	#servicios #content > #item > #image {
		min-height: 280px;
	}

	#contacto #container {
		grid-template-columns: 1fr;
	}

	#formacion_home #text #item {
		grid-template-columns: 1fr;
	}

	#formacion_home #text #item > article,
	#formacion_home #text #item > img {
		min-height: 320px;
	}

	.page_cart ul.content > li,
	.page_events.page_cart ul.content > li {
		grid-template-columns: 72px minmax(0, 1fr) 96px 36px;
		gap: 12px;
	}

	#encabezado_servicio_tecnico {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	#slider_wrapper {
		display: none;
	}

	#slider_wrapper_mobile {
		display: block;
	}

	#slider_wrapper_mobile .banner > ul {
		aspect-ratio: 3 / 4;
	}

	#banner_alternativo {
		min-height: 150px;
		padding-right: 20px;
		padding-left: 20px;
	}

	#home ul.content,
	#home #page_container_cursos ul.content,
	#home #page_container_descargables ul.content,
	#productos #catalogo ul.content_prod,
	#productos #ofertas ul.content,
	.page_events ul.content,
	#eventos ul.content,
	#noticias ul.content,
	#carrito ul.content,
	#programas #catalogo_programas #wrapper_items {
		grid-template-columns: 1fr;
	}

	#productos #catalogo ul.content_prod > li {
		grid-template-columns: 1fr;
	}

	#home #page_container_events ul.content > li {
		grid-template-columns: 1fr;
	}

	#nosotros #empleos #curriculum,
	#nosotros form #curriculum,
	#nosotros #empleos .input_button,
	#nosotros form#form_empleo .input_button {
		grid-column: 1;
	}

	#productos #catalogo ul.content_prod > li #image {
		min-height: 210px;
		max-height: 260px;
	}

	#servicios #filtros,
	#nosotros #empresas,
	#nosotros #empleos form,
	#nosotros form#form_empleo,
	#contacto form,
	#encabezado_servicio_tecnico #details,
	#contenido_servicio_tecnico #datos {
		grid-template-columns: 1fr;
	}

	.page_cart ul.content > li,
	.page_events.page_cart ul.content > li {
		grid-template-columns: 64px minmax(0, 1fr);
		gap: 10px;
	}

	.page_cart #form_editar_carrito {
		grid-column: 1;
		flex-direction: row;
		justify-content: flex-start;
	}

	.page_cart #delete_cart_button {
		grid-column: 2;
		justify-self: end;
	}

	#formacion_home {
		width: min(calc(100% - 30px), var(--content));
		padding: 42px 0 58px;
	}

	#formacion_home #impact {
		min-height: 350px;
		padding: 18px;
	}

	#servicios #instrucciones {
		text-align: left;
	}


	.page_navigation {
		margin: 8px 0 0;
		justify-content: flex-start;
	}

	footer#desktop #content {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	footer#desktop #left,
	footer#desktop #encore {
		flex-direction: column;
	}

	#pop_wrapper,
	#mobile_producto {
		padding: 22px;
	}

	#thickbox_producto {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	#thickbox_producto #img img {
		height: 220px;
		max-height: 32vh;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*:not(.marcas-track) {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	#nosotros .marcas-track {
		animation-duration: 32s !important;
		animation-iteration-count: infinite !important;
	}
}

.window_alerta {
	position: fixed;
	inset: 0;
	z-index: 4000;
}

#TB_overlay_alerta {
	position: fixed !important;
	inset: 0;
	background: #273746 !important;
	opacity: 0.52 !important;
}

.contenido_alerta {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	width: min(440px, calc(100vw - 40px)) !important;
	height: auto !important;
	margin: 0 !important;
	padding: 28px 28px 24px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #FFFFFF !important;
	box-shadow: var(--shadow-md);
	transform: translate(-50%, -50%);
}

.contenido_alerta #contenedor_alerta {
	position: absolute;
	top: 12px;
	right: 12px;
	float: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #273746 url("../img/images.jpg") no-repeat -342px -320px;
}

.contenido_alerta h1 {
	float: none !important;
	width: auto !important;
	margin: 0 36px 12px 0 !important;
	color: var(--ink) !important;
	font-size: 26px !important;
	line-height: 1.2 !important;
}

.contenido_alerta p {
	float: none !important;
	width: auto !important;
	margin: 0 0 20px !important;
	color: var(--muted) !important;
	font-size: 16px !important;
	line-height: 1.45 !important;
}

.alerta_acciones {
	display: flex;
	justify-content: flex-end;
}

.confirmar_eliminar_producto,
.confirmar_eliminar_servicio,
.confirmar_y_enviar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	float: none !important;
	width: auto !important;
	min-height: 42px;
	margin: 0 !important;
	padding: 10px 18px !important;
	border-radius: var(--radius);
	background: var(--blue) !important;
	color: #FFFFFF !important;
	font-size: 14px !important;
	font-weight: 700;
	text-align: center;
}

.confirmar_eliminar_producto,
.confirmar_eliminar_servicio {
	background: #273746 !important;
}

.confirmar_y_enviar:hover,
.confirmar_eliminar_producto:hover,
.confirmar_eliminar_servicio:hover {
	background: var(--blue-deep) !important;
}

.confirmar_y_enviar.enviando {
	opacity: 0.7;
	pointer-events: none;
}
