/*
Theme Name: Township Economy (census map)
Theme URI: https://www.townshipeconomy.online
Author: Sustainable Livelihoods Foundation
Description: Research site for the Township Economy project. Adds a "Papers" section to the WordPress dashboard for publishing papers and briefs.
Version: 1.2
Requires at least: 6.0
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: township-economy
*/

  :root{
    --ground:#EDEFEA;   /* concrete */
    --paper:#F8F9F6;
    --ink:#1E2B30;      /* slate */
    --ink-soft:#4A585D;
    --road:#D3D7CF;
    --rule:#C4CAC1;
    --yellow:#E9B200;   /* taxi-route marking */
    --teal:#2C6E63;
    --blue:#3D5A88;
    --plum:#8E3F6E;
    --display:"Barlow Condensed", "Arial Narrow", sans-serif;
    --ui:"Barlow", "Helvetica Neue", Arial, sans-serif;
    --serif:"Source Serif 4", Georgia, serif;
    --measure:68ch;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--serif);font-size:1.0625rem;line-height:1.65}
  a{color:var(--teal);text-underline-offset:.18em}
  a:hover{color:var(--ink)}
  :focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
  .wrap{max-width:1180px;margin:0 auto;padding:0 1.5rem}
  .skip{position:absolute;left:-999px}
  .skip:focus{left:1rem;top:1rem;background:var(--ink);color:#fff;padding:.5rem 1rem;z-index:10}

  /* Header */
  header.site{background:var(--ink);color:#fff}
  header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px;flex-wrap:wrap}
  .mark{font-family:var(--display);font-weight:700;font-size:1.6rem;letter-spacing:.01em;color:#fff;text-decoration:none;display:flex;align-items:center;gap:.6rem}
  .mark svg{flex:none}
  nav.primary ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;flex-wrap:wrap}
  nav.primary a{font-family:var(--ui);font-weight:500;color:#fff;text-decoration:none;font-size:.98rem;padding:.3rem 0;border-bottom:2px solid transparent}
  nav.primary a:hover{border-bottom-color:var(--yellow);color:#fff}

  /* Hero */
  .hero{position:relative;background:var(--paper);border-bottom:1px solid var(--rule);overflow:hidden}
  .hero .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem;align-items:center;min-height:560px;padding-top:3rem;padding-bottom:3rem}
  .hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:.98;letter-spacing:-.005em;margin:0 0 1.25rem;max-width:12ch}
  .hero p.lede{font-size:1.2rem;line-height:1.55;max-width:36ch;margin:0 0 1.75rem;color:var(--ink-soft)}
  .actions{display:flex;gap:.75rem;flex-wrap:wrap}
  .btn{font-family:var(--ui);font-weight:600;font-size:1rem;display:inline-block;padding:.75rem 1.2rem;text-decoration:none;border:2px solid var(--ink);border-radius:3px}
  .btn.solid{background:var(--ink);color:#fff}
  .btn.solid:hover{background:var(--teal);border-color:var(--teal);color:#fff}
  .btn.line{color:var(--ink)}
  .btn.line:hover{background:var(--ink);color:#fff}
  figure.map{margin:0;position:relative}
  figure.map svg{width:100%;height:auto;display:block}
  figure.map figcaption{font-family:var(--ui);font-size:.85rem;color:var(--ink-soft);margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;align-items:center}
  .key{display:inline-flex;align-items:center;gap:.4rem}
  .key i{width:10px;height:10px;border-radius:50%;display:inline-block}
  .key .hs{width:18px;height:0;border-top:3px dashed var(--yellow);border-radius:0}
  .note{flex-basis:100%;font-style:normal}

  /* Section scaffolding */
  section.block{padding:4.5rem 0}
  section.block + section.block{border-top:1px solid var(--rule)}
  h2{font-family:var(--display);font-weight:600;font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.05;margin:0 0 .75rem}
  h3{font-family:var(--serif);font-weight:600;font-size:1.2rem;line-height:1.35;margin:0}
  .intro{max-width:var(--measure);color:var(--ink-soft);margin:0 0 2rem}

  /* Research */
  #research{background:var(--ground)}
  .tools{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;font-family:var(--ui)}
  .filters{display:flex;gap:.5rem;flex-wrap:wrap}
  .filters button{font:inherit;font-weight:500;font-size:.95rem;background:transparent;border:1.5px solid var(--ink);color:var(--ink);padding:.4rem .85rem;border-radius:999px;cursor:pointer}
  .filters button[aria-pressed="true"]{background:var(--ink);color:#fff}
  .search label{display:block;font-size:.85rem;color:var(--ink-soft);margin-bottom:.25rem}
  .search input{font:inherit;font-size:1rem;padding:.55rem .75rem;border:1.5px solid var(--ink);border-radius:3px;background:var(--paper);width:min(320px,80vw)}
  .count{font-family:var(--ui);font-size:.9rem;color:var(--ink-soft);margin:0 0 .5rem}
  ol.papers{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
  .paper{display:grid;grid-template-columns:5.5rem minmax(0,1fr) 11rem;gap:1.25rem;padding:1.4rem 0;border-bottom:1px solid var(--rule)}
  .paper .year{font-family:var(--display);font-weight:600;font-size:1.6rem;line-height:1}
  .paper .authors{font-family:var(--ui);font-size:.95rem;color:var(--ink-soft);margin:.3rem 0 .5rem}
  .paper .summary{margin:0;max-width:var(--measure)}
  .paper .meta{font-family:var(--ui);font-size:.9rem}
  .paper .kind{display:inline-block;font-weight:600;padding:.15rem .5rem;border-radius:3px;background:var(--paper);border:1px solid var(--rule)}
  .paper .kind[data-status="In preparation"]{border-style:dashed}
  .paper .topics{margin:.5rem 0 0;padding:0;list-style:none;color:var(--ink-soft)}
  .links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.8rem;font-family:var(--ui);font-size:.95rem;align-items:center}
  .links a{font-weight:600}
  .links .pending{color:var(--ink-soft)}
  .toggle{font:inherit;font-weight:600;background:none;border:0;padding:0;color:var(--teal);cursor:pointer;text-decoration:underline;text-underline-offset:.18em}
  .detail{margin-top:1rem;padding:1rem 1.2rem;background:var(--paper);border-left:4px solid var(--yellow);max-width:var(--measure)}
  .detail p{margin:0 0 .75rem}
  .cite{font-size:.95rem}
  .copy{font-family:var(--ui);font-weight:600;font-size:.9rem;background:var(--ink);color:#fff;border:0;border-radius:3px;padding:.4rem .8rem;cursor:pointer}
  .empty{padding:2rem 0;font-family:var(--ui)}
  .empty button{font:inherit;font-weight:600;background:none;border:0;color:var(--teal);text-decoration:underline;cursor:pointer;padding:0}

  /* Book */
  #book{background:var(--paper)}
  .book{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:3rem;align-items:start}
  .cover img{width:100%;height:auto;display:block;background:#fff;border:1px solid var(--rule);box-shadow:12px 12px 0 var(--road)}
  .cover p{font-family:var(--ui);font-size:.9rem;color:var(--ink-soft);margin:1.25rem 0 0}
  .book-body p{max-width:var(--measure)}
  ol.chapters{margin:1.5rem 0;padding:0;list-style:none;counter-reset:ch 2;columns:2;column-gap:2rem;font-family:var(--ui);font-size:.98rem}
  ol.chapters li{counter-increment:ch;break-inside:avoid;padding:.35rem 0 .35rem 2.2rem;position:relative;border-top:1px solid var(--rule)}
  ol.chapters li::before{content:counter(ch);position:absolute;left:0;font-family:var(--display);font-weight:600;font-size:1.15rem;color:var(--teal)}
  .buy{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}

  /* Reviews */
  .reviews{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
  blockquote{margin:0;padding:0}
  blockquote p{font-family:var(--display);font-weight:500;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.15;margin:0 0 1rem}
  blockquote footer{font-family:var(--ui);font-size:.95rem;color:var(--ink-soft)}

  /* Authors */
  .people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}
  .person{border-top:4px solid var(--ink);padding-top:1rem}
  .person .role{font-family:var(--ui);color:var(--ink-soft);font-size:.95rem;margin:.2rem 0 .8rem}
  .person p{font-size:1rem;margin:0 0 .8rem}
  .person a{font-family:var(--ui);font-weight:600;font-size:.95rem}

  /* Footer */
  footer.site{background:var(--ink);color:#DDE2DC;font-family:var(--ui);font-size:.95rem;padding:2.5rem 0}
  footer.site .wrap{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
  footer.site a{color:#fff}

  @media (max-width:900px){
    .hero .wrap{grid-template-columns:1fr;min-height:0}
    .book{grid-template-columns:1fr}
    .cover{max-width:280px}
    .reviews{grid-template-columns:1fr}
    .people{grid-template-columns:1fr}
    .paper{grid-template-columns:1fr;gap:.5rem}
    .paper .year{font-size:1.3rem}
    ol.chapters{columns:1}
    .paper .topics{display:flex;flex-wrap:wrap;gap:.2rem .9rem}
    .paper .meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}
    .paper .topics{margin:0}
  }

  /* WordPress additions */
  .admin-bar .skip:focus{top:3rem}
  .single-paper{padding:4rem 0}
  .single-paper .back{font-family:var(--ui);font-weight:600;display:inline-block;margin-bottom:1.5rem}
  .single-paper h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4vw,3rem);line-height:1.05;margin:0 0 .75rem;max-width:24ch}
  .single-paper .authors{font-family:var(--ui);color:var(--ink-soft);margin:0 0 1.5rem}
  .single-paper .body{max-width:var(--measure)}
  .single-paper .links{margin:1.5rem 0}
  .page-plain{padding:4rem 0}
  .page-plain .body{max-width:var(--measure)}
  .page-plain h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4vw,3rem);margin:0 0 1rem}
  .paper-meta{font-family:var(--ui);font-size:.95rem;display:flex;gap:.75rem;align-items:center;margin:0 0 1rem}
  .paper-meta .kind{font-weight:600;padding:.15rem .5rem;border-radius:3px;background:var(--paper);border:1px solid var(--rule)}
  .single-paper .pending{font-family:var(--ui);color:var(--ink-soft)}
  .team{margin:0 0 3rem;max-width:880px}
  .team img{width:100%;height:auto;display:block}
  .team figcaption{font-family:var(--ui);font-size:.95rem;color:var(--ink-soft);margin-top:.6rem}
  /* Census-map hero */
  .hero-map .wrap{display:block;min-height:0;padding-top:3rem;padding-bottom:3rem}
  .hero-text{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:2.5rem;align-items:end;margin-bottom:2.25rem}
  .hero-text h1{margin:0;max-width:14ch}
  .hero-text .lede{margin-bottom:1.25rem}
  figure.census{margin:0}
  figure.census img{width:100%;height:auto;display:block;border:1px solid var(--rule)}
  figure.census figcaption{font-family:var(--ui);font-size:.9rem;color:var(--ink-soft);margin-top:.6rem}
  @media (max-width:900px){.hero-text{grid-template-columns:1fr;gap:1rem}}
