/* Orchard reader styles. One shared markup, three template skins keyed on
   [data-template]. Every colour and font is a CSS custom property set from the
   brand record, so a brand is distinct with no template forking. */

:root {
  --bg: #f7f5f2; --surface: #ffffff; --ink: #232323; --muted: #71717a;
  --accent: #2f6f4f; --accent-ink: #ffffff;
  --font-display: Georgia, serif; --font-body: system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-body); line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.wrap { max-width: 60rem; margin: 0 auto; padding: 1.5rem; }
.eyebrow { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin: 0 0 0.6rem; font-weight: 600; }

.site-head { max-width: 60rem; margin: 0 auto; padding: 2rem 1.5rem 0; }
.site-head .brand { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; text-decoration: none; letter-spacing: -0.01em; }
.site-head .brand img { max-height: 2.5rem; }
.site-head .tagline { color: var(--muted); margin: 0.2rem 0 0; font-size: 0.95rem; }

.hero h1 { font-family: var(--font-display); letter-spacing: -0.02em; margin: 0 0 0.75rem; }
.hero .lede { color: var(--muted); font-size: 1.15rem; max-width: 34rem; }

.entry__kind { display: inline-block; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
.entry__title { font-family: var(--font-display); letter-spacing: -0.01em; }
.entry__excerpt { color: var(--muted); }
.entry__more { color: var(--accent); font-weight: 600; font-size: 0.9rem; }
.feed-note { color: var(--muted); font-size: 0.85rem; text-align: center; margin-top: 2.5rem; font-style: italic; }

.post { max-width: 42rem; margin: 0 auto; }
.post h1 { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 2.8rem); letter-spacing: -0.02em; line-height: 1.1; margin: 0.2rem 0 0.6rem; }
.post__lede { font-size: 1.2rem; color: var(--muted); }
.post__hero { width: 100%; border-radius: 12px; margin: 1.25rem 0; }
.post .body { font-size: 1.08rem; }
.post .body p { margin: 0 0 1.1rem; }

.disclosure { margin-top: 2.5rem; padding: 0.9rem 1.1rem; border-radius: 10px;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent);
  color: var(--ink); font-size: 0.88rem; }

.btn { display: inline-block; background: var(--accent); color: var(--accent-ink); padding: 0.6rem 1.1rem; border-radius: 999px; text-decoration: none; border: 0; font-size: 1rem; cursor: pointer; }
.site-foot { max-width: 60rem; margin: 0 auto; padding: 3rem 1.5rem; color: var(--muted); font-size: 0.85rem; border-top: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); margin-top: 3rem; }
.notfound { text-align: center; padding-top: 4rem; }

/* ---- Skin: JOURNAL (editorial single column) ---- */
[data-template="journal"] .hero { text-align: center; padding: 2.5rem 0 2rem; }
[data-template="journal"] .hero h1 { font-size: clamp(2.4rem, 6vw, 3.6rem); line-height: 1.05; }
[data-template="journal"] .hero .lede { margin: 0 auto; }
[data-template="journal"] .feed { max-width: 40rem; margin: 0 auto; display: flex; flex-direction: column; }
[data-template="journal"] .entry { display: block; padding: 1.75rem 0; text-decoration: none; border-top: 1px solid color-mix(in srgb, var(--ink) 12%, transparent); }
[data-template="journal"] .entry:first-child { border-top: 0; }
[data-template="journal"] .entry__title { font-size: 1.7rem; margin: 0.4rem 0 0.5rem; line-height: 1.15; }
[data-template="journal"] .entry__more { display: none; }

/* ---- Skin: COUNTER (product-forward card shelf) ---- */
[data-template="counter"] .hero { text-align: left; padding: 2.5rem 0 2rem; }
[data-template="counter"] .hero h1 { font-size: clamp(2rem, 5vw, 3rem); font-weight: 700; }
[data-template="counter"] .feed { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
[data-template="counter"] .entry { display: flex; flex-direction: column; gap: 0.5rem; background: var(--surface); border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); border-radius: 14px; padding: 1.25rem; text-decoration: none; transition: transform 0.12s ease, box-shadow 0.12s ease; }
[data-template="counter"] .entry:hover { transform: translateY(-3px); box-shadow: 0 10px 24px color-mix(in srgb, var(--ink) 12%, transparent); }
[data-template="counter"] .entry__kind { align-self: flex-start; background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.2rem 0.6rem; border-radius: 999px; }
[data-template="counter"] .entry__title { font-size: 1.25rem; margin: 0.15rem 0; font-weight: 600; }
[data-template="counter"] .entry__excerpt { font-size: 0.95rem; flex: 1; }

/* ---- Skin: FIELD GUIDE (compact reference rows) ---- */
[data-template="field-guide"] .wrap { max-width: 48rem; }
[data-template="field-guide"] .hero { padding: 2rem 0 1.5rem; border-bottom: 2px solid var(--ink); }
[data-template="field-guide"] .hero h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); font-weight: 700; }
[data-template="field-guide"] .feed { display: flex; flex-direction: column; }
[data-template="field-guide"] .entry { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid color-mix(in srgb, var(--ink) 15%, transparent); text-decoration: none; }
[data-template="field-guide"] .entry__kind { grid-row: span 3; font-size: 0.68rem; }
[data-template="field-guide"] .entry__title { font-size: 1.15rem; margin: 0; font-weight: 600; }
[data-template="field-guide"] .entry__excerpt { font-size: 0.9rem; margin: 0.25rem 0 0; }
[data-template="field-guide"] .entry__more { display: none; }

@media (max-width: 640px) {
  [data-template="field-guide"] .entry { grid-template-columns: 1fr; }
  [data-template="field-guide"] .entry__kind { grid-row: auto; }
}

/* ---- Hero image (home) and feed thumbnails. Template-agnostic; the two-class
   selector beats the per-template .hero padding so text never hugs the edge. ---- */
.hero.hero--image { position: relative; background-size: cover; background-position: center;
  border-radius: 16px; padding: clamp(2.25rem, 7vw, 4.5rem) clamp(1.5rem, 4vw, 2.75rem);
  margin: 0.5rem 0 2rem; overflow: hidden; text-align: left; }
.hero--image .hero__inner { position: relative; max-width: 42rem; }
.hero--image .eyebrow { color: rgba(255,255,255,0.82); }
.hero--image h1 { color: #fff; }
.hero--image .lede { color: rgba(255,255,255,0.92); }
.hero__credit { position: absolute; right: 0.7rem; bottom: 0.45rem; font-size: 0.66rem; color: rgba(255,255,255,0.78); }
.hero__credit a { color: inherit; }

.entry__thumb { display: block; width: 100%; height: 9rem; background-size: cover;
  background-position: center; border-radius: 10px; margin-bottom: 0.9rem; }
[data-template="field-guide"] .entry__thumb { height: 100%; min-height: 4.5rem; margin: 0; }

*:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
