/* ============================================================
   GoraFish — Catalog Menu (Ліва колонка категорій)
   Файл: assets/css/sections/catalog-menu.css
   ============================================================ */

/* --- Обгортка --- */
.cat-menu__wrapper {
  position: relative;
  width: 280px;
  flex-shrink: 0;
}

/* --- Заголовок (десктоп) --- */
.cat-menu__header {
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  font-variation-settings: "wght" 700;
  font-size: var(--text-m);
  padding: 14px 20px;
  border-radius: 8px 8px 0 0;
  user-select: none;
}

/* --- Список --- */
.cat-menu__list {
  background: #fff;
  border: 1px solid var(--bricks-color-grey-300);
  border-top: none;
  border-radius: 0 0 8px 8px;
  max-height: 50vh;/*480*/
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--primary) var(--bricks-color-grey-100);
}

.cat-menu__list::-webkit-scrollbar {
  width: 4px;
}
.cat-menu__list::-webkit-scrollbar-track {
  background: var(--bricks-color-grey-100);
}
.cat-menu__list::-webkit-scrollbar-thumb {
  background: var(--primary);
  border-radius: 4px;
}

/* --- ul --- */
.cat-menu__list ul {
  list-style: none;
  margin: 0;
  padding: 8px 0;
}

/* --- Посилання (десктоп) ---
   Плавний зсув вправо + підсвітка лівої межі при наведенні
   ---------------------------------------------------------- */
.cat-menu__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 20px;
  color: var(--title);
  font-size: var(--text-s);
  font-weight: 500;
  font-variation-settings: "wght" 500;
  text-decoration: none;
  line-height: 1.4;
  border-left: 3px solid transparent;
  /* Анімуємо: фон, колір тексту, відступ, межу, іконку */
  transition:
    background    0.22s ease,
    color         0.22s ease,
    padding-left  0.22s cubic-bezier(0.4, 0, 0.2, 1),
    border-color  0.22s ease;
}

.cat-menu__link:hover {
  background: var(--primary-l-4);
  color: var(--primary);
  padding-left: 26px;
  border-left-color: var(--primary);
}

/* --- Активна категорія --- */
.cat-menu__item.is-active .cat-menu__link {
  background: var(--primary-l-4);
  color: var(--primary);
  font-weight: 600;
  padding-left: 26px;
  border-left-color: var(--primary);
}

/* --- Іконка --- */
.cat-menu__icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
  opacity: 0.55;
  transition: opacity 0.22s ease;
}

.cat-menu__link:hover .cat-menu__icon,
.cat-menu__item.is-active .cat-menu__icon {
  opacity: 1;
}

/*-- Анімація іконки при наведенні --*/
/* Inline SVG іконка з ACF */
.cat-menu__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  /* currentColor = успадковує колір тексту посилання */
  color: var(--bricks-color-grey-700);
  transition: color 0.22s ease;
}

.cat-menu__icon path,
.cat-menu__icon circle,
.cat-menu__icon rect,
.cat-menu__icon line,
.cat-menu__icon polyline,
.cat-menu__icon polygon {
  stroke: currentColor;
  transition: stroke 1.42s ease;
}

/* Анімація малювання тільки при наведенні */
.cat-menu__link:hover .cat-menu__icon path,
.cat-menu__link:hover .cat-menu__icon circle,
.cat-menu__link:hover .cat-menu__icon rect,
.cat-menu__link:hover .cat-menu__icon line,
.cat-menu__link:hover .cat-menu__icon polyline,
.cat-menu__link:hover .cat-menu__icon polygon {
  stroke-dasharray: 200;
  stroke-dashoffset: 0;
  animation: drawIcon 1.55s ease forwards;
}

@keyframes drawIcon {
  from { stroke-dashoffset: 200; }
  to   { stroke-dashoffset: 0; }
}
/* При наведенні — іконка малюється + стає помаранчевою */
.cat-menu__link:hover .cat-menu__icon {
  color: var(--primary);
}

.cat-menu__link:hover .cat-menu__icon path,
.cat-menu__link:hover .cat-menu__icon circle,
.cat-menu__link:hover .cat-menu__icon rect,
.cat-menu__link:hover .cat-menu__icon line,
.cat-menu__link:hover .cat-menu__icon polyline,
.cat-menu__link:hover .cat-menu__icon polygon {
  stroke-dashoffset: 0;
}

/* Активна категорія — іконка одразу намальована */
.cat-menu__item.is-active .cat-menu__icon {
  color: var(--primary);
}

.cat-menu__item.is-active .cat-menu__icon path,
.cat-menu__item.is-active .cat-menu__icon circle,
.cat-menu__item.is-active .cat-menu__icon rect,
.cat-menu__item.is-active .cat-menu__icon line,
.cat-menu__item.is-active .cat-menu__icon polyline,
.cat-menu__item.is-active .cat-menu__icon polygon {
  stroke-dashoffset: 0;
}
/*-- Кінець анімації іконки --*/

/* --- Назва категорії --- */
.cat-menu__name {
  flex: 1;
}

/* --- Мобільний тригер: схований на десктопі --- */
.cat-menu__toggle {
  display: none;
}


/* ============================================================
   МОБІЛЬНА ВЕРСІЯ (≤ 768px)
   ============================================================ */

@media (max-width: 768px) {

  .cat-menu__wrapper {
    width: 100%;
  }

  /* Показуємо кнопку-тригер */
  .cat-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 12px 16px;
    font-size: var(--text-m);
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
  }

  .cat-menu__toggle:hover,
  .cat-menu__toggle:focus-visible {
    background: var(--primary-l-1);
    outline: 2px solid var(--primary-l-2);
    outline-offset: 2px;
  }

  /* Стрілка — плавне обертання */
  .cat-menu__toggle-icon {
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
  }

  .cat-menu__toggle[aria-expanded="true"] .cat-menu__toggle-icon {
    transform: rotate(180deg);
  }

  /* -----------------------------------------------
     Плавне розкриття через max-height + opacity.
     display:none/block не анімується — тому
     використовуємо max-height trick:
     закритий стан = 0, відкритий = велике значення
  ----------------------------------------------- */
  .cat-menu__list {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    border-radius: 0 0 8px 8px;
    border: 1px solid var(--bricks-color-grey-300);
    border-top: none;
    /* Анімація закриття — швидша */
    transition:
      max-height 0.3s  cubic-bezier(0.4, 0, 0.2, 1),
      opacity    0.2s  ease;
  }

  /* Відкритий стан */
  .cat-menu__list.is-open {
    max-height: 360px;
    overflow-y: auto;
    opacity: 1;
    /* Анімація відкриття — трохи повільніша, з невеликою затримкою opacity */
    transition:
      max-height 0.4s  cubic-bezier(0.4, 0, 0.2, 1),
      opacity    0.3s  ease 0.05s;
  }

  /* Заголовок схований на мобільному */
  .cat-menu__header {
    display: none;
  }

  /* На touch-екранах прибираємо зсув вправо — незручно */
  .cat-menu__link:hover {
    padding-left: 20px;
  }
}
