/* Sin Límite Mobile Menu */
.slmm-mobile-menu {
	display: none;
	position: relative;
	width: 100%;
	font-family: "Inter", sans-serif;
	color: #434343;
	z-index: 100000;
}

@media (max-width: 767px) {

	.slmm-mobile-menu {
		display: block;
	}

	.slmm-hamburger {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		justify-content: center;
		gap: 5px;
		width: 34px;
		height: 34px;
		padding: 4px;
		margin: 0;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		cursor: pointer;
	}

	.slmm-hamburger span {
		display: block;
		height: 2px;
		border-radius: 0;
		background: #666666;
		transition: transform .2s ease, opacity .2s ease;
	}

	.slmm-hamburger span:nth-child(1),
	.slmm-hamburger span:nth-child(3) {
		width: 24px;
	}

	.slmm-hamburger span:nth-child(2) {
		width: 17px;
	}

	.slmm-hamburger[aria-expanded="true"] span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.slmm-hamburger[aria-expanded="true"] span:nth-child(2) {
		opacity: 0;
	}

	.slmm-hamburger[aria-expanded="true"] span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.slmm-panel {
		position: absolute;
		top: calc(100% + 10px);
		right: 0;
		width: min(430px, calc(100vw - 24px));
		max-height: calc(100vh - 90px);
		overflow-y: auto;
		background: #FAFAF8;
		border-top: 2px solid #FF5A00;
		box-shadow: 0 14px 35px rgba(17,17,17,.15);
	}

	.slmm-search {
		padding: 14px;
		background: #FFFFFF;
		border-bottom: 1px solid #E8E8E8;
	}

	.slmm-search .dgwt-wcas-search-wrapp {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}

	.slmm-accordion {
		background: #FAFAF8;
	}

	.slmm-category {
		border-bottom: 1px solid #E7E7E7;
	}

	.slmm-category-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		padding: 15px;
		margin: 0;
		border: 0 !important;
		background: #FAFAF8 !important;
		color: #111111 !important;
		text-align: left;
		box-shadow: none !important;
		cursor: pointer;
	}

	.slmm-category-toggle:hover,
	.slmm-category-toggle:focus {
		background: #FAFAF8 !important;
		color: #111111 !important;
	}

	.slmm-category-title {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}

	.slmm-category-title small {
		margin-bottom: 4px;
		color: #FF5A00;
		font-size: 9px;
		line-height: 1.1;
		font-weight: 800;
		letter-spacing: .35px;
		text-transform: uppercase;
	}

	.slmm-category-title strong {
		font-family: "Montserrat", sans-serif;
		font-size: 16px;
		line-height: 1.2;
		font-weight: 700;
		color: #222222;
	}

	.slmm-plus {
		position: relative;
		width: 16px;
		height: 16px;
		flex: 0 0 16px;
	}

	.slmm-plus::before,
	.slmm-plus::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 14px;
		height: 1.5px;
		background: #666666;
		transform: translate(-50%, -50%);
		transition: transform .2s ease, background .2s ease;
	}

	.slmm-plus::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.slmm-category-toggle[aria-expanded="true"] .slmm-plus::after {
		transform: translate(-50%, -50%) rotate(0);
	}

	.slmm-category-toggle[aria-expanded="true"] .slmm-plus::before,
	.slmm-category-toggle[aria-expanded="true"] .slmm-plus::after {
		background: #FF5A00;
	}

	.slmm-category-panel {
		padding: 0 15px 15px;
		background: #FFFFFF;
	}

	.slmm-products {
		display: flex;
		flex-direction: column;
		gap: 7px;
	}

	.slmm-product-link {
		display: block;
		color: #555555 !important;
		background: transparent !important;
		font-size: 12px;
		line-height: 1.3;
		text-decoration: none !important;
		transition: color .15s ease;
	}

	.slmm-product-link:hover,
	.slmm-product-link:focus {
		color: #FF5A00 !important;
		background: transparent !important;
	}

	.slmm-see-all {
		display: inline-block;
		margin-top: 11px;
		color: #FF5A00 !important;
		font-size: 11px;
		font-weight: 700;
		text-decoration: none !important;
	}

	.slmm-category-featured .slmm-category-toggle,
	.slmm-category-featured .slmm-category-panel {
		background: #F5F5F5 !important;
		border-left: 3px solid #FF5A00;
	}

	.slmm-category-service .slmm-category-toggle,
	.slmm-category-service .slmm-category-panel {
		background: #FBEFE8 !important;
	}

	@media (max-width: 380px) {
		.slmm-panel {
			width: calc(100vw - 16px);
			right: -4px;
		}

		.slmm-category-title strong {
			font-size: 15px;
		}

		.slmm-product-link {
			font-size: 11.5px;
		}
	}
}




/* =========================================================
   v1.2 — MOBILE MENU POLISH
========================================================= */

@media (max-width: 767px) {

	/* Keep the hamburger pinned to the right. */
	html body .slmm-mobile-menu .slmm-hamburger {
		position: absolute !important;
		right: 18px !important;
		left: auto !important;
		top: 0 !important;
		transform: none !important;
		margin: 0 !important;
		z-index: 100003 !important;
	}

	html body .slmm-mobile-menu .slmm-panel {
		top: 44px !important;
		right: 0 !important;
		left: auto !important;
		width: min(430px, calc(100vw - 24px)) !important;
	}

	/* Smooth accordion animation. */
	html body .slmm-mobile-menu .slmm-category-panel {
		display: grid !important;
		grid-template-rows: 0fr;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		overflow: hidden !important;
		opacity: 0;
		transition:
			grid-template-rows .28s ease,
			opacity .2s ease,
			padding .28s ease;
	}

	html body .slmm-mobile-menu .slmm-category-panel > .slmm-products,
	html body .slmm-mobile-menu .slmm-category-panel > .slmm-see-all {
		min-height: 0;
		overflow: hidden;
	}

	html body .slmm-mobile-menu .slmm-category-toggle[aria-expanded="true"] + .slmm-category-panel {
		grid-template-rows: 1fr;
		padding-top: 0 !important;
		padding-bottom: 15px !important;
		opacity: 1;
	}

	.slmm-products {
		transform: translateY(-4px);
		transition: transform .28s ease;
	}

	.slmm-category-toggle[aria-expanded="true"] + .slmm-category-panel .slmm-products {
		transform: translateY(0);
	}

	/* Utility footer. */
	.slmm-mobile-actions {
		padding: 16px 15px 18px;
		margin: 0;
		border-top: 1px solid rgba(17,17,17,.10);
		background: #FAFAF8;
	}

	.slmm-mobile-whatsapp {
		display: flex !important;
		align-items: center;
		justify-content: center;
		gap: 9px;
		width: 100%;
		min-height: 46px;
		padding: 11px 16px;
		border: 0 !important;
		border-radius: 4px;
		background: #FF5A00 !important;
		color: #FAFAF8 !important;
		text-decoration: none !important;
		font-family: "Inter", sans-serif !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		text-transform: none !important;
		box-shadow: none !important;
	}

	.slmm-mobile-whatsapp:hover,
	.slmm-mobile-whatsapp:focus,
	.slmm-mobile-whatsapp:active {
		background: #FA7010 !important;
		color: #FAFAF8 !important;
	}

	.slmm-whatsapp-icon {
		width: 21px;
		height: 21px;
		flex: 0 0 21px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.7;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.slmm-mobile-socials {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 18px;
		margin-top: 13px;
	}

	.slmm-mobile-socials a {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 30px;
		height: 30px;
		color: #FF5A00 !important;
		background: transparent !important;
		border: 0 !important;
		text-decoration: none !important;
		box-shadow: none !important;
	}

	.slmm-mobile-socials a:hover,
	.slmm-mobile-socials a:focus {
		color: #FA7010 !important;
		background: transparent !important;
	}

	.slmm-mobile-socials svg {
		width: 18px;
		height: 18px;
		fill: currentColor;
		stroke: none;
		display: block;
	}

	.slmm-mobile-socials a:nth-child(2) svg {
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}
}


/* =========================================================
   v1.3 — ACTIONS INSIDE PANEL + WHATSAPP LOGO
========================================================= */

@media (max-width: 767px) {

	html body .slmm-mobile-menu .slmm-panel {
		display: block !important;
		background: #FAFAF8 !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
	}

	html body .slmm-mobile-menu .slmm-mobile-actions {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box !important;
		background: #FAFAF8 !important;
	}

	html body .slmm-mobile-menu .slmm-whatsapp-icon {
		width: 22px !important;
		height: 22px !important;
		flex: 0 0 22px !important;
		display: block !important;
		fill: currentColor !important;
	}

	html body .slmm-mobile-menu .slmm-mobile-whatsapp {
		position: relative !important;
		z-index: 1 !important;
	}
}


/* =========================================================
   v1.4 — FIX HAMBURGER TOGGLE
   The JS uses the native hidden attribute. Never override it.
========================================================= */

@media (max-width: 767px) {

    html body .slmm-mobile-menu .slmm-panel[hidden] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    html body .slmm-mobile-menu .slmm-panel:not([hidden]) {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    html body .slmm-mobile-menu .slmm-hamburger {
        cursor: pointer !important;
        pointer-events: auto !important;
    }
}



/* =========================================================
   v1.7 — COMPACT CATEGORY ROWS, PRESERVE ACCENT BACKGROUNDS
========================================================= */

@media (max-width: 767px) {

	html body .slmm-mobile-menu .slmm-category {
		margin: 0 !important;
		padding: 0 !important;
		border-bottom: 1px solid #E7E7E7 !important;
	}

	/* No artificial row height. */
	html body .slmm-mobile-menu .slmm-category-toggle {
		display: flex !important;
		align-items: center !important;
		min-height: 0 !important;
		height: auto !important;
		padding: 8px 14px !important;
		margin: 0 !important;
		line-height: 1 !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	html body .slmm-mobile-menu .slmm-category-title {
		gap: 0 !important;
		line-height: 1 !important;
	}

	html body .slmm-mobile-menu .slmm-category-title small {
		display: block !important;
		margin: 0 0 2px !important;
		line-height: 1 !important;
	}

	html body .slmm-mobile-menu .slmm-category-title strong {
		display: block !important;
		line-height: 1.15 !important;
		margin: 0 !important;
	}

	html body .slmm-mobile-menu .slmm-plus {
		margin-left: auto !important;
	}

	/* Featured and service keep their own backgrounds,
	   but only on the compact title row. */
	html body .slmm-mobile-menu .slmm-category-featured .slmm-category-toggle {
		background: #F5F5F5 !important;
		border-left: 3px solid #FF5A00 !important;
	}

	html body .slmm-mobile-menu .slmm-category-service .slmm-category-toggle {
		background: #FBEFE8 !important;
		border-left: 3px solid #FF5A00 !important;
	}

	/* Opened content stays clean; backgrounds do not create hidden space. */
	html body .slmm-mobile-menu .slmm-category-featured .slmm-category-panel,
	html body .slmm-mobile-menu .slmm-category-service .slmm-category-panel,
	html body .slmm-mobile-menu .slmm-category-panel {
		margin: 0 !important;
	}

	html body .slmm-mobile-menu .slmm-category-toggle + .slmm-category-panel[hidden] {
		display: none !important;
		padding: 0 !important;
		margin: 0 !important;
		border: 0 !important;
	}

	html body .slmm-mobile-menu .slmm-search {
		padding-bottom: 10px !important;
	}
}


/* =========================================================
   v1.8 — MOBILE PANEL ESCAPE / FULL VIEWPORT
========================================================= */

@media (max-width: 767px) {

	/* Once detached to <body>, treat the panel itself as the
	   mobile-menu root so all child selectors continue working. */
	html body .slmm-mobile-menu.slmm-panel-floating {
		display: block !important;
		position: fixed !important;
		z-index: 100010 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin: 0 !important;
		padding: 0 !important;
		left: 0 !important;
		right: auto !important;
		overflow: visible !important;
	}

	html body .slmm-mobile-menu.slmm-panel-floating .slmm-panel {
		position: static !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}

	/* The actual floating panel is the root in this mode. */
	html body .slmm-mobile-menu.slmm-panel-floating[hidden] {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	html body .slmm-mobile-menu.slmm-panel-floating:not([hidden]) {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	html body .slmm-mobile-menu.slmm-panel-floating .slmm-search,
	html body .slmm-mobile-menu.slmm-panel-floating .slmm-accordion,
	html body .slmm-mobile-menu.slmm-panel-floating .slmm-mobile-actions {
		width: 100% !important;
		max-width: none !important;
		box-sizing: border-box !important;
	}

	html body .slmm-mobile-menu.slmm-panel-floating .slmm-mobile-actions {
		box-sizing: border-box !important;
	}

	html body .slmm-mobile-menu.slmm-panel-floating {
		max-height: calc(100vh - var(--slmm-mobile-top, 90px)) !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		-webkit-overflow-scrolling: touch;
		box-shadow: 0 14px 35px rgba(17,17,17,.15);
	}

	html body.slmm-no-scroll {
		overflow: hidden !important;
	}
}
