/* GESCI-TECH-CUSTOM-CSS-1.0.2 : charge par PrestaShop custom.css */
/* GESCI Tech — Hummingbird 2.1 / PrestaShop 9.2
   Habillage du menu natif ps_mainmenu : aucune modification du HTML ou du JS.
   Les onglets et le clavier restent pilotes par le JS du theme Hummingbird. */
:root {
  --gesci-ink: #0a1427;
  --gesci-panel: #101e34;
  --gesci-panel-2: #192b44;
  --gesci-stroke: rgba(163, 193, 228, .16);
  --gesci-white: #f1f7ff;
  --gesci-muted: #b5c8dd;
  --gesci-accent: #39d8f3;
}
/* Desktop — les six univers sont visibles, les sous-menus se mettent en page
   avec le moteur deja present dans Hummingbird. */
@media (min-width: 1200px) {
  .ps-mainmenu:is(.ps-mainmenu--desktop) { isolation: isolate; }
  .ps-mainmenu:is(.ps-mainmenu--desktop) {
    display: flex;
    align-items: center;
    border-radius: 16px;
    background: linear-gradient(110deg, #0a1427, #162940 75%, #102d41);
    box-shadow: 0 10px 24px rgba(4, 17, 36, .14);
    border: 1px solid rgba(71, 125, 163, .25);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree {
    gap: .1rem;
    width: 100%;
    flex-wrap: nowrap;
    padding: .25rem .45rem;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item { min-width: 0; }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item-wrapper {
    position: relative;
    border-radius: 11px;
    transition: background-color .2s ease, box-shadow .2s ease;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item:hover > .ps-mainmenu__tree-item-wrapper,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item.current > .ps-mainmenu__tree-item-wrapper,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item:has(.ps-mainmenu__tree-dropdown-toggle[aria-expanded="true"]) > .ps-mainmenu__tree-item-wrapper {
    background: rgba(57, 216, 243, .11);
    box-shadow: inset 0 -2px 0 var(--gesci-accent);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-link {
    color: var(--gesci-white);
    padding: .82rem .42rem .82rem .7rem;
    font-size: clamp(.73rem, .82vw, .9rem);
    font-weight: 650;
    letter-spacing: .01em;
    white-space: nowrap;
    transition: color .18s ease;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-item.current .ps-mainmenu__tree-link,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-link:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-link:focus-visible { color: var(--gesci-accent); }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree>li .ps-mainmenu__tree-dropdown-toggle {
    color: #9eb2c7;
    padding: .5rem .35rem .5rem .05rem;
    min-width: 18px;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-dropdown-toggle:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-dropdown-toggle[aria-expanded="true"] {
    color: var(--gesci-accent);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-dropdown-toggle:focus-visible,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree-link:focus-visible {
    outline: 2px solid var(--gesci-accent);
    outline-offset: 2px;
  }
  /* Mega-menu full width, sidebar par univers, 3-4 colonnes selon Hummingbird */
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu {
    color: var(--gesci-white);
    background: linear-gradient(145deg, var(--gesci-panel), #0b1729 78%);
    border: 1px solid rgba(57, 216, 243, .25);
    border-top: 3px solid var(--gesci-accent);
    border-radius: 0 0 22px 22px;
    box-shadow: 0 30px 65px rgba(3, 12, 25, .35), 0 0 40px rgba(57,216,243,.04);
    max-height: min(75vh, 700px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu .container { max-width: 1450px; }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__row { min-height: 330px; }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left {
    border-right: 1px solid var(--gesci-stroke);
    padding: 1.2rem .9rem 1.5rem 1.3rem;
    background: rgba(255,255,255,.025);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left::before {
    content: 'EXPLORER CET UNIVERS';
    display: block;
    color: var(--gesci-accent);
    font-size: .67rem;
    font-weight: 750;
    letter-spacing: .16em;
    margin: 0 0 .65rem .55rem;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item {
    color: var(--gesci-muted);
    font-size: .9rem;
    line-height: 1.35;
    font-weight: 550;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: .72rem .8rem;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item.active,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:focus-visible {
    color: #fff;
    background: rgba(57,216,243,.09);
    border-color: rgba(57,216,243,.25);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item.active { box-shadow: inset 3px 0 0 var(--gesci-accent); }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item[data-ps-has-child="true"]::after {
    color: var(--gesci-accent);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item[data-ps-has-child="false"]::after {
    content: '↗';
    margin-left: auto;
    color: var(--gesci-accent);
    font-weight: 700;
  }
  /* Univers sans troisieme niveau (notamment Logiciels) :
     les liens deviennent des cartes, au lieu d'un panneau droit vide. */
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu:has(.submenu__left-item):not(:has(.submenu__left-item[data-ps-has-child="true"])) .submenu__left {
    flex: 0 0 100%;
    max-width: 100%;
    border-right: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    padding: 1.5rem;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu:has(.submenu__left-item):not(:has(.submenu__left-item[data-ps-has-child="true"])) .submenu__left::before {
    grid-column: 1 / -1;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu:has(.submenu__left-item):not(:has(.submenu__left-item[data-ps-has-child="true"])) .submenu__left-item {
    padding: 1.1rem;
    background: rgba(57,216,243,.06);
    border: 1px solid var(--gesci-stroke);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu:has(.submenu__left-item):not(:has(.submenu__left-item[data-ps-has-child="true"])) .submenu__right {
    display: none;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right { padding: 1.35rem 1.4rem 1.8rem; }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right::before {
    content: 'DÉCOUVRIR LES CATÉGORIES';
    display: block;
    margin-bottom: 1.1rem;
    color: #79a9c3;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items {
    column-gap: 1.4rem;
    row-gap: 1.25rem;
    align-content: start;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items > ul,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group--child,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group--nochild {
    background: rgba(31, 52, 78, .57);
    border: 1px solid rgba(149, 198, 230, .1);
    border-radius: 12px;
    padding: .95rem 1rem;
    list-style: none;
    min-width: 0;
    transition: background-color .2s ease, border-color .2s ease;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items > ul:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group--child:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group--nochild:hover {
    background: rgba(35, 65, 92, .75);
    border-color: rgba(57, 216, 243, .24);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item {
    color: var(--gesci-muted);
    font-size: .87rem;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item:hover,
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item:focus-visible {
    color: var(--gesci-accent);
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group-main-item {
    color: var(--gesci-white);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .55rem;
  }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items .menu-item__group-main-item:hover { color: var(--gesci-accent); }
  .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right-items :is(a,button):focus-visible {
    outline: 2px solid var(--gesci-accent);
    outline-offset: 3px;
  }
}
/* Mobile: preserve the native offcanvas and drill-down behaviour. */
.ps-mainmenu.ps-mainmenu--mobile {
  background: linear-gradient(155deg, #0a1427, #182b42);
  color: var(--gesci-white);
}
.ps-mainmenu.ps-mainmenu--mobile .offcanvas-header {
  border-bottom: 1px solid var(--gesci-stroke);
}
.ps-mainmenu.ps-mainmenu--mobile :is(.menu__title, .js-back-button, .btn-close) {
  color: var(--gesci-white);
}
.ps-mainmenu.ps-mainmenu--mobile .btn-close { filter: invert(1) grayscale(1); }
.ps-mainmenu.ps-mainmenu--mobile .menu a { color: var(--gesci-muted); }
.ps-mainmenu.ps-mainmenu--mobile .menu a:is(:hover, :focus-visible),
.ps-mainmenu.ps-mainmenu--mobile .menu li.current > a { color: var(--gesci-accent); }
.ps-mainmenu.ps-mainmenu--mobile .menu li {
  border-bottom: 1px solid rgba(163,193,228,.11);
}
.ps-mainmenu.ps-mainmenu--mobile :is(.menu__toggle-child, .js-menu-open-child) {
  color: var(--gesci-accent);
}
.ps-mainmenu.ps-mainmenu--mobile :is(a, button):focus-visible {
  outline: 2px solid var(--gesci-accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .ps-mainmenu *, .ps-mainmenu *::before, .ps-mainmenu *::after {
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}
