/* AMINA typography. Geometry, colors, images and approved breaks remain in production CSS. */
:root {
  --font-cn: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-latin: "Inter", "Helvetica Neue", Arial, sans-serif;
  /* Inter supplies Latin glyphs; Noto Sans SC supplies Chinese in mixed text. */
  --font-text: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --type-hero: clamp(3.5rem, 3.8vw, 4rem);
  --type-h1: 3rem;
  --type-h2: 2.25rem;
  --type-h2-compact-phrase: clamp(1.75rem, 2.35vw, 2.125rem);
  --type-h3: 1.375rem;
  --type-lead: 1.25rem;
  --type-body: 1.0625rem;
  --type-nav: 1rem;
  --type-cta: .9375rem;
  --type-eyebrow: .8125rem;
  --type-caption: .875rem;
  --type-footer: .9375rem;
  --type-label: .9375rem;
  --type-input: 1rem;
  --type-stat: 4rem;
  --leading-body: 1.8;
  --leading-hero: 1.18;
  --leading-h1: 1.18;
  --leading-h2: 1.28;
  --leading-h3: 1.35;
  --leading-lead: 1.65;
  --leading-caption: 1.6;
  --weight-body: 400;
  --weight-heading: 500;
  --weight-emphasis: 600;
  --tracking-eyebrow: .14em;
}
body, button, input, select, textarea {
  font-family: var(--font-text);
  font-size: var(--type-body);
  font-weight: var(--weight-body);
  line-height: var(--leading-body);
  letter-spacing: 0;
}
p, li, blockquote, td, th, dd, dt {
  font-size: var(--type-body);
  font-weight: var(--weight-body);
  line-height: var(--leading-body);
  letter-spacing: 0;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-text);
  font-weight: var(--weight-heading);
  letter-spacing: 0;
  text-wrap: balance;
}
:root body main :is(h1, h2, h3) .type-keep { display: inline; white-space: nowrap; text-wrap: nowrap; }
h1 { font-size: var(--type-h1); line-height: var(--leading-h1); }
h2 { font-size: var(--type-h2); line-height: var(--leading-h2); }
h3, h4, h5, h6 { font-size: var(--type-h3); line-height: var(--leading-h3); }
.hero h1, .ao-hero h1, .tech-hero h1, .dml-hero h1,
.ai-hero h1, .mf-hero h1, .ip-hero h1, .ap-hero h1,
.pj-hero h1, .cm-hero h1, .ac-hero h1, .pr-hero h1 {
  font-size: var(--type-hero);
  line-height: var(--leading-hero);
}
.dml-page .dml-hero h1 { font-size: var(--type-h1); line-height: var(--leading-h1); }
.pj-hero h1 { word-break: normal; }
/* Existing fixed clauses in this narrow section retain their approved nowrap. */
.pc-page .cm-technology .cm-section-heading h2 { font-size: var(--type-h2-compact-phrase); }
strong, b { font-weight: var(--weight-emphasis); }
.home-dml-stat strong, .historic-stat strong, .plataforma-coverage-stat strong,
.curved-covering strong, .ch-depth strong {
  font-family: var(--font-latin); font-size: var(--type-stat);
  font-weight: var(--weight-heading); line-height: 1.18; letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.featured-project-stats dt, .pr-metrics dt, .ia-system-counts strong, .curved-system-primary strong {
  font-family: var(--font-latin); font-size: var(--type-h2);
  font-weight: var(--weight-heading); line-height: var(--leading-h2);
  font-variant-numeric: tabular-nums;
}
.tech-number-list strong, .tech-trio strong, .tech-checklist strong,
.tech-docs strong, .tech-stages strong, .tech-gateways strong,
.tech-project-grid strong, .tech-questions strong, .ai-units strong,
.mf-path-units strong, .mf-units strong, .mf-confirm-points strong,
.mf-projects strong, .ip-points strong, .ip-five strong, .dml-stages strong,
.animation-list strong, .pr-family-card > strong, .pr-capability-copy > strong,
.pr-path-label strong, .ap-system-path strong {
  font-size: var(--type-h3); font-weight: var(--weight-heading);
  line-height: var(--leading-h3); letter-spacing: 0; text-wrap: balance;
}
h1 :is(strong,b,span), h2 :is(strong,b,span), h3 :is(strong,b,span) {
  font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit;
}
[class$="-lead"], .hero-subtitle, .nw-deck {
  font-size: var(--type-lead); font-weight: var(--weight-body);
  line-height: var(--leading-lead); letter-spacing: 0;
}
.eyebrow, [class$="-eyebrow"], [class$="-kicker"], .pj-project-type {
  font-size: var(--type-eyebrow); font-weight: var(--weight-heading);
  line-height: 1.6; letter-spacing: var(--tracking-eyebrow);
}
/* Explicit Chinese eyebrow roles retain zero tracking. */
.home-contact-kicker, .project-design-support-kicker, .hero-kicker,
.pj-project-type, .dml-page .dml-kicker, [data-type-script="cn"] { letter-spacing: 0; }
a, button, [class$="-link"], [class$="-cta"], .pj-filters button {
  font-size: var(--type-cta); font-weight: var(--weight-heading); line-height: 1.6; letter-spacing: 0;
}
h1 a, h2 a, h3 a, h4 a { font-size: inherit; font-weight: inherit; line-height: inherit; }
nav a, .nav-link, .nav-nested-parent, .nav-dropdown a, .nav-flyout a {
  font-size: var(--type-nav); font-weight: var(--weight-heading); line-height: 1.4; letter-spacing: 0;
}
figcaption, small, [class$="-caption"], [class$="-meta"], [class$="-location"],
[class$="-note"], [class$="-credit"], .pj-tags li, .pr-card-meta,
.cv-field-error, .home-contact-help, .home-contact-error {
  font-size: var(--type-caption); font-weight: var(--weight-body); line-height: var(--leading-caption); letter-spacing: 0;
}
[class$="-model"], [class$="-models"], .pr-model, .sw-route-models {
  font-family: var(--font-text); font-size: var(--type-body); font-weight: var(--weight-heading); letter-spacing: 0;
}
td, th, dd, dt, [class$="-number"], [class$="-year"], [class$="-value"] {
  font-variant-numeric: tabular-nums;
}
label, .cv-field-label, .home-contact-label {
  font-size: var(--type-label); font-weight: var(--weight-heading); line-height: 1.6; letter-spacing: 0;
}
input, select, textarea {
  font-size: var(--type-input); font-weight: var(--weight-body); line-height: 1.6; letter-spacing: 0;
}
input::placeholder, textarea::placeholder { font-family: var(--font-text); font-size: var(--type-input); font-weight: var(--weight-body); letter-spacing: 0; }
.cv-submit, .home-contact-submit { font-size: var(--type-cta); font-weight: var(--weight-heading); line-height: 1.6; }
footer, footer p, footer li, footer span, footer small {
  font-size: var(--type-footer); font-weight: var(--weight-body); line-height: 1.6; letter-spacing: 0;
}
footer a, footer h2, footer h3, footer h4, footer strong {
  font-size: var(--type-nav); font-weight: var(--weight-heading); line-height: 1.6; letter-spacing: 0;
}
@media (min-width: 768px) and (max-width: 1100px) {
  :root { --type-hero: 2.75rem; --type-h1: 2.625rem; --type-h2: 2rem; }
}
@media (max-width: 767px) {
  :root {
    --type-hero: 2.375rem;
    --type-h1: 2.125rem;
    --type-h2: 1.875rem;
    --type-h3: 1.25rem;
    --type-lead: 1.125rem;
    --type-body: 1rem;
    --type-stat: 3rem;
    --leading-body: 1.75;
  }
}

/* V1.1 semantic exceptions. Everything above remains byte-identical to V1. */
:root {
  --type-statement-hero: clamp(4.5rem, 5.25vw, 5.375rem);
  --type-section-statement: clamp(3rem, 4.2vw, 3.75rem);
  --type-split-hero: clamp(3rem, 3.3vw, 3.25rem);
  --type-mobile-nav-primary: 1.5rem;
  --leading-statement-hero: 1.12;
  --leading-section-statement: 1.18;
}
.tech .tech-hero h1 {
  font-size: var(--type-statement-hero);
  font-weight: var(--weight-heading);
  line-height: var(--leading-statement-hero);
}
.tech > .tech-section h2, .tech > .tech-final h2 {
  font-size: var(--type-section-statement);
  font-weight: var(--weight-heading);
  line-height: var(--leading-section-statement);
}
.applications-page .ap-hero h1, .projects-page .pj-hero h1 {
  font-size: var(--type-split-hero);
  font-weight: var(--weight-heading);
  line-height: var(--leading-hero);
}
@media (max-width: 1100px) {
  .site-header .main-nav .nav-link {
    font-size: var(--type-mobile-nav-primary);
    font-weight: var(--weight-heading);
  }
  .site-header .main-nav .nav-dropdown a { font-size: var(--type-nav); }
}
@media (min-width: 768px) and (max-width: 1100px) {
  :root {
    --type-statement-hero: clamp(3rem, 6vw, 4.5rem);
    --type-section-statement: clamp(2.25rem, 4.7vw, 3rem);
    --type-split-hero: clamp(2.375rem, 4.3vw, 3rem);
  }
}
@media (max-width: 767px) {
  :root {
    --type-statement-hero: 2.5rem;
    --type-section-statement: 2rem;
    --type-split-hero: 2.25rem;
  }
}

/* All public inner pages share the same heading hierarchy. The home page keeps
   its existing display scale. These tokens follow the existing tablet/mobile
   h1 and h2 breakpoints above. */
body:not(.home-page) {
  --type-hero: var(--type-h1);
  --type-statement-hero: var(--type-h1);
  --type-split-hero: var(--type-h1);
  --type-section-statement: var(--type-h2);
  --type-h2-compact-phrase: var(--type-h2);
}
