/* =========================================================
   PeakVision.AI — typography system
   One scale for marketing pages; simulated product UI is excluded.
   ========================================================= */
:root {
  --type-display: clamp(64px, 8vw, 104px);
  --type-h1: clamp(44px, 5.4vw, 64px);
  --type-h2: clamp(32px, 4vw, 46px);
  --type-h3: clamp(20px, 2vw, 23px);
  --type-news: clamp(21px, 2.4vw, 26px);
  --type-job: clamp(21px, 2.4vw, 24px);
  --type-plan: clamp(24px, 2.6vw, 28px);
  --type-lead: 16px;
  --type-body: 14px;
  --type-small: 13px;
  --type-label: 12px;
  --type-button: 14px;
  --type-line: 1.7;
}

@media (max-width: 720px) {
  :root {
    --type-display: clamp(52px, 15vw, 76px);
    --type-h1: clamp(38px, 10vw, 48px);
    --type-h2: clamp(28px, 8vw, 36px);
    --type-h3: 20px;
    --type-news: 22px;
    --type-job: 21px;
    --type-plan: 24px;
    --type-lead: 15px;
    --type-body: 14px;
    --type-small: 12.5px;
    --type-label: 12px;
  }
}

/* page and product hero titles */
main h1 {
  font-size: var(--type-h1) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.05em !important;
  font-weight: 600 !important;
}

.hero h1,
.hw-hero h1,
.pvos-hero h1,
.desk-title {
  font-size: var(--type-display) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.065em !important;
  font-weight: 650 !important;
}

/* section headings */
:where(main h2:not(.agentos *):not(.command *):not(.os-window *):not(.agentos-drawer *):not(.faq-item *):not(.pv-news-item *):not(.buy-product *):not(.buy-group *):not(.buy-models-section *):not(.checkout-form *):not(.checkout-summary *):not(.checkout-success *):not(.modal *):not(.signup-modal *)) {
  font-size: var(--type-h2) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.045em !important;
  font-weight: 600 !important;
}

/* card and block headings */
:where(main h3:not(.agentos *):not(.command *):not(.os-window *):not(.checkout-summary *):not(.buy-summary *):not(.pvos-hardware__card *):not(.hw-stat *):not(.stack-tier__label)) {
  font-size: var(--type-h3) !important;
  line-height: 1.35 !important;
  letter-spacing: -0.025em !important;
  font-weight: 600 !important;
}

/* content paragraphs */
:where(main p:not(.agentos *):not(.command *):not(.os-window *):not(.checkout-summary *):not(.buy-summary *)) {
  font-size: var(--type-body) !important;
  line-height: var(--type-line) !important;
}

/* editorial lead copy */
.hero-sub,
.section-sub,
.lead,
.page-hero .lead,
.hw-hero__sub,
.pvos-hero__sub,
.pv-news-hero p,
.pv-careers-hero__sub,
.pricing-head .lead,
.dl-head p,
.about-hero .lead {
  font-size: var(--type-lead) !important;
  line-height: 1.7 !important;
}

/* special headline sizes */
.pv-news-item h2,
.case__title {
  font-size: var(--type-news) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.03em !important;
}

.pv-job h3 {
  font-size: var(--type-job) !important;
  line-height: 1.3 !important;
}

.price-card h3 {
  font-size: var(--type-plan) !important;
  line-height: 1.2 !important;
}

.faq-item h2 {
  font-size: var(--type-h3) !important;
  line-height: 1.4 !important;
}

/* compact labels that should not become card headings */
.hw-stat h3 {
  font-size: var(--type-small) !important;
  line-height: 1.4 !important;
}

.pvos-hardware__card h3 {
  font-size: 15px !important;
  line-height: 1.4 !important;
}

.dl-platform__copy h3 {
  font-size: 20px !important;
  line-height: 1.35 !important;
}

/* meta, dates, captions and note text */
.hero-meta,
.hw-hero__meta,
.hw-footnote,
.pvos-hero__meta,
.pvos-note,
.pv-news-item time,
.pv-news-count,
.pv-careers-count,
.pv-careers-overline,
.pv-job__meta,
.pv-job__tags span,
.release-badge,
.dl-head__meta,
.dl-soon,
.price-meta,
.price-note,
.price-line em,
.dl-mobile p,
.dl-mobile__label,
.download-note,
.pvos-hardware__card p,
.checkout-summary > p,
.buy-product__copy p,
.buy-summary__note,
.checkout-summary__note {
  font-size: var(--type-small) !important;
  line-height: 1.6 !important;
}

/* smallest labels */
.nav-mega__title,
.footer-col h3,
.buy-summary__label,
.checkout-summary__label,
.pvos-role > span,
.pvos-duty > span,
.pvos-pillar__num,
.pv-careers-value > span,
.pv-careers-process span {
  font-size: var(--type-label) !important;
  line-height: 1.5 !important;
}

/* lists and buttons */
main li,
.price-card .check-list li,
.footer-col a,
.footer-brand p,
.footer-bottom {
  font-size: var(--type-body);
  line-height: 1.7;
}

.btn,
.nav-cta,
.hw-btn,
.pvos-btn,
.buy-submit,
.checkout-submit,
.pv-job__apply,
.pv-news-filters button {
  font-size: var(--type-button) !important;
}

/* component-specific labels stay compact */
.buy-group h2 {
  font-size: 18px !important;
  line-height: 1.4 !important;
}

.buy-models-section h2 {
  font-size: 20px !important;
}

.checkout-form h2 {
  font-size: 22px !important;
}

.checkout-success h2 {
  font-size: 28px !important;
}

.buy-product__copy h2,
.checkout-summary h2 {
  font-size: 20px !important;
}

/* simulated desktop UI keeps its own scale */
.agentos,
.agentos *,
.command,
.command *,
.os-window,
.os-window * {
  --type-body: inherit;
  --type-small: inherit;
}

/* avoid forced paragraph sizing inside the simulated UI */
.agentos p,
.command p,
.os-window p {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* hero subtaglines are display copy, not body copy */
.hw-hero__tagline {
  font-size: clamp(28px, 3.3vw, 34px) !important;
  line-height: 1.22 !important;
  letter-spacing: -0.04em !important;
  font-weight: 600 !important;
}

.pvos-hero__tagline,
.pv-careers-hero__tagline {
  font-size: clamp(32px, 3.8vw, 44px) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.045em !important;
  font-weight: 600 !important;
}

@media (max-width: 720px) {
  .hw-hero__tagline {
    font-size: 26px !important;
  }

  .pvos-hero__tagline,
  .pv-careers-hero__tagline {
    font-size: 28px !important;
  }
}

/* keep product/careers intros on one line at desktop widths */
.hw-hero__sub,
.pv-careers-hero__sub {
  max-width: 860px;
  font-size: 15px !important;
}

/* content lists follow body copy; simulated UI is excluded */
:where(main li:not(.agentos *):not(.command *):not(.os-window *):not(.buy-summary *):not(.checkout-summary *)) {
  font-size: var(--type-body) !important;
  line-height: 1.7 !important;
}
