/* Wspólna baza menu Joomla */
.favnav ul.nav,
#fav-navbar-collapse ul.nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

.favnav ul.nav li,
#fav-navbar-collapse ul.nav li {
  position: relative;
  list-style: none;
}

.favnav ul.nav a,
.favnav ul.nav .nav-header,
#fav-navbar-collapse ul.nav a,
#fav-navbar-collapse ul.nav .nav-header {
  display: block;
  text-decoration: none;
}

.favnav li > a,
.favnav li > .nav-header,
#fav-navbar-collapse li > a,
#fav-navbar-collapse li > .nav-header {
  cursor: pointer;
}

/* Menu główne na większych ekranach */
@media (min-width: 768px) {
  #fav-nav {
    min-width: 0;
  }

  #fav-nav .moduletable,
  #fav-nav .custom {
    width: 100%;
  }

  #fav-nav .favnav {
    position: relative;
    z-index: 100;
  }

  #fav-nav ul.nav {
    display: flex;
    float: none;
    width: max-content;
    max-width: calc(100vw - 250px);
    flex-wrap: wrap;
    justify-content: flex-start;
    align-content: flex-start;
    align-items: flex-start;
    gap: 0;
    margin: 0 0 0 auto;
    padding: 0;
  }

  #fav-nav ul.nav > li {
    position: relative;
    flex: 0 0 auto;
  }

  #fav-nav ul.nav > li > a,
  #fav-nav ul.nav > li > .nav-header {
    display: block;
    margin: 0 8px;
    padding: 8px 0;
    color: #fff;
    font-size: clamp(9px, 0.75vw, 12px);
    font-weight: 400;
    line-height: 15px;
    text-decoration: none;
    text-shadow: none;
    white-space: nowrap;
    transition: color 0.3s ease-out;
  }

  #fav-nav ul.nav > li.active > a,
  #fav-nav ul.nav > li.active > .nav-header,
  #fav-nav ul.nav > li:hover > a,
  #fav-nav ul.nav > li:hover > .nav-header,
  #fav-nav ul.nav > li:focus-within > a,
  #fav-nav ul.nav > li:focus-within > .nav-header {
    color: #f20f0f;
  }

  #fav-nav ul.nav > li.deeper.parent > a::after,
  #fav-nav ul.nav > li.deeper.parent > .nav-header::after {
    display: inline-block;
    margin-left: 5px;
    border: 0;
    color: currentColor;
    content: "\f078";
    font-family: "Font Awesome 5 Free";
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
  }

  #fav-nav ul.nav ul.nav-child {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1100;
    display: none;
    width: max-content;
    min-width: 190px;
    max-width: calc(100vw - 24px);
    margin: 0;
    padding: 0;
    background: #fff;
    box-shadow: 0 5px 10px rgb(0 0 0 / 20%);
  }

  #fav-nav ul.nav li:hover > ul.nav-child,
  #fav-nav ul.nav li:focus-within > ul.nav-child {
    display: block;
  }

  #fav-nav ul.nav ul.nav-child a,
  #fav-nav ul.nav ul.nav-child .nav-header {
    display: block;
    margin: 0;
    padding: 8px 14px;
    color: #444;
    font-size: 15px;
    line-height: 2em;
    text-decoration: none;
    white-space: nowrap;
  }

  #fav-nav ul.nav ul.nav-child li:hover > a,
  #fav-nav ul.nav ul.nav-child li:hover > .nav-header,
  #fav-nav ul.nav ul.nav-child li:focus-within > a,
  #fav-nav ul.nav ul.nav-child li:focus-within > .nav-header {
    color: #f20f0f;
  }

  /* Podmenu wysuwane w bok */
  #fav-nav ul.nav ul.nav-child li.deeper.parent > ul.nav-child {
    top: 0;
    left: 100%;
    z-index: 1101;
  }

  #fav-nav ul.nav ul.nav-child li.deeper.parent > a,
  #fav-nav ul.nav ul.nav-child li.deeper.parent > .nav-header {
    padding-right: 28px;
  }

  #fav-nav ul.nav ul.nav-child li.deeper.parent > a::after,
  #fav-nav ul.nav ul.nav-child li.deeper.parent > .nav-header::after {
    position: absolute;
    top: 50%;
    right: 12px;
    display: inline-block;
    border: 0;
    color: currentColor;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

    /* Wyłącz odziedziczone wskaźniki */
  #fav-nav ul.nav ul.nav-child::before,
  #fav-nav ul.nav ul.nav-child::after {
    display: none !important;
    border: 0 !important;
    content: none !important;
  }

  /* Wskaźnik nad głównym dropdownem — wystaje 7 px nad jego krawędź */
  #fav-nav ul.nav > li > ul.nav-child::before {
    position: absolute;
    top: -8px;
    left: 14px;
    z-index: 1102;
    display: block !important;
    width: 14px;
    height: 8px;
    background: #f20f0f;
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
    content: "" !important;
    pointer-events: none;
  }

  /* Wskaźnik z boku submenu — wystaje 7 px poza jego lewą krawędź */
  #fav-nav ul.nav ul.nav-child li.deeper.parent > ul.nav-child::before {
    position: absolute;
    top: 16px;
    left: -8px;
    z-index: 1102;
    display: block !important;
    width: 8px;
    height: 14px;
    background: #f20f0f;
    clip-path: polygon(0 50%, 100% 0, 100% 100%);
    content: "" !important;
    pointer-events: none;
  }

  /* Separator Joomla: czerwony pasek zamiast obrazka */
  #fav-nav ul.nav-child li.item-184 {
    height: 6px;
    margin: 4px 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #f00f03;
  }

  #fav-nav ul.nav-child li.item-184 > * {
    display: none;
  }
}

/* Wspólne kontrolki menu są klikalne */
.favnav a,
.favnav .nav-header,
#fav-navbar-collapse a,
#fav-navbar-collapse .nav-header,
#fav-navbar-collapse li.deeper.parent {
  cursor: pointer;
}

/* Menu mobilne */
@media (max-width: 767px) {
  #fav-navbar-collapse-wrapper {
    width: 100vw;
    max-width: 100vw;
    margin-right: calc((100% - 100vw) / 2);
    margin-left: calc((100% - 100vw) / 2);
    margin-top: 49px;
    padding: 0 !important;
  }

  #fav-navbar-collapse,
  #fav-navbar-collapse .moduletable_menu,
  #fav-navbar-collapse ul.nav {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    padding-right: 0;
    padding-left: 0;
  }

  #fav-navbar-collapse-wrapper .moduletable {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  #fav-navbar-collapse {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #fav-navbar-collapse {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #fav-navbar-collapse ul.nav,
  #fav-navbar-collapse ul.nav li,
  #fav-navbar-collapse ul.nav ul.nav-child {
    position: static;
    display: block;
    float: none;
    width: 100%;
    height: auto !important;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    box-shadow: none;
  }

  #fav-navbar-collapse ul.nav li {
    position: relative;
    border-top: 1px solid #f7f7f7;
    background: linear-gradient(90deg, #a7a7a7 0, #ddd 100%);
  }

  #fav-navbar-collapse ul.nav a,
  #fav-navbar-collapse ul.nav .nav-header {
    display: block;
    min-height: 0;
    margin: 0;
    padding: 7px 42px 7px 16px;
    color: #444;
    font-family: "montserratregular", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
  }

  #fav-navbar-collapse ul.nav a:hover,
  #fav-navbar-collapse ul.nav a:focus,
  #fav-navbar-collapse ul.nav .nav-header:hover,
  #fav-navbar-collapse ul.nav .nav-header:focus {
    color: #f20f0f;
    background: linear-gradient(90deg, #ddd 0, #fefefe 100%);
  }

  #fav-navbar-collapse ul.nav li.current.active > a,
  #fav-navbar-collapse ul.nav li.favmenuopen > a,
  #fav-navbar-collapse ul.nav li.favmenuopen > .nav-header {
    color: #f20f0f;
    background: linear-gradient(90deg, #ddd 0, #fefefe 100%);
  }

  #fav-navbar-collapse ul.nav ul.nav-child {
    display: none;
    overflow: visible;
    background: transparent;
  }

  #fav-navbar-collapse ul.nav li.favmenuopen > ul.nav-child {
    display: block;
  }

  #fav-navbar-collapse ul.nav li li > a,
  #fav-navbar-collapse ul.nav li li > .nav-header {
    padding-left: 44px;
  }

  #fav-navbar-collapse ul.nav li li li > a,
  #fav-navbar-collapse ul.nav li li li > .nav-header {
    padding-left: 66px;
  }

  #fav-navbar-collapse ul.nav li li li li > a,
  #fav-navbar-collapse ul.nav li li li li > .nav-header {
    padding-left: 88px;
  }

  #fav-navbar-collapse ul.nav li li li li li > a,
  #fav-navbar-collapse ul.nav li li li li li > .nav-header {
    padding-left: 110px;
  }

  #fav-navbar-collapse ul.nav li.deeper.parent > a::after,
  #fav-navbar-collapse ul.nav li.deeper.parent > .nav-header::after {
    position: absolute;
    top: 7px;
    right: 16px;
    width: 20px;
    color: #444;
    content: "+";
    font-family: Arial, sans-serif;
    font-size: 23px;
    font-weight: 700;
    line-height: 24px;
    text-align: center;
  }

  #fav-navbar-collapse ul.nav li.deeper.parent.favmenuopen > a::after,
  #fav-navbar-collapse ul.nav li.deeper.parent.favmenuopen > .nav-header::after {
    color: #f20f0f;
    content: "−";
  }

  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:hover > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:hover > .nav-header::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:focus-within > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:focus-within > .nav-header::after {
    color: #f20f0f !important;
  }

  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:hover > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:hover > .nav-header::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:focus-within > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent:focus-within > .nav-header::after {
    color: #f20f0f !important;
  }

  #fav-navbar-collapse ul.nav li.deeper.parent > a:hover::after,
  #fav-navbar-collapse ul.nav li.deeper.parent > .nav-header:hover::after {
    color: #f20f0f;
  }

  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent > .nav-header::after {
    position: absolute !important;
    top: 7px !important;
    right: 22px !important;
    z-index: 2;
    display: block !important;
    width: 20px;
    color: #444 !important;
    content: "+" !important;
    font-family: Arial, sans-serif !important;
    font-size: 23px !important;
    font-weight: 700 !important;
    line-height: 24px !important;
    text-align: center;
    pointer-events: none;
  }

  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent.favmenuopen > a::after,
  #fav-navbarwrap #fav-navbar-collapse ul.nav li.deeper.parent.favmenuopen > .nav-header::after {
    color: #f20f0f !important;
    content: "−" !important;
  }

  #fav-navbar-collapse ul.nav li.item-184 {
    height: 6px !important;
    min-height: 0;
    overflow: hidden;
    border: 0;
    background: #f00f03;
  }

  #fav-navbar-collapse ul.nav li.item-184 > * {
    display: none;
  }
}

/* Kafelkowe menu mobilne — zachowuje zakres i wygląd starej templatki. */
@media (max-width: 992px) {
  table.mobilemenu_tab {
    width: 100%;
    height: auto;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    vertical-align: top;
    border-spacing: 15px;
    border-collapse: separate;
  }

  table.mobilemenu_tab td {
    width: 33%;
    height: 6%;
    margin: 2px;
    padding-top: 8px;
    border: 3px solid #56565a;
    border-radius: 4px;
    box-shadow: 6px 6px 5px 0 rgb(120 120 120 / 60%);
    text-align: center;
    vertical-align: top;
  }

  table.mobilemenu_tab h4 {
    margin-top: 0;
    margin-bottom: 5px;
    font-family: "montserratregular", sans-serif;
    font-size: 12px;
    text-transform: uppercase;
    white-space: pre-wrap;
  }

  table.mobilemenu_tab img {
    width: 55%;
    height: auto;
    margin-bottom: 2px;
    padding: 0 !important;
    background: transparent !important;
    vertical-align: top;
  }

  table.mobilemenu_tab a {
    color: #000;
    text-decoration: none;
  }

  table.mobilemenu_tab a:hover {
    color: #000 !important;
  }

  table.mobilemenu_tab td:hover {
    border-color: #900;
    background-color: #ffb6c1;
  }

  table.mobilemenu_tab td:active {
    border-color: #900;
    background-color: #b00;
  }

  table.mobilemenu_tab td:active a,
  table.mobilemenu_tab a:active {
    color: #fff !important;
  }

  ol.unstyled,
  ul.unstyled {
    float: left;
    margin-top: 25px;
    margin-left: 0;
    list-style: none;
    text-align: left;
  }

  .moduletable.favth-light.favth-large.favth-stack {
    height: 520px;
  }
}

@media (min-width: 768px) {
  table.mobilemenu_tab {
    display: none;
  }

 .favnav,
 .favnav a,
 .favnav .nav-header,
 #fav-navbar-collapse,
 #fav-navbar-collapse a,
 #fav-navbar-collapse .nav-header {
   font-family: montserratregular, Helvetica, Arial, sans-serif;
   font-weight: 400;
  }
}

.favnav ul.nav a,
.favnav ul.nav .nav-header {
  font-family: "RajdhaniLocal", "montserratregular", Arial, sans-serif;
  font-weight: 400;
}

@media (min-width: 768px) and (max-width: 1199px) {
  #fav-nav ul.nav > li > a,
  #fav-nav ul.nav > li > .nav-header {
    margin-right: 7px;
    margin-left: 7px;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  #fav-nav ul.nav > li > a,
  #fav-nav ul.nav > li > .nav-header {
    margin-right: 6px;
    margin-left: 6px;
  }
}

@media (min-width: 992px) {
  /* Logo jest tłem belki, więc nie rezerwujemy osobnej kolumny. */
  #fav-header #fav-logo {
    display: none;
  }

  #fav-header #fav-nav {
    float: none;
    width: 100% !important;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  #fav-header #fav-nav .favnav {
    padding-top: 60px;
  }
}

@media (min-width: 1200px) {
  #fav-header #fav-nav .favnav {
    padding-top: 65px;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  #fav-headerwrap > .favth-container {
    width: 99%;
    max-width: none;
  }
}