/**
 * responsive.css — Viewport Breakpoints & Progressive Disclosure Navigation Rules
 */

/* Mobile & Tablet First Defaults (<1024px) */
.header-nav-list,
.subnav-nav-wrapper {
  display: none;
}

.header-auth-buttons {
  display: none !important;
}

.header-anon-menu-wrapper,
.header-auth-buttons ~ .header-user-avatar,
#header-user-avatar {
  display: inline-flex !important;
}

body.no-subnav .subnav-bar {
  display: none;
}

body.no-subnav {
  --subnav-height: 0px;
  --combined-header-height: var(--header-height, 4.25rem);
}

.hamburger-btn {
  display: inline-flex !important;
  flex-shrink: 0;
}

/* Compact Mobile Devices (<640px): keep header minimal with brand & hamburger */
@media (max-width: 640px) {
  .header-nav > .btn {
    display: none;
  }
}

/* Full Desktop Viewports (1024px+): Page Menu Links displayed over Subnav Bar */
@media (min-width: 1024px) {
  :root,
  body,
  body.no-subnav {
    --subnav-height: 2.875rem;
    --combined-header-height: calc(var(--header-height, 4.25rem) + 2.875rem);
  }

  .subnav-bar {
    display: flex !important;
  }

  .subnav-nav-wrapper {
    display: flex !important;
  }

  .header-nav-list {
    display: flex !important;
  }

  /* Reveal all links in subnav */
  .header-nav-item.nav-secondary {
    display: inline-block;
  }

  /* Reveal desktop auth buttons and hide mobile avatar */
  .header-auth-buttons {
    display: inline-flex !important;
  }

  .header-anon-menu-wrapper,
  .header-auth-buttons ~ .header-user-avatar,
  #header-user-avatar {
    display: none !important;
  }

  /* Menu hamburger appears on all screens */
  .hamburger-btn {
    display: inline-flex !important;
    flex-shrink: 0;
  }
}

/* Wide Desktop Screens (1440px+) */
@media (min-width: 1440px) {
  :root {
    --container-max-width: 1360px;
  }
}

/* Compact Mobile Devices (<480px) */
@media (max-width: 480px) {
  :root {
    --header-height: 3.75rem;
    --space-md: 0.875rem;
  }

  .brand {
    font-size: var(--font-size-md);
  }

  .brand-logo-svg {
    height: 32px;
    max-width: 170px;
  }

  .header-user-first-name {
    display: none;
  }

  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-xs);
  }
}

/* Tablet Footer Columns (640–768px): 2-col layout */
@media (min-width: 640px) and (max-width: 767px) {
  .footer-columns {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-col:first-child {
    text-align: left;
  }
  .footer-col:first-child .footer-col-list {
    align-items: flex-start;
  }

  .footer-col:nth-child(2) {
    text-align: right;
  }
  .footer-col:nth-child(2) .footer-col-list {
    align-items: flex-end;
  }

  .footer-col:last-child {
    grid-column: span 2;
    text-align: center;
  }
  .footer-col:last-child .footer-col-list {
    align-items: center;
  }
}

/* Touch Target Enforcement — Minimum 44px interactive areas */
@media (pointer: coarse) {
  .btn,
  .header-nav-link,
  .drawer-nav-link,
  .subnav-btn,
  .sharp-dropdown-btn,
  .filter-tab-btn {
    min-height: 44px;
  }

  .hamburger-btn {
    width: 2.75rem;
    height: 2.75rem;
  }
}

/* Improved Colour Contrast for Muted Text */
.text-muted,
.footer-copy,
.form-helper {
  color: #5a6577;
}

/* Print Stylesheet — Clean Document Output */
@media print {
  .site-header,
  .subnav-bar,
  .subnav-filter-bar,
  .nav-drawer,
  .drawer-backdrop,
  .site-footer,
  .toast-container,
  .hamburger-btn,
  .hero-svg-frame-decor {
    display: none !important;
  }

  .site-main {
    padding-top: 0 !important;
    background-image: none !important;
  }

  body {
    background-color: #ffffff;
    color: #000000;
  }

  .card,
  .job-card,
  .role-section {
    box-shadow: none;
    border: 1px solid #cccccc;
    break-inside: avoid;
  }

  a {
    color: #000000;
    text-decoration: underline;
  }

  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 0.75em;
    color: #666666;
  }

  .btn {
    border: 1px solid #999999;
    background: transparent !important;
    color: #000000 !important;
    box-shadow: none !important;
  }
}
