/* Layout for the content pages and the blog. The header and footer come from
   chrome.css so they match the homepage exactly. */
/* The header is position:fixed, so it sits over the page rather than pushing
   it down. The homepage compensates inside its own hero; every other page
   has to leave room for it here, or the first heading lands underneath. */
main.doc, main.blog { max-width: 900px; margin: 0 auto;
  padding: calc(var(--header-h) + 2.6rem) 1.25rem 3.5rem; }
main.blog { max-width: 1080px; }
main.doc h1, main.blog h1 { font-family:"Fraunces",Georgia,serif; color:var(--forest);
  font-size:clamp(1.9rem,4vw,2.6rem); line-height:1.14; margin:0 0 .45rem; }
main.doc h2 { font-family:"Fraunces",Georgia,serif; color:var(--forest); font-size:1.28rem; margin:2.1rem 0 .5rem; }
main.doc p, main.doc li { font-size:.96rem; line-height:1.75; color:var(--ink); }
main.doc ul { padding-left:1.2rem; }
.upd { color:var(--muted); font-size:.85rem; margin:0 0 2rem; }
.box { background:#fff; border:1px solid var(--line); border-radius:14px; padding:1.1rem 1.25rem; margin:1.4rem 0; }
.box p { margin:.25rem 0; }

/* blog */
.blog-hero { max-width:640px; margin-bottom:2.2rem; }
.blog-hero p { color:var(--muted); margin:.5rem 0 0; }
.pgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.3rem; }
.pcard { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden;
  text-decoration:none; display:flex; flex-direction:column; transition:transform .18s,box-shadow .18s,border-color .18s; }
.pcard:hover { transform:translateY(-3px); border-color:var(--gold); box-shadow:0 16px 34px rgba(92,56,6,.11); }
.pthumb { width:100%; height:180px; object-fit:cover; display:block; background:var(--cream); }
.pcard .pbody { padding:1.25rem; display:flex; flex-direction:column; flex:1; }
.pdate { font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); }
.pcard h2 { font-family:"Fraunces",Georgia,serif; color:var(--forest); font-size:1.2rem; line-height:1.28; margin:.45rem 0; }
.pcard p { color:var(--muted); font-size:.88rem; margin:0 0 1rem; flex:1; }
.more { color:var(--gold); font-weight:800; font-size:.82rem; }
article { max-width:720px; margin:0 auto; }
article .meta { color:var(--muted); font-size:.85rem; margin-bottom:1.6rem; padding-bottom:1.1rem; border-bottom:1px solid var(--line); }
article .hero-img { width:100%; border-radius:16px; margin:0 0 1.8rem; display:block; background:var(--cream); }
article h2 { font-family:"Fraunces",Georgia,serif; color:var(--forest); font-size:1.4rem; margin:2.1rem 0 .55rem; }
article h3 { font-family:"Fraunces",Georgia,serif; color:var(--forest); font-size:1.14rem; margin:1.7rem 0 .5rem; }
article p, article li { font-size:1rem; line-height:1.8; color:#26331f; }
article ul, article ol { padding-left:1.3rem; }
.tags { margin-top:2.1rem; padding-top:1.2rem; border-top:1px solid var(--line); display:flex; gap:.45rem; flex-wrap:wrap; }
.tag { background:var(--cream); border-radius:999px; padding:.28rem .75rem; font-size:.74rem; font-weight:700; color:var(--muted); }
.endcta { margin-top:2.4rem; background:#fff; border:1px solid var(--line); border-radius:18px; padding:1.6rem; text-align:center; }
.endcta h3 { font-family:"Fraunces",Georgia,serif; color:var(--forest); margin:0 0 .4rem; font-size:1.24rem; }
.endcta p { color:var(--muted); margin:0 0 1rem; font-size:.92rem; }
.empty { background:#fff; border:1px solid var(--line); border-radius:18px; padding:3rem 1.5rem; text-align:center; }
.empty h2 { font-family:"Fraunces",Georgia,serif; color:var(--forest); margin:0 0 .5rem; }
.empty p { color:var(--muted); margin:0 0 1.2rem; }
@media(max-width:700px){ main.doc, main.blog {
  padding: calc(var(--header-h) + 1.8rem) 1rem 2.5rem; } }
