/* ==========================================================================
   FWO — Navbar
   Layer 4 of 6: the fixed nav and its mobile menu panel only.
   ========================================================================== */

/* ---------- A. Navigation ---------- */

.nav {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  padding-inline: var(--gutter);
  /* At the top of the page the nav sits on the light hero: dark type, dark logo */
  color: var(--ink);
  --nav-active: var(--ink);
  transition: background-color 0.4s var(--ease), box-shadow 0.4s var(--ease), color 0.4s var(--ease);
}
/* On the dark glass bar, or over the open mobile menu: white type, white logo */
.nav.is-scrolled,
.nav.is-menu-open { color: var(--white); --nav-active: var(--accent); }
.nav.is-scrolled {
  background: var(--nav-glass);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow-nav);
}

.nav__logo img { height: 3.6rem; width: auto; }
/* One white logo: inverted to black on the light hero, left white on dark */
.nav__logo img { filter: invert(1); transition: filter 0.4s var(--ease); }
.nav.is-scrolled .nav__logo img,
.nav.is-menu-open .nav__logo img { filter: none; }

.nav__menu { display: flex; align-items: center; gap: clamp(1.25rem, 2.5vw, 2.5rem); }
.nav__list { display: flex; gap: clamp(1rem, 2.2vw, 2.25rem); }

.nav__link {
  position: relative;
  padding-block: 0.5rem;
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.35s var(--ease);
}
.nav__link:hover::after,
.nav__link.is-active::after { transform: scaleX(1); transform-origin: left; }
.nav__link.is-active { color: var(--nav-active); }

.nav__toggle { display: none; }

@media (max-width: 1024px) {
  .nav__toggle {
    position: relative;
    z-index: 2;
    display: grid;
    place-content: center;
    gap: 7px;
    width: 3rem; height: 3rem;
  }
  .nav__toggle-bar {
    display: block;
    width: 1.75rem; height: 2px;
    background: currentColor;
    transition: transform 0.35s var(--ease);
  }
  .nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-last-child(2) { transform: translateY(4.5px) rotate(45deg); }
  .nav__toggle[aria-expanded="true"] .nav__toggle-bar:last-child { transform: translateY(-4.5px) rotate(-45deg); }

  .nav__logo { position: relative; z-index: 2; }

  /* Full-screen menu panel */
  .nav__menu {
    position: fixed;
    inset: 0;
    z-index: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2.5rem;
    padding: var(--nav-h) var(--gutter) 2rem;
    background: var(--ink);
    color: var(--white); /* the panel is always dark, even while it fades out */
    --nav-active: var(--accent);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-1rem);
    transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0s 0.35s;
  }
  .nav__menu.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition-delay: 0s;
  }
  .nav__list { flex-direction: column; gap: 0.4rem; }
  .nav__link {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 9vw, 3.5rem);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1.15;
  }
}
