/*
Theme Name: Jobscape
Theme URI: https://example.com/jobscape
Author: Jobscape
Author URI: https://example.com
Description: Jobscape is a clean, editorial theme built for one purpose: showcasing curated job listings beautifully. It ships with a Job Listing post type, category/type/location filtering, a company-manifest homepage, and dedicated templates for browsing, viewing, and applying to roles — with no employer accounts, application forms, or portal machinery to manage. Add jobs the same way you'd write a post, and Jobscape handles the rest.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jobscape
Tags: job-board, careers, business, custom-post-type, custom-menu, custom-logo, featured-images, translation-ready, one-column, two-columns, right-sidebar, custom-colors, full-width-template, threaded-comments

Jobscape is distributed under the terms of the GNU GPL v2 or later.
*/

/* =========================================================
   DESIGN TOKENS
   A curated-listings theme: manifests, ledgers, reference
   codes, boarding-pass shaped cards. Navy + brass on paper.
   ========================================================= */
:root {
  /* -- Color: 6 named hues -- */
  --ink:        #14161C;   /* body text */
  --ink-soft:   #5B5E66;   /* secondary text */
  --navy:       #142138;   /* primary — header, hero, footer */
  --navy-deep:  #0B1220;   /* darker navy for gradients */
  --navy-light: #223258;   /* lifted navy for hover/panels */
  --gold:       #C89B4A;   /* accent — brass/antique gold */
  --gold-dark:  #A87C34;   /* accent hover/pressed */
  --paper:      #FAF8F4;   /* page background */
  --white:      #FFFFFF;   /* card surfaces */
  --line:       #E3DFD3;   /* hairlines, borders */
  --line-dark:  rgba(255,255,255,0.14); /* hairlines on navy */

  /* -- Status accents (used sparingly, for badges) -- */
  --accent-green: #1F8F5F;
  --accent-green-bg: #E9F4EE;
  --accent-rose: #B84B3E;
  --accent-rose-bg: #FBEDEA;

  /* -- Type -- */
  --font-display: 'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-mono: 'Space Mono', 'SFMono-Regular', Consolas, monospace;

  /* -- Radius / shadow / spacing -- */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 2px rgba(20,22,28,0.06), 0 1px 1px rgba(20,22,28,0.04);
  --shadow-md: 0 6px 20px rgba(20,22,28,0.08), 0 2px 6px rgba(20,22,28,0.05);
  --shadow-lg: 0 20px 48px rgba(12,18,32,0.16);
  --shadow-navy: 0 12px 32px rgba(11,18,32,0.35);
  --container: 1240px;
  --container-narrow: 820px;
  --gutter: clamp(20px, 4vw, 48px);
}

/* =========================================================
   RESET
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }
table { border-collapse: collapse; width: 100%; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--ink);
}

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  background: var(--gold);
  color: var(--navy);
  padding: 12px 20px;
  font-family: var(--font-display);
  font-weight: 600;
  border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus {
  left: 0;
}

/* Focus visibility (accessibility quality floor) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Block-editor content areas (job descriptions, page content) */
.entry-content, .job-description {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--ink);
}
.entry-content > * + *, .job-description > * + * { margin-top: 1.25em; }
.entry-content h2, .job-description h2 { font-size: 1.5rem; margin-top: 2em; }
.entry-content h3, .job-description h3 { font-size: 1.2rem; margin-top: 1.75em; }
.entry-content a, .job-description a { color: var(--navy); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.entry-content ul, .job-description ul { list-style: disc; padding-left: 1.4em; }
.entry-content ol, .job-description ol { list-style: decimal; padding-left: 1.4em; }
.entry-content li + li, .job-description li + li { margin-top: 0.5em; }
.entry-content blockquote, .job-description blockquote {
  border-left: 3px solid var(--gold);
  padding-left: 1.2em;
  font-style: italic;
  color: var(--ink-soft);
}
.entry-content img, .job-description img { border-radius: var(--radius-md); }
.entry-content strong, .job-description strong { font-weight: 700; }
