/* ===== VARIABLES ===== */
:root {
  --qintess-primary: #6800FF;
  --qintess-primary-hover: #6610f2;
  --qintess-text: #222222;
  --qintess-background: #FFFFFA;
  --qintess-white: #FFFFFF;
  --qintess-border: #eeeeee;
  --transition-standard: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  --shadow-standard: 0 4px 6px -2px rgba(0, 0, 0, 0.1);

  
  /* Filters */
  --filter-dark: brightness(0) saturate(100%) invert(13%) sepia(0%) saturate(0%) hue-rotate(246deg) brightness(95%) contrast(84%);
  --filter-light: brightness(0) saturate(100%) invert(100%) sepia(8%) saturate(120%) hue-rotate(20deg) brightness(105%) contrast(105%);
  --filter-primary: brightness(0) saturate(100%) invert(13%) sepia(100%) saturate(7496%) hue-rotate(266deg) brightness(101%) contrast(132%);
}

/* ===== HEADER & NAVIGATION BASE STYLES ===== */
header nav.nav-qintess {
  display: block;
  transition: var(--transition-standard);
  width: 100%;
  position: relative;
  
  .content-header {
    justify-content: space-between;
    position: relative;
    
    .navbar-collapse .region-nav-main {
      display: flex;
      position: relative;
    }
  }

  .qintess-header-menu li.nav-item a.nav-link {
    color: var(--qintess-text);
    
    &::after, &::before {
      filter: var(--filter-black);
      transition: var(--transition-fast);
    }
  }
  
  .mobile-menu-trigger {
    border: none;
    transition: var(--transition-fast);
    align-content: center;
    
    &:hover {
      transform: scale(1.05);
    }
    
    &:active {
      transform: scale(0.95);
    }
    
    img {
      filter: var(--filter-dark);
      transition: var(--transition-fast);
    }
  }
}

/* ===== HOMEPAGE SPECIFIC STYLES ===== */
body.path-frontpage header nav.nav-qintess {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  
  .content-header {
    background-color: transparent;
  }
}

/* ===== FIXED NAVIGATION STYLES ===== */
header nav.nav-qintess {
  &.navbar-fixed {
    box-shadow: var(--shadow-standard);
  }
  
  &.fixed-top {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 1030 !important;
    width: 100% !important;
    background-color: var(--qintess-background) !important;
    animation: slideDown 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    
    @media (min-width: 992px) {
      height: 100px !important;
    }
    
    .main-menu-container {
      @media (min-width: 1440px) {
        padding: 20px 240px;
      }
      
      .site-logo img {
        filter: var(--filter-dark);
        transition: var(--transition-standard);
      }

      .mobile-menu-trigger img {
        filter: var(--filter-dark) !important;
      }
      
      li.nav-item {
        a.nav-link {
          color: var(--qintess-text) !important;
          transition: var(--transition-fast);
        }
        
        &.dropdown a.nav-link, 
        .nav-link-wrapper a.nav-link {
          &.nav-language-option::before, &::after {
            filter: none !important;
            transition: var(--transition-fast);
          }
        }
      }
    }
  }
}

body.has-fixed-nav {
  transition: padding-top 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== MAIN MENU STYLES ===== */
.qintess-header-menu {
  gap: 10px;
  
  li.nav-item {    
    a.nav-link {
      color: var(--qintess-text);
      font-size: 16px;
      font-weight: 400;
      line-height: 26.82px;
      
      &.is-active, &.show {
        color: var(--qintess-primary) !important;
        filter: var(--filter-primary);
      }
      
      &:hover {
        color: var(--qintess-primary) !important;
        filter: var(--filter-primary);
      }
    }
    
    &.dropdown, .nav-link-wrapper {
      a.nav-link {
        &.active {
          font-weight: 700;
          color: var(--qintess-primary) !important;
          filter: var(--filter-primary);
        }
        
        &.nav-language-option::before {
          content: '';
          display: inline-block;
          width: 35px;
          height: 24px;
          background: url('../assets/globo.svg') no-repeat center;
          background-size: contain;
          border: none;
        }
        
        &::after {
          content: '';
          display: inline-block;
          width: 15px;
          height: 15px;
          background: url('../assets/option-arrow.svg') no-repeat center;
          background-size: contain;
          border: none;
          margin-left: 5px;
          margin-bottom: -2px;
        }
      }
      
      ul.dropdown-menu {
        border: none;
        border-radius: 0;
        background: var(--qintess-white);
        padding: unset;
        box-shadow: var(--shadow-standard);
        transform-origin: top center;
        animation: dropdownFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
        
        li.nav-item {
          opacity: 0;
          animation: fadeInItems 0.5s forwards;

          @for $i from 1 through 10 {
            &:nth-child(#{$i}) {
              animation-delay: #{$i * 0.05}s;
            }
          }

          a.dropdown-item {
            padding: 12px;ition: var(--transition-fast);
            position: relative;
            z-index: 1;
            margin-left: -5px;
            
            &::before {
              content: '';
              position: absolute;
              z-index: -1;
              top: 0;
              left: 0;
              right: 0;
              bottom: 0;
              background: linear-gradient(180deg, rgba(104, 0, 255, 0) 0%, rgba(104, 0, 255, 0.2) 100%);
              opacity: 0;
              transform: scaleX(0);
              transform-origin: 0 50%;
              transition: transform 0.3s ease-out, opacity 0.2s ease;
            }
            
            &:hover::before {
              transform: scaleX(1);
              opacity: 1;
            }
            
            &.active, &.is-active, &:hover {
              color: var(--qintess-primary) !important;
              transform: translateX(5px);
            }
            
            &.active, &.is-active {
              font-weight: 700;
            }
          }
        }
      }
    }
  }
}

/* ===== DROPDOWN ACTIVE STATE ===== */
header nav.nav-qintess.dropdown-active {
  background-color: var(--qintess-background) !important;
  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  
  .site-logo img {
    filter: var(--filter-dark);
    transition: filter 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .mobile-menu-trigger img {
    filter: var(--filter-dark) !important;
  }
  
  .qintess-header-menu li.nav-item a.nav-link {
    color: var(--qintess-text) !important;
    transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    
    &::after, &::before {
      filter: var(--filter-dark) !important;
      transition: filter 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
  }
}

/* Remove Bootstrap dropdown arrow */
.nav-link[data-has-children="true"]::after {
  display: none;
}

/* ===== SUBMENU STYLES - LIMITADO ENTRE AS LINHAS VERMELHAS ===== */
.submenu-container {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  background: var(--qintess-white);
  z-index: 100;
  box-shadow: var(--shadow-standard);
  top: 100%;
  
  &.active {
    display: block;
    animation: submenuFadeIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }
  
  &.main-submenu-container {
    /* Posicionado dentro dos limites do menu */
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
  }
}

/* Posicionamento específico para o container da região nav-main */
.region-nav-main {
  position: relative;
}

/* Para navegação fixa */
header nav.nav-qintess.fixed-top .region-nav-main .submenu-container.main-submenu-container {
  position: fixed;
  top: 100px;
  left: auto;
  right: auto;
  width: auto;
}

/* Garante que o submenu respeite os limites do menu */
.navbar-collapse .region-nav-main .submenu-container {
  left: 0;
  right: 0;
  width: 100%;
}

/* Ajuste para telas grandes */
@media (min-width: 1440px) {
  .navbar-collapse .region-nav-main .submenu-container {
    left: 0;
    right: 0;
  }
  
  .submenu-header,
  .submenu-content {
    padding-left: 30px;
    padding-right: 30px;
  }
}

.submenu-header {
  font-size: 12px;
  font-weight: 600;
  color: var(--qintess-text);
  padding: 30px 30px 20px;
  text-transform: uppercase;
  margin: 0;
}

.submenu-content {
  display: flex;
  width: 100%;
  padding: 0 30px 30px;
  
  &.has-subsubmenu .submenu-primary {
    border-right: 1px solid var(--qintess-border);
  }
}

.submenu-primary {
  width: auto;
  min-width: 350px;
  border-right: 0;
}

.submenu-secondary {
  flex: 1;
  padding: 0 30px;
  animation: fadeIn 0.5s 0.2s forwards;
  opacity: 0;
}

.submenu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.submenu-item {
  margin-bottom: 15px;
  position: relative;
  opacity: 0;
  transform: translateY(10px);
  animation: fadeInUp 0.5s forwards;
  
  @for $i from 1 through 10 {
    &:nth-child(#{$i}) {
      animation-delay: #{0.1 + ($i * 0.05)}s;
    }
  }
  
  &:last-child {
    margin-bottom: 0;
  }
  
  &.active > .submenu-link {
    color: var(--qintess-primary-hover);
    font-weight: bold;
  }
  
  &::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--qintess-border);
    transition: width 0.3s ease;
  }
  
  &:hover::after {
    width: 100%;
  }
}

.submenu-link {
  color: var(--qintess-text);
  font-weight: 500;
  font-size: 16px;
  text-decoration: none;
  display: block;
  padding: 5px 0;
  width: 100%;
  transition: var(--transition-fast);
  
  &:hover {
    color: var(--qintess-primary);
    transform: translateX(5px);
    text-decoration: none;
  }
}

/* ===== SUBSUBMENU STYLES ===== */
.subsubmenu-container {
  display: none;
}

.subsubmenu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.subsubmenu-item {
  margin-bottom: 15px;
  opacity: 0;
  transform: translateY(10px);
  animation: fadeInUp 0.5s forwards;
  
  @for $i from 1 through 10 {
    &:nth-child(#{$i}) {
      animation-delay: #{0.2 + ($i * 0.05)}s;
    }
  }
  
  &:last-child {
    margin-bottom: 0;
  }
}

.subsubmenu-link {
  color: var(--qintess-text);
  font-weight: 400;
  font-size: 16px;
  text-decoration: none;
  display: block;
  padding: 5px 0;
  transition: var(--transition-fast);
  position: relative;
  
  &::before {
    content: '';
    position: absolute;
    left: -15px;
    top: 50%;
    width: 0;
    height: 1px;
    background-color: var(--qintess-primary);
    transition: width 0.3s ease;
  }
  
  &:hover {
    color: var(--qintess-primary);
    transform: translateX(5px);
    text-decoration: none;
    
    &::before {
      width: 10px;
    }
  }
}

/* ===== MOBILE MENU STYLES ===== */
body.menu-open {
  overflow: hidden;
}

.menu-mobile-overlay {
  position: fixed;
  top: 88px;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 999;
  backdrop-filter: blur(3px);
  
  &.active {
    visibility: visible;
    opacity: 1;
  }
}

#mobile-menu {
  position: fixed;
  top: 88px;
  left: 0;
  width: 93vw;
  height: 100%;
  background-color: var(--qintess-white);
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 99999;
  box-shadow: var(--shadow-standard);
  
  &.active {
    transform: translateX(0);
  }
  
  .mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    background-color: var(--qintess-white);
    border-bottom: 1px solid #ddd;
  }
  
  .mobile-menu-content {
    display: flex;
    flex-direction: column;
    height: 82vh;
    overflow-y: auto;
  }
  
  .mobile-menu-back {
    display: none;
    transition: var(--transition-fast);
    
    &:hover {
      transform: translateX(-3px);
    }
    
    &.active {
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }
  
  .mobile-menu-close {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-fast);
    
    &:hover {
      transform: rotate(90deg);
    }
  }
  
  .mobile-menu-back, .mobile-menu-close {
    width: 40px;
    height: 40px;
    cursor: pointer;
  }
  
  .mobile-menu-title {
    flex: 1;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    color: var(--qintess-text);
  }
  
  .mobile-menu-main, .submenu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
  }
  
  .menu-item, .submenu-item {
    position: relative;
    border-bottom: 1px solid #ddd;
    list-style: none;
  }
  
  .menu-link, .submenu-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 30px;
    color: var(--qintess-text);
    font-size: 16px;
    text-decoration: none;
    transition: var(--transition-fast);
    
    &:active {
      background-color: rgba(104, 0, 255, 0.05);
    }
    
    &.active, &.is-active {
      font-weight: 700;
      color: var(--qintess-primary) !important;
    }
    
    &.nav-language-option label {
      display: flex;
      align-items: center;
      
      &::before {
        content: '';
        display: block;
        width: 35px;
        height: 24px;
        background: url('../assets/globo.svg') no-repeat center;
        background-size: contain;
        border: none;
        margin-left: -5px;
        transition: transform 0.3s ease;
      }
    }
  }
  
  .menu-link img {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
  }
  
  .menu-link:hover img {
    transform: translateX(3px);
  }
  
  .has-children .submenu {
    display: none;
    position: fixed;
    top: 71px;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--qintess-white);
    z-index: 2;
    
    &.active {
      display: block;
      animation: slideLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
  }
}

/* ===== ANIMATIONS ===== */
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes submenuFadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes dropdownFadeIn {
  from {
    opacity: 0;
    transform: scaleY(0.8);
  }
  to {
    opacity: 1;
    transform: scaleY(1);
  }
}

@keyframes fadeInItems {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideLeft {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/* ===== RESPONSIVE STYLES ===== */
@media screen and (max-width: 1580px) {
  .qintess-header-menu li.nav-item.dropdown a.nav-link.nav-language-option::before {
    width: 26px;
    height: 22px;
    margin-right: 3px;
  }
}

@media screen and (max-width: 1040px) {
  .qintess-header-menu {
    gap: 0;
    
    li.nav-item {
      a.nav-link {
        font-size: 16px;
        line-height: 20px;
      }
      
      &.dropdown a.nav-link.nav-language-option::before {
        width: 22px;
        height: 20px;
      }
    }
  }
}

@media (max-width: 991px) {
  .submenu-container {
    position: static;
    box-shadow: none;
    border-top: none;
    
    &.main-submenu-container {
      position: static;
    }
  }
  
  .submenu-header {
    padding: 15px;
  }
  
  .submenu-content {
    flex-direction: column;
    padding: 0 15px 15px;
  }
  
  .submenu-primary, .submenu-secondary {
    width: 100%;
    border-right: none !important;
  }
  
  .submenu-list, .subsubmenu-list {
    padding: 0;
  }
  
  #mobile-menu {
    .mobile-menu-back.active {
      animation: none;
    }
    
    .mobile-menu-title {
      opacity: 1;
      animation: none;
    }
    
    .menu-item, .submenu-item {
      opacity: 1;
      transform: none;
      animation: none;
    }
  }
  
  .submenu-header,
  .submenu-secondary,
  .submenu-item,
  .subsubmenu-item {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* ===== PREFERS-REDUCED-MOTION ===== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .submenu-container.active,
  .submenu-container.active::before,
  header nav.nav-qintess.dropdown-active::after,
  .qintess-header-menu li.nav-item.active::before,
  .submenu-header,
  .submenu-secondary,
  .submenu-item,
  .subsubmenu-item,
  #mobile-menu .menu-item,
  #mobile-menu .submenu-item,
  #mobile-menu .mobile-menu-title,
  #mobile-menu .mobile-menu-back.active,
  #mobile-menu .has-children .submenu.active {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}