/* ==========================================================================
   Header (Framer "Header Section")
   Base (teléfono y tablet): barra fija de 60px + panel desplegable.
   Desktop (≥1440): fila logo · píldora de navegación · CTA, en flujo normal.
   ========================================================================== */

@layer components {
  .site-header {
    --header-height: 60px;

    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    max-width: 1920px;
    margin-inline: auto;
    padding: 12px;
    transition: background-color var(--duration) var(--ease-out);

    &[data-open="true"] {
      background-color: var(--color-bg);
    }

    /* Mejora sobre Framer: al hacer scroll la barra gana fondo para no encimarse con el contenido */
    &[data-scrolled="true"]:not([data-open="true"]) {
      background-color: rgb(0 0 0 / 60%);
      backdrop-filter: blur(12px);
    }
  }

  .site-header__inner {
    display: flex;
    flex-direction: column;
  }

  .site-header__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .site-header__logo {
    display: block;
    flex: none;

    img {
      width: 127px;
      height: 36px;
    }
  }

  /* Ícono hamburguesa: 2 líneas de 18×2 que se cruzan en X al abrir */
  .site-header__toggle {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 24px;
    height: 24px;
    border-radius: var(--radius-sm);
  }

  .site-header__toggle-line {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 1px;
    background-color: var(--color-text);
    transition: transform var(--duration) var(--ease-out);
  }

  .site-header[data-open="true"] .site-header__toggle-line {
    position: absolute;
    top: 11px;
    left: 3px;

    /* "of S" para no contar el <span> de texto accesible */
    &:nth-child(1 of .site-header__toggle-line) {
      transform: rotate(45deg);
    }

    &:nth-child(2 of .site-header__toggle-line) {
      transform: rotate(-45deg);
    }
  }

  /* Panel desplegable: animación de altura con el truco de grid 0fr → 1fr */
  .site-header__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--duration) var(--ease-out);
  }

  .site-header[data-open="true"] .site-header__panel {
    grid-template-rows: 1fr;
  }

  .site-header__panel-inner {
    display: flex;
    flex-direction: column;
    gap: 30px;
    min-height: 0;
    overflow: hidden;
    visibility: hidden;
    transition: visibility 0s linear var(--duration);
  }

  .site-header[data-open="true"] .site-header__panel-inner {
    visibility: visible;
    transition-delay: 0s;

    /* Separación entre la barra y la píldora (gap 30px de Framer) */
    &::before {
      content: "";
      display: block;
      height: 0;
    }
  }

  .site-nav {
    padding: 16px 32px;
    border-radius: 20px;
    background: linear-gradient(-8deg, var(--palette-black) 50%, var(--palette-jet-gray) 124%);
    box-shadow: inset 0.5px 0.5px 0 0 rgb(250 217 26 / 50%);
  }

  .site-nav__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  .site-header__cta .button {
    width: 100%;
  }

  /* --- Menú a pantalla completa (tablet y teléfono) --- */
  .site-header__extras {
    display: none;
  }

  html.menu-open {
    overflow: hidden;
  }

  @media (max-width: 1439.98px) {
    .site-header[data-open="true"] {
      bottom: 0;
      display: flex;
      flex-direction: column;
      height: 100dvh;
      overflow-y: auto;
      overscroll-behavior: contain;

      .site-header__inner {
        flex: 1;
      }

      .site-header__panel {
        flex: 1;
      }

      .site-header__panel-inner {
        justify-content: space-between;
        gap: 32px;
        padding: 40px 0 12px;

        &::before {
          display: none;
        }
      }

      .site-header__extras {
        display: block;
        margin-top: auto;
      }
    }

    .site-header__inner {
      min-height: 0;
    }

    .site-nav {
      padding: 0;
      border-radius: 0;
      background: none;
      box-shadow: none;
    }

    .site-nav__list {
      align-items: stretch;
      gap: 0;

      li {
        border-bottom: 1px solid var(--color-line);
        opacity: 0;
        transform: translateY(16px);
        transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
      }
    }

    /* Entrada escalonada de los enlaces al abrir */
    .site-header[data-open="true"] .site-nav__list li {
      opacity: 1;
      transform: none;
      transition-delay: calc(0.1s + var(--item-index, 0) * 0.05s);
    }

    .site-nav .nav-link {
      display: flex;
      width: 100%;
      padding: 16px 0;
      color: var(--color-text-soft);
      font-size: 32px;
      font-weight: 500;
      line-height: 40px;
      letter-spacing: -0.32px;

      &::after {
        display: none;
      }

      &:hover,
      &:focus-visible,
      &[aria-current="page"] {
        color: var(--color-accent);
      }
    }
  }

  /* --- Desktop --- */
  @media (min-width: 1440px) {
    .site-header {
      --header-height: 92px;

      position: relative;
      padding: 40px 72px 0;
      background-color: transparent !important;
    }

    .site-header__inner {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
    }

    .site-header__toggle {
      display: none;
    }

    .site-header__panel,
    .site-header__panel-inner {
      display: contents;
      visibility: visible;
    }

    .site-nav {
      padding: 16px 32px;
      border-radius: var(--radius-pill);
    }

    .site-nav__list {
      flex-direction: row;
      gap: 56px;
    }

    .site-header__cta .button {
      width: auto;
    }
  }
}
