/* MelonWire — editorial, GeneratePress-inspired, mobile-first */
:root{
  --bg:#faf7f2;
  --bg-alt:#f1ece3;
  --text:#2a2622;
  --text-soft:#55504a;
  --accent:#0f6b5c;
  --accent-dark:#0a4f44;
  --border:#e1d9cb;
  --card-bg:#ffffff;
  --link:#0f6b5c;
  --danger:#8a2a1f;
  --maxw:1120px;
  --radius:8px;
  --focus:#0a4f44;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#1b1a17;
    --bg-alt:#242220;
    --text:#f1ece3;
    --text-soft:#c9c2b6;
    --accent:#4fd3b8;
    --accent-dark:#7fe6cf;
    --border:#3a372f;
    --card-bg:#242220;
    --link:#4fd3b8;
    --danger:#ff8a78;
    --focus:#4fd3b8;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;font-size:17px;
}
img{max-width:100%;height:auto;display:block;border-radius:var(--radius)}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px}
a:hover{color:var(--accent-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{
  outline:3px solid var(--focus);outline-offset:2px;
}
.container{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.visually-hidden{position:absolute;left:-9999px}
.skip-link{position:absolute;left:-9999px;background:var(--accent);color:#fff;padding:8px 14px;z-index:100}
.skip-link:focus{left:16px;top:8px}

/* Header */
.site-header{background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;max-width:var(--maxw);margin:0 auto}
.brand{display:flex;flex-direction:column;text-decoration:none;padding-left:4px}
.brand .wordmark{font-size:1.5rem;font-weight:800;color:var(--accent-dark);letter-spacing:-0.02em}
.brand .tagline{font-size:0.72rem;color:var(--text-soft);text-decoration:none;display:none}
@media(min-width:560px){.brand .tagline{display:block}}
.main-nav{display:none;gap:18px;align-items:center}
.main-nav a{color:var(--text);text-decoration:none;font-weight:600;font-size:0.95rem}
.main-nav a:hover{color:var(--accent)}
@media(min-width:800px){.main-nav{display:flex}}
.nav-toggle{background:none;border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:1rem;min-width:44px;min-height:44px}
@media(min-width:800px){.nav-toggle{display:none}}
.mobile-nav{display:none;flex-direction:column;background:var(--card-bg);border-top:1px solid var(--border);padding:8px 16px 16px}
.mobile-nav.open{display:flex}
.mobile-nav a{padding:12px 4px;color:var(--text);text-decoration:none;font-weight:600;border-bottom:1px solid var(--border);min-height:44px}
.header-search{display:flex;align-items:center;gap:8px}
.header-search input[type=search]{min-width:0;width:90px;max-width:120px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}
@media(min-width:420px){.header-search input[type=search]{width:120px}}
@media(min-width:800px){.header-search input[type=search]{width:180px;max-width:none}}

/* Footer */
.site-footer{background:var(--bg-alt);border-top:1px solid var(--border);margin-top:48px;padding:32px 0 24px;font-size:0.92rem;color:var(--text-soft)}
.footer-grid{display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:700px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer-grid h3{color:var(--text);font-size:0.85rem;text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}
.footer-grid ul{list-style:none;padding:0;margin:0}
.footer-grid li{margin-bottom:6px}
.footer-grid a{color:var(--text-soft);text-decoration:none}
.footer-grid a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid var(--border);margin-top:24px;padding-top:16px;text-align:center;font-size:0.82rem}

/* Hero / homepage */
.hero{padding:28px 0 8px}
.hero h1{font-size:1.9rem;margin:0 0 6px;letter-spacing:-0.01em}
.hero p{color:var(--text-soft);margin:0;max-width:640px}
.section-title{font-size:1.25rem;margin:36px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--accent);display:flex;justify-content:space-between;align-items:baseline}
.section-title a{font-size:0.85rem;font-weight:600}

/* Cards / grid */
.card-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:640px){.card-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.card-grid.cols-3{grid-template-columns:1fr 1fr 1fr}}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.card img{aspect-ratio:16/9;object-fit:cover;width:100%}
.card .card-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.card .kicker{color:var(--accent-dark);font-weight:700;font-size:0.75rem;text-transform:uppercase;letter-spacing:.04em}
.card h3{margin:0;font-size:1.08rem;line-height:1.35}
.card h3 a{text-decoration:none;color:var(--text)}
.card h3 a:hover{color:var(--accent)}
.card p{margin:0;color:var(--text-soft);font-size:0.94rem}
.card .meta{font-size:0.8rem;color:var(--text-soft);margin-top:auto}
.featured-card{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card-bg)}
@media(min-width:760px){.featured-card{grid-template-columns:1.2fr 1fr}}
.featured-card img{aspect-ratio:16/9;height:100%;object-fit:cover;border-radius:0}
.featured-card .card-body{padding:22px}
.featured-card h2{font-size:1.5rem;margin:6px 0 10px}
.featured-card h2 a{text-decoration:none;color:var(--text)}

/* Article */
.breadcrumbs{font-size:0.82rem;color:var(--text-soft);margin:16px 0}
.breadcrumbs a{color:var(--text-soft)}
.article-header{max-width:760px;margin:0 auto}
.article-header .kicker{color:var(--accent-dark);font-weight:700;text-transform:uppercase;font-size:0.78rem;letter-spacing:.04em}
.article-header h1{font-size:2rem;line-height:1.25;margin:8px 0 10px}
.dek{font-size:1.15rem;color:var(--text-soft);margin:0 0 16px}
.byline{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:0.86rem;color:var(--text-soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 0;margin:16px 0}
.byline a{color:var(--text-soft)}
.article-hero-img{max-width:860px;margin:0 auto 8px}
.img-caption{max-width:860px;margin:0 auto 24px;font-size:0.82rem;color:var(--text-soft)}
.article-layout{display:grid;grid-template-columns:1fr;gap:32px;max-width:var(--maxw);margin:0 auto}
@media(min-width:900px){.article-layout{grid-template-columns:2.2fr 1fr}}
.article-body{max-width:720px}
.article-body h2{font-size:1.4rem;margin:32px 0 12px}
.article-body h3{font-size:1.15rem;margin:24px 0 10px}
.article-body p{margin:0 0 16px}
.toc{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:0 0 24px;max-width:720px}
.toc h2{font-size:0.95rem;margin:0 0 8px;text-transform:uppercase;letter-spacing:.03em}
.toc ol{margin:0;padding-left:20px}
.toc a{font-size:0.92rem}
.sidebar{display:flex;flex-direction:column;gap:20px}
.sidebar .box{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.sidebar .box h3{margin:0 0 10px;font-size:0.95rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-soft)}
.sidebar .box ul{list-style:none;margin:0;padding:0}
.sidebar .box li{margin-bottom:10px;font-size:0.92rem}
.sources-list{font-size:0.88rem;padding-left:0;list-style:none}
.sources-list li{margin-bottom:8px;padding-left:0}
.corrections-link{font-size:0.85rem}
.related{margin:40px 0}

/* Tools / calculators */
.tool-box{background:var(--card-bg);border:2px solid var(--accent);border-radius:var(--radius);padding:20px;margin:24px 0;max-width:720px}
.tool-box h2,.tool-box h1{margin-top:0}
.tool-field{margin-bottom:14px}
.tool-field label{display:block;font-weight:600;margin-bottom:5px;font-size:0.92rem}
.tool-field input[type=number],.tool-field input[type=text],.tool-field select{
  width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:1rem;min-height:44px;
}
.check-grid{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:560px){.check-grid{grid-template-columns:1fr 1fr}}
.check-item{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border);border-radius:6px;min-height:44px}
.check-item input{width:20px;height:20px}
.btn{display:inline-block;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:12px 20px;font-size:1rem;font-weight:700;cursor:pointer;min-height:44px}
.btn:hover{background:var(--accent-dark)}
.btn.secondary{background:transparent;color:var(--accent-dark);border:1px solid var(--accent)}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.tool-result{margin-top:16px;padding:14px 16px;border-radius:6px;background:var(--bg-alt);border:1px solid var(--border);font-size:1.05rem}
.tool-error{color:var(--danger);font-size:0.88rem;margin-top:4px}
[aria-live]{min-height:1px}

/* Pagination */
.pagination{display:flex;gap:8px;justify-content:center;margin:32px 0;flex-wrap:wrap}
.pagination a,.pagination span{padding:9px 14px;border:1px solid var(--border);border-radius:6px;text-decoration:none;color:var(--text);min-height:44px;display:flex;align-items:center}
.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Search page */
.search-box{max-width:600px;margin:20px 0}
.search-box input{width:100%;padding:13px 14px;font-size:1.05rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text)}
#search-results .card{margin-bottom:14px}

/* Plain content pages */
.content-page{max-width:720px;margin:0 auto;padding-bottom:40px}
.content-page h1{font-size:1.8rem}
.content-page h2{font-size:1.25rem;margin-top:28px}

/* Disclosure / standfirst note boxes */
.notice{background:var(--bg-alt);border-left:4px solid var(--accent);padding:12px 16px;border-radius:0 6px 6px 0;font-size:0.9rem;margin:20px 0}

@media(max-width:480px){
  body{font-size:16px}
  .article-header h1{font-size:1.5rem}
  .hero h1{font-size:1.5rem}
}
