/* ==========================================================================
   06. Navigation & Menus (BEM Architecture)
   ========================================================================== */

/* --- Primary Navigation List --- */
.pf-nav-list {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 17px;
  text-transform: uppercase;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: var(--pf-space-8);
}

.pf-nav-list--fallback {
  gap: var(--pf-space-8);
}

/* --- Navigation Items --- */
.pf-nav-item {
  position: relative;
}

/* --- Navigation Links --- */
.pf-nav-link {
  font-weight: 700;
  color: var(--pf-menu-text, inherit);
  text-decoration: none;
  transition: color 0.3s ease;
  position: relative;
}

.pf-nav-link:hover {
  color: var(--pf-menu-hover, var(--pf-primary));
}

.current-menu-item > .pf-nav-link,
.current-menu-ancestor > .pf-nav-link {
  color: var(--pf-menu-active, var(--pf-primary));
}

/* Premium 1px Smooth Underline Animation */
.pf-nav-link::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: -4px;
  left: 0;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.pf-nav-link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.current-menu-item > .pf-nav-link::after,
.current-menu-ancestor > .pf-nav-link::after {
  transform: scaleX(1);
  transform-origin: left;
}

.pf-nav-link--has-dropdown {
  display: inline-flex;
  align-items: center;
}

/* --- Dropdown Toggle (Arrows) --- */
.pf-nav-toggle {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-left: 0.25rem;
  display: inline-flex;
  align-items: center;
  color: inherit;
}

.pf-nav-toggle__icon {
  width: 0.5rem;
  height: 0.5rem;
}

/* --- Dropdown Menus --- */
.pf-nav-dropdown,
ul.sub-menu,
.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background-color: var(--pf-secondary) !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0 0 var(--pf-radius-md) var(--pf-radius-md);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  padding: var(--pf-space-2) 0;
  min-width: 180px;
  z-index: 50;
  opacity: 0;
  transform: translateY(0.75rem);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pf-nav-dropdown--sub {
  top: 0;
  left: 100%;
  border-radius: var(--pf-radius-md);
  transform: translateX(0.5rem);
  margin-top: -0.5rem;
}

.pf-nav-dropdown__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pf-nav-dropdown__item {
  position: relative;
}

.pf-nav-dropdown__link {
  display: inline-block;
  padding: var(--pf-space-2) var(--pf-space-4);
  color: var(--pf-submenu-text, var(--pf-white));
  text-decoration: none;
  font-size: 15px;
  text-transform: none;
  font-weight: 500;
  position: relative;
  transition: color 0.2s ease;
}

.pf-nav-dropdown__link::after,
.pf-nav-dropdown a::after,
ul.sub-menu a::after,
.sub-menu a::after {
  content: '';
  position: absolute;
  width: calc(100% - 2rem);
  height: 1px;
  bottom: 4px;
  left: 1rem;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.pf-nav-dropdown__link:hover::after,
.pf-nav-dropdown a:hover::after,
ul.sub-menu a:hover::after,
.sub-menu a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.pf-nav-dropdown__link:hover,
.pf-nav-dropdown a:hover,
ul.sub-menu a:hover,
.sub-menu a:hover,
.current-menu-item > .pf-nav-dropdown__link {
  background-color: transparent !important;
  color: #ffffff !important;
}

.pf-nav-dropdown__link--has-dropdown {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Show Dropdown on Hover/Focus Within */
.pf-nav-item:hover > .pf-nav-dropdown,
.pf-nav-dropdown__item:hover > .pf-nav-dropdown {
  opacity: 1;
  transform: translateY(0) translateX(0);
  pointer-events: auto;
}

/* --- Mobile Navigation --- */
.pf-mobile-submenu {
  padding-left: var(--pf-space-4);
  margin-top: var(--pf-space-1);
}

.pf-mobile-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding-top: var(--pf-space-3);
  padding-bottom: var(--pf-space-3);
}

.pf-mobile-item--top-level {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.pf-mobile-link {
  color: #ffffff;
  text-decoration: none;
  flex: 1;
  display: flex;
  align-items: center;
  transition: color 0.2s ease;
}

.pf-mobile-link:hover,
.pf-mobile-item--current > .pf-mobile-link {
  color: var(--pf-primary, var(--pawfect-primary, #F4A259));
}

.pf-mobile-toggle {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  padding: var(--pf-space-2);
  transition: transform 0.25s ease, color 0.2s ease;
}

.pf-mobile-toggle:hover {
  color: #ffffff;
}

.pf-mobile-toggle.rotated,
.pf-mobile-toggle--active {
  transform: rotate(90deg);
  color: var(--pf-primary, var(--pawfect-primary, #F4A259));
}

.pf-mobile-submenu {
  display: none;
  width: 100%;
}

.pf-mobile-submenu--open {
  display: block;
}
