/*
  BRIGHTLANE STUDIO / TYPOGRAPHY SYSTEM 02

  The architectural headline uses Bodoni Moda (roman), not a default bold
  sans/outlined word/italic tagline stack. Hanken Grotesk is the calm,
  precise contemporary counterweight; IBM Plex Mono creates technical
  wayfinding. All Google-hosted type has local system fallbacks.
*/
:root {
  --type-sans: 'Hanken Grotesk', 'Avenir Next', 'Segoe UI', Arial, sans-serif;
  --type-serif: 'Bodoni Moda', 'Bodoni MT', Didot, 'Times New Roman', serif;
  --type-mono: 'IBM Plex Mono', 'Cascadia Code', Consolas, monospace;
}

body, button, input, select, textarea { font-family: var(--type-sans); font-weight: 400; }
body { letter-spacing: -.012em; }
h1, h2, h3 { font-family: var(--type-sans); font-weight: 600; letter-spacing: -.058em; text-wrap: balance; }
em { font-family: var(--type-serif); font-style: italic; font-weight: 400; letter-spacing: -.045em; }

/* Brand lettering refers back to the spacious wordmark supplied by Brightlane. */
.brand-primary, .footer-brand-text strong { font-family: var(--type-sans); font-weight: 700; letter-spacing: .23em; }
.brand-secondary, .footer-brand-text span { font-family: var(--type-sans); letter-spacing: .38em; }

/* Hero: architectural editorial serif + a direct, modern red declaration. */
.hero.hero-full h1 {
  font-family: var(--type-serif);
  font-weight: 400;
  font-size: clamp(78px, 7.9vw, 120px);
  line-height: .985;
  letter-spacing: -.064em;
  max-width: 780px;
  text-wrap: initial;
}
.hero.hero-full h1 .display-outline {
  color: #242525;
  font-family: var(--type-serif);
  font-weight: 400;
  letter-spacing: -.065em;
  -webkit-text-stroke: 0;
  text-stroke: 0;
}
.hero.hero-full h1 em {
  display: inline-block;
  padding-top: .23em;
  font-family: var(--type-sans);
  font-size: .65em;
  line-height: 1.15;
  font-weight: 700;
  font-style: normal;
  letter-spacing: -.064em;
  color: #b9392e;
}
.hero.hero-full .hero-lead {
  font-family: var(--type-sans);
  font-size: clamp(18px, 1.6vw, 21px);
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: -.021em;
  max-width: 600px;
}

/* Navigation and actions carry human-readable labels, not decorative tracking. */
.main-nav a { font-family: var(--type-sans); font-weight: 550; letter-spacing: .005em; }
.btn, .card-cta, .tier-action, .track-side button,
.link-underline, .text-arrow, .question-link {
  font-family: var(--type-sans);
  font-weight: 600;
  letter-spacing: -.012em;
}

/* The monospace language is specific to markers / labels / wayfinding. */
:is(.eyebrow, .section-meta, .hero-kicker, .hero-stripe,
    .discipline-top, .hero-bottom-label, .flow-note, .flow-caption,
    .hero-art-top, .art-label, .project-caption>div>span,
    .contact-index, .work-tail p, .site-footer small,
    .pricing-kicker, .tier-label, .tier-fee) {
  font-family: var(--type-mono);
  font-weight: 500;
  letter-spacing: .095em;
}
.hero.hero-full .hero-kicker { font-size: 10px; letter-spacing: .07em; }
.hero.hero-full .hero-bottom-label { font-size: 9px; }

/* Headlines across pages share a controlled rhythm; italics are purposeful. */
.manifesto h2, .section-heading-row h2, .discipline-card h3,
.perspective-info h3, .contact-content h2, .solution-banner h2,
.pricing-close h2, .pricing-intro h1, .pricing-packages h2,
.pricing-tracks h2, .tier h3, .track h3 {
  font-family: var(--type-sans);
  font-weight: 600;
  letter-spacing: -.061em;
  line-height: 1.02;
}
.manifesto h2 em, .section-heading-row h2 em, .discipline-card h3 em,
.perspective-info h3 em, .contact-content h2 em, .solution-banner h2 em,
.pricing-close h2 em, .pricing-intro em, .pricing-packages em,
.pricing-tracks em, .tier h3 em, .track h3 em {
  font-family: var(--type-serif);
  font-weight: 400;
  font-style: italic;
  letter-spacing: -.04em;
}
.project h3 { font-family: var(--type-sans); font-weight: 650; letter-spacing: -.055em; }
.process-num { font-family: var(--type-serif); font-style: italic; }
.tier-price, .track-side strong {
  font-family: var(--type-sans);
  font-weight: 650;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}

/* The enquiry forms belong to this same brand system. */
.brief-dialog h2 { font-family: var(--type-sans); font-weight: 600; letter-spacing: -.06em; }
.brief-dialog h2 em { font-family: var(--type-serif); font-weight: 400; }
.brief-dialog :is(label, input, select, textarea, button) { font-family: var(--type-sans); }

@media(max-width:940px) {
  .hero.hero-full h1 { font-size: clamp(65px, 10.5vw, 104px); }
}
@media(max-width:650px) {
  .hero.hero-full h1 { font-size: clamp(56px, 12.6vw, 76px); letter-spacing: -.058em; }
  .hero.hero-full h1 em { font-size: .67em; padding-top: .26em; }
  .hero.hero-full .hero-lead { font-size: 16px; line-height: 1.58; }
  .hero.hero-full .hero-kicker { font-size: 9px; line-height: 1.8; }
  :is(.eyebrow, .section-meta, .hero-stripe, .hero-bottom-label) { letter-spacing: .025em; }
}
@media(max-width:375px) {
  .hero.hero-full h1 { font-size: 54px; }
}
