/* ============ Section panel (from the "Why ConQuest" fold on) ============ */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.sidenav {
  --tab-color: #12406e;                      /* set per section by js */
  /* starts under the sticky nav so the first link is never hidden behind it */
  position: fixed; left: 0; top: 5.8436rem; z-index: 30;
  width: 21.4rem; height: calc(100vh - 5.8436rem);
  background: #12406e;                       /* CQ navy panel */
  box-shadow: 1.8rem 0 4rem -2.4rem rgba(3, 25, 45, 0.55);
  transform: translateX(-100%);
  opacity: 0; visibility: hidden;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s, visibility 0.55s;
}
/* visible = tucked away with only the bookmark tab showing; open = panel slid in */
.sidenav.is-visible { opacity: 1; visibility: visible; }
.sidenav.is-visible.is-open { transform: none; }

/* ---- Bookmark tab ---- */
.sidenav__tab {
  position: absolute; left: 100%; top: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  width: 4rem; padding: 1.8rem 0;
  transform: translateY(-50%);
  border: 0; border-radius: 0 1.2rem 1.2rem 0;
  background: var(--tab-color); color: var(--white); cursor: pointer;
  box-shadow: 1rem 0 2.4rem -1.6rem rgba(3, 25, 45, 0.6);
  transition: background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.3s;
}
.sidenav__tab:hover { filter: brightness(1.12); }
.sidenav__tab:focus-visible { outline: 0.2rem solid var(--accent-gold); outline-offset: 0.2rem; }
.sidenav__tab-text {
  writing-mode: vertical-rl; text-orientation: mixed;
  font-weight: 700; font-size: 1.15rem; letter-spacing: 0.16rem; text-transform: uppercase;
}
.sidenav__tab-icon {                        /* chevron: points out when closed, back when open */
  width: 0.9rem; height: 0.9rem; flex-shrink: 0;
  border-right: 0.2rem solid currentColor; border-top: 0.2rem solid currentColor;
  border-radius: 0.1rem;
  transform: rotate(45deg);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.sidenav.is-open .sidenav__tab-icon { transform: rotate(-135deg); }

.sidenav__inner {
  display: flex; flex-direction: column; justify-content: space-between;
  height: 100%; padding: 3.4rem 2.6rem 4rem;
}
.sidenav__list { display: flex; flex-direction: column; gap: 0.8rem; list-style: none; margin: 0; padding: 0; }

.sidenav__link {
  position: relative; display: block;
  padding: 0.9rem 1rem 0.9rem 1.4rem;
  border-radius: 1rem;
  font-weight: 700; font-size: 1.35rem; line-height: 1.3; letter-spacing: -0.01rem;
  color: rgba(255, 255, 255, 0.86);
  transition: color 0.25s, background-color 0.25s;
}
.sidenav__link::before {                     /* active marker */
  content: ""; position: absolute; left: 0; top: 50%;
  width: 0.3rem; height: 0; margin-top: 0;
  border-radius: 0.3rem; background: var(--brand-orange);
  transition: height 0.3s cubic-bezier(0.22, 1, 0.36, 1), margin-top 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.sidenav__link:hover { color: var(--white); background: rgba(255, 255, 255, 0.08); }
.sidenav__link:focus-visible { outline: 0.2rem solid var(--accent-gold); outline-offset: 0.1rem; }
.sidenav__link.is-current { color: var(--white); background: rgba(255, 255, 255, 0.1); }
.sidenav__link.is-current::before { height: 1.8rem; margin-top: -0.9rem; background: var(--tab-color); filter: brightness(1.6); }

.sidenav__logo { display: block; width: 8.4rem; height: auto; margin: 0 auto; opacity: 0.95; }

@media (prefers-reduced-motion: reduce) { .sidenav, .sidenav__link, .sidenav__link::before { transition: none; } }
