/*
Theme Name: Avoid-Crowds 2026
Theme URI: https://avoid-crowds.com/
Author: Avoid-Crowds
Description: Minimal classic theme in the Avoid-Crowds forecast design language (D-046 tokens) — paper-light background, 880px reading measure, system fonts, quiet chrome. No plugins, no build step, no external fonts, no tracking. The theme restyles AROUND content; post content is never modified.
Version: 1.3.5
Requires at least: 5.9
Tested up to: 6.8
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: avoidcrowds-2026
*/

/* ---- D-046 tokens (single source: publish/models.py UI_TOKENS) ---- */
:root{
  color-scheme:light;
  --bg:#faf8f4; --card:#ffffff; --ink:#17212e; --muted:#5b6470; --line:#e9e4db;
  --brand:#14304a; --accent:#0e6e62;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --shadow:0 1px 2px rgba(23,33,46,.05),0 12px 32px rgba(23,33,46,.06);
}

/* ---- base ---- */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
::selection{background:rgba(20,48,74,.12)}
img{max-width:100%;height:auto}
iframe,embed,object,video{max-width:100%}

/* ---- the 880px measure ---- */
.wrap{max-width:880px;margin:0 auto;padding:0 18px 60px}

/* ---- topbar: same language as the forecast pages ---- */
.topbar{position:sticky;top:0;z-index:9;background:rgba(250,248,244,.94);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--line);font-size:13px}
.topbar .in{max-width:880px;margin:0 auto;padding:9px 18px;
  display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.topbar .brand{color:var(--brand);font-size:14px;font-weight:700}
.topbar .brand:hover{text-decoration:none}
.topbar .tag{color:var(--muted)}

/* ---- typography ---- */
h1,.entry-title{font-size:clamp(30px,5.5vw,40px);line-height:1.12;
  letter-spacing:-.025em;font-weight:700;margin:34px 0 6px}
h2{font-size:22px;letter-spacing:-.015em;font-weight:650;margin:34px 0 10px}
h3{font-size:17px;font-weight:650;margin:26px 0 8px}
.sub,.meta{color:var(--muted);font-size:14px;margin:0 0 6px}
.meta a{color:var(--muted);text-decoration:underline}

/* ---- article content: restyle around it, never touch it ---- */
.entry{margin-top:22px}
.entry p{margin:0 0 1.15em}
.entry h2{margin-top:44px}
.entry h3{margin-top:30px}
.entry ul,.entry ol{margin:0 0 1.15em;padding-left:26px}
.entry li{margin:.3em 0}
.entry blockquote{margin:1.4em 0;padding:2px 0 2px 18px;
  border-left:3px solid var(--line);color:var(--muted)}
.entry hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}
.entry pre,.entry code{font:13.5px var(--mono)}
.entry pre{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;overflow-x:auto}
.entry table{border-collapse:collapse;width:100%;margin:1.4em 0;font-size:15px}
.entry th,.entry td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.entry th{background:var(--card);font-weight:650}
.entry img{border-radius:10px}
.entry figure,.wp-caption{margin:1.6em 0;max-width:100%}
.entry figcaption,.wp-caption-text,.gallery-caption{color:var(--muted);font-size:13px;margin-top:6px}
.alignleft{float:left;margin:4px 22px 12px 0}
.alignright{float:right;margin:4px 0 12px 22px}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.entry::after{content:"";display:table;clear:both}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}

/* ---- post lists (home, archives): quiet cards, no shadows ---- */
.page-title{margin-top:40px}
.postlist{margin-top:26px}
.teaser{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:20px 24px;margin:14px 0}
.teaser .t{font-size:19px;margin:0 0 4px}
.teaser .t a{color:var(--ink)}
.teaser .t a:hover{color:var(--accent);text-decoration:none}
.teaser p{margin:6px 0 0;font-size:15px;color:var(--muted)}
.pagination .nav-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px;font-size:14px}
.pagination .page-numbers{padding:4px 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted)}
.pagination .page-numbers.current{color:var(--ink);border-color:var(--ink)}
.pagination a.page-numbers:hover{text-decoration:none;color:var(--accent);border-color:var(--accent)}

/* ---- quiet footer ---- */
.foot{border-top:1px solid var(--line);margin-top:72px;color:var(--muted);font-size:13px}
.foot .in{max-width:880px;margin:0 auto;padding:18px 18px 42px}
.foot p{margin:4px 0}

/* ---- mobile rhythm (52px, matching the forecast pages) ---- */
@media(max-width:640px){
  .foot{margin-top:52px}
  .teaser{padding:16px 18px}
  .alignleft,.alignright{float:none;margin:1.2em 0}
}

/* ---- print: no chrome, honest text ---- */
@media print{
  .topbar,.pagination{display:none}
  body{background:#fff}
}

/* ---- v1.2: top menu + featured images ---- */
.topnav ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.topnav a{color:var(--ink);font-size:14px;font-weight:500}
.topnav a:hover{color:var(--accent)}
.topnav .current-menu-item>a{color:var(--accent);font-weight:600}
.entry-thumb{margin:0 0 28px}
.entry-thumb img{width:100%;height:auto;border-radius:12px;display:block}
.teaser{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:start}
.teaser-thumb img{width:100%;height:auto;border-radius:8px;display:block}
.teaser:not(:has(.teaser-thumb)){grid-template-columns:1fr}
@media (max-width:640px){.teaser{grid-template-columns:1fr}}
