/*
 * HelloAG Group — Universal Typography Scale
 * helloag-styles.css · June 2026
 *
 * HOW IT WORKS
 * All text across HelloAG uses rem units. rem values resolve
 * against the html root element's font-size. Pages currently
 * set html at browser default 16px, with body at 14–15px
 * making rem labels as small as 6.7px.
 *
 * Setting html { font-size: 18px } scales every rem value
 * up proportionally without touching any individual element.
 *
 * Before → After (at 18px base):
 *   .48rem =  6.7px → 8.6px   (metadata labels)
 *   .52rem =  7.3px → 9.4px   (nav tags)
 *   .62rem =  8.7px → 11.2px  (small body copy)
 *   .72rem = 10.1px → 13.0px  (description text)
 *   .82rem = 11.5px → 14.8px  (card titles)
 *   .92rem = 12.9px → 16.6px  (section text)
 *   1rem   = 14.0px → 18.0px  (body default)
 *   1.35rem= 18.9px → 24.3px  (sub-headings)
 *   2rem   = 28.0px → 36.0px  (section titles)
 *   3rem   = 42.0px → 54.0px  (hero headlines)
 */

/* ── CORE SCALE ─────────────────────────────────────────── */
html {
  font-size: 18px !important;
}

body {
  /* Override explicit px values set in individual page styles */
  font-size: 1rem !important;
  line-height: 1.7 !important;
}

/* ── MINIMUM LEGIBLE SIZES ──────────────────────────────── */
/*
 * The monospace label pattern (.ff-m tags, badges, type labels)
 * uses values as small as .44rem. These are bumped to .55rem
 * minimum — still compact for labels but actually readable.
 */

/* Topbar module labels */
.tb-mod, .tb-badge, .tb-link {
  font-size: max(.55rem, .54rem) !important;
}

/* Card URL labels (e.g. /command, /fsi) */
.mc-url, .tc-url, .pc-url {
  font-size: max(.55rem, .5rem) !important;
}

/* Document type tags in library */
.doc-type, .ac-type, .ac-date {
  font-size: max(.58rem, .52rem) !important;
}

/* Stat labels */
.sc-label, .ss-label, .hs-label, .ss-label {
  font-size: max(.55rem, .5rem) !important;
}

/* Status badges */
.mc-live, .tc-live, .rm-phase, .pc-live {
  font-size: max(.52rem, .46rem) !important;
}

/* ── DOCUMENT CARD READABILITY ───────────────────────────── */
/* Library doc cards specifically */
.doc-name {
  font-size: .95rem !important;
  line-height: 1.35 !important;
}

.doc-desc {
  font-size: .82rem !important;
  line-height: 1.65 !important;
}

.lib-name {
  font-size: .88rem !important;
}

/* Article cards in newsroom */
.ac-title {
  font-size: 1.05rem !important;
  line-height: 1.3 !important;
}

.ac-desc {
  font-size: .85rem !important;
  line-height: 1.65 !important;
}

/* ── MODULE CARDS ─────────────────────────────────────────── */
.mc-name, .tc-name, .vc-title {
  font-size: .9rem !important;
}

.mc-desc, .tc-desc {
  font-size: .75rem !important;
  line-height: 1.55 !important;
}

/* ── NAVIGATION READABILITY ─────────────────────────────── */
.nl, .tb-link, .qb-link, .btn-p, .btn-s {
  font-size: .62rem !important;
}

/* ── PILLAR CARD BODY TEXT ──────────────────────────────── */
.pc-desc, .sc-sub, .step-desc {
  font-size: .88rem !important;
  line-height: 1.75 !important;
}

/* ── PLATFORM HUB COMPACT CARDS ─────────────────────────── */
/* platform.html uses very dense layouts — scale more conservatively */
.hub-body .mc-name {
  font-size: .82rem !important;
}

.hub-body .mc-desc {
  font-size: .7rem !important;
}

/* ── PREVENT OVERFLOW ON HERO DISPLAY TEXT ───────────────── */
/* At 18px base, clamp(2.5rem, 6vw, 5rem) = 45–90px.
   Cap to prevent text running off screen on smaller displays. */
.hero-title, .h-title {
  font-size: clamp(1.8rem, 5vw, 3.5rem) !important;
}

/* ── SIDEBAR & WIDGET TEXT ──────────────────────────────── */
.si-label, .ch-name, .ac-name, .pa-name {
  font-size: .82rem !important;
}

.ch-handle, .pa-type, .pa-desc {
  font-size: .72rem !important;
}
