/* =========================================================================
   IndustryTech – Kategóriové menu
   Desktop = bočný zoznam s flyout podmenu (hover).
   Mobil   = celé menu zbalené pod hlavičku-tlačidlo, podmenu ako accordion.
   Prepínanie rieši JS triedami .is-collapsed (mobil) a .is-open.
   ========================================================================= */

.itcm-menu {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
	overflow: visible; /* DÔLEŽITÉ: flyout podmenu vyletí mimo box, nesmie sa orezať */
	--itcm-icon-size: 22px;
	--itcm-icon-gap: 12px;
}

/* Čisté zaoblené rohy aj bez overflow:hidden (ten orezával flyout) */
.itcm-header {
	border-top-left-radius: inherit;
	border-top-right-radius: inherit;
}
.itcm-list .itcm-item:last-child > .itcm-item__row {
	border-bottom-left-radius: inherit;
	border-bottom-right-radius: inherit;
}

.itcm-menu *,
.itcm-menu *::before,
.itcm-menu *::after {
	box-sizing: border-box;
}

/* ---------- Hlavička / tlačidlo ---------- */
.itcm-header {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	border: 0;
	margin: 0;
	cursor: pointer;
	text-align: left;
	line-height: 1.3;
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
}

.itcm-header__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.itcm-header__title {
	flex: 1 1 auto;
	font-weight: 600;
}

/* Šípka pri hlavičke – viditeľná len v zbalenom (mobile) režime */
.itcm-header__toggle {
	display: none;
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .25s ease;
	margin-left: auto;
}

/* ---------- Zoznam ---------- */
.itcm-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.itcm-item {
	position: relative;
}

.itcm-item__row {
	position: relative;
	display: flex;
	align-items: stretch;
	transition: background-color .18s ease, box-shadow .18s ease;
}

.itcm-item__link {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: var(--itcm-icon-gap);
	text-decoration: none;
	transition: color .18s ease;
	min-width: 0;
}

/* Slot ikonky – drží šírku aj keď je prázdny, takže text ostane zarovnaný */
.itcm-item__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--itcm-icon-size);
	height: var(--itcm-icon-size);
}
.itcm-item__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 3px;
}
.itcm-item__icon svg {
	width: 100%;
	height: 100%;
}
.itcm-item__icon i {
	font-size: var(--itcm-icon-size);
	line-height: 1;
}

.itcm-item__text {
	flex: 1 1 auto;
	overflow: hidden;
	text-overflow: ellipsis;
}

.itcm-item__count {
	flex: 0 0 auto;
	font-size: .8em;
	opacity: .6;
}

/* Šípka vpravo */
.itcm-item__arrow {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: inherit;
	transition: transform .25s ease, color .18s ease;
	-webkit-appearance: none;
	appearance: none;
}

.itcm-item__arrow--static {
	cursor: default;
	pointer-events: none;
}

/* ---------- Podmenu ---------- */
.itcm-sub {
	list-style: none;
	margin: 0;
	padding: 6px 0;
}

.itcm-sub__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 24px;
	text-decoration: none;
	transition: color .15s ease, background-color .15s ease;
}

.itcm-sub__count {
	font-size: .8em;
	opacity: .6;
}

.itcm-sub__item.is-current > .itcm-sub__link {
	font-weight: 600;
	color: #16365f;
	background-color: #fff9e6;
	box-shadow: inset 3px 0 0 #f5b301;
}

/* ---------- Prázdny stav ---------- */
.itcm-empty {
	padding: 18px 24px;
	color: #8a96a3;
	font-size: .9em;
}

/* =========================================================================
   DESKTOP (nad zlomom) – flyout podmenu
   Trieda .is-collapsed pridáva JS len pod zlomom, takže default = desktop.
   ========================================================================= */
.itcm-menu:not(.is-collapsed) .itcm-list {
	display: block !important;
}

.itcm-menu:not(.is-collapsed) .itcm-header__toggle {
	display: none;
}

/* Flyout: skrytý, zobrazí sa pri hover/focus na položku (nie v inline režime) */
.itcm-menu:not(.is-collapsed):not(.itcm-menu--inline) .itcm-sub {
	position: absolute;
	top: 0;
	left: 100%;
	z-index: 50;
	min-width: 240px;
	opacity: 0;
	visibility: hidden;
	transform: translateX(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	box-shadow: 0 12px 30px rgba(16, 33, 60, .14);
}

/* Predvolený radius podmenu (prepíše ho Elementor ovládač "Zaoblenie podmenu") */
.itcm-sub {
	border-radius: 3px;
}

.itcm-menu:not(.is-collapsed):not(.itcm-menu--inline) .itcm-item.has-children:hover > .itcm-item__row > .itcm-sub,
.itcm-menu:not(.is-collapsed):not(.itcm-menu--inline) .itcm-item.has-children:focus-within > .itcm-item__row > .itcm-sub {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

/* Na desktope (flyout) šípka pri položke s deťmi neničí klik – je iba indikátor */
.itcm-menu:not(.is-collapsed):not(.itcm-menu--inline) .itcm-item.has-children .itcm-item__arrow {
	pointer-events: none;
}

/* =========================================================================
   MOBIL (.is-collapsed) – všetko pod sebou, accordion
   ========================================================================= */
.itcm-menu.is-collapsed .itcm-header__toggle {
	display: block;
}

/* Keď je menu na mobile zatvorené, hlavička má zaoblené aj spodné rohy */
.itcm-menu.is-collapsed:not(.is-open) .itcm-header {
	border-bottom-left-radius: inherit;
	border-bottom-right-radius: inherit;
}

/* Zoznam zbalený, kým nie je .is-open na celom menu */
.itcm-menu.is-collapsed .itcm-list {
	display: none;
}

.itcm-menu.is-collapsed.is-open .itcm-list {
	display: block;
}

.itcm-menu.is-collapsed.is-open .itcm-header__toggle {
	transform: rotate(-135deg);
}

/* Podmenu na mobile = accordion (statické, plná šírka) */
.itcm-menu.is-collapsed .itcm-sub {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	min-width: 0;
	display: none;
	background: rgba(0, 0, 0, .02);
}

.itcm-menu.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-sub {
	display: block;
}

.itcm-menu.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow {
	transform: rotate(90deg);
}

.itcm-menu.is-collapsed .itcm-sub__link {
	padding-left: 40px;
}

/* Na mobile musí byť šípka klikateľná (rozbalenie accordionu) */
.itcm-menu.is-collapsed .itcm-item.has-children .itcm-item__arrow {
	pointer-events: auto;
}

/* Keď má položka deti, na mobile nech text vyplní priestor a šípka je oddelená */
.itcm-menu.is-collapsed .itcm-item.has-children > .itcm-item__row {
	flex-wrap: wrap;
}

.itcm-menu.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-sub {
	flex: 1 0 100%;
}

/* ---------- Prístupnosť: viditeľný focus ---------- */
.itcm-menu a:focus-visible,
.itcm-menu button:focus-visible {
	outline: 2px solid #f5b301;
	outline-offset: -2px;
}

/* Skryť šípku hlavičky, ak hlavička nie je tlačidlo (poistka) */
.itcm-header[disabled] {
	cursor: default;
}

/* =========================================================================
   DROPDOWN widget (.itcm-dd) – do headera
   Defaultne zbalený; otvára sa cez .is-open (rieši JS) + CSS hover fallback.
   ========================================================================= */
.itcm-dd {
	position: relative;
	display: inline-block;
	--itcm-icon-size: 22px;
	--itcm-icon-gap: 12px;
}

.itcm-dd__trigger {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 0;
	margin: 0;
	cursor: pointer;
	font: inherit;
	line-height: 1.2;
	/* Defaulty – Elementor ovládače ich prepíšu (vyššia špecificita {{WRAPPER}}) */
	background-color: var(--itc-navy, #16365F);
	color: #fff;
	border-radius: 3px;
	transition: background-color .18s ease, color .18s ease;
	-webkit-appearance: none;
	appearance: none;
}

.itcm-dd__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.itcm-dd__label {
	font-weight: 600;
}

/* Caret – malá šípka dole, otočí sa keď je otvorené */
.itcm-dd__caret {
	width: 9px;
	height: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform .25s ease;
	margin-left: 2px;
}

/* ---------- Panel ---------- */
.itcm-dd__panel {
	position: absolute;
	top: 100%;
	z-index: 200;
	min-width: 280px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	overflow: visible; /* aby flyout podmenu nebol orezaný */
}

.itcm-dd--align-left .itcm-dd__panel  { left: 0; }
.itcm-dd--align-right .itcm-dd__panel { right: 0; }

.itcm-dd__panel .itcm-list {
	border-radius: inherit;
}

/* Otvorený stav (JS pridá .is-open; hover fallback len na desktope) */
.itcm-dd.is-open > .itcm-dd__panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.itcm-dd.is-open > .itcm-dd__trigger .itcm-dd__caret {
	transform: rotate(-135deg) translate(-1px, -1px);
}

/* CSS hover fallback (ak by JS nestihol) – iba desktop */
@media (hover: hover) {
	.itcm-dd[data-open-on="hover"]:not(.is-collapsed):hover > .itcm-dd__panel {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}

/* ---------- Podmenu vnútri panela: flyout doprava (desktop) ---------- */
.itcm-dd:not(.is-collapsed) .itcm-sub {
	position: absolute;
	top: 0;
	left: 100%;
	z-index: 50;
	min-width: 240px;
	opacity: 0;
	visibility: hidden;
	transform: translateX(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	box-shadow: 0 12px 30px rgba(16, 33, 60, .14);
	padding: 6px 0;
	list-style: none;
	margin: 0;
}

.itcm-dd:not(.is-collapsed) .itcm-item.has-children:hover > .itcm-item__row > .itcm-sub,
.itcm-dd:not(.is-collapsed) .itcm-item.has-children:focus-within > .itcm-item__row > .itcm-sub {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

.itcm-dd:not(.is-collapsed) .itcm-item.has-children .itcm-item__arrow {
	pointer-events: none;
}

/* Posledný riadok v paneli zaoblený podľa panela */
.itcm-dd__panel .itcm-list .itcm-item:last-child > .itcm-item__row {
	border-bottom-left-radius: inherit;
	border-bottom-right-radius: inherit;
}

/* =========================================================================
   DROPDOWN – mobilný režim (.is-collapsed): panel v toku, accordion
   ========================================================================= */
.itcm-dd.is-collapsed {
	display: block;
	width: 100%;
}

.itcm-dd.is-collapsed .itcm-dd__trigger {
	width: 100%;
	justify-content: flex-start;
}

.itcm-dd.is-collapsed .itcm-dd__panel {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	min-width: 0;
	margin-top: 0;
	display: none;
	box-shadow: none;
}

.itcm-dd.is-collapsed.is-open .itcm-dd__panel {
	display: block;
}

/* Podmenu na mobile = accordion */
.itcm-dd.is-collapsed .itcm-sub {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	min-width: 0;
	display: none;
	list-style: none;
	margin: 0;
	padding: 0;
	background: rgba(0, 0, 0, .02);
}

.itcm-dd.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-sub {
	display: block;
}

.itcm-dd.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow {
	transform: rotate(90deg);
}

.itcm-dd.is-collapsed .itcm-item.has-children .itcm-item__arrow {
	pointer-events: auto;
}

.itcm-dd.is-collapsed .itcm-item.has-children > .itcm-item__row {
	flex-wrap: wrap;
}

.itcm-dd.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-sub {
	flex: 1 0 100%;
}

.itcm-dd.is-collapsed .itcm-sub__link {
	padding-left: 40px;
}

/* =========================================================================
   INLINE režim (.itcm-menu--inline) – deti vždy pod sebou (accordion),
   bez ohľadu na zlom. Používa ho najmä sidebar / klasický WP widget,
   kde sa aktuálna kategória rozbalí inline a zvýrazní.
   ========================================================================= */
.itcm-menu--inline .itcm-list {
	display: block !important;
}

.itcm-menu--inline .itcm-sub {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	min-width: 0;
	display: none;
	list-style: none;
	margin: 0;
	padding: 0;
	background: rgba(0, 0, 0, .02);
}

.itcm-menu--inline .itcm-item.is-expanded > .itcm-item__row > .itcm-sub {
	display: block;
}

.itcm-menu--inline .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow {
	transform: rotate(90deg);
}

.itcm-menu--inline .itcm-item.has-children .itcm-item__arrow {
	pointer-events: auto;
}

.itcm-menu--inline .itcm-item.has-children > .itcm-item__row {
	flex-wrap: wrap;
}

.itcm-menu--inline .itcm-item.has-children > .itcm-item__row > .itcm-sub {
	flex: 1 0 100%;
}

.itcm-menu--inline .itcm-sub__link {
	padding-left: 40px;
}

/* Položka, ktorá je rodičom aktuálnej kategórie (cesta) – jemné zvýraznenie */
.itcm-menu--inline .itcm-item.is-trail > .itcm-item__row > .itcm-item__link {
	font-weight: 600;
}

/* =========================================================================
   POLISH + IKONY (+/− a chevron) – v1.4
   Vzhľadové defaulty (uplatnia sa hlavne na klasický WP widget; Elementor
   ich prepíše svojimi ovládačmi, lebo tie majú vyššiu špecificitu).
   ========================================================================= */

/* Obranné resety voči téme (zoznamy v sidebar oblastiach) */
.itcm-menu ul,
.itcm-menu li,
.itcm-dd ul,
.itcm-dd li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.itcm-menu li::before,
.itcm-dd li::before {
	content: none;
}

/* Základné farby a oddeľovače (default, bez Elementor ovládačov) */
.itcm-item__link {
	color: #16365f;
}
.itcm-item:not(:last-child) > .itcm-item__row {
	border-bottom: 1px solid #eef0f3;
}
.itcm-item__count {
	color: #9aa6b2;
	font-weight: 500;
	margin-right: 4px;
}
.itcm-item__row {
	transition: background-color .18s ease, box-shadow .18s ease;
}
.itcm-item__link,
.itcm-item__arrow {
	min-height: 26px;
}
.itcm-item__row:hover {
	background: #f7f9fb;
	box-shadow: inset 3px 0 0 #f5b301;
}
.itcm-item.is-current > .itcm-item__row {
	background: #fff9e6;
	box-shadow: inset 3px 0 0 #f5b301;
}
.itcm-item.is-current > .itcm-item__row .itcm-item__link {
	font-weight: 700;
}

/* Karta – rámik, biele pozadie, zaoblenie (WP widget) */
.itcm-menu--card {
	background: #fff;
	border: 1px solid #e7eaee;
	border-radius: 3px;
	overflow: hidden;
}

/* Inline podmenu – čisté, bez šedého pruhu; len odsadenie + jemné zvýraznenie aktívnej */
.itcm-menu--inline .itcm-sub,
.itcm-menu.is-collapsed .itcm-sub,
.itcm-dd .itcm-sub {
	background: transparent;
}
.itcm-sub__link {
	color: #4a5a70;
	transition: color .15s ease, background-color .15s ease;
}
.itcm-sub__link:hover {
	background: #f7f9fb;
	color: #16365f;
}
.itcm-sub__count {
	color: #9aa6b2;
	margin-right: 4px;
}

/* =========================================================================
   IKONY: pôvodné SVG šípky skryjeme a nakreslíme cez pseudo-prvky
   - flyout (desktop) + listové položky: chevron ">"
   - accordion (inline / mobil): + (zbalené) / − (rozbalené)
   ========================================================================= */
.itcm-item__arrow svg {
	display: none;
}
.itcm-item__arrow {
	transform: none !important; /* ikonu animujeme cez pseudo, nie kontajner */
	position: relative;
}

/* Základ = chevron ">" */
.itcm-item__arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translate(-65%, -50%) rotate(-45deg);
	transition: opacity .2s ease, transform .2s ease;
}

/* Accordion: z has-children šípky sprav vodorovnú čiaru (základ +/−) */
.itcm-menu--inline .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::before,
.itcm-menu.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::before,
.itcm-dd.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::before {
	width: 13px;
	height: 2px;
	border: 0;
	border-radius: 1px;
	background: currentColor;
	transform: translate(-50%, -50%);
}

/* Zvislá čiara (z "+" spraví, keď je zbalené) */
.itcm-menu--inline .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::after,
.itcm-menu.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::after,
.itcm-dd.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 2px;
	border-radius: 1px;
	background: currentColor;
	transform: translate(-50%, -50%) rotate(90deg);
	transition: opacity .2s ease, transform .2s ease;
}

/* Rozbalené => mínus (skry zvislú čiaru) */
.itcm-menu--inline .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow::after,
.itcm-menu.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow::after,
.itcm-dd.is-collapsed .itcm-item.is-expanded > .itcm-item__row > .itcm-item__arrow::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(0deg);
}

/* Väčší klikací cieľ pre +/− */
.itcm-menu--inline .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow,
.itcm-menu.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow,
.itcm-dd.is-collapsed .itcm-item.has-children > .itcm-item__row > .itcm-item__arrow {
	cursor: pointer;
}

/* =========================================================================
   HARDENING karty (WP widget) – v1.4.1
   Tvrdšie pravidlá, ktoré prebijú štýly témy (Martfury obaľuje widgety a
   štýluje .widget ul li a s vysokou špecificitou). Platí len pre kartu,
   takže Elementor widgety to neovplyvní.
   ========================================================================= */
.itcm-menu--card,
.itcm-menu--card * {
	box-sizing: border-box;
}

.itcm-menu--card ul,
.itcm-menu--card li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	border: 0;
	background-image: none;
}
.itcm-menu--card li::before,
.itcm-menu--card li::marker {
	content: none !important;
	display: none;
}

.itcm-menu--card .itcm-item__link,
.itcm-menu--card .itcm-sub__link {
	text-decoration: none !important;
}
.itcm-menu--card .itcm-item__link {
	color: #16365f !important;
	padding: 14px 18px;
}
.itcm-menu--card .itcm-sub__link {
	color: #4a5a70 !important;
	padding: 11px 18px 11px 42px;
}

/* Oddeľovače a čisté podmenu (prebiť tému) */
.itcm-menu--card .itcm-item:not(:last-child) > .itcm-item__row {
	border-bottom: 1px solid #eef0f3 !important;
}
.itcm-menu--card .itcm-sub {
	background: transparent !important;
}

/* Hover / aktívna položka (istota, ak téma maže pozadia) */
.itcm-menu--card .itcm-item__row:hover {
	background: #f7f9fb !important;
	box-shadow: inset 3px 0 0 #f5b301;
}
.itcm-menu--card .itcm-item.is-current > .itcm-item__row {
	background: #fff9e6 !important;
	box-shadow: inset 3px 0 0 #f5b301;
}
.itcm-menu--card .itcm-sub__item.is-current > .itcm-sub__link {
	background: #fff9e6 !important;
	box-shadow: inset 3px 0 0 #f5b301;
}

/* +/− v karte (istota: skry SVG, kontajner nerotuj) */
.itcm-menu--card .itcm-item__arrow svg {
	display: none !important;
}
.itcm-menu--card .itcm-item__arrow {
	transform: none !important;
}

/* =========================================================================
   v1.4.2 – položky bez podkategórií nemajú šípku ">"
   (miesto sa zachová cez visibility, nech čísla počtu ostanú zarovnané)
   ========================================================================= */
.itcm-item__arrow--static {
	visibility: hidden;
}
