/* Earth-IA typography standard. Load last on every public page.
   Informative text never falls below 14px, including at mobile widths. */
:root {
  --type-display: 'Cormorant Garamond', Georgia, serif;
  --type-body: 'DM Sans', Arial, sans-serif;
  --type-h1: clamp(64px, 6vw, 104px);
  --type-h2: clamp(48px, 5vw, 72px);
  --type-h3: clamp(28px, 2.5vw, 40px);
  --type-lead: 18px;
  --type-body-size: 16px;
  --type-label: 15px;
  --type-small: 14px;
  --f-display: var(--type-display);
  --f-body: var(--type-body);
  --display: var(--type-display);
  --body: var(--type-body);
  --tech: var(--type-body);
}

body { font-family: var(--type-body); font-size: var(--type-body-size); }
button, input, select, textarea { font-family: var(--type-body); }
main h1, main h2, main h3, .cookie-modal h3 {
  font-family: var(--type-display) !important;
}
:is(.home-page .hero h1, .garage-page .garage-hero h1,
    .v2-page .v2-hero h1, .law-page .law-hero h1,
    .product-page .hero h1, .support-page .legal-hero h1,
    .error-page .about h1) { font-size: var(--type-h1) !important; }
main h2 { font-size: var(--type-h2) !important; }
main h3 { font-size: var(--type-h3) !important; }
.support-page .legal-body h2 { font-size: 36px !important; }
.support-page .legal-body h3 { font-size: 28px !important; }
.garage-page .garage-product h3 { font-size: clamp(42px, 4vw, 64px) !important; }

/* Shared navigation, actions, section names and footer. */
:is(.main-nav, .desktop-nav, .mobile-nav) a,
:is(.home-page, .garage-page, .v2-page, .law-page, .product-page, .support-page) .product-back,
:is(.button, .button-small, .text-link, .nav-cta, .v2-action, .v2-inline, .law-button,
    .law-text-link, .law-inline-link, .legal-body .btn) {
  font-size: 15px !important;
}
:is(.section-index, .section-kicker, .eyebrow, .feature-index,
    .v2-kicker, .law-label, .law-eyebrow, .law-final-kicker,
    .work-info > span, .footer-main > div > span,
    .product-page .footer-main > div > span) {
  font-family: var(--type-body) !important;
  font-size: var(--type-label) !important;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
}
.site-footer :is(p, a, button, small, .footer-bottom, .brand-disclaimer),
.site-footer .footer-main > div > a {
  font-family: var(--type-body) !important;
  font-size: var(--type-small) !important;
  line-height: 1.55;
}
.site-footer .footer-main > div > span { font-size: var(--type-small) !important; }

/* Main site and the two editorial service pages. */
.home-page :is(.hero-copy > p, .manifesto-copy > p, .section-heading p,
  .service-row p, .method-steps p, .work-top p, .work-info p,
  .work-footer, .final-cta p),
.v2-page :is(.v2-hero-copy > p, .v2-intro-grid > p, .v2-usecase p,
  .v2-example-grid p, .v2-faq details p, .v2-scope-list p,
  .v2-roadmap p, .v2-phase-track p, .v2-flow-heading p,
  .v2-business-flow small, .v2-flow-measure) {
  font-size: var(--type-body-size) !important;
  line-height: 1.6;
}
.home-page .hero-copy > p { font-size: var(--type-lead) !important; }
.home-page .manifesto-copy > .section-index { font-size: clamp(16px, 1.25vw, 18px) !important; }
.home-page .final-cta .section-index { font-size: 18px !important; }
.home-page .final-actions > a:not(.button) { font-size: 16px !important; }
.home-page :is(.service-tag, .work-info > span, .hero-location,
  .hero-bottom, .hero-bottom > div > span, .hero-bottom strong,
  .race-signature, .method-steps > div > span, .status,
  .final-actions small, .work-footer .text-link,
  .v2-service-link .service-tag),
.v2-page :is(.v2-back, .v2-usecase > span, .v2-example small,
  .v2-usecase-outcome, .v2-example-grid > div > span,
  .v2-related-grid > a, .v2-roadmap li > span,
  .v2-roadmap b, .v2-roadmap-result span, .v2-scope-list > div > span,
  .v2-note-grid small, .v2-close-actions small,
  .v2-close-actions > a:not(.v2-action),
  .v2-phase-number, .v2-business-flow li > span:nth-child(2)) {
  font-family: var(--type-body) !important;
  font-size: var(--type-small) !important;
  line-height: 1.5;
}
.home-page .final-actions small,
.v2-page .v2-close-actions small { max-width: 420px; }
.home-page .final-actions small a { font-size: inherit; }
.home-page :is(.garage-overline, .garage-demo, .garage-insight p,
  .garage-insight > div > span, .garage-dashboard-footer,
  .routine-preview > p, .routine-step, .routine-status,
  .routine-action, .routine-caption, .garage-dashboard-controls button) {
  font-size: var(--type-small) !important;
}
.home-page .circuit-panel text { font-size: var(--type-small) !important; }

/* European AI Act landing. */
.law-page :is(.law-hero-copy > p, .law-obligation-list p,
  .law-timeline-track p, .law-service-steps p,
  .law-sources p) { font-size: var(--type-body-size) !important; line-height: 1.6; }
.law-page :is(.law-hero-caption, .law-hero-visual figcaption,
  .law-obligation-number, .law-obligation-list small,
  .law-timeline-track time, .law-timeline-note,
  .law-service-steps article > span, .law-service-steps small,
  .law-sources a, .law-final-actions small) {
  font-size: var(--type-small) !important;
  line-height: 1.5;
}
.law-page .law-hero-visual figcaption { flex-wrap: wrap; }

/* Product collection. */
.garage-page :is(.garage-catalog-heading > p, .garage-product-copy > p,
  .garage-engineering p, .garage-principles p, .catalog-note) {
  font-size: var(--type-body-size) !important;
  line-height: 1.6;
}
.garage-page :is(.garage-hero-foot, .garage-filters button,
  .garage-filters button span, .garage-count, .garage-tags,
  .screen-label, .garage-principles article > span) {
  font-family: var(--type-body) !important;
  font-size: var(--type-small) !important;
  line-height: 1.5;
}
.garage-page :is(.garage-hero-foot, .screen-label) { flex-wrap: wrap; }

/* Six product detail pages, including forms and privacy text. */
.product-page :is(.hero-lead, .section-intro p, .method-lead > p,
  .report-copy > p, .feature p, .problem-item p, .step p,
  .faq-list p, .contact-intro > p, .closing-section p) {
  font-size: var(--type-body-size) !important;
  line-height: 1.6;
}
.product-page :is(.product-back span, .hero-note, .hero-foot,
  .signal-inner, .screen-top, .floating-note, .note-icon,
  .prototype-note, .problem-item > span, .step > span, .report-frame-top,
  .contact-aside > span, .contact-aside small, .form-heading,
  .form-field label, .form-field small, .privacy-summary,
  .privacy-summary > strong, .privacy-summary dl > div,
  .privacy-summary p, .privacy-check, .form-error,
  .form-footnote, .footer-links, .brand-disclaimer) {
  font-family: var(--type-body) !important;
  font-size: var(--type-small) !important;
  line-height: 1.5;
}
.product-page .form-field :is(input, textarea, select) { font-size: 16px !important; }
.product-page .privacy-summary dl > div { grid-template-columns: minmax(95px, auto) 1fr; }
.product-page :is(.screen-top, .report-frame-top, .hero-foot, .signal-inner) { flex-wrap: wrap; }

/* Legal pages and consent dialog. */
.support-page .legal-body :is(p, li, table, .note, .btn),
.support-page .legal-hero .updated { font-size: var(--type-body-size) !important; }
.cookie-banner, .cookie-modal { font-family: var(--type-body) !important; }
.cookie-banner :is(p, a), .cookie-modal :is(p, h4),
.cookie-cat .info p { font-size: var(--type-body-size) !important; }
.cookie-banner .actions button, .cookie-modal .modal-actions button {
  font-size: var(--type-small) !important;
}
.cookie-cat .info p { color: rgba(245,247,250,.82); }

/* Preserve the approved prominence of these homepage callouts. */
.home-page .work .work-footer .text-link { font-size: 16px !important; }
.home-page .final-cta .final-actions small,
.home-page .final-cta .final-actions small a {
  font-size: 15px !important;
  color: #321d13;
}

@media (max-width: 640px) {
  :root {
    --type-h1: clamp(48px, 12vw, 64px);
    --type-h2: clamp(36px, 9vw, 52px);
    --type-h3: clamp(26px, 7vw, 34px);
    --type-lead: 17px;
    --type-label: 14px;
  }
  .garage-page .garage-product h3 { font-size: clamp(38px, 10vw, 52px) !important; }
  .home-page .final-cta .section-index { font-size: 17px !important; }
  .support-page .legal-body h2 { font-size: 32px !important; }
  .support-page .legal-body h3 { font-size: 28px !important; }
}
