/* Sostenida - Hamburger Menu: siempre visible como icono en todas las vistas */
.sos-hamburger-menu,
.sos-hamburger-menu *,
.sos-hamburger-menu *::before,
.sos-hamburger-menu *::after {
	box-sizing: border-box;
}

.sos-hamburger-menu {
	position: relative;
	display: inline-block;
}

.sos-hamburger-toggle {
	position: relative;
	z-index: 100001;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	outline: none;
	box-shadow: none;
	cursor: pointer;
	line-height: 0;
}

.sos-hamburger-icon-close {
	display: none;
}

.sos-hamburger-menu.sos-open .sos-hamburger-icon-open {
	display: none;
}

.sos-hamburger-menu.sos-open .sos-hamburger-icon-close {
	display: inline-flex;
}

/* ---------- Panel comun ---------- */
.sos-hamburger-panel {
	visibility: hidden;
	opacity: 0;
	margin: 0 !important;
}

.sos-hamburger-panel-list,
.sos-hamburger-panel-list ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sos-hamburger-panel-list ul {
	padding-left: 16px !important;
}

.sos-hamburger-panel-list li {
	list-style: none !important;
	border: none !important;
}

.sos-hamburger-panel-list a {
	display: flex !important;
	align-items: center;
	text-decoration: none !important;
	width: 100%;
}

.sos-menu-item-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 0;
}

/* ---------- Variante: dropdown ---------- */
.sos-hamburger-menu--dropdown .sos-hamburger-panel {
	position: absolute;
	top: 100%;
	z-index: 999;
	margin-top: 8px;
	transform: translateY(-8px);
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}

.sos-hamburger-menu--dropdown.sos-hamburger-menu--align-left .sos-hamburger-panel {
	left: 0;
}

.sos-hamburger-menu--dropdown.sos-hamburger-menu--align-right .sos-hamburger-panel {
	right: 0;
}

.sos-hamburger-menu--dropdown.sos-open .sos-hamburger-panel {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Variante: offcanvas (columna completa a todo el alto) ---------- */
.sos-hamburger-menu--offcanvas .sos-hamburger-panel {
	position: fixed;
	top: 0;
	bottom: 0;
	height: 100vh;
	max-width: 100vw;
	z-index: 100000;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 90px 0 40px;
	box-shadow: 0 0 24px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s ease, visibility 0.3s ease;
}

.sos-hamburger-menu--offcanvas.sos-hamburger-menu--align-right .sos-hamburger-panel {
	right: 0;
	left: auto;
	transform: translateX(100%);
}

.sos-hamburger-menu--offcanvas.sos-hamburger-menu--align-left .sos-hamburger-panel {
	left: 0;
	right: auto;
	transform: translateX(-100%);
}

.sos-hamburger-menu--offcanvas.sos-open .sos-hamburger-panel {
	visibility: visible;
	opacity: 1;
	transform: translateX(0);
}

.sos-hamburger-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.sos-hamburger-menu--offcanvas.sos-open .sos-hamburger-overlay {
	opacity: 1;
	visibility: visible;
}

body.sos-hamburger-lock {
	overflow: hidden;
}
