/* Typography reference: Applicora site.css and workspace.css, 24 October 2026.
   Keep this last: legacy component/mobile rules otherwise shrink the text.
   Font stacks and role sizes match the reference; Picasify keeps its own layout. */
:root {
  --font-sans: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  --font-workspace: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
body { font-family: var(--font-sans); font-size: 1rem; line-height: 1.55; }
button, input, select, textarea { font-family: inherit; }

.marketing {
  --font-sans: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  font-family: var(--font-sans);
}
.marketing :is(h1, h2, h3, h4) {
  font-family: var(--font-sans); font-weight: 600; line-height: 1.04; letter-spacing: -.045em;
}
.marketing :is(.home-hero, .hero-copy-only) h1 {
  font-size: clamp(3.2rem, 5.2vw, 4.6rem); letter-spacing: -.045em; line-height: 1.04;
}
.marketing .hero.hero:not(.home-hero) h1,
.marketing :is(.pricing-intro, .document-page, .not-found) h1 {
  font-size: clamp(3.2rem, 6vw, 5.2rem); line-height: 1.04;
}
.marketing .hero-lead {
  font-size: clamp(1.05rem, 1.7vw, 1.25rem); font-weight: 400; line-height: 1.62; letter-spacing: 0;
}
.marketing .hero-description {
  font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.65; max-width: 45rem;
}
.marketing :is(.home-section-title, .section-intro h2, .detail-copy h2,
  .usecase-tier-head h2, .closing-cta h2, .data-teaser-head h2) {
  font-size: clamp(2.35rem, 5vw, 4.7rem); line-height: 1.04;
}
.marketing :is(.section-intro > p, .usecase-tier-head > p, .data-teaser-head > p) {
  font-size: 1.05rem; line-height: 1.7;
}
.marketing :is(.problem-card-copy h3, .fn-card h3, .steps h3, .export-layout h3,
  .usecase-card h3, .usecase-card h2, .step-example h3,
  .field-band h2, .corporate-band h2, .pilot-block h2, .team-block h2,
  .problem-example-result h2, .good-to-know h2, .privacy-band h2) {
  font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.2; letter-spacing: -.025em;
}
.marketing :is(.problem-card-copy > p:last-child, .problem-card > p:last-child,
  .fn-card p:not(.fn-lede), .detail-copy p, .problem-copy, .problem-list,
  .usecase-card p, .audience-pains p, .step-example p,
  .problem-example-result > p:not(.release-note):not(.fineprint),
  .how-copy .how-intro, .export-layout > div > p:not(.release-note):not(.fineprint):not(.sample-links),
  .home-closing-lines .home-portability):not(:where(.release-note, .fineprint, .example-label, .muted)) {
  font-size: 1.06rem; line-height: 1.65;
}
.marketing :is(.fn-lede, .steps p, .field-band p, .corporate-band p, .team-block p,
  .pilot-block ul, .works-with-grid p, .good-to-know dt, .good-to-know dd,
  .stream-grid span, .closing-cta p, .privacy-band p, .request-card > .muted,
  .export-contents dl, .price-card ul, .price-card > p:not(.price):not(.price-from)) {
  font-size: 1rem; line-height: 1.7;
}
.marketing :is(.type-matters-list, .note-rows p, .coming-strip ul) { font-size: 1rem; line-height: 1.7; }
.marketing .legal-page :is(p, li) { font-size: .88rem; line-height: 1.75; }
.marketing .legal-page h2 { font-size: 1.55rem; letter-spacing: -.025em; }
.marketing :is(.works-with-grid strong, .stream-grid strong, .feature-index strong) {
  font-size: 1.05rem; line-height: 1.4;
}
.marketing :is(.feature-index span, .example-fields > div, .plan-matrix,
  .problem-preview p, .problem-preview span, .sample-links, .early-teams-line) {
  font-size: .95rem; line-height: 1.7;
}
.marketing .feature-index a { min-width: 0; }
.marketing :is(.release-note, .home-intro, .problem-card .release-note, .problem-card-copy .release-note,
  .problem-example-result .release-note) {
  font: 700 .74rem/1.4 var(--font-sans); letter-spacing: .13em; text-transform: uppercase;
}
.marketing :is(.fineprint, .hero .fineprint, .problem-example-result .fineprint,
  .detail-copy .muted, .sharing-fineprint, .product-shot figcaption,
  .problem-example-photo figcaption, .mobile-app-preview > p, .plan-overage, .plan-email) {
  font-size: .8rem; line-height: 1.65;
}
.marketing .button, .marketing .hero-actions .button {
  font-size: .88rem; font-weight: 700; line-height: 1.4; min-height: 50px;
}
.marketing .text-link, .marketing .hero-actions .text-link { font-size: .9rem; font-weight: 700; }
.marketing .site-header nav a { font-size: .82rem; font-weight: 600; }
.marketing .site-header > .brand { flex-shrink: 0; }
.marketing .header-actions .button, .marketing .header-actions .button-secondary-link {
  font-size: .82rem; font-weight: 700; min-height: 44px;
}
.marketing .header-actions .button-secondary-link { display: inline-flex; align-items: center; }
.marketing .footer-brand p { font: 400 .8rem/1.65 var(--font-sans); letter-spacing: 0; }
.marketing .site-footer a:not(.brand), .marketing .footer-company { font-size: .8rem; line-height: 1.65; }
.marketing .site-footer nav h2 { font-size: .8rem; line-height: 1.4; font-weight: 700; }
.marketing .footer-bottom { font-size: .75rem; line-height: 1.65; }
.marketing .request-card h1 { font-size: 2.2rem; line-height: 1.1; }
.marketing .request-access { min-height: 60rem; }
.marketing .form-stack label { font-size: .875rem; font-weight: 600; }
.marketing :is(input, select, textarea) { font-size: 1rem; line-height: 1.5; }
.marketing .store-badge small { font-size: .75rem; }
.marketing .store-badge strong { font-size: 1rem; }

/* The signed-in reference uses Helvetica Neue and a 16px base. */
.workspace-page { --font-sans: var(--font-workspace); font-family: var(--font-workspace); }
.workspace-page :is(.page-heading h1, h1) {
  font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; line-height: .98; letter-spacing: -.035em;
}
.workspace-page .page-heading p { font-size: 1rem; line-height: 1.5; margin-top: 13px; }
.workspace-page :is(.project-card h2, .insight-panel h2) {
  font-size: 1.05rem; font-weight: 600; letter-spacing: -.035em; line-height: 1.25;
}
.workspace-page .sidebar .nav-item { font-size: .875rem; font-weight: 600; }
.workspace-page :is(.project-card p, .project-card-footer, .asset-card strong,
  .asset-card small, .insight-card > span, .chart-legend, .breadcrumb) { font-size: .875rem; }
.workspace-page :is(.data-table, .inventory-table, .insight-panel table) { font-size: .875rem; line-height: 1.5; }
.workspace-page :is(.data-table th, .inventory-table th, .insight-panel th) { font-size: .8rem; }
.workspace-page .button { font-size: .87rem; min-height: 44px; font-weight: 600; }
.workspace-page :is(input, select, textarea) { font-size: .875rem; line-height: 1.25; }
.workspace-page .form-stack label { font-size: .875rem; }

/* Reflow the navigation before its larger labels run out of room. */
@media (max-width: 1100px) {
  .marketing .site-header .desktop-navigation { display: none; }
  .marketing .mobile-menu { display: block; }
  .marketing .header-actions { margin-left: auto; }
  .marketing .mobile-menu nav a { font-size: 1.02rem; }
}
@media (max-width: 760px) {
  .workspace-page :is(.page-heading h1, h1) { font-size: 2.35rem; }
  .workspace-page :is(input, select, textarea) { font-size: 1rem; }
  .marketing .section-intro h2 { max-width: 100%; }
  .marketing .hero-actions { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .marketing :is(.home-hero, .hero-copy-only) h1,
  .marketing .hero.hero:not(.home-hero) h1,
  .marketing :is(.pricing-intro, .document-page, .not-found) h1 { font-size: 3.15rem; }
  .marketing .hero-lead { font-size: 1.03rem; }
  .marketing :is(.home-section-title, .section-intro h2, .detail-copy h2,
    .usecase-tier-head h2, .closing-cta h2, .data-teaser-head h2) { font-size: 2.45rem; }
}
@media (max-width: 380px) {
  .marketing .site-header > .header-actions { display: none; }
  .marketing .site-header > .mobile-menu { margin-left: auto; }
}
@media (max-width: 360px) {
  .marketing .request-access { min-height: 64rem; }
}
