/* Readable text sizes and tighter section spacing. Loaded last, so it overrides the sizes in home.css and blog.css.

   Text sizes come from four tokens, all multiplied by --ts, which the admin page's "Text size"
   setting changes (Site settings → Text size). Large display headings are not scaled. */

.basejumper-site {
  --ts: 1;
  --fs-body: calc(16px * var(--ts));   /* paragraphs */
  --fs-small: calc(14px * var(--ts));  /* secondary notes, footer, card details */
  --fs-label: calc(12px * var(--ts));  /* small uppercase labels and tags */
  --fs-button: calc(13px * var(--ts)); /* buttons and links */
  --fs-nav: calc(14px * var(--ts));    /* menu */
  --section-space: 75px;               /* space above and below each section */
}
.basejumper-site.text-size-compact { --ts: .9; }
.basejumper-site.text-size-large { --ts: 1.1; }
.basejumper-site.text-size-xlarge { --ts: 1.2; }

/* ---------- Paragraphs ---------- */
.hero-intro,
.intro-aside p, .heading-aside,
.offer-intro, .service-copy,
.trait-card p,
.approach-lede, .principle p,
.founder-bio, .founder-thought p, .credential-list strong,
.case-narrative p,
.belief-subtext,
.contact-content > p:not(.section-kicker),
.form-field input, .form-field select, .form-field textarea,
.post-card-excerpt, .blog-empty, .post-body { font-size: var(--fs-body); line-height: 1.75; }
.hero-intro { max-width: 600px; }
.trait-card p, .service-copy { max-width: 340px; }
.belief-subtext { max-width: 620px; }
.post-body table { font-size: var(--fs-small); }

/* ---------- Secondary text ---------- */
.credential-list p, .case-result p, .outcome-intro p,
.form-privacy, .form-status,
.footer-note, .copyright, .footer-email { font-size: var(--fs-small); line-height: 1.65; }
.contact-enquiry .form-email-note { font-size: var(--fs-small) !important; }

/* ---------- Small uppercase labels and tags ---------- */
.topline,
.eyebrow, .section-kicker, .section-index,
.hero-side-note, .hero-bottom,
.service-number, .principle-number, .service-tag,
.image-caption, .founder-photo-caption, .draft-label,
.credential-list > div > span, .founder-thought > span,
.case-image-index, .case-index, .case-client, .case-narrative span, .case-image-caption small,
.outcome-intro > span,
.belief-byline, .contact-footnote,
.form-field > span,
.post-card-meta, .post-card-placeholder, .post-back { font-size: var(--fs-label); letter-spacing: .1em; }
.hero-side-note { white-space: nowrap; }
.hero-bottom { gap: 24px; font-size: calc(11px * var(--ts)); letter-spacing: .08em; }
.hero-bottom > span:first-child { line-height: 1.6; }
.hero-content { padding-bottom: 90px; }

/* ---------- Buttons, links and menu ---------- */
.button, .text-link { font-size: var(--fs-button); }
.primary-nav { font-size: var(--fs-nav); }

/* ---------- Headings ----------
   The serif headings were set very tight (line-height .78–.9), so letters that drop below the line
   ("g", "p") ran into capitals on the next line. */
.hero h1, .intro-band h2, .section-heading h2, .blog-section .section-heading h1,
.approach-content h2, .founder-copy h2, .contact-content h2,
.belief-section blockquote, .post-title { line-height: 1; }
.hero h1 { line-height: .9; }
.case-study-copy h3, .service-card h3, .trait-card h3, .post-card-title, .case-image-caption { line-height: 1.05; }

/* ---------- Section spacing ---------- */
.intro-band, .jumper-philosophy, .expertise-section, .about-founder,
.approach-section, .belief-section, .contact-section, .post {
  padding-top: var(--section-space);
  padding-bottom: var(--section-space);
}
.contact-enquiry { min-height: 0; }
.contact-enquiry.has-footnote { padding-bottom: calc(var(--section-space) + 55px); }
.section-heading { margin-bottom: 40px; }
.philosophy-heading { margin-bottom: 44px; }
.offer-intro { margin-bottom: 36px; }

@media (max-width: 650px) {
  .basejumper-site {
    --fs-label: calc(11px * var(--ts));
    --section-space: 60px;
  }
  .hero-content { padding-bottom: 130px; }
  .section-heading { margin-bottom: 30px; }
  .philosophy-heading { margin-bottom: 30px; }
  .offer-intro { margin-bottom: 28px; }
}
