@use "abstracts"; // ── Animations ──────────────────────────────────────────────────────────────── @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } // ── Sticky wrapper ──────────────────────────────────────────────────────────── .wrapper { height: var(--nav-height); border-radius: 0 0 10px 10px; background-color: var(--nav-bg); backdrop-filter: var(--nav-backdrop); box-shadow: var(--nav-shadow); position: sticky; top: 0; z-index: var(--z-index-sticky); } // ── Header row ──────────────────────────────────────────────────────────────── .header { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; min-height: abstracts.rem(60); padding-inline: var(--space-3); @include abstracts.breakpoint('md') { padding-inline: var(--space-4); } &__nav-section { display: flex; flex-direction: row; align-items: center; gap: var(--space-2); } &__login-btn { display: none; @include abstracts.breakpoint('md') { display: flex; align-items: center; } } } // ── Logo ────────────────────────────────────────────────────────────────────── .logo-container { display: flex; align-items: center; gap: var(--space-2); text-decoration: none; &__logo { stroke: var(--text-on-accent); fill: var(--text-on-accent); font-size: 1.5rem; font-weight: bold; width: abstracts.rem(30); height: abstracts.rem(30); display: flex; background-color: var(--accent); border-radius: 6px; flex-shrink: 0; padding: 4px; } &__company { font-size: var(--font-size-base); font-weight: 700; color: var(--text-main); span { color: var(--accent); } } } // ── Theme toggle ────────────────────────────────────────────────────────────── .theme-toggle-container { width: abstracts.rem(24); height: abstracts.rem(24); display: flex; align-items: center; } // ── Burger button ───────────────────────────────────────────────────────────── .burger-menu { display: flex; align-items: center; justify-content: center; padding: var(--space-1); background: none; border: none; cursor: pointer; border-radius: 6px; transition: background-color 0.2s ease; &:hover { background-color: oklch(from var(--accent) l c h / 0.1); } @include abstracts.breakpoint('md') { display: none; } &__icon { width: abstracts.rem(24); height: abstracts.rem(24); color: var(--text-main); } } // ── Mobile overlay ──────────────────────────────────────────────────────────── .mobile-overlay { position: fixed; inset: 0; background-color: oklch(0% 0 0 / 0.4); z-index: calc(var(--z-index-sticky) - 1); backdrop-filter: blur(4px); animation: fade-in 0.2s ease; @include abstracts.breakpoint('md') { display: none; } } // ── Mobile menu ─────────────────────────────────────────────────────────────── .mobile-menu { position: fixed; top: var(--nav-height); left: 0; right: 0; background-color: var(--bg-surface); border-bottom: 1px solid var(--border-color); border-radius: 0 0 var(--border-radius) var(--border-radius); padding: var(--space-3) var(--space-4) var(--space-4); z-index: var(--z-index-sticky); animation: slide-down 0.25s cubic-bezier(0.22, 1, 0.36, 1); box-shadow: 0 8px 32px oklch(0% 0 0 / 0.12); @include abstracts.breakpoint('md') { display: none; } &__list { list-style: none; padding: 0; margin: 0 0 var(--space-4); } &__item { a { display: block; padding: var(--space-3) 0; font-size: var(--font-size-lg); font-weight: 600; color: var(--text-main); text-decoration: none; border-bottom: 1px solid var(--border-color); transition: color 0.2s ease, padding-left 0.2s ease; &:hover { color: var(--accent); padding-left: var(--space-2); } } &:last-child a { border-bottom: none; } } &__cta { display: flex; justify-content: center; app-button { width: 100%; ::ng-deep .nav-btn { width: 100%; justify-content: center; } } } }