/**
 * @author    Veo by Kebes <hola@kebes.es>
 * @copyright 2026 Veo by Kebes
 * @license   https://opensource.org/licenses/AFL-3.0  Academic Free License 3.0 (AFL-3.0)
 */
/* One DOM for desktop and mobile: below 768px the same <nav> becomes the side panel */
.veomm-wrap { display: flex; align-items: center; }
.header-bottom__container:has(.veomm), .header-bottom:has(.veomm) .container-md { position: relative; }
.veomm__list, .veomm__cats, .veomm__links { margin: 0; padding: 0; list-style: none; }
.veomm a { color: inherit; text-decoration: none; }
.veomm a:hover, .veomm a:focus-visible { color: var(--bs-primary, currentColor); }
.veomm__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.veomm__title { margin: 0 0 .5rem; font-weight: 700; }
.veomm__cat { font-weight: 600; }
.veomm__cats--sub { margin: .25rem 0 .5rem .75rem; font-size: .925em; }
.veomm__cats li, .veomm__links li { padding: .2rem 0; }
.veomm__burger, .veomm__close, .veomm__toggle { padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }

@media (max-width: 767.98px) {
  .veomm__burger { display: flex; align-items: center; gap: .5rem; padding: .5rem; }
  .veomm__burger-icon, .veomm__burger-icon::before, .veomm__burger-icon::after { display: block; width: 1.25rem; height: 2px; background: currentColor; content: ""; }
  .veomm__burger-icon { position: relative; }
  .veomm__burger-icon::before { position: absolute; top: -6px; }
  .veomm__burger-icon::after { position: absolute; top: 6px; }
  .veomm { position: fixed; inset: 0 auto 0 0; z-index: 1060; width: min(85vw, 22rem); padding: 3rem 1rem 1rem; overflow-y: auto; background: var(--bs-body-bg, #fff); transform: translateX(-105%); transition: transform .25s ease; }
  .veomm.is-open { transform: none; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .4); }
  .veomm__close { position: absolute; top: .5rem; right: .75rem; font-size: 2rem; line-height: 1; }
  .veomm__item { position: relative; border-bottom: 1px solid rgba(0, 0, 0, .1); }
  .veomm__link { display: block; padding: .85rem 3rem .85rem 0; font-weight: 600; }
  .veomm__toggle { position: absolute; top: .35rem; right: 0; width: 2.5rem; height: 2.5rem; }
  .veomm__toggle::before { display: block; width: .55rem; height: .55rem; margin: auto; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s; content: ""; }
  .veomm__item.is-open > .veomm__toggle::before { transform: rotate(-135deg); }
  .veomm__panel { display: none; padding: 0 0 1rem; }
  .veomm__item.is-open > .veomm__panel { display: block; }
  .veomm__block + .veomm__block, .veomm__col + .veomm__col { margin-top: 1rem; }
  .veomm__block--desktop { display: none; }
}

@media (min-width: 768px) {
  .veomm-wrap { align-self: stretch; flex: 1 1 auto; }
  .veomm__burger, .veomm__close, .veomm__toggle { display: none; }
  .veomm, .veomm__list { height: 100%; }
  .veomm__list { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0 .25rem; }
  .veomm__link { display: flex; align-items: center; height: 100%; padding: .75rem; font-weight: 600; }
  .veomm__panel { position: absolute; top: 100%; left: 0; right: 0; z-index: 1050; padding: 1.5rem; background: var(--bs-body-bg, #fff); border-radius: 0 0 .5rem .5rem; box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .12); visibility: hidden; opacity: 0; transition: opacity .15s, visibility 0s linear .15s; }
  .veomm__panel--full { left: 50%; right: auto; width: 100vw; transform: translateX(-50%); border-radius: 0; }
  .veomm__panel--full .veomm__grid { max-width: 1320px; margin: 0 auto; }
  /* Small delay before opening, so crossing the bar with the mouse does not flash panels */
  .veomm__item--mega:hover > .veomm__panel, .veomm__item--mega:focus-within > .veomm__panel, .veomm__item.is-open > .veomm__panel { visibility: visible; opacity: 1; transition-delay: .1s, 0s; }
  .veomm__item.is-closed > .veomm__panel { visibility: hidden; opacity: 0; }
  .veomm__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.5rem; }
  .veomm__col { grid-column: span var(--veomm-w, 3); }
  .veomm__block + .veomm__block { margin-top: 1.25rem; }
}
