/* Tudetic mega-menu CSS — extracted from header.tpl 2026-05-19 perfopt */
/* Reset */
  .tdc-tm-wrap, .tdc-tm-wrap *, .tdc-tm-wrap *::before, .tdc-tm-wrap *::after,
  .tdc-tm-drawer, .tdc-tm-drawer *, .tdc-tm-drawer *::before, .tdc-tm-drawer *::after { box-sizing: border-box; }
  .tdc-tm-wrap ul, .tdc-tm-drawer ul { list-style: none; margin: 0; padding: 0; }
  .tdc-tm-wrap li, .tdc-tm-drawer li { display: block; padding: 0; margin: 0; }
  .tdc-tm-wrap a, .tdc-tm-drawer a { color: inherit; text-decoration: none; }
  .tdc-tm-wrap button, .tdc-tm-drawer button { font: inherit; color: inherit; background: transparent; border: 0; cursor: pointer; padding: 0; margin: 0; }
  .tdc-tm-wrap svg, .tdc-tm-drawer svg { display: inline-block; vertical-align: middle; flex: 0 0 auto; }

  .tdc-tm-wrap { position: relative; }

  /* Shared panel mechanics — rely on UA `[hidden]` (low priority) so the
     desktop nested-panel override can win the cascade. */
  .tdc-tm-panel { overflow: hidden; max-height: 0; transition: max-height .3s ease; }
  .tdc-tm-panel--open { max-height: 3000px; }
  @media (prefers-reduced-motion: reduce) { .tdc-tm-panel { transition: none; } .tdc-tm-chevron { transition: none; } }

  .tdc-tm-chevron { width: 14px; height: 14px; transition: transform .2s ease; }
  .tdc-tm-toggle[aria-expanded="true"] .tdc-tm-chevron { transform: rotate(180deg); }

  /* ===================== DESKTOP ===================== */
  @media (min-width: 992px) {
    .tdc-tm-nav--desktop { position: relative; width: 100%; }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 { display: flex; flex-wrap: wrap; align-items: stretch; }

    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item { position: static; }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-row { display: flex; align-items: stretch; }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link {
      display: inline-flex; align-items: center;
      padding: .95rem 1.05rem; padding-right: .35rem;
      font-weight: 700; font-size: .9rem; letter-spacing: .03em; text-transform: uppercase;
      color: inherit; white-space: nowrap; position: relative;
      transition: color .15s ease;
    }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item:not(.has-children) > .tdc-tm-row > .tdc-tm-link { padding-right: 1.05rem; }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-toggle {
      display: inline-flex; align-items: center; justify-content: center;
      width: 34px; padding-right: .35rem;
      transition: color .15s ease;
    }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item:hover > .tdc-tm-row > .tdc-tm-link,
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item:hover > .tdc-tm-row > .tdc-tm-toggle,
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-link,
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-toggle {
      color: #fff;
    }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item:hover,
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item.is-open {
      background: rgba(0, 0, 0, .18);
    }
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item.is-current > .tdc-tm-row > .tdc-tm-link::after {
      content: ""; position: absolute; left: 1.05rem; right: 1.05rem; bottom: 6px; height: 2px; background: currentColor;
    }

    /* MEGA-PANEL (depth-0 panel) */
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-panel {
      position: absolute; left: calc(50% - 50vw); right: calc(50% - 50vw); width: 100vw;
      top: 100%;
      background: #fff; color: #222;
      box-shadow: 0 16px 28px rgba(0,0,0,.18);
      border-top: 3px solid var(--tudetic-accent, #c9252d);
      z-index: 1040;
      padding: 0;
    }
    /* Panel content: multi-column flow of categories (no holes under short ones) */
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-panel > .tdc-tm-list--d1 {
      display: block;
      column-width: 220px;
      column-gap: 1.75rem;
      padding: 1.75rem clamp(1rem, 5vw, 3rem) 2rem;
      max-width: 1600px; margin: 0 auto;
      max-height: 75vh; overflow-y: auto;
    }
    /* depth-1 li = one column cell — never split across columns */
    .tdc-tm-nav--desktop .tdc-tm-list--d1 > .tdc-tm-item {
      break-inside: avoid; page-break-inside: avoid; -webkit-column-break-inside: avoid;
      display: block; min-width: 0;
      margin: 0 0 1.5rem;
    }
    /* Hide all toggle buttons inside the open mega-panel (no clicks needed) */
    .tdc-tm-nav--desktop > .tdc-tm-list--d0 > .tdc-tm-item > .tdc-tm-panel .tdc-tm-toggle { display: none; }
    /* Nested panels (depth>=1) inside the mega-panel always render. JS strips
       the [hidden] attribute on load + adds `.tdc-tm-panel--inline`. */
    .tdc-tm-nav--desktop .tdc-tm-panel--inline {
      display: block !important; max-height: none !important; overflow: visible !important;
      position: static !important; box-shadow: none !important; background: transparent !important;
      border: 0 !important; padding: 0 !important; width: auto !important;
      left: auto !important; right: auto !important;
      transition: none !important;
    }

    /* depth-1 link = column heading (when has children, behaves as category title) */
    .tdc-tm-nav--desktop .tdc-tm-list--d1 > .tdc-tm-item.has-children > .tdc-tm-row > .tdc-tm-link {
      display: block; padding: 0 0 .55rem;
      font-weight: 800; font-size: .92rem; letter-spacing: .04em; text-transform: uppercase;
      color: #111 !important;
      border-bottom: 2px solid var(--tudetic-accent, #c9252d);
      margin-bottom: .55rem;
    }
    /* depth-1 leaf (no children) — compact link with subtle bottom rule */
    .tdc-tm-nav--desktop .tdc-tm-list--d1 > .tdc-tm-item:not(.has-children) > .tdc-tm-row > .tdc-tm-link {
      display: block; padding: .4rem 0;
      font-weight: 700; font-size: .88rem; letter-spacing: .02em; text-transform: uppercase;
      color: #222 !important;
      border-bottom: 1px solid rgba(0,0,0,.08);
    }
    .tdc-tm-nav--desktop .tdc-tm-list--d1 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link:hover {
      color: var(--tudetic-accent, #c9252d) !important;
    }

    /* depth-2+ = vertical lists of links inside each column */
    .tdc-tm-nav--desktop .tdc-tm-list--d2,
    .tdc-tm-nav--desktop .tdc-tm-list--d3,
    .tdc-tm-nav--desktop .tdc-tm-list--d4 {
      display: block !important; grid-template-columns: none !important;
      padding: 0 !important; margin: 0;
    }
    .tdc-tm-nav--desktop .tdc-tm-list--d2 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link {
      display: block;
      padding: .3rem 0;
      font-weight: 500; font-size: .875rem; text-transform: none; letter-spacing: normal;
      color: #444 !important;
      line-height: 1.35;
    }
    .tdc-tm-nav--desktop .tdc-tm-list--d2 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link:hover {
      color: var(--tudetic-accent, #c9252d) !important;
    }
    /* depth-3+ hidden in desktop mega panel (too deep) */
    .tdc-tm-nav--desktop .tdc-tm-list--d2 .tdc-tm-panel { display: none !important; }
  }
/* Center top-menu items in lg viewport range (992-1199px) — wrap is col-auto width otherwise */  @media (min-width: 992px) and (max-width: 1199.98px) {    .tdc-header-menu > .container-md,    .tdc-header-menu > .container,    .tdc-header-menu .container-md,    .tdc-header-menu .container { justify-content: center !important; }    .tdc-tm-wrap { flex: 0 0 auto !important; }    .tdc-tm-nav--desktop > .tdc-tm-list--d0 { justify-content: center; }  }

  /* ===================== MOBILE BURGER ===================== */
  .tdc-tm-burger-wrap { display: flex; align-items: center; }
  .tdc-tm-burger { display: inline-flex; align-items: center; gap: .55rem; padding: .65rem .9rem; font-weight: 700; color: inherit; }
  .tdc-tm-burger-icon { width: 22px; height: 16px; position: relative; display: inline-block; }
  .tdc-tm-burger-icon::before, .tdc-tm-burger-icon::after, .tdc-tm-burger-icon { background-image: linear-gradient(currentColor, currentColor); background-size: 22px 2px; background-repeat: no-repeat; }
  .tdc-tm-burger-icon { background-position: 0 0; }
  .tdc-tm-burger-icon::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: currentColor; }
  .tdc-tm-burger-icon::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: currentColor; }
  .tdc-tm-burger-text { font-size: .9rem; text-transform: uppercase; letter-spacing: .03em; }

  /* ===================== MOBILE DRAWER ===================== */
  .tdc-tm-drawer { width: 100% !important; max-width: 420px; background: #fff; color: #222; }
  @media (max-width: 480px) { .tdc-tm-drawer { max-width: 100% !important; } }
  .tdc-tm-drawer-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: .9rem 1rem; border-bottom: 1px solid rgba(0,0,0,.08);
    background: var(--tudetic-accent, #c9252d); color: #fff;
    position: sticky; top: 0; z-index: 2;
  }
  .tdc-tm-drawer-title { font-weight: 800; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .04em; }
  .tdc-tm-drawer-close { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; }
  .tdc-tm-drawer-close:hover, .tdc-tm-drawer-close:focus-visible { background: rgba(255,255,255,.18); outline: none; }
  .tdc-tm-drawer-body { flex: 1 1 auto; overflow-y: auto; padding: 0; }
  .tdc-tm-drawer-foot { border-top: 1px solid rgba(0,0,0,.08); padding: .9rem 1rem; background: #f7f7f7; }
  .tdc-tm-drawer-foot-row { display: flex; gap: .75rem; align-items: center; margin-bottom: .35rem; }

  .tdc-tm-drawer .tdc-tm-list { display: block; }
  .tdc-tm-drawer .tdc-tm-item { border-bottom: 1px solid rgba(0,0,0,.06); }
  .tdc-tm-drawer .tdc-tm-row {
    display: flex; align-items: stretch; min-height: 52px;
  }
  .tdc-tm-drawer .tdc-tm-row > .tdc-tm-link {
    flex: 1 1 auto; min-width: 0;
    display: flex; align-items: center;
    padding: .9rem 1rem;
    font-size: 1rem; color: #222;
    line-height: 1.3;
  }
  .tdc-tm-drawer .tdc-tm-row > .tdc-tm-toggle {
    flex: 0 0 auto;
    width: 56px; min-height: 52px;
    display: inline-flex; align-items: center; justify-content: center;
    border-left: 1px solid rgba(0,0,0,.06);
    color: #555;
  }
  .tdc-tm-drawer .tdc-tm-row > .tdc-tm-toggle:hover,
  .tdc-tm-drawer .tdc-tm-row > .tdc-tm-toggle:focus-visible { background: rgba(0,0,0,.04); outline: none; }
  .tdc-tm-drawer .tdc-tm-row > .tdc-tm-toggle .tdc-tm-chevron { width: 16px; height: 16px; }

  .tdc-tm-drawer .tdc-tm-item--d0 > .tdc-tm-row > .tdc-tm-link {
    font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: .95rem;
  }
  .tdc-tm-drawer .tdc-tm-item.is-open > .tdc-tm-row { background: rgba(0,0,0,.04); }
  .tdc-tm-drawer .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-link,
  .tdc-tm-drawer .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-toggle { color: var(--tudetic-accent, #c9252d); }

  .tdc-tm-drawer .tdc-tm-list--d1 { background: #fafafa; }
  .tdc-tm-drawer .tdc-tm-list--d2 { background: #f3f3f3; }
  .tdc-tm-drawer .tdc-tm-list--d3 { background: #ededed; }
  .tdc-tm-drawer .tdc-tm-list--d1 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 1.5rem; font-weight: 600; text-transform: none; letter-spacing: 0; font-size: .95rem; }
  .tdc-tm-drawer .tdc-tm-list--d2 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 2.25rem; font-weight: 500; font-size: .9rem; }
  .tdc-tm-drawer .tdc-tm-list--d3 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 3rem; font-weight: 400; font-size: .88rem; }

  /* Hide legacy parent submenu/mega-panel if any stale ones slip through */
  .js-sub-menu, .ps-mainmenu__tree .submenu, .submenu.collapse { display: none !important; }

  /* ========== OVERRIDE BUNDLE CCC LEGACY rules from old menu work ==========
     The cached bundle (tudetic-overrides.css ~line 3850) hardcodes flex on
     every <li> inside #mobileMenu. That breaks our row/panel vertical stack
     and forces row + panel side-by-side. Force-revert here with higher
     specificity than `html body #mobileMenu li`. */
  html body #mobileMenu .tdc-tm-item { display: block !important; align-items: stretch !important; justify-content: flex-start !important; width: auto !important; border-bottom: 1px solid rgba(0,0,0,.06) !important; }
  html body #mobileMenu .tdc-tm-row { display: flex !important; align-items: stretch !important; justify-content: flex-start !important; width: 100% !important; min-height: 52px; }
  html body #mobileMenu .tdc-tm-panel { display: block !important; align-items: initial !important; justify-content: initial !important; width: 100% !important; border-bottom: 0 !important; }
  html body #mobileMenu .tdc-tm-row > .tdc-tm-link {
    color: #222 !important; background: transparent !important;
    text-transform: none !important; font-weight: 500 !important; font-size: 1rem !important;
    text-decoration: none !important; padding: .9rem 1rem !important;
    display: flex !important; flex: 1 1 auto !important; align-items: center !important;
    letter-spacing: 0 !important; width: auto !important; line-height: 1.3 !important;
  }
  html body #mobileMenu .tdc-tm-item--d0 > .tdc-tm-row > .tdc-tm-link {
    font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .03em !important; font-size: .95rem !important;
  }
  html body #mobileMenu .tdc-tm-list--d1 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 1.75rem !important; font-weight: 600 !important; text-transform: none !important; font-size: .95rem !important; }
  html body #mobileMenu .tdc-tm-list--d2 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 2.5rem !important; font-weight: 500 !important; font-size: .9rem !important; }
  html body #mobileMenu .tdc-tm-list--d3 > .tdc-tm-item > .tdc-tm-row > .tdc-tm-link { padding-left: 3.25rem !important; font-weight: 400 !important; font-size: .88rem !important; }
  html body #mobileMenu .tdc-tm-row > .tdc-tm-toggle {
    background: transparent !important; border: 0 !important; color: #555 !important;
    padding: 0 !important; flex: 0 0 auto !important;
    position: static !important; width: 56px !important; height: auto !important; min-height: 52px;
    border-left: 1px solid rgba(0,0,0,.06) !important;
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
  }
  html body #mobileMenu .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-link,
  html body #mobileMenu .tdc-tm-item.is-open > .tdc-tm-row > .tdc-tm-toggle { color: var(--tudetic-accent, #c9252d) !important; }
  html body #mobileMenu .tdc-tm-drawer-head { background: var(--tudetic-accent, #c9252d) !important; color: #fff !important; padding: .9rem 1rem !important; border-bottom: 0 !important; }
  html body #mobileMenu .tdc-tm-drawer-title { color: #fff !important; }
  html body #mobileMenu .tdc-tm-drawer-close { color: #fff !important; }
  html body #mobileMenu .tdc-tm-drawer-body { background: #fff !important; padding: 0 !important; }
  html body #mobileMenu.offcanvas-start { width: 100% !important; max-width: 420px !important; }
  @media (max-width: 480px) {
    html body #mobileMenu.offcanvas-start { max-width: 100% !important; }
  }