/* ===================================================================
   TAE Header - Main Styles
   ================================================================= */

/* ===================================================================
   1. CSS VARIABLES
   ================================================================= */
:root {
  --submenu-z-index: 999;
  --mobile-menu-z-index: 9999;
  --header-stagger-delay: 0.05s;
}

/* ===================================================================
   2. KEYFRAMES
   ================================================================= */
@keyframes taeFadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes taeSlideInFromRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Hide mobile content by default (Desktop) */
.tae-mobile-menu-content {
  display: none !important;
}

/* ===================================================================
   5. NAVIGATION MENU (DESKTOP)
   ================================================================= */
@media screen and (min-width: 992px) {
  .tae-dynamic-menu {
    display: flex;
    flex-direction: row;
    padding: 0;
    margin: 0;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .tae-item {
    list-style: none;
    position: relative;
  }

  .tae-item-level-1 {
    margin: 0;
    padding: 0;
    position: static;
  }

  .tae-item-link {
    text-decoration: none;
    display: inline-block;
    transition: all var(--header-transition);
    white-space: nowrap;
    position: relative;
  }

  .tae-item-link-level-1 {
    padding: 22px 16px;
    font-size: 16px;
  }

  .tae-item-link,
  .tae-item-text,
  .tae-item-title {
    font-size: 14px;
    line-height: 1.3;
  }

  .tae-item-text {
    display: block;
    font-family: inherit;
  }

  .tae-item-title {
    display: inline;
  }

  .tae-item-image-container {
    display: inline-block;
    margin-left: 8px;
    vertical-align: middle;
  }

  /* Animated underline for level 1 */
  .tae-item-level-1 .tae-item-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 0;
    max-width: 100%;
    height: 2px;
    background-color: currentColor;
    transition: width var(--header-underline-transition), background-color var(--header-transition);
    will-change: width;
    backface-visibility: hidden;
    transform: translateZ(0);
  }

  .tae-item-level-1:hover>.tae-item-link::after,
  .tae-item-level-1:has(> .tae-item-submenu:hover)>.tae-item-link::after,
  .tae-item-level-1:focus-within>.tae-item-link::after {
    width: 100%;
  }

  /* Submenu styles */
  .tae-item-submenu {
    display: flex;
    flex-direction: row;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--header-bg-solid);
    padding: 35px;
    margin: 0;
    z-index: var(--submenu-z-index);
    min-width: 200px;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity var(--header-transition), transform var(--header-transition), visibility var(--header-transition);
    pointer-events: none;
    will-change: opacity, transform;
    backface-visibility: hidden;
  }

  .tae-item-submenu-content {
    width: 30%;
  }

  .tae-item-submenu .tae-item {
    margin: 0;
    padding: 8px 12px;
  }

  .tae-item-level-2,
  .tae-item-level-3 {
    margin: 0;
    padding: 10px 15px;
  }

  /* Full-width submenu for level 1 */
  .tae-item-submenu-level-1 {
    width: 100vw;
    left: 0;
    right: 0;
    position: absolute;
    top: 100%;
    border-top: 1px solid #c1c1c1;
    background-color: #FFFFFF;
  }

  /* Nested submenus */
  .tae-item-submenu .tae-item-submenu {
    position: absolute;
    left: 100%;
    top: 0;
    min-width: 180px;
  }

  /* Show submenu on hover */
  .tae-item:hover>.tae-item-submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  /* Submenu item animation logic */
  .tae-item-submenu .tae-item {
    opacity: 0;
    will-change: opacity, transform;
  }

  .tae-item:hover>.tae-item-submenu .tae-item {
    animation: taeFadeInUp 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }

  /* Generated Staggering for desktop (up to 12 items) */
  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(1) {
    animation-delay: calc(var(--header-stagger-delay) * 1);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(2) {
    animation-delay: calc(var(--header-stagger-delay) * 2);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(3) {
    animation-delay: calc(var(--header-stagger-delay) * 3);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(4) {
    animation-delay: calc(var(--header-stagger-delay) * 4);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(5) {
    animation-delay: calc(var(--header-stagger-delay) * 5);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(6) {
    animation-delay: calc(var(--header-stagger-delay) * 6);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(7) {
    animation-delay: calc(var(--header-stagger-delay) * 7);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(8) {
    animation-delay: calc(var(--header-stagger-delay) * 8);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(9) {
    animation-delay: calc(var(--header-stagger-delay) * 9);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(10) {
    animation-delay: calc(var(--header-stagger-delay) * 10);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(11) {
    animation-delay: calc(var(--header-stagger-delay) * 11);
  }

  .tae-item:hover>.tae-item-submenu .tae-item:nth-child(12) {
    animation-delay: calc(var(--header-stagger-delay) * 12);
  }

  /* Submenu item underline */
  .tae-item-submenu .tae-item-link {
    position: relative;
  }

  .tae-item-submenu .tae-item-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 0;
    max-width: 100%;
    height: 2px;
    background-color: currentColor;
    transition: width 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: width;
    backface-visibility: hidden;
    transform: translateZ(0);
  }

  .tae-item-submenu .tae-item-link:hover::after,
  .tae-item-submenu .tae-item-link:focus::after {
    width: 100%;
  }

  /* Columns layout submenu (level 1 -> level 2 shown as columns) */
  .tae-item-submenu-columns {
    display: flex;
    flex-direction: row;
    flex: 1;
    align-items: flex-start;
    gap: 40px;
    width: auto;
  }

  .tae-item-column {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
    min-width: 160px;
  }

  .tae-item-column-title {
    display: block;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 600;
    margin-bottom: 12px;
    white-space: nowrap;
  }

  .tae-item-column-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  /* Items dentro de una columna: siempre visibles, sin flyout lateral */
  .tae-item-column-list .tae-item {
    position: static;
  }

  .tae-item-column-list .tae-item-submenu {
    display: none;
  }
}

/* Hide desktop menu on mobile */
@media screen and (max-width: 991px) {
  .tae-dynamic-menu {
    display: none;
  }
}

/* ===================================================================
   8. MOBILE STYLES
   ================================================================= */
.tae-mobile-menu-drawer {
  display: none;
}

@media screen and (max-width: 991px) {

  /* Show hamburger */
  .tae-header__hamburger {
    display: block;
  }

  /* Mobile layout: hamburger - logo - utils (always, regardless of scroll) */
  .tae-header__inner,
  .tae-header--transparent .tae-header__inner,
  body.is-scrolled .tae-header--transparent .tae-header__inner,
  .tae-header:not(.tae-header--transparent) .tae-header__inner {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    grid-template-rows: auto !important;
    padding: var(--header-padding-mobile) !important;
    gap: var(--header-gap-mobile) !important;
    align-items: center;
  }

  /* Hamburger always in column 1 */
  .tae-header__hamburger {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  /* Logo always centered in column 2 */
  .tae-header__logo,
  .tae-header--transparent .tae-header__logo,
  body.is-scrolled .tae-header--transparent .tae-header__logo,
  .tae-header:not(.tae-header--transparent) .tae-header__logo {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
  }

  /* Logo size consistent */
  .tae-header__logo-img,
  .tae-header--transparent .tae-header__logo-img,
  body.is-scrolled .tae-header--transparent .tae-header__logo-img,
  .tae-header:not(.tae-header--transparent) .tae-header__logo-img {
    max-height: var(--header-logo-height-small) !important;
  }

  /* Utils always in column 3 */
  .tae-header__utils,
  .tae-header--transparent .tae-header__utils,
  body.is-scrolled .tae-header--transparent .tae-header__utils,
  .tae-header:not(.tae-header--transparent) .tae-header__utils {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }

  /* Hide navigation in mobile */
  .tae-header__navigation {
    display: none !important;
  }

  /* Hide search in mobile */
  .tae-header__search-inline {
    display: none !important;
  }

  /* Mobile color themes */
  .tae-header--transparent {
    background-color: var(--header-bg-transparent);
  }

  body.is-scrolled .tae-header--transparent {
    background-color: var(--header-bg-solid);
  }

  .tae-header--transparent .tae-header__hamburger,
  .tae-header--transparent .tae-header__utils-link,
  .tae-header--transparent svg {
    color: var(--header-text-light);
    stroke: var(--header-text-light);
    transition: color var(--header-transition), stroke var(--header-transition);
  }

  .tae-header--transparent .tae-header__logo-img {
    filter: brightness(0) invert(1);
  }

  body.is-scrolled .tae-header--transparent .tae-header__hamburger,
  body.is-scrolled .tae-header--transparent .tae-header__utils-link,
  body.is-scrolled .tae-header--transparent svg {
    color: var(--header-text-dark);
    stroke: var(--header-text-dark);
  }

  body.is-scrolled .tae-header--transparent .tae-header__logo-img {
    filter: none;
  }

  .tae-header:not(.tae-header--transparent) {
    background-color: var(--header-bg-solid);
  }

  .tae-header:not(.tae-header--transparent) .tae-header__hamburger,
  .tae-header:not(.tae-header--transparent) .tae-header__utils-link,
  .tae-header:not(.tae-header--transparent) svg {
    color: var(--header-text-dark);
    stroke: var(--header-text-dark);
  }

  .tae-header:not(.tae-header--transparent) .tae-header__logo-img {
    filter: none;
  }

  /* Mobile menu drawer */
  .tae-mobile-menu-drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: var(--mobile-menu-z-index);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--header-transition), visibility var(--header-transition);
  }

  .tae-mobile-menu-drawer.is-open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
  }

  .tae-mobile-menu-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--header-overlay-bg);
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--header-transition);
  }

  .tae-mobile-menu-drawer.is-open .tae-mobile-menu-overlay {
    opacity: 1;
  }

  .tae-mobile-menu-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 85%;
    max-width: 400px;
    height: 100%;
    background: var(--header-bg-solid);
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform var(--header-transition-transform);
  }

  .tae-mobile-menu-drawer.is-open .tae-mobile-menu-content {
    transform: translateX(0);
  }

  .tae-mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #d1d1d1;
    flex-shrink: 0;
  }

  .tae-mobile-menu-logo img {
    max-height: var(--header-logo-height-small);
    width: auto;
  }

  .tae-mobile-menu-close {
    background: none;
    border: none;
    padding: 5px;
    cursor: pointer;
    color: var(--header-text-dark);
  }

  .tae-mobile-menu-close svg {
    width: var(--header-icon-size);
    height: var(--header-icon-size);
    stroke: var(--header-text-dark);
    color: var(--header-text-dark);
  }

  .tae-mobile-menu-breadcrumb {
    padding: 15px 20px;
    border-bottom: 1px solid #d1d1d1;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
  }

  .tae-mobile-menu-back {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--header-text-dark, var(--color-foreground, #000000));
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
  }

  .tae-mobile-menu-back svg {
    width: var(--header-icon-size-small, 20px);
    height: var(--header-icon-size-small, 20px);
    stroke: currentColor;
    display: block;
  }

  .tae-mobile-menu-breadcrumb-title {
    font-weight: bold;
    font-size: 16px;
  }

  .tae-mobile-menu-navigation {
    flex: 1;
    position: relative;
  }

  .tae-mobile-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    transition: opacity var(--header-transition), visibility var(--header-transition);
  }

  .tae-mobile-menu-item {
    border-bottom: 1px solid #d1d1d1;
    position: relative;
  }

  .tae-mobile-submenu .tae-mobile-menu-item {
    position: static;
  }

  .tae-mobile-menu-item-button,
  .tae-mobile-menu-item-link {
    width: 100%;
    padding: 18px 20px;
    background: none;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    color: var(--header-text-dark);
    font-size: 14px;
    text-align: left;
    transition: background-color 0.2s ease;
  }

  .tae-mobile-menu-item>.tae-mobile-menu-item-text {
    width: 100%;
    padding: 18px 20px;
    display: block;
    color: var(--header-text-dark);
    font-size: 14px;
  }

  .tae-mobile-menu-item-button:active,
  .tae-mobile-menu-item-link:active {
    background-color: #f5f5f5;
  }

  .tae-mobile-menu-item-text {
    flex: 1;
  }

  .tae-mobile-menu-item-arrow {
    width: 20px;
    height: 20px;
    stroke: var(--color-foreground);
    color: var(--color-foreground);
    flex-shrink: 0;
  }

  [data-mobile-menu-breadcrumb] {
    padding: var(--padding-md) var(--padding-inline);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--color-background, #ffffff);
    position: sticky;
    top: 0;
    z-index: 101;
  }

  /* Consolidated with .tae-mobile-menu-back above */

  [data-mobile-menu-breadcrumb-title] {
    font-weight: 700;
    font-size: 14px;
    color: var(--color-foreground, #000000);
  }

  .tae-mobile-menu-item--view-all {
    margin-top: 20px;
    border-bottom: none !important;
  }

  .tae-mobile-submenu {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: var(--color-background);
    min-height: 100%;
    z-index: 100;
  }

  .tae-mobile-submenu:not(.is-active) {
    display: none;
  }

  .tae-mobile-submenu.is-active {
    display: block;
    visibility: visible;
    opacity: 1;
    animation: taeSlideInFromRight 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }

  /* Staggering for mobile submenu items */
  .tae-mobile-submenu.is-active .tae-mobile-menu-item {
    opacity: 0;
    will-change: opacity, transform;
    animation: taeFadeInUp 0.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(1) {
    animation-delay: 0.1s;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(2) {
    animation-delay: 0.15s;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(3) {
    animation-delay: 0.2s;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(4) {
    animation-delay: 0.25s;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(5) {
    animation-delay: 0.3s;
  }

  .tae-mobile-submenu.is-active .tae-mobile-menu-item:nth-child(6) {
    animation-delay: 0.35s;
  }

  .tae-mobile-menu-item:has(.tae-mobile-submenu.is-active) {
    position: static;
  }

  /* Remove old slideInFromRight animation definition if any */

  @keyframes slideInFromRight {
    0% {
      opacity: 0;
      transform: translateX(30px);
    }

    100% {
      opacity: 1;
      transform: translateX(0);
    }
  }

  .tae-mobile-menu-footer {
    border-top: 1px solid #d1d1d1;
    padding: 20px;
    flex-shrink: 0;
    margin-top: auto;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  .tae-mobile-menu-navigation:has(.tae-mobile-submenu.is-active)~.tae-mobile-menu-footer {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .tae-mobile-menu-utilities {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
  }

  .tae-mobile-menu-utility-item a {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--header-text-dark);
    font-size: 15px;
    transition: opacity 0.2s ease;
  }

  .tae-mobile-menu-utility-item a:active {
    opacity: 0.6;
  }

  .tae-mobile-menu-utility-item svg {
    width: var(--header-icon-size-small);
    height: var(--header-icon-size-small);
    stroke: var(--header-text-dark);
    color: var(--header-text-dark);
    flex-shrink: 0;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }
}
