/*
 * Hortiberia Core · menú lateral propio (variante «offcanvas» del paso 0450, en lugar de JetMenu).
 * Escritorio (≥ 768 px): panel de --hb-menu-ancho (400 px) que empuja la página a la derecha (body.hb-menu-empuja)
 * exactamente su ancho real: el JS lo mide al abrir y lo deja en --hb-menu-empuje.
 * Móvil: panel superpuesto sobre la página con fondo oscurecido. Referencia: docs/fases/menu-lateral-simulacion.html.
 */
.hb-menu-movil{display:flex;align-items:center;line-height:0}
/* Mismo alto que el botón de JetMenu (35 px): de él sale el alto de la cabecera. Los botones van con «body» delante:
   desde el paso 0500 esta hoja va en el head, antes del reset de Hello (botones con borde y color #c36) y del kit de
   Elementor (.elementor-kit-8 a), así que los botones y los enlaces de la lista llevan «body» delante. */
body .hb-menu-movil__boton{position:relative;display:block;width:46px;height:35px;padding:0;border:0;background:none;cursor:pointer;color:var(--e-global-color-bf88fec,#751D7C)}
body .hb-menu-movil__boton:hover,body .hb-menu-movil__boton:focus{background:none}
body .hb-menu-movil__boton span,body .hb-menu-movil__boton span::before,body .hb-menu-movil__boton span::after{position:absolute;left:12px;width:22px;height:3px;background:currentColor;content:""}
body .hb-menu-movil__boton span{top:16px}
body .hb-menu-movil__boton span::before{left:0;top:-7px}
body .hb-menu-movil__boton span::after{left:0;top:7px}
.hb-menu-movil__fondo{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.45);opacity:0;transition:opacity .32s}
.hb-menu-movil__fondo.abierto{opacity:1}
/* Empujando, el fondo no oscurece: pinta de verde la franja que deja la página (hasta el borde del panel y 1 px
   más), para que ningún redondeo subpíxel deje blanco entre el panel y la página. */
body.hb-menu-empuja .hb-menu-movil__fondo{background:linear-gradient(to right,var(--e-global-color-436ea46,#25A239) calc(var(--hb-menu-empuje,400px) + 1px),transparent 0)}
:root{--hb-menu-ancho:400px}
.hb-menu-movil__panel{position:fixed;top:0;left:0;bottom:0;z-index:9999;width:var(--hb-menu-ancho);max-width:none;padding:64px 20px 30px;overflow-y:auto;box-sizing:border-box;background:var(--e-global-color-436ea46,#25A239);transform:translateX(-100%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
@media (max-width:767px){.hb-menu-movil__panel{width:300px;max-width:84vw;box-shadow:8px 0 24px rgba(0,0,0,.18)}}
.hb-menu-movil__panel.abierto{transform:none}
.hb-menu-movil__panel[hidden],.hb-menu-movil__fondo[hidden]{display:none}
/* X de cierre: siempre arriba a la derecha, 44 px de zona táctil, blanca sobre el verde. */
body .hb-menu-movil__cerrar{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:0;background:none;color:#fff;font-size:30px;font-weight:400;line-height:1;cursor:pointer}
body .hb-menu-movil__cerrar:hover,body .hb-menu-movil__cerrar:focus{background:none;color:#fff}
body .hb-menu-movil__lista,body .hb-menu-movil__lista .sub-menu{margin:0;padding:0;list-style:none}
body .hb-menu-movil__lista li{position:relative}
body .hb-menu-movil__lista a{display:block;padding:12px 40px 12px 0;color:var(--e-global-color-56a297d,#fff);font-size:22px;line-height:1.3;text-decoration:none}
body .hb-menu-movil__lista a:hover,body .hb-menu-movil__lista a:focus,body .hb-menu-movil__lista a:not([href]){cursor:pointer;color:var(--e-global-color-56a297d,#fff)}
body .hb-menu-movil__lista .sub-menu{display:none;padding-left:16px}
body .hb-menu-movil__lista .sub-menu a{font-size:18px;padding:8px 40px 8px 0}
body .hb-menu-movil__lista li.desplegado>.sub-menu{display:block}
body .hb-menu-movil__flecha{position:absolute;top:8px;right:0;width:36px;height:36px;padding:0;border:0;background:none;color:#fff;cursor:pointer}
body .hb-menu-movil__flecha:hover,body .hb-menu-movil__flecha:focus{background:none;color:#fff}
body .hb-menu-movil__flecha::before{content:"";position:absolute;top:13px;left:12px;width:7px;height:7px;border-right:2px solid;border-bottom:2px solid;transform:rotate(-45deg)}
li.desplegado>.hb-menu-movil__flecha::before{transform:rotate(45deg)}
body .hb-menu-movil__lista .hb-menu-boton{margin:16px 16px 0}
body .hb-menu-movil__lista .hb-menu-boton>a{display:flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;background:var(--e-global-color-bf88fec,#751D7C);color:#fff;font-weight:700;font-size:22px;line-height:1.2;box-shadow:0 4px 10px rgba(0,0,0,.15)}
/* Móvil (superpuesto): se bloquea el desplazamiento de la página. Escritorio (empujar): solo se oculta el
   desplazamiento horizontal y solo en html. Quitar también la barra vertical cambiaba el ancho de la página
   (15 px con barras clásicas) y los vídeos de fondo de Elementor, que se dimensionan por JS al cargar, quedaban
   centrados con 7,5 px vacíos a cada lado: la franja blanca entre el panel y la página. */
@media (max-width:767px){html.hb-menu-movil-abierto,body.hb-menu-movil-abierto{overflow:hidden}}
@media (min-width:768px){html.hb-menu-movil-abierto{overflow-x:hidden}}
/* Empujar (escritorio): se desplaza todo lo que cuelga del body salvo el panel y su fondo. */
body.hb-menu-moviendo>*:not(.hb-menu-movil__panel):not(.hb-menu-movil__fondo){transition:transform .32s cubic-bezier(.2,.8,.2,1)}
body.hb-menu-empuja>*:not(.hb-menu-movil__panel):not(.hb-menu-movil__fondo):not(script):not(style):not(link){transform:translateX(var(--hb-menu-empuje,var(--hb-menu-ancho)))}
@media (prefers-reduced-motion:reduce){.hb-menu-movil__panel,.hb-menu-movil__fondo,body.hb-menu-moviendo>*{transition:none!important}}
/* Panel de la Fase F (paso 0640, H24): cabecera de 64 px con el logo alineado con la X; primer nivel en peso 500 y
   56 px de alto, submenús en acordeón (fondo algo más oscuro, regular, 48 px) con un chevron que gira; botón de
   socios con radio de 4 px y sin sombra; la hamburguesa de la cabecera no se ve con el panel abierto. */
.hb-menu-movil__panel--f{padding:0 0 30px}
.hb-menu-movil__cabeza{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 10px 0 20px}
.hb-menu-movil__panel--f .hb-menu-movil__cerrar{position:static;flex:0 0 44px}
.hb-menu-movil__logo{display:block;line-height:0}
.hb-menu-movil__logo svg{display:block;width:auto;height:36px}
.hb-menu-movil__logo svg path,.hb-menu-movil__logo svg polygon,.hb-menu-movil__logo svg rect{fill:#fff!important}
.hb-menu-movil__panel--f .hb-menu-movil__lista{padding-top:6px}
.hb-menu-movil__panel--f .hb-menu-movil__lista>li>a{display:flex;align-items:center;min-height:56px;padding:0 56px 0 20px;box-sizing:border-box;font-weight:500}
.hb-menu-movil__panel--f .hb-menu-movil__lista .sub-menu{padding-left:0;background:rgba(0,0,0,.12)}
.hb-menu-movil__panel--f .hb-menu-movil__lista .sub-menu a{display:flex;align-items:center;min-height:48px;padding:0 20px 0 36px;box-sizing:border-box;font-weight:400}
.hb-menu-movil__panel--f .hb-menu-movil__flecha{top:6px;right:10px;width:44px;height:44px}
.hb-menu-movil__panel--f .hb-menu-movil__flecha::before{content:none}
body .hb-menu-movil__flecha svg{display:block;margin:auto;transition:transform .2s}
.hb-menu-movil__panel--f li.desplegado>.hb-menu-movil__flecha svg{transform:rotate(180deg)}
.hb-menu-movil__panel--f .hb-menu-movil__lista>li.hb-menu-boton{margin:16px 20px 0}
.hb-menu-movil__panel--f .hb-menu-movil__lista>li.hb-menu-boton>a{min-height:48px;padding:0 16px;justify-content:center;border-radius:4px;box-shadow:none;font-weight:700}
body.hb-menu-movil-abierto .hb-menu-movil--f .hb-menu-movil__boton{visibility:hidden}
@media (prefers-reduced-motion:reduce){body .hb-menu-movil__flecha svg{transition:none}}
