/* Menú lateral (hamburguesa) · Ana Ruiz Nutrición */
.burger{flex:none;display:inline-grid;place-items:center;width:46px;height:46px;border:0;border-radius:14px;background:var(--lilac,#ECE5FF);color:var(--ink,#2E2350);cursor:pointer;padding:0;transition:background .15s}
.burger:hover{background:#D9CCFF}
.burger span{position:relative;display:block;width:20px;height:2px;border-radius:2px;background:currentColor}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;border-radius:2px;background:currentColor}
.burger span::before{top:-6px}.burger span::after{top:6px}

.drawer-veil{position:fixed;inset:0;z-index:90;background:rgba(46,35,80,.42);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(370px,88vw);background:var(--bg,#FFFDF7);color:var(--ink,#2E2350);
  display:flex;flex-direction:column;box-shadow:-24px 0 60px -30px rgba(46,35,80,.6);transform:translateX(102%);visibility:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility .3s;
  padding:calc(14px + env(safe-area-inset-top,0px)) max(22px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) 22px;
  font-family:var(--body,"Manrope",system-ui,sans-serif)}
.menu-open .drawer{transform:none;visibility:visible}
.menu-open .drawer-veil{opacity:1;visibility:visible}
.menu-open{overflow:hidden}

.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;border-bottom:1px solid var(--line,#ECE6F5);margin-bottom:8px}
.drawer-head b{font-family:var(--display,sans-serif);font-weight:800;font-size:1.15rem;letter-spacing:-0.01em;display:flex;align-items:center;gap:20px}
.drawer-head b::before{content:"";width:20px;height:20px;border-radius:50%;background:var(--yellow,#FFE07A);box-shadow:10px 0 0 #D9CCFF;flex:none}
.drawer-x{width:44px;height:44px;border:0;border-radius:14px;background:var(--lilac,#ECE5FF);color:inherit;cursor:pointer;display:grid;place-items:center;padding:0}
.drawer-x:hover{background:#D9CCFF}

.drawer nav{flex:1;overflow-y:auto;overscroll-behavior:contain;margin:0 -8px;padding:0 8px}
.drawer ol{list-style:none;margin:0;padding:6px 0;display:grid;gap:2px;counter-reset:m}
.drawer ol a{counter-increment:m;display:flex;align-items:center;gap:14px;min-height:48px;padding:.5em .85em;border-radius:14px;text-decoration:none;color:inherit;font-weight:600;font-size:1.02rem}
.drawer ol a::before{content:counter(m,decimal-leading-zero);font-size:.75rem;font-weight:700;color:var(--muted,#5E5280);min-width:1.6em}
.drawer ol a:hover{background:var(--lilac,#ECE5FF)}
.drawer ol a[aria-current="true"]{background:var(--yellow-soft,#FFF5CC);box-shadow:inset 3px 0 0 var(--purple,#6E52C9)}
.drawer ol a[aria-current="true"]::before{color:var(--purple,#6E52C9)}

.drawer-foot{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line,#ECE6F5)}
.drawer-cta{display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:999px;background:var(--purple,#6E52C9);color:#fff!important;font-weight:700;text-decoration:none}
.drawer-cta:hover{background:#5A41AE}
.drawer-links{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.88rem}
.drawer-links a{color:var(--muted,#5E5280);font-weight:600}

@media (prefers-reduced-motion:reduce){.drawer,.drawer-veil{transition:none}}
