/* ============================================================
   PHONE & SPECIAL RESPONSIVE STYLES
   ============================================================ */

/* ---------- Phone (below 576px) ---------- */
@media (max-width: 575px) {
  .wrap { padding: 0 16px; }
  .announce { font-size: 11px; padding: 8px 12px; }
  .nav-inner { height: 65px; padding: 0 16px; }
  .nav-brand img { height: 38px; }
  .wordmark { font-size: 18px; }
  .hero { padding: 40px 0; }
  .hero h1 { font-size: 28px; }
  .hero .lede { font-size: 15px; }
  .cta-row { flex-direction: column; gap: 12px; }
  .cta-row .btn-primary, .cta-row .btn-secondary, .cta-row .link-secondary { width: 100%; text-align: center; }
  .section { padding: 40px 0; }
  .section-head h2 { font-size: 24px; }
  .section-head p { font-size: 14px; }
  .stats-row { grid-template-columns: 1fr; gap: 15px; }
  .stat { padding: 20px; }
  .stat .num { font-size: 28px; }
  .activity { padding: 25px 20px; }
  .footer-grid { gap: 20px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; font-size: 12px; }
  .process-item { padding: 20px 15px; }
  .process-icon { width: 55px; height: 55px; }
  .process-icon svg { width: 24px; height: 24px; }
  .process-content h3 { font-size: 14px; }
  .process-content p { font-size: 12px; }
  .job-category-card { padding: 20px 15px; }
  .job-category-icon { width: 50px; height: 50px; }
  .job-category-icon svg { width: 24px; height: 24px; }
  .jobs-hero { min-height: 300px; padding: 60px 15px; }
  .jobs-hero h1 { font-size: 28px; }
  .jobs-hero p { font-size: 14px; }
  .partner-cta { padding: 50px 0; }
  .partner-cta-content h2 { font-size: 24px; }
  .partner-cta-content p { font-size: 14px; }
  .partner-cta-buttons { flex-direction: column; }
  .partner-cta-buttons .btn-primary, .partner-cta-buttons .btn-outline { width: 100%; text-align: center; }
  .ct-panel, .ct-form { padding: 25px 20px; }
  .map-embed iframe { height: 200px; }
  .apply-form { padding: 20px 15px; }
  .cta-banner { padding: 50px 0; }
  .cta-banner h2 { font-size: 24px; }
  .cta-banner-buttons { flex-direction: column; }
  .cta-banner-buttons .btn-secondary, .cta-banner-buttons .btn-outline-light { width: 100%; text-align: center; }
  
  /* Partners table - card view on mobile */
  .partnerships-table-wrapper { overflow-x: visible; }
  .partnerships-table { display: block; }
  .partnerships-table thead { display: none; }
  .partnerships-table tbody { display: block; }
  .partnerships-table tr { display: block; margin-bottom: 15px; padding: 15px; background: var(--white); border-radius: 8px; border: 1px solid var(--line); }
  .partnerships-table td { display: block; padding: 5px 0; border: none; text-align: left; }
  .partnerships-table td:first-child { font-size: 14px; color: var(--forest); margin-bottom: 5px; width: 100%; }
  .partnerships-table td:last-child { font-size: 13px; color: var(--ink-soft); }
  
  /* Dark mode mobile table */
  .dark-mode .partnerships-table tr { background: #1a2a3a; border-color: #2a3a4a; }
  .dark-mode .partnerships-table td:first-child { color: var(--clay); }
  .dark-mode .partnerships-table td:last-child { color: #a0b0c0; }
}

/* ---------- Small Phone (below 380px) ---------- */
@media (max-width: 379px) {
  .wrap { padding: 0 12px; }
  .hero h1 { font-size: 24px; }
  .section-head h2 { font-size: 22px; }
  .jobs-hero h1 { font-size: 24px; }
  .partner-cta-content h2 { font-size: 22px; }
  .cta-banner h2 { font-size: 22px; }
  .btn-primary, .btn-secondary, .btn-outline { padding: 10px 16px; font-size: 13px; }
}

/* ---------- Touch Device Optimizations ---------- */
@media (hover: none) and (pointer: coarse) {
  nav.links a, .footer-grid a, .mobile-nav-links a { min-height: 44px; display: flex; align-items: center; }
  .btn-primary, .btn-secondary, .btn-outline { min-height: 44px; }
  .card:hover, .job-category-card:hover, .process-item:hover { transform: none; }
  .partnerships-table-wrapper { -webkit-overflow-scrolling: touch; }
}

/* ---------- Landscape Phone ---------- */
@media (max-height: 500px) and (orientation: landscape) {
  .jobs-hero { min-height: 250px; padding: 40px 15px; }
  .jobs-hero h1 { font-size: 24px; }
  .section { padding: 30px 0; }
}

/* ---------- Print Styles ---------- */
@media print {
  .nav, .mobile-nav, .theme-toggle, .cta-banner, .btn-primary, .btn-secondary, .btn-outline { display: none !important; }
  body { background: white; color: black; }
  .section { padding: 20px 0; }
  .partnerships-table { border: 1px solid #ddd; }
  .partnerships-table th, .partnerships-table td { border: 1px solid #ddd; padding: 8px; }
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ---------- High Contrast Mode ---------- */
@media (prefers-contrast: high) {
  :root { --forest: #003366; --clay: #cc3300; --ink: #000000; --ink-soft: #333333; --line: #666666; }
  .btn-primary, .btn-secondary { border: 2px solid currentColor; }
}