/**
 * Diachronica Navigation Styles
 *
 * Unified navigation with settings menu.
 * Professional, textual aesthetic.
 */

/* ========================================
   SKIP LINK (Accessibility)
   ======================================== */

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-4, 1rem);
  z-index: var(--z-tooltip, 1070);
  padding: var(--space-2, 0.5rem) var(--space-4, 1rem);
  background-color: var(--color-primary, #3D3028);
  color: var(--color-text-inverse, #FFFDF8);
  font-weight: var(--font-medium, 500);
  text-decoration: none;
  border-radius: var(--radius-sm, 2px);
  transition: top var(--duration-fast, 120ms) var(--ease-out, ease-out);
}

.skip-link:focus {
  top: var(--space-4, 1rem);
}

/* ========================================
   SITE HEADER
   ======================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky, 1020);
  background-color: var(--color-surface, #FFFFFF);
  border-bottom: var(--border-thin, 1px) solid var(--color-border, #E5DED4);
}

.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
  gap: var(--space-4, 1rem);
}

@media (min-width: 768px) {
  .header-container {
    padding: var(--space-3, 0.75rem) var(--space-6, 1.5rem);
  }
}

/* ========================================
   LOGO
   ======================================== */

.site-logo {
  display: flex;
  align-items: center;
  gap: var(--space-2, 0.5rem);
  text-decoration: none;
  color: var(--color-primary, #3D3028);
  transition: opacity var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.site-logo:hover {
  opacity: 0.75;
  text-decoration: none;
}

.logo-icon {
  flex-shrink: 0;
  color: var(--color-accent, #8B5A2B);
}

.logo-text {
  font-family: var(--font-serif, Georgia, serif);
  font-size: var(--text-xl, 1.44rem);
  font-weight: var(--font-bold, 700);
  letter-spacing: var(--tracking-tight, -0.015em);
}

/* Hide logo text on very small screens */
@media (max-width: 400px) {
  .logo-text {
    display: none;
  }
}

/* ========================================
   DESKTOP NAVIGATION
   ======================================== */

.main-nav {
  display: none;
  align-items: center;
  gap: var(--space-1, 0.25rem);
}

@media (min-width: 768px) {
  .main-nav {
    display: flex;
  }
}

.nav-link {
  display: flex;
  align-items: center;
  gap: var(--space-1.5, 0.375rem);
  padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
  font-family: var(--font-sans, sans-serif);
  font-size: var(--text-sm, 0.833rem);
  font-weight: var(--font-medium, 500);
  color: var(--color-text-secondary, #5C4D3D);
  text-decoration: none;
  border-radius: var(--radius-sm, 2px);
  transition: all var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.nav-link:hover {
  color: var(--color-text, #2C2419);
  background-color: var(--color-surface-sunken, #FAF8F3);
  text-decoration: none;
}

.nav-link:focus-visible {
  outline: 2px solid var(--color-accent, #8B5A2B);
  outline-offset: 2px;
}

.nav-link[aria-current="page"],
.nav-link.active {
  color: var(--color-primary, #3D3028);
  background-color: var(--color-surface-sunken, #FAF8F3);
  border-bottom: 2px solid var(--color-accent, #8B5A2B);
  border-radius: var(--radius-sm, 2px) var(--radius-sm, 2px) 0 0;
}

.nav-icon {
  flex-shrink: 0;
  opacity: 0.6;
}

.nav-link:hover .nav-icon,
.nav-link[aria-current="page"] .nav-icon {
  opacity: 1;
}

/* ========================================
   HEADER CONTROLS
   ======================================== */

.header-controls {
  display: flex;
  align-items: center;
  gap: var(--space-2, 0.5rem);
}

/* Settings Button */
.settings-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: var(--border-thin, 1px) solid var(--color-border, #E5DED4);
  border-radius: var(--radius-sm, 2px);
  color: var(--color-text-secondary, #5C4D3D);
  cursor: pointer;
  transition: all var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.settings-toggle:hover {
  background-color: var(--color-surface-sunken, #FAF8F3);
  color: var(--color-text, #2C2419);
  border-color: var(--color-border-strong, #C9BFB0);
}

.settings-toggle:focus-visible {
  outline: 2px solid var(--color-accent, #8B5A2B);
  outline-offset: 2px;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: none;
  color: var(--color-text, #2C2419);
  cursor: pointer;
  transition: color var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.mobile-menu-toggle:hover {
  color: var(--color-primary, #3D3028);
}

.mobile-menu-toggle:focus-visible {
  outline: 2px solid var(--color-accent, #8B5A2B);
  outline-offset: 2px;
}

/* Menu/Close icon visibility */
.mobile-menu-toggle .icon-close {
  display: none;
}

.mobile-menu-toggle[aria-expanded="true"] .icon-menu {
  display: none;
}

.mobile-menu-toggle[aria-expanded="true"] .icon-close {
  display: block;
}

@media (min-width: 768px) {
  .mobile-menu-toggle {
    display: none;
  }
}

/* ========================================
   SETTINGS DROPDOWN
   ======================================== */

.settings-dropdown {
  position: absolute;
  top: 100%;
  right: var(--space-4, 1rem);
  z-index: var(--z-dropdown, 1000);
  min-width: 220px;
  background-color: var(--color-surface, #FFFFFF);
  border: var(--border-thin, 1px) solid var(--color-border, #E5DED4);
  border-radius: var(--radius-lg, 4px);
  box-shadow: var(--shadow-lg, 0 4px 8px rgba(44, 36, 25, 0.08));
  padding: var(--space-3, 0.75rem);
  display: none;
}

.settings-dropdown[aria-hidden="false"] {
  display: block;
}

.settings-section {
  margin-bottom: var(--space-4, 1rem);
}

.settings-section:last-child {
  margin-bottom: 0;
}

.settings-label {
  display: block;
  font-size: var(--text-xs, 0.694rem);
  font-weight: var(--font-semibold, 600);
  color: var(--color-text-muted, #8A7B6A);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider, 0.03em);
  margin-bottom: var(--space-2, 0.5rem);
}

.settings-options {
  display: flex;
  gap: var(--space-1, 0.25rem);
}

.settings-btn {
  flex: 1;
  padding: var(--space-1.5, 0.375rem) var(--space-2, 0.5rem);
  font-size: var(--text-sm, 0.833rem);
  font-weight: var(--font-medium, 500);
  color: var(--color-text-secondary, #5C4D3D);
  background: transparent;
  border: var(--border-thin, 1px) solid var(--color-border, #E5DED4);
  border-radius: var(--radius-sm, 2px);
  cursor: pointer;
  transition: all var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.settings-btn:hover {
  background-color: var(--color-surface-sunken, #FAF8F3);
  border-color: var(--color-border-strong, #C9BFB0);
}

.settings-btn:focus-visible {
  outline: 2px solid var(--color-accent, #8B5A2B);
  outline-offset: 1px;
}

.settings-btn.active {
  background-color: var(--color-primary, #3D3028);
  color: var(--color-text-inverse, #FFFDF8);
  border-color: var(--color-primary, #3D3028);
}

/* ========================================
   MOBILE NAVIGATION DRAWER
   ======================================== */

.mobile-nav {
  position: fixed;
  top: 53px; /* Below header */
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-modal, 1050);
  background-color: var(--color-background, #FFFDF8);
  transform: translateX(100%);
  transition: transform var(--duration-normal, 200ms) var(--ease-in-out, ease);
  overflow-y: auto;
}

.mobile-nav[aria-hidden="false"] {
  transform: translateX(0);
}

@media (min-width: 768px) {
  .mobile-nav {
    display: none;
  }
}

.mobile-nav-content {
  padding: var(--space-4, 1rem);
}

.mobile-nav-link {
  display: flex;
  flex-direction: column;
  padding: var(--space-4, 1rem);
  margin-bottom: var(--space-2, 0.5rem);
  text-decoration: none;
  background-color: var(--color-surface, #FFFFFF);
  border-radius: var(--radius-sm, 2px);
  border: var(--border-thin, 1px) solid var(--color-border-subtle, #F0EBE3);
  transition: all var(--duration-fast, 120ms) var(--ease-in-out, ease);
}

.mobile-nav-link:hover {
  background-color: var(--color-surface-sunken, #FAF8F3);
  border-color: var(--color-border, #E5DED4);
  text-decoration: none;
}

.mobile-nav-link:focus-visible {
  outline: 2px solid var(--color-accent, #8B5A2B);
  outline-offset: 2px;
}

.mobile-nav-link[aria-current="page"],
.mobile-nav-link.active {
  background-color: var(--color-surface-sunken, #FAF8F3);
  border-left: 3px solid var(--color-accent, #8B5A2B);
}

.mobile-nav-link span:first-child {
  font-family: var(--font-sans, sans-serif);
  font-size: var(--text-lg, 1.2rem);
  font-weight: var(--font-semibold, 600);
  color: var(--color-text, #2C2419);
}

.mobile-nav-desc {
  font-size: var(--text-sm, 0.833rem);
  color: var(--color-text-muted, #8A7B6A);
  margin-top: var(--space-1, 0.25rem);
}

/* Mobile Settings Section */
.mobile-settings {
  margin-top: var(--space-6, 1.5rem);
  padding-top: var(--space-4, 1rem);
  border-top: var(--border-thin, 1px) solid var(--color-border, #E5DED4);
}

.mobile-settings-title {
  font-size: var(--text-sm, 0.833rem);
  font-weight: var(--font-semibold, 600);
  color: var(--color-text-muted, #8A7B6A);
  margin-bottom: var(--space-3, 0.75rem);
}

/* ========================================
   REDUCED MOTION
   ======================================== */

@media (prefers-reduced-motion: reduce) {
  .skip-link,
  .nav-link,
  .settings-toggle,
  .settings-btn,
  .mobile-menu-toggle,
  .mobile-nav,
  .mobile-nav-link,
  .settings-dropdown {
    transition: none;
  }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
  .site-header {
    position: static;
    box-shadow: none;
    border-bottom: 1px solid #ddd;
  }

  .header-controls,
  .mobile-menu-toggle,
  .settings-dropdown {
    display: none;
  }
}
