/* ==========================================================================
   Fieldwork — main stylesheet
   Signature element: the header nav doubles as a sticky "index rail" —
   each section is numbered (01, 02, 03…) and the current section is
   highlighted in the nav as you scroll, like tabs in a lab notebook.
   ========================================================================== */

:root{
  --paper: #FAF8F3;
  --ink: #1C1B17;
  --teal: #14453D;
  --teal-ink: #0E332C;
  --gold: #B8873A;
  --sage: #93A99A;
  --line: #E4DFD3;
  --paper-raised: #FFFFFF;
  --font-display: 'Fraunces', ui-serif, Georgia, serif;
  --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --max: 1180px;
}

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ animation:none !important; transition:none !important; } }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.65;
}

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; line-height:1.1; color:var(--ink); }

a{ color:var(--teal); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover{ color:var(--gold); }

.fw-eyebrow{
  font-family:var(--font-mono);
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex; align-items:center; gap:.6em;
}
.fw-eyebrow::before{ content:""; width:1.5em; height:1px; background:var(--gold); display:inline-block; }

/* ---- Skip link ---- */
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--teal); color:#fff; padding:.75em 1.25em; z-index:1000; }
.skip-link:focus{ left:1rem; top:1rem; }

/* ---- Header / index rail ---- */
.fw-header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,248,243,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.fw-header__inner{
  max-width:var(--max); margin:0 auto; padding:1rem 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.fw-header__brand{ font-family:var(--font-display); font-size:1.05rem; font-weight:600; color:var(--ink); white-space:nowrap; }
.fw-header__brand span{ color:var(--gold); }

.fw-nav{ display:flex; }
.fw-nav ul{ list-style:none; display:flex; gap:1.6rem; margin:0; padding:0; }
.fw-nav a{
  color:var(--ink); text-decoration:none; font-size:.85rem; font-family:var(--font-mono);
  display:flex; align-items:baseline; gap:.4em; padding:.25em 0; border-bottom:1px solid transparent;
}
.fw-nav .fw-nav__num{ color:var(--sage); font-size:.75em; }
.fw-nav a:hover, .fw-nav a.is-active{ color:var(--teal); border-bottom-color:var(--gold); }
.fw-nav a.is-active .fw-nav__num{ color:var(--gold); }

.fw-header__cta{
  display:inline-flex; align-items:center; gap:.5em;
  background:var(--teal); color:#fff; padding:.6em 1.1em; border-radius:2px;
  font-size:.85rem; text-decoration:none; white-space:nowrap;
}
.fw-header__cta:hover{ background:var(--teal-ink); color:#fff; }

.fw-menu-toggle{ display:none; background:none; border:1px solid var(--line); padding:.5em .7em; font-size:1.1rem; cursor:pointer; }

@media (max-width: 880px){
  .fw-nav{ display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); padding:1rem 1.5rem; }
  .fw-nav.is-open{ display:block; }
  .fw-nav ul{ flex-direction:column; gap:.9rem; }
  .fw-menu-toggle{ display:inline-block; }
  .fw-header__cta{ display:none; }
}

/* ---- Sections ---- */
.fw-section{ padding:var(--wp--preset--spacing--60, 5rem) 1.5rem; border-top:1px solid var(--line); }
.fw-section:first-of-type{ border-top:none; }
.fw-section__inner{ max-width:var(--max); margin:0 auto; }
.fw-section__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; flex-wrap:wrap; }
.fw-section__num{
  font-family:var(--font-mono); font-size:.8rem; color:var(--sage);
  border:1px solid var(--line); border-radius:100px; padding:.3em .8em; margin-bottom:.75rem; display:inline-block;
}
.fw-section__title{ font-size:2rem; margin:0; }
.fw-section__intro{ max-width:640px; color:#3d3b34; }

/* ---- Hero ---- */
.fw-hero{ padding-top:4.5rem; padding-bottom:3rem; border-top:none; }
.fw-hero__grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:3rem; align-items:center; }
.fw-hero h1{ font-size:clamp(2.6rem, 6vw, 4.5rem); margin:.4rem 0 1.2rem; }
.fw-hero__sub{ font-size:1.05rem; color:#3d3b34; max-width:52ch; }
.fw-hero__cta{ display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap; }
.fw-hero__portrait{ aspect-ratio:4/5; background:linear-gradient(160deg, var(--sage), var(--teal)); border-radius:4px; }
.fw-hero__portrait img{ width:100%; height:100%; object-fit:cover; border-radius:4px; }
@media (max-width:900px){ .fw-hero__grid{ grid-template-columns:1fr; } .fw-hero__portrait{ order:-1; max-width:280px; } }

.btn{ display:inline-flex; align-items:center; gap:.5em; padding:.85em 1.5em; border-radius:2px; font-size:.95rem; text-decoration:none; border:1px solid transparent; }
.btn-primary{ background:var(--teal); color:#fff; }
.btn-primary:hover{ background:var(--teal-ink); color:#fff; }
.btn-ghost{ border-color:var(--ink); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

/* ---- Stat row ---- */
.fw-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:3.5rem; padding-top:2.5rem; border-top:1px solid var(--line); }
.fw-stat__num{ font-family:var(--font-display); font-size:2.1rem; color:var(--teal); }
.fw-stat__label{ font-size:.8rem; color:#5c5a52; }
@media (max-width:700px){ .fw-stats{ grid-template-columns:repeat(2,1fr); } }

/* ---- About / two-list ---- */
.fw-cols-60-40{ display:grid; grid-template-columns:1.5fr 1fr; gap:3rem; }
@media (max-width:820px){ .fw-cols-60-40{ grid-template-columns:1fr; } }
.fw-list-plain{ list-style:none; margin:0; padding:0; }
.fw-list-plain li{ padding:.55em 0; border-top:1px solid var(--line); font-size:.95rem; }
.fw-list-plain li:first-child{ border-top:none; }
.fw-sidebox{ background:var(--paper-raised); border:1px solid var(--line); padding:1.75rem; border-radius:4px; }
.fw-sidebox + .fw-sidebox{ margin-top:1.5rem; }
.fw-sidebox h4{ font-size:.8rem; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--gold); margin:0 0 .8rem; }

/* ---- Feature / card grid ---- */
.fw-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1.5rem; }
.fw-card{ background:var(--paper-raised); border:1px solid var(--line); padding:1.9rem; border-radius:4px; }
.fw-card__tag{ font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--sage); }
.fw-card h3{ font-size:1.2rem; margin:.6rem 0 .6rem; }
.fw-card p{ font-size:.92rem; color:#3d3b34; margin:0; }

/* ---- Highlights list (publications / case studies) ---- */
.fw-hl{ list-style:none; margin:0; padding:0; }
.fw-hl li{ display:grid; grid-template-columns:5rem 1fr; gap:1.5rem; padding:1.1rem 0; border-top:1px solid var(--line); align-items:start; }
.fw-hl li:first-child{ border-top:none; }
.fw-hl__metric{ font-family:var(--font-mono); color:var(--gold); font-size:.85rem; }
.fw-hl__text{ font-size:.92rem; }
@media (max-width:600px){ .fw-hl li{ grid-template-columns:1fr; gap:.3rem; } }

/* ---- Programs / callout ---- */
.fw-programs{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
@media (max-width:760px){ .fw-programs{ grid-template-columns:1fr; } }
.fw-callout{ background:var(--teal); color:#fff; padding:1.9rem; border-radius:4px; grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.fw-callout a{ color:#fff; }

/* ---- Media / engagement ---- */
.fw-media{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
@media (max-width:820px){ .fw-media{ grid-template-columns:1fr; } }
.fw-media__image{ aspect-ratio:5/4; background:linear-gradient(150deg,var(--gold),var(--teal)); border-radius:4px; }
.fw-media__image img{ width:100%; height:100%; object-fit:cover; border-radius:4px; }

/* ---- Contact ---- */
.fw-contact{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
@media (max-width:820px){ .fw-contact{ grid-template-columns:1fr; } }
.fw-contact__email{ font-family:var(--font-display); font-size:1.6rem; color:var(--teal); }
.fw-social{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.fw-social a{ display:flex; justify-content:space-between; padding:.7em 0; border-top:1px solid var(--line); text-decoration:none; color:var(--ink); }
.fw-social a:first-child{ border-top:none; }
.fw-social a:hover{ color:var(--teal); }

/* ---- Footer ---- */
.fw-footer{ border-top:1px solid var(--line); padding:2.5rem 1.5rem; text-align:center; font-size:.85rem; color:#5c5a52; }
.fw-footer a{ color:inherit; }

/* ---- Publication CPT single/archive ---- */
.fw-pub-meta{ font-family:var(--font-mono); font-size:.8rem; color:var(--sage); margin-bottom:.5rem; }

/* Utility */
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }
