/* One typography contract for every Afterlight website surface.
   Display carries the brand; Archivo handles reading and interaction;
   JetBrains Mono is reserved for compact metadata and technical values. */
:root {
  --site-font-display: 'Archivo Black', 'Archivo', Arial, sans-serif;
  --site-font-body: 'Archivo', Arial, sans-serif;
  --site-font-meta: 'JetBrains Mono', 'Cascadia Mono', Consolas, monospace;
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page, .terms-page, .lost-signal-page) {
  --display: var(--site-font-display);
  --body: var(--site-font-body);
  --mono: var(--site-font-meta);
  --mission-display: var(--site-font-display);
  --mission-mono: var(--site-font-meta);
  font-family: var(--site-font-body);
  font-synthesis: none;
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page, .terms-page, .lost-signal-page)
  :is(h1, h2, .nav-brand strong, .portal-brand strong, .terms-wordmark) {
  font-family: var(--site-font-display);
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page)
  .site-nav .nav-links {
  font-family: var(--site-font-body) !important;
  font-weight: 700;
  letter-spacing: .08em;
}

/* One navigation contract across every public surface. Apply the role to the
   interactive items themselves so older page-specific selectors cannot leak
   a different font, line-height or tracking into individual pages. */
body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page)
  .site-nav .nav-links > :is(a, button) {
  min-height: 44px;
  padding-block: 8px;
  font-family: var(--site-font-body) !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page)
  .site-nav .nav-links > .nav-project {
  min-width: 157px;
  padding: 8px 20px;
  line-height: 1.5;
  letter-spacing: .08em;
}

/* Archivo is the single interaction face. This includes button-shaped links
   and disclosure controls, which otherwise inherit legacy monospace rules. */
body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page, .terms-page, .lost-signal-page)
  :is(
    button,
    .button,
    .button--primary,
    .button--quiet,
    .text-button,
    .nav-project,
    .hero-action,
    .case-study-cta,
    .service-route__cta,
    .contact-start,
    .pricing-grid .price-plan > a,
    .nexus-panel > a,
    .plan-details > summary,
    .quick-enquiry__actions a,
    .terms-contact
  ) {
  font-family: var(--site-font-body) !important;
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page, .terms-page, .lost-signal-page)
  :is(
    button,
    .button,
    .button--primary,
    .button--quiet,
    .text-button,
    .nav-project,
    .hero-action,
    .case-study-cta,
    .service-route__cta,
    .contact-start,
    .pricing-grid .price-plan > a,
    .nexus-panel > a,
    .plan-details > summary,
    .quick-enquiry__actions a,
    .terms-contact
  ) :is(span, strong, b, small) {
  font-family: inherit !important;
}

body:is(.home-page, .merch-page, .enquiry-page, .client-portal-page, .admin-page, .terms-page, .lost-signal-page)
  :is(.nav-brand small, legend, .panel-kicker, dt, code, pre, .status-pill) {
  font-family: var(--site-font-meta);
}

/* Homepage role scale. This file is the final typography authority. */
.home-page {
  --mono: var(--site-font-body);
  --mission-mono: var(--site-font-body);
  --type-body: 16px;
  --type-support: 14px;
  --type-label: 12px;
  --type-card: 22px;
}
.home-page main :is(h3,h4) { font-family: var(--site-font-body); font-weight: 700; }
.home-page main .plan-title h3 { font-family: var(--site-font-display); }
.home-page :is(.service-routes h3,.care-options .care-plan-name) { font-size: var(--type-card); line-height: 1.25; letter-spacing: -.02em; }
.home-page :is(.plan-outcome,.plan-core-features,.service-routes p,.pricing-heading p,.after-launch-intro,.care-options article > div > p) { font-family: var(--site-font-body); font-size: var(--type-body); line-height: 1.55; }
.home-page :is(.care-price small,.care-code,.care-included,.package-tier,.nexus-label,.plan-details > summary,.price-plan > a,.window-address,.nsta-project-kicker) { font-family: var(--site-font-body); font-size: var(--type-label); line-height: 1.5; letter-spacing: .04em; }
.home-page :is(.pricing-extra-note,.care-essential,.plan-comparison__shared,.pricing-questions p) { font-family: var(--site-font-body); font-size: var(--type-support); line-height: 1.6; }
.home-page :is(.hero-action,.button,.text-button,.case-study-cta) { font-size: var(--type-label); letter-spacing: .04em; }
.home-page :is(.care-code,.care-included,.nexus-label) { color: #a9431e; }
.home-page .hero-action { color: #181815; border-color: #a9431e; background: #f2efe8; }
.home-page .hero-action:first-child { background: #ce6533; border-color: #ce6533; color: #090a09; }
.home-page .hero-action:hover { background: #e8ddd1; }
.home-page .hero-action:first-child:hover { background: #e17b48; }
.home-page #pricing :is(.plan-outcome,.plan-core-features,.plan-core-features li) { font-family: var(--site-font-body) !important; font-size: var(--type-body) !important; line-height: 1.55; }
.home-page #pricing :is(.package-tier,.package-tier span,.plan-price small,.plan-details > summary,.price-plan > a) { font-family: var(--site-font-body) !important; font-size: var(--type-label) !important; letter-spacing: .04em; }
.home-page #after-launch :is(.care-price small,.care-code,.care-included) { font-family: var(--site-font-body) !important; font-size: var(--type-label) !important; }
