/* Menu mobile Portoloin : tiroir qui monte du bas (burger, < 900px uniquement) */
.mnav { display: none; position: fixed; inset: 0; z-index: 1000; }
.mnav.active { display: block; }
.mnav-backdrop { position: absolute; inset: 0; background: rgba(26,26,26,0.45); border: 0; padding: 0; margin: 0; width: 100%; cursor: pointer; animation: mnavFade .25s ease-out; }
.mnav-sheet {
  position: absolute; left: 0; right: 0; bottom: 0; max-height: 88vh; max-height: 88dvh; overflow-y: auto; overscroll-behavior: contain;
  background: #FDFCFA; border-radius: 26px 26px 0 0; padding: 10px 20px calc(20px + env(safe-area-inset-bottom));
  box-shadow: 0 -20px 60px -20px rgba(26,26,26,0.35); animation: mnavUp .32s cubic-bezier(.16,1,.3,1);
  font-family: inherit; color: #1A1A1A;
}
.mnav-head { position: relative; display: flex; justify-content: center; align-items: center; height: 34px; margin-bottom: 6px; touch-action: none; }
.mnav-handle { width: 42px; height: 5px; border-radius: 3px; background: #D9D4CC; }
.mnav .mnav-close {
  position: absolute; right: -4px; top: 0; width: 36px; height: 36px; border-radius: 50%; background: #F1ECE5; border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: #1A1A1A; font-size: 0; padding: 0;
}
.mnav-close svg { width: 18px; height: 18px; }
.mnav-list { display: flex; flex-direction: column; }
.mnav-item, .mnav-group > summary {
  display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 6px 6px; border-radius: 14px;
  text-decoration: none; color: #1A1A1A; font-size: 17px; font-weight: 600; line-height: 1.25; -webkit-tap-highlight-color: transparent;
}
.mnav-item:active, .mnav-group > summary:active { background: #F6EDE3; }
.mnav-item.is-current { background: #F6EDE3; }
.mnav-ic { width: 40px; height: 40px; border-radius: 12px; background: #F6EDE3; color: #9A6A3F; display: flex; align-items: center; justify-content: center; flex: none; }
.mnav-ic svg { width: 20px; height: 20px; }
.mnav-ic-dark { background: #1A1A1A; color: #fff; }
.mnav-txt small { display: block; font-size: 13px; font-weight: 500; color: #8A8278; margin-top: 2px; }
.mnav-group > summary { list-style: none; cursor: pointer; }
.mnav-group > summary::-webkit-details-marker { display: none; }
.mnav-chev { margin-left: auto; width: 20px; height: 20px; color: #8A8278; transition: transform .2s; }
.mnav-group[open] .mnav-chev { transform: rotate(180deg); }
.mnav-sub { display: flex; flex-direction: column; padding: 2px 0 6px 60px; }
.mnav-sub a { display: flex; align-items: center; min-height: 44px; text-decoration: none; color: #4A4640; font-size: 16px; font-weight: 500; border-radius: 10px; }
.mnav-sub a.is-current { color: #9A6A3F; font-weight: 600; }
.mnav-actions { display: flex; gap: 10px; margin-top: 14px; }
.mnav-actions a { display: flex; align-items: center; justify-content: center; min-height: 50px; border-radius: 999px; text-decoration: none; font-size: 15px; font-weight: 700; text-align: center; }
.mnav-cta { flex: 1.6; background: #C18A5B; color: #fff; }
.mnav-space { flex: 1; border: 2px solid #1A1A1A; color: #1A1A1A; }
.mnav a:focus-visible, .mnav summary:focus-visible, .mnav button:focus-visible { outline: 2px solid #C18A5B; outline-offset: 2px; }
html.mnav-lock, html.mnav-lock body { overflow: hidden; }
@keyframes mnavUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes mnavFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .mnav-sheet, .mnav-backdrop { animation: none; } .mnav-chev { transition: none; } }
@media (min-width: 901px) { .mnav, .mnav.active { display: none; } }
