/* ════════════════════════════════════════════════════════════
   03-typography.css — The Compositor's Garden
   All font-related rules: headings, paragraph treatment,
   OpenType features, drop caps, small caps, separators.
   No layout. No page media. If it affects how text looks,
   it lives here.
   ════════════════════════════════════════════════════════════ */

/* ── Paragraph treatment: classical indentation ────────────── */
p {
  margin:  0;
  hyphens: auto;
}

p + p {
  text-indent: 1.5em;
}

/* Reset indent after structural elements                      */
h1 + p, h2 + p, h3 + p,
figure + p, blockquote + p,
.callout + p, .sep + p,
.chapter-label-block + p {
  text-indent: 0;
}

/* ── Headings ────────────────────────────────────────────────── */

/* Chapter number (display, inside chapter-label-block)        */
.chapter-number {
  display:        block;
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color:          var(--ink-faint);
  margin-bottom:  var(--space-sm);
}

/* Chapter title (h1 inside chapter-label-block)               */
.chapter-title {
  font-family:  var(--font-body);
  font-size:    var(--text-2xl);
  font-weight:  400;
  line-height:  var(--lh-heading);
  color:        var(--ink);
  margin-bottom: var(--space-sm);
}

/* Chapter introduction (italic paragraph below title)         */
.chapter-intro {
  font-family: var(--font-body);
  font-size:   var(--text-md);
  font-style:  italic;
  color:       var(--ink-mid);
  line-height: 1.45;
  max-width:   40ch;
}

/* Body h2 (section headings within chapters)                  */
h2 {
  font-family:   var(--font-body);
  font-size:     var(--text-lg);
  font-weight:   400;
  font-style:    italic;
  line-height:   1.25;
  color:         var(--ink);
  margin-top:    var(--space-xl);
  margin-bottom: var(--space-sm);

  /* Never strand at page bottom                               */
  break-before: avoid;
  break-after:  avoid;
}

/* Part title (display, inside part-opener-inner)              */
.part-title {
  font-family: var(--font-body);
  font-size:   var(--text-3xl);
  font-weight: 400;
  line-height: var(--lh-heading);
  color:       var(--ink);
}

.part-number-label {
  display:        block;
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color:          var(--ink-faint);
  margin-bottom:  var(--space-md);
}

/* Back matter headings                                        */
.back-matter-title {
  font-family:   var(--font-body);
  font-size:     var(--text-xl);
  font-weight:   400;
  line-height:   1.15;
  color:         var(--ink);
  margin-bottom: var(--space-lg);
}

/* TOC title                                                   */
.toc-title {
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--ink-faint);
  margin-bottom:  var(--space-lg);
}

/* Preface heading                                             */
.preface-title {
  font-family:   var(--font-body);
  font-size:     var(--text-xl);
  font-weight:   400;
  color:         var(--ink);
  margin-bottom: var(--space-lg);
}

/* Calendar month headings                                     */
.calendar-month {
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--accent);
  margin-top:     var(--space-lg);
  margin-bottom:  var(--space-sm);
  break-before:   avoid;
  break-after:    avoid;
  column-span:    all; /* spans both columns of the planting calendar */
}

/* ── Drop cap ────────────────────────────────────────────────── */
/* Applied to the first paragraph of each chapter body.
   The .lead class is added in HTML.                            */
.lead::first-letter {
  font-size:    4.2em;
  font-weight:  500;
  float:        left;
  line-height:  0.78;
  margin-right: 0.06em;
  margin-top:   0.08em;
  color:        var(--ink);
}

/* First line of body text after drop cap: small caps          */
.lead::first-line {
  font-variant-caps: all-small-caps;
  letter-spacing:    0.06em;
}

/* ── Section separator ──────────────────────────────────────── */
.sep {
  display:        block;
  text-align:     center;
  color:          var(--ink-faint);
  font-size:      var(--text-sm);
  letter-spacing: 0.3em;
  margin:         2.75rem 0;
  user-select:    none;

  /* Never orphaned at a page edge                             */
  break-before: avoid;
  break-after:  avoid;
}

/* ── Blockquote ──────────────────────────────────────────────── */
blockquote {
  margin:       2.25rem 0;
  padding-left: 1.5rem;
  border-left:  2px solid var(--rule);
  break-inside: avoid;
}

blockquote p {
  font-style:  italic;
  color:       var(--ink-mid);
  text-indent: 0 !important;
}

blockquote cite {
  display:        block;
  margin-top:     0.6rem;
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-style:     normal;
  letter-spacing: 0.06em;
  color:          var(--ink-faint);
}

/* ── Teacher's sayings (ch. 4) ──────────────────────────────── */
.saying {
  margin:        var(--space-lg) 0;
  padding:       var(--space-md) var(--space-lg);
  border-left:   3px solid var(--accent);
  break-inside:  avoid;
}

.saying-text {
  font-family:  var(--font-body);
  font-size:    var(--text-md);
  font-style:   italic;
  line-height:  1.45;
  color:        var(--ink);
  text-indent:  0 !important;
}

.saying-context {
  font-family:  var(--font-ui);
  font-size:    var(--text-xs);
  color:        var(--ink-faint);
  margin-top:   var(--space-xs);
  line-height:  1.55;
  text-indent:  0 !important;
}

/* ── Inline emphasis ─────────────────────────────────────────── */
em     { font-style: italic; }
strong { font-weight: 500; }

code {
  font-family: var(--font-mono);
  font-size:   0.82em;
  background:  rgba(0,0,0,0.055);
  padding:     0.1em 0.35em;
  border-radius: 3px;
  color:       var(--ink-mid);
}

/* ── OpenType refinements ────────────────────────────────────── */

/* Running headers and labels → small caps + tracking           */
.running-header,
.chapter-number,
.part-number-label,
.opener-label {
  font-variant-caps:    all-small-caps;
  font-variant-numeric: lining-nums;
  letter-spacing:       0.1em;
}

/* Superscripts: designed superior figures where available      */
sup {
  font-size:      0.64em;
  vertical-align: super;
  line-height:    0;
  color:          var(--accent);
  margin-left:    0.05em;
}

/* Plant typographic notes (styled inline)                      */
.plant-typo {
  font-style:  italic;
  color:       var(--ink-faint);
}

/* Preface signature                                            */
.preface-sig {
  margin-top: var(--space-xl);
}

.preface-sig p {
  font-style:  italic;
  color:       var(--ink-mid);
  text-indent: 0 !important;
}

/* Calendar note                                                */
.calendar-note {
  margin-top:  var(--space-lg);
  font-style:  italic;
  color:       var(--ink-mid);
  font-size:   var(--text-sm);
}

.calendar-note p { text-indent: 0 !important; }

/* Display page elements                                        */
.book-title-display {
  font-family: var(--font-body);
  font-size:   var(--text-3xl);
  font-weight: 400;
  line-height: 1.0;
  color:       var(--ink);
  text-align:  center;
  margin-bottom: var(--space-md);
}

.book-subtitle-display {
  font-family: var(--font-body);
  font-size:   var(--text-md);
  font-style:  italic;
  color:       var(--ink-mid);
  text-align:  center;
  margin-bottom: var(--space-lg);
}

.author-display {
  font-family:    var(--font-ui);
  font-size:      var(--text-sm);
  font-weight:    400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--ink-mid);
  text-align:     center;
  margin-bottom:  var(--space-2xl);
}

.publisher-display {
  text-align: center;
}

.publisher-name {
  display:        block;
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--ink-faint);
}

.publisher-location {
  display:     block;
  font-family: var(--font-body);
  font-size:   var(--text-sm);
  font-style:  italic;
  color:       var(--ink-faint);
  margin-top:  0.3rem;
}

.half-title-text {
  font-family: var(--font-body);
  font-size:   var(--text-2xl);
  font-weight: 400;
  color:       var(--ink);
  text-align:  center;
}

/* Copyright page                                               */
.copyright-inner p {
  font-family:  var(--font-body);
  font-size:    var(--text-sm);
  line-height:  1.7;
  color:        var(--ink-mid);
  text-indent:  0 !important;
  margin-bottom: var(--space-sm);
}

.isbn {
  margin-top:     var(--space-lg) !important;
  font-family:    var(--font-mono);
  font-size:      var(--text-xs) !important;
  color:          var(--ink-faint) !important;
}

/* Dedication                                                   */
.dedication-inner p {
  font-family: var(--font-body);
  font-size:   var(--text-md);
  font-style:  italic;
  color:       var(--ink-mid);
  text-align:  center;
  text-indent: 0 !important;
  line-height: 1.65;
}

/* Colophon                                                     */
.colophon-inner p {
  font-family:   var(--font-body);
  font-size:     var(--text-sm);
  line-height:   1.75;
  color:         var(--ink-mid);
  text-align:    center;
  text-indent:   0 !important;
  margin-bottom: var(--space-md);
}

.colophon-device {
  font-size:   1.8rem !important;
  color:       var(--accent) !important;
  margin-top:  var(--space-xl) !important;
}
