/*
Theme Name:   Naturally Well Today Child
Theme URI:    https://naturallywelltoday.org
Description:  Woodblock / carved print child theme for a natural and homemade wellness blog. Botanical plate numbering, a deliberately misregistered second ink, coarse carved rules and a two column plate index on unbleached paper, forest and terra.
Author:       Thea Lindqvist
Template:     generatepress
Version:      1.0.0
*/

/* ============================================================
   NATURALLY WELL TODAY - DESIGN SYSTEM
   Archetype : Woodblock / Carved Print, arrived at through the
               botanical chromolithograph plate and the old
               heirloom seed catalogue.
   Type      : Old Standard TT (display) / Sarabun (body, meta)
   Palette   : forest ink on unbleached paper. Terra is the
               SECOND STONE only: plate numbers, rules, and the
               misregistration ghost. It never carries body text.
   Shape lock: carved block. border-radius is 0 EVERYWHERE. The
               softness comes from whitespace, never from corners.
   Motion    : dial 1. CSS hover only, no JS, no scroll effects,
               no entrance animation. The misregistration is a
               static print artefact, not an animation.
   Signatures: 1) misregistered second ink (terra, offset 9px,
                  multiply, escaping the frame on two edges)
               2) carved rule (nicked thick forest bar)
               3) plate number + italic descriptor sub-line
   ============================================================ */

:root {
  /* -------- forest ink -------- */
  --forest:         #2C4436;
  --forest-deep:    #1E2F25;
  --forest-deeper:  #16241B;
  --forest-soft:    #A9B7AC;

  /* -------- unbleached paper -------- */
  --paper:          #EFE9DC;
  --paper-deep:     #E3DBC9;
  --paper-light:    #F7F3EA;

  /* -------- terra: the second stone. small areas only -------- */
  --terra:          #B5613F;
  --terra-deep:     #96482B;
  --terra-soft:     #DFB9A6;

  --ink:            #22301F;
  --muted:          #6E7566;
  --line:           #CFC5AE;
  --line-soft:      #DED5C1;

  /* aliases for the inherited token names, so parent rules keep working */
  --color-primary:      var(--forest);
  --color-primary-dark: var(--forest-deep);
  --color-primary-soft: var(--forest-soft);
  --color-bg:           var(--paper);
  --color-bg-deep:      var(--paper-deep);
  --color-accent:       var(--terra);
  --color-accent-soft:  var(--terra-soft);
  --color-accent-deep:  var(--terra-deep);
  --color-charcoal:     var(--ink);
  --color-ink:          var(--ink);
  --color-muted:        var(--muted);
  --color-line:         var(--line);
  --color-white:        var(--paper-light);

  --font-serif: 'Old Standard TT', Georgia, 'Times New Roman', serif;
  --font-sans:  'Sarabun', 'Segoe UI', sans-serif;

  --max-w:        1180px;
  --max-w-wide:   1320px;
  --max-w-narrow: 680px;

  --carve: 6px solid var(--forest);
  --reg-offset: 9px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.78;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -0.005em;
  color: var(--forest);
}

a { color: var(--forest); }

/* Nothing on this site is rounded. This is the shape lock. */
.tb-main *, .tb-masthead *, .site-footer *,
.nwt-plate, .nwt-tile, .nwt-idx, .nwt-form input, .nwt-form button {
  border-radius: 0 !important;
}

.tb-main { display: block; }

/* the loading bar the parent header prints; we do not want it */
.tb-progress { display: none; }

/* ------------------------------------------------------------
   PAPER FIBRE GROUND
   Applied only to non-scrolling band pseudo-elements, per the
   DOM cost rule. Never on a scrolling container.
------------------------------------------------------------ */
.nwt-fibre { position: relative; }
.nwt-fibre::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .5;
  background-image:
    radial-gradient(var(--line) .5px, transparent .5px),
    radial-gradient(var(--line-soft) .5px, transparent .5px);
  background-size: 17px 17px, 11px 11px;
  background-position: 0 0, 5px 7px;
}
.nwt-fibre > * { position: relative; }

/* ------------------------------------------------------------
   SIGNATURE 1: THE CARVED RULE
   A thick forest bar with a hand-cut nick pattern above it.
   Pure gradients, no image.
------------------------------------------------------------ */
.nwt-carve {
  height: 7px;
  border: 0;
  margin: 0;
  background:
    repeating-linear-gradient(90deg, var(--forest) 0 13px, transparent 13px 16px) 0 0 / 100% 4px no-repeat,
    linear-gradient(var(--forest), var(--forest)) 0 5px / 100% 2px no-repeat;
}

/* ------------------------------------------------------------
   SIGNATURE 2: THE MISREGISTERED SECOND INK
   Chromolithography printed each colour from its own stone and a
   cheap run drifts. A terra block sits 9px down and right of the
   plate, multiplying where it overlaps and showing plainly where
   it escapes. .nwt-reg must never clip, or the ghost disappears.
------------------------------------------------------------ */
.nwt-reg { position: relative; display: block; isolation: isolate; }
.nwt-reg::before {
  content: "";
  position: absolute;
  left: var(--reg-offset);
  top: var(--reg-offset);
  right: calc(var(--reg-offset) * -1);
  bottom: calc(var(--reg-offset) * -1);
  background: var(--terra);
  mix-blend-mode: multiply;
  opacity: .62;
  pointer-events: none;
  z-index: -1;
}
.nwt-reg img { position: relative; z-index: 1; }
.nwt-framed { border: var(--carve); background: var(--paper-light); }

/* ------------------------------------------------------------
   SIGNATURE 3: PLATE NUMBER + ITALIC DESCRIPTOR
------------------------------------------------------------ */
.nwt-plate-no, .tb-eyebrow {
  font-family: var(--font-serif);
  font-size: .78rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--terra);
  display: block;
  margin-bottom: .55rem;
}
.nwt-descriptor {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.02rem;
  color: var(--muted);
  margin: .5rem 0 0;
}

/* ============================================================
   MASTHEAD + NAVIGATION
   ============================================================ */
.tb-masthead {
  background: var(--paper);
  border-bottom: 2px solid var(--forest);
}
.tb-masthead-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 2.4rem 2rem 1.4rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  text-align: center;
}
.tb-masthead-meta {
  font-size: .74rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: left;
}
.tb-masthead-meta.right { text-align: right; }

/* the wordmark carries the misregistration too */
.tb-masthead-title {
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 4vw, 2.9rem);
  line-height: 1;
  color: var(--forest);
  text-decoration: none;
  display: inline-block;
  position: relative;
  isolation: isolate;
}
.tb-masthead-title::after {
  content: attr(data-ghost);
  position: absolute;
  left: 4px;
  top: 4px;
  color: var(--terra);
  opacity: .62;
  mix-blend-mode: multiply;
  z-index: -1;
  white-space: nowrap;
  pointer-events: none;
}
.tb-masthead-tagline {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--muted);
  margin-top: .5rem;
  font-size: 1rem;
}

.tb-nav { background: var(--paper); border-bottom: 0; }
.tb-nav-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: .8rem 2rem 1rem;
  border-top: 1px solid var(--line);
}
.tb-nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .15rem 1.7rem;
}
.tb-nav-menu a {
  font-size: .83rem;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--forest);
  text-decoration: none;
  padding: .25rem 0;
  display: inline-block;
  border-bottom: 2px solid transparent;
  transition: border-color .16s ease;
}
.tb-nav-menu a:hover, .tb-nav-menu .current-menu-item > a {
  border-bottom-color: var(--terra);
}

.tb-announce {
  background: var(--forest-deep);
  color: var(--paper);
  text-align: center;
  font-size: .85rem;
  padding: .6rem 1.2rem;
}
.tb-announce a { color: var(--terra-soft); }
.tb-announce strong { font-weight: 600; }

/* ============================================================
   HOMEPAGE 1: HERO PLATE
   The headline sits BELOW the image, as a plate caption would.
   ============================================================ */
.nwt-hero { max-width: var(--max-w); margin: 0 auto; padding: 4.2rem 2rem 3.4rem; }
.nwt-hero-fig { margin: 0; }
.nwt-hero-fig .nwt-reg { aspect-ratio: 21 / 9; }
.nwt-hero-fig img { width: 100%; height: 100%; object-fit: cover; }
.nwt-hero-cap {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3.2rem;
  align-items: start;
  margin-top: 2.1rem;
}
.nwt-hero-cap h1 { font-size: clamp(2.05rem, 4.4vw, 3.3rem); margin: 0; }
.nwt-hero-cap h1 a { color: inherit; text-decoration: none; }
.nwt-hero-cap h1 a:hover { color: var(--terra-deep); }
.nwt-hero-lead { margin: 1rem 0 0; max-width: 56ch; color: #3B4636; }

.nwt-hero-aside { border-left: 3px solid var(--forest); padding-left: 1.3rem; }
.nwt-hero-aside h4 {
  font-family: var(--font-sans);
  font-size: .79rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--forest);
  margin: 0 0 .9rem;
}
.nwt-hero-aside ol { margin: 0; padding: 0; list-style: none; counter-reset: r; }
.nwt-hero-aside li {
  counter-increment: r;
  padding: .62rem 0;
  border-bottom: 1px solid var(--line-soft);
  display: grid;
  grid-template-columns: 1.9rem 1fr;
  gap: .4rem;
}
.nwt-hero-aside li::before {
  content: counter(r, upper-roman) ".";
  font-family: var(--font-serif);
  color: var(--terra);
  font-size: .86rem;
  padding-top: .18rem;
}
.nwt-hero-aside a { font-size: .95rem; line-height: 1.45; color: var(--ink); text-decoration: none; }
.nwt-hero-aside a:hover { color: var(--terra-deep); }
.nwt-hero-aside .nwt-mini-cat {
  display: block;
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: .18rem;
}

/* ============================================================
   HOMEPAGE 2: FROM THE WORKBENCH
   ============================================================ */
.nwt-letter { max-width: var(--max-w); margin: 0 auto; padding: 1rem 2rem 3.8rem; }
.nwt-letter-in {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 2.6rem;
  max-width: 900px;
  border-top: 2px solid var(--forest);
  padding-top: 2rem;
}
.nwt-letter-mark {
  font-family: var(--font-serif);
  font-size: 3.6rem;
  line-height: .85;
  color: var(--forest);
  position: relative;
  isolation: isolate;
}
.nwt-letter-mark span {
  position: absolute;
  left: 4px;
  top: 4px;
  color: var(--terra);
  opacity: .6;
  mix-blend-mode: multiply;
  z-index: -1;
}
.nwt-letter-body { max-width: 60ch; }
.nwt-letter-body h3 { font-size: 1.72rem; margin: 0 0 .9rem; }
.nwt-letter-body p { margin: 0 0 .95rem; }
.nwt-sign, .tb-signature {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--forest);
  font-size: 1.06rem;
}

/* ============================================================
   BANDS + SECTION HEADS
   ============================================================ */
.nwt-band, .tb-section { padding: 3.8rem 0; }
.nwt-band-in { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; }
.nwt-head, .tb-section-head { margin-bottom: 2.2rem; }
.nwt-head h2, .tb-section-head h2 {
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  margin: 0;
}
.tb-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.tb-more {
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--forest);
  text-decoration: none;
  border-bottom: 2px solid var(--terra);
  padding-bottom: .15rem;
  white-space: nowrap;
}
.tb-more:hover { color: var(--terra-deep); }

/* ============================================================
   HOMEPAGE 3: THE PLATES (8 sections, 2 then 3 then 3)
   Every card carries a thumbnail. This is not negotiable.
   ============================================================ */
.nwt-plates {
  display: grid;
  gap: 2.4rem 2.2rem;
  grid-template-columns: repeat(6, 1fr);
}
.nwt-plate { grid-column: span 3; display: block; color: inherit; text-decoration: none; }
.nwt-plate:nth-child(n+3) { grid-column: span 2; }
.nwt-plate .nwt-reg { aspect-ratio: 4 / 3; }
.nwt-plate img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.9);
  transition: filter .16s ease;
}
.nwt-plate:hover img { filter: saturate(1.06); }
.nwt-plate-txt { padding-top: .95rem; }
.nwt-plate-txt h3 { font-size: 1.24rem; margin: 0; color: var(--forest); }
.nwt-plate:nth-child(-n+2) .nwt-plate-txt h3 { font-size: 1.6rem; }
.nwt-plate:hover .nwt-plate-txt h3 { color: var(--terra-deep); }
.nwt-plate-count {
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: .35rem;
}
/* no-image fallback so an empty category never leaves a hole */
.nwt-plate .nwt-reg.is-empty {
  background: var(--paper-deep);
  aspect-ratio: 4 / 3;
}

/* ============================================================
   HOMEPAGE 4 and 7: DARK BANDS
   ============================================================ */
.nwt-dark, .tb-pullquote {
  background: var(--forest-deep);
  color: var(--paper);
  padding: 4.6rem 0;
}
.nwt-dark .nwt-plate-no, .tb-pullquote .tb-eyebrow { color: var(--terra-soft); }
.nwt-quote, .tb-pullquote-inner { max-width: 820px; margin: 0 auto; padding: 0 2rem; text-align: center; }
.nwt-quote blockquote, .tb-pullquote blockquote {
  margin: 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.38rem, 2.7vw, 2rem);
  line-height: 1.42;
  padding-bottom: .3rem;
  color: var(--paper);
}
.nwt-quote-src, .tb-pullquote-source {
  margin-top: 1.5rem;
  font-size: .86rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--forest-soft);
}
.nwt-quote-src a, .tb-pullquote-source a {
  color: var(--paper);
  text-decoration: none;
  border-bottom: 1px solid var(--terra);
}

/* ============================================================
   HOMEPAGE 5: ASYMMETRIC MOSAIC
   variant map lives in front-page.php: 0 big, 3 tall, 5 wide,
   8 tall, 11 wide. A map used by no other site in the fleet.
   ============================================================ */
.nwt-mosaic, .tb-mosaic {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 2.3rem 2rem;
}
.nwt-tile, .tb-mosaic-item { grid-column: span 2; color: inherit; text-decoration: none; display: block; }
.nwt-tile.big, .nwt-tile.wide { grid-column: span 4; }
.nwt-tile.tall { grid-column: span 2; }
.nwt-tile .nwt-reg { aspect-ratio: 3 / 2; }
.nwt-tile.tall .nwt-reg { aspect-ratio: 3 / 4; }
.nwt-tile.big .nwt-reg { aspect-ratio: 16 / 9; }
.nwt-tile img { width: 100%; height: 100%; object-fit: cover; }
.nwt-tile-body { padding-top: .85rem; }
.nwt-tile-meta {
  font-size: .73rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--terra-deep);
}
.nwt-tile-title { font-size: 1.14rem; margin: .3rem 0 0; color: var(--forest); }
.nwt-tile.big .nwt-tile-title { font-size: 1.7rem; }
.nwt-tile-ex { font-size: .94rem; color: var(--muted); margin: .5rem 0 0; }
.nwt-tile-date { font-size: .76rem; color: var(--muted); margin-top: .5rem; letter-spacing: .06em; }
.nwt-tile:hover .nwt-tile-title { color: var(--terra-deep); }

/* ============================================================
   HOMEPAGE 6: THE PLATE INDEX
   The seed catalogue index, two columns with a count in the
   margin. Every row still carries a thumbnail.
   ============================================================ */
.nwt-index-band { background: var(--paper-deep); padding: 4.2rem 0; }
.nwt-index, .tb-bysection { display: grid; grid-template-columns: 1fr 1fr; gap: 0 3.6rem; }
.nwt-idx, .tb-bysection-block { border-top: 2px solid var(--forest); padding: 1.1rem 0 1.4rem; }
.nwt-idx-h { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.nwt-idx-h h3 { font-size: 1.2rem; margin: 0; }
.nwt-idx-h h3 a { color: var(--forest); text-decoration: none; }
.nwt-idx-h h3 a:hover { color: var(--terra-deep); }
.nwt-idx-h .nwt-idx-n {
  font-family: var(--font-serif);
  font-size: .84rem;
  color: var(--terra);
  white-space: nowrap;
}
.nwt-idx ul { list-style: none; margin: .85rem 0 0; padding: 0; }
.nwt-idx li {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: .85rem;
  padding: .5rem 0;
  align-items: center;
}
.nwt-idx li + li { border-top: 1px solid var(--line-soft); }
.nwt-idx li img { width: 64px; height: 48px; object-fit: cover; border: 2px solid var(--forest); display: block; }
.nwt-idx-thumb.is-empty { width: 64px; height: 48px; background: var(--paper); border: 2px solid var(--forest); display: block; }
.nwt-idx li a { font-size: .93rem; line-height: 1.4; color: var(--ink); text-decoration: none; }
.nwt-idx li a:hover { color: var(--terra-deep); }
.nwt-idx-more {
  display: inline-block;
  margin-top: .9rem;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--forest);
  text-decoration: none;
  border-bottom: 2px solid var(--terra);
  padding-bottom: .12rem;
}
.nwt-idx-more:hover { color: var(--terra-deep); }

/* ============================================================
   NEWSLETTER: THE SLOW POST
   ============================================================ */
.nwt-post, .tb-newsletter { background: var(--forest-deeper); color: var(--paper); padding: 4.6rem 0; }
.nwt-post-in, .tb-newsletter-inner { max-width: 640px; margin: 0 auto; padding: 0 2rem; text-align: center; }
.nwt-post .nwt-plate-no, .tb-newsletter .tb-eyebrow { color: var(--terra-soft); }
.nwt-post h3, .tb-newsletter h3 { font-size: 1.85rem; margin: 0 0 .85rem; color: var(--paper); }
.nwt-post p, .tb-newsletter p { color: #C6CFC2; margin: 0 auto 1.9rem; max-width: 52ch; }
.nwt-form, .tb-newsletter-form { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; }
.nwt-form input, .tb-newsletter-form input {
  flex: 1 1 250px;
  max-width: 330px;
  padding: .85rem 1rem;
  border: 2px solid var(--paper);
  background: transparent;
  color: var(--paper);
  font-family: var(--font-sans);
  font-size: 1rem;
}
.nwt-form input::placeholder, .tb-newsletter-form input::placeholder { color: #9EAA9C; }
.nwt-form input:focus, .tb-newsletter-form input:focus { outline: 2px solid var(--terra-soft); outline-offset: 2px; }
.nwt-form button, .tb-newsletter-form button {
  padding: .85rem 1.9rem;
  border: 2px solid var(--terra);
  background: var(--terra);
  color: var(--paper-light);
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .07em;
  cursor: pointer;
  transition: transform .14s ease, background .14s ease;
}
.nwt-form button:hover, .tb-newsletter-form button:hover { background: var(--terra-deep); border-color: var(--terra-deep); }
.nwt-form button:active, .tb-newsletter-form button:active { transform: translateY(1px); }
.nwt-post-note, .tb-newsletter-note { font-size: .82rem; color: #93A091; margin-top: 1.2rem; }

/* ============================================================
   SINGLE POST
   ============================================================ */
.tb-post-header { max-width: var(--max-w-narrow); margin: 0 auto; padding: 3.4rem 2rem 1.6rem; }
.tb-breadcrumb { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.4rem; }
.tb-breadcrumb a { color: var(--forest); text-decoration: none; }
.tb-breadcrumb a:hover { color: var(--terra-deep); }
.tb-post-cat {
  display: inline-block;
  font-size: .74rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--terra);
  text-decoration: none;
  margin-bottom: .8rem;
  font-family: var(--font-serif);
}
.tb-post-cat:hover { color: var(--terra-deep); }
.tb-post-title { font-size: clamp(1.9rem, 4vw, 2.9rem); margin: 0 0 1rem; }
.tb-post-meta { font-size: .86rem; color: var(--muted); }
.tb-post-meta strong { font-weight: 500; color: var(--forest); }
.tb-post-cover { max-width: var(--max-w); margin: 1.8rem auto 2.4rem; padding: 0 2rem; }
.tb-post-cover .nwt-reg { display: block; }
.tb-post-cover img { width: 100%; display: block; }

.entry-content, .single .entry-content, .page .entry-content {
  max-width: var(--max-w-narrow);
  margin: 0 auto;
  padding: 0 2rem 3rem;
}
.entry-content p { margin: 0 0 1.25rem; }
.entry-content h2 {
  font-size: 1.62rem;
  margin: 2.4rem 0 .9rem;
  padding-top: 1.1rem;
  border-top: 3px solid var(--forest);
}
.entry-content h3 { font-size: 1.28rem; margin: 1.9rem 0 .7rem; }
.entry-content ul, .entry-content ol { margin: 0 0 1.3rem; padding-left: 1.3rem; }
.entry-content li { margin-bottom: .45rem; }
.entry-content a { color: var(--forest); text-decoration: underline; text-decoration-color: var(--terra); text-underline-offset: 3px; }
.entry-content a:hover { color: var(--terra-deep); }
.entry-content img { border: var(--carve); }
.single .entry-content blockquote {
  margin: 2rem 0;
  padding: .3rem 0 .3rem 1.5rem;
  border-left: 6px solid var(--terra);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--forest);
}
.single .entry-content > p:first-of-type { font-size: 1.1rem; }

.ftc-disclosure, .entry-content .ftc-disclosure {
  background: var(--paper-deep);
  border-left: 6px solid var(--forest);
  padding: .9rem 1.2rem;
  margin: 0 0 2rem;
}
.ftc-disclosure p { margin: 0; font-size: .88rem; color: var(--muted); line-height: 1.6; }

.tb-inline-cta { background: var(--paper-deep); border-top: 3px solid var(--forest); border-bottom: 3px solid var(--forest); padding: 1.2rem 1.4rem; margin: 2rem 0; }
.tb-inline-cta strong { font-family: var(--font-serif); color: var(--forest); }
.tb-inline-cta p { margin: .3rem 0 0; font-size: .95rem; }
.tb-inline-cta a { color: var(--terra-deep); }

.tb-author-bio {
  max-width: var(--max-w-narrow);
  margin: 0 auto 3rem;
  padding: 1.8rem 2rem;
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 1.4rem;
  border-top: 3px solid var(--forest);
}
.tb-author-avatar {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  background: var(--forest);
  color: var(--paper);
  font-family: var(--font-serif);
  font-size: 1.4rem;
}
.tb-author-bio h4 { font-size: 1.15rem; margin: .2rem 0 .5rem; }
.tb-author-bio p { margin: 0 0 .7rem; font-size: .95rem; color: var(--muted); }
.tb-author-bio a { color: var(--forest); font-size: .84rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-bottom: 2px solid var(--terra); padding-bottom: .1rem; }
.tb-author-bio a:hover { color: var(--terra-deep); }

.tb-related { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem 3.6rem; }
.tb-related h3 { font-size: 1.5rem; margin: 0 0 1.6rem; padding-top: 1.2rem; border-top: 2px solid var(--forest); }
.tb-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.2rem 2rem; }
.tb-related-card { text-decoration: none; color: inherit; display: block; }
.tb-related-card .tb-related-cover { display: block; }
.tb-related-card .nwt-reg { aspect-ratio: 3 / 2; }
.tb-related-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tb-related-card .tb-related-title { font-size: 1.05rem; margin: .8rem 0 0; color: var(--forest); }
.tb-related-card:hover .tb-related-title { color: var(--terra-deep); }

/* ============================================================
   ARCHIVE
   ============================================================ */
.tb-archive-hero { max-width: var(--max-w); margin: 0 auto; padding: 3.4rem 2rem 2rem; border-bottom: 2px solid var(--forest); }
.tb-archive-hero h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); margin: 0; }
.tb-archive-hero p { max-width: 62ch; color: var(--muted); margin: .9rem 0 0; }
.tb-archive-feature { max-width: var(--max-w); margin: 0 auto; padding: 2.6rem 2rem 0; }
.tb-archive-feature .tb-spread { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2.8rem; align-items: center; }
.tb-spread-image { display: block; }
.tb-spread-image .nwt-reg { aspect-ratio: 4 / 3; }
.tb-spread-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tb-spread-text h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); margin: .4rem 0 0; }
.tb-spread-text h2 a { color: inherit; text-decoration: none; }
.tb-spread-text h2 a:hover { color: var(--terra-deep); }
.tb-spread-excerpt { color: var(--muted); margin: .9rem 0 1.2rem; }
.tb-spread-read { font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--forest); text-decoration: none; border-bottom: 2px solid var(--terra); padding-bottom: .12rem; }
.tb-spread-read:hover { color: var(--terra-deep); }
.tb-archive-grid { max-width: var(--max-w); margin: 0 auto; padding: 3rem 2rem 3.6rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.6rem 2.2rem; }
.tb-archive-card { text-decoration: none; color: inherit; display: block; }
.tb-archive-card .tb-archive-cover { display: block; }
.tb-archive-card .nwt-reg { aspect-ratio: 3 / 2; }
.tb-archive-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tb-archive-card .tb-archive-meta { font-size: .73rem; letter-spacing: .16em; text-transform: uppercase; color: var(--terra-deep); margin-top: .85rem; }
.tb-archive-card .tb-archive-title { font-size: 1.12rem; margin: .3rem 0 0; color: var(--forest); }
.tb-archive-card:hover .tb-archive-title { color: var(--terra-deep); }
.tb-archive-card .tb-archive-excerpt { font-size: .93rem; color: var(--muted); margin: .5rem 0 0; }

.nwt-pagination { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem 4rem; display: flex; gap: .6rem; flex-wrap: wrap; }
.nwt-pagination .page-numbers {
  padding: .45rem .9rem;
  border: 2px solid var(--forest);
  color: var(--forest);
  text-decoration: none;
  font-size: .9rem;
}
.nwt-pagination .page-numbers.current,
.nwt-pagination .page-numbers:hover { background: var(--forest); color: var(--paper); }

/* ============================================================
   TRUST PAGES (page.php)
   Header  : left aligned with an outlined terra plate numeral
             hanging in the left margin over a carved rule.
   Headings: a carved square marker with its own misregistration.
   Identity: paper panel with a thick left carved bar only.
   Footer  : two column leader-rule index.
   ============================================================ */
.nwt-page { max-width: var(--max-w); margin: 0 auto; padding: 3.4rem 2rem 3.6rem; }
.nwt-page-head {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 1.8rem;
  align-items: start;
  border-bottom: 6px solid var(--forest);
  padding-bottom: 1.6rem;
}
.nwt-page-numeral {
  font-family: var(--font-serif);
  font-size: 4.6rem;
  line-height: .8;
  color: transparent;
  -webkit-text-stroke: 2px var(--terra);
  letter-spacing: -.02em;
}
.nwt-page-head h1 { font-size: clamp(1.9rem, 4vw, 2.75rem); margin: 0; }
.nwt-page-updated {
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: .9rem;
}

.nwt-page-toc {
  margin: 2.2rem 0 2.6rem;
  padding: 1.3rem 1.5rem;
  background: var(--paper-deep);
  border-left: 6px solid var(--forest);
}
.nwt-page-toc h2 {
  font-family: var(--font-sans);
  font-size: .76rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--forest);
  margin: 0 0 .8rem;
  border: 0;
  padding: 0;
}
.nwt-page-toc ol { margin: 0; padding-left: 1.2rem; }
.nwt-page-toc li { margin-bottom: .3rem; }
.nwt-page-toc a { color: var(--ink); text-decoration: none; font-size: .95rem; }
.nwt-page-toc a:hover { color: var(--terra-deep); }

.nwt-page-body { max-width: 72ch; }
.nwt-page-body h2 {
  font-size: 1.42rem;
  margin: 2.5rem 0 .9rem;
  border: 0;
  padding: 0;
  position: relative;
  padding-left: 1.7rem;
  isolation: isolate;
}
/* the carved square marker, printed off register like everything else */
.nwt-page-body h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .48em;
  width: 9px;
  height: 9px;
  background: var(--forest);
}
.nwt-page-body h2::after {
  content: "";
  position: absolute;
  left: 3px;
  top: calc(.48em + 3px);
  width: 9px;
  height: 9px;
  background: var(--terra);
  mix-blend-mode: multiply;
  z-index: -1;
}
.nwt-page-body p { margin: 0 0 1.2rem; }
.nwt-page-body ul, .nwt-page-body ol { margin: 0 0 1.3rem; padding-left: 1.3rem; }
.nwt-page-body li { margin-bottom: .4rem; }
.nwt-page-body a { color: var(--forest); text-decoration: underline; text-decoration-color: var(--terra); text-underline-offset: 3px; }
.nwt-page-body a:hover { color: var(--terra-deep); }

/* identity block: thick left carved bar, no full outline */
.nwt-page-body > p:has(> strong:first-child) {
  background: var(--paper-light);
  border-left: 8px solid var(--forest);
  padding: .85rem 1.2rem;
  margin: 0 0 .55rem;
}
.nwt-page-body > p:has(> strong:first-child) strong {
  font-family: var(--font-serif);
  font-weight: 700;
  color: var(--forest);
}

/* two column leader-rule index, matching the homepage plate index */
.nwt-page-links { margin-top: 3.4rem; border-top: 6px solid var(--forest); padding-top: 1.4rem; }
.nwt-page-links h2 {
  font-family: var(--font-sans);
  font-size: .76rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--forest);
  margin: 0 0 1rem;
}
.nwt-page-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 3.2rem;
}
.nwt-page-links li { border-bottom: 1px solid var(--line); }
.nwt-page-links a {
  display: flex;
  align-items: baseline;
  gap: .6rem;
  padding: .6rem 0;
  color: var(--ink);
  text-decoration: none;
  font-size: .95rem;
}
/* the leader rule grows between the label and the marker */
.nwt-page-links a > span:first-child { flex: 0 0 auto; }
.nwt-page-links a > span:first-child + .nwt-page-links-go { order: 3; }
.nwt-page-links a::after {
  content: "";
  order: 2;
  flex: 1 1 auto;
  border-bottom: 1px dotted var(--line);
  transform: translateY(-.22em);
}
.nwt-page-links a .nwt-page-links-go {
  font-family: var(--font-serif);
  color: var(--terra);
  font-size: .82rem;
  white-space: nowrap;
}
.nwt-page-links a:hover { color: var(--terra-deep); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer, .site-info {
  background: var(--forest);
  color: var(--paper);
}
.site-footer h5 { color: var(--terra-soft); }
.site-info a { color: var(--paper); }
.site-info a:hover { color: var(--terra-soft); }
.footer-widgets { background: var(--forest); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
  .tb-related-grid, .tb-archive-grid { grid-template-columns: repeat(2, 1fr); }
  .tb-archive-feature .tb-spread { grid-template-columns: 1fr; gap: 1.6rem; }
}

@media (max-width: 900px) {
  .nwt-hero-cap { grid-template-columns: 1fr; gap: 2rem; }
  .nwt-letter-in { grid-template-columns: 1fr; gap: 1.2rem; }
  .nwt-index, .tb-bysection { grid-template-columns: 1fr; gap: 0; }
  .nwt-page-links ul { grid-template-columns: 1fr; gap: 0; }
  .tb-masthead-inner { grid-template-columns: 1fr; gap: .7rem; }
  .tb-masthead-meta, .tb-masthead-meta.right { text-align: center; }
}

@media (max-width: 700px) {
  body { font-size: 16px; }
  .nwt-hero, .nwt-letter, .nwt-band-in, .nwt-quote, .tb-pullquote-inner,
  .nwt-post-in, .tb-newsletter-inner, .nwt-page, .tb-post-header,
  .entry-content, .tb-related, .tb-archive-hero, .tb-archive-grid,
  .tb-archive-feature, .tb-post-cover, .tb-author-bio, .tb-nav-inner,
  .tb-masthead-inner, .nwt-pagination {
    padding-left: 1.15rem;
    padding-right: 1.15rem;
  }
  .nwt-hero { padding-top: 2.6rem; }
  .tb-masthead-title::after { content: none; }
  .nwt-plates, .nwt-mosaic, .tb-mosaic,
  .tb-related-grid, .tb-archive-grid { grid-template-columns: 1fr; gap: 1.7rem; }
  .nwt-plate, .nwt-plate:nth-child(n+3),
  .nwt-tile, .nwt-tile.big, .nwt-tile.wide, .nwt-tile.tall { grid-column: 1 / -1; }
  .nwt-tile.tall .nwt-reg, .nwt-tile.big .nwt-reg { aspect-ratio: 3 / 2; }
  .nwt-hero-fig .nwt-reg { aspect-ratio: 4 / 3; }
  .nwt-nav-menu, .tb-nav-menu { gap: .1rem 1rem; }
  .nwt-page-head { grid-template-columns: 1fr; gap: .6rem; }
  .nwt-page-numeral { font-size: 3.2rem; }
  .tb-author-bio { grid-template-columns: 1fr; }
  :root { --reg-offset: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
