/* AAX Legacy · Cristal Negro 8
   One scale by editorial role, shared across the home page and legal pages.
   Sizes grow continuously with the viewport; content never shrinks at a breakpoint.
   The brand lockup and decorative quotation mark retain their own proportions. */
:root {
  --type-hero: clamp(1.875rem, calc(.9375rem + 2.65vw), 3.375rem);
  --type-section: clamp(2rem, calc(1.25rem + 2.4vw), 3.375rem);
  --type-feature: clamp(1.625rem, calc(1.35625rem + 1vw), 2.25rem);
  --type-card: clamp(1.125rem, calc(1.05rem + .3vw), 1.25rem);
  --type-lead: 1.125rem;
  --type-body: 1rem;
  --type-control: .875rem;
  --type-meta: .8125rem;
  --type-small: var(--type-meta);
  --type-label: .6875rem;
  --leading-title: 1.12;
  --leading-feature: 1.2;
  --leading-card: 1.35;
  --leading-lead: 1.6;
  --leading-body: 1.65;
  --leading-meta: 1.6;
}

body { font-size: var(--type-body); line-height: var(--leading-body); }

/* Display: the three-word brand statement has one deliberate final emphasis. */
.hero h1 { font-size: var(--type-hero); line-height: var(--leading-title); }
.hero-title-last { font-size: 1.2em; line-height: inherit; }
.hero-title-row { flex-wrap: wrap; }

/* Level 1: every main section and every standalone page title. */
:is(.intro-main,.section-heading,.method-intro,.founder-copy,.faq-section,.contact-copy) h2,
.document-title h1 {
  font-size: var(--type-section);
  line-height: var(--leading-title);
}

/* Level 2: feature headings, secondary callouts and dialog titles. */
.service-panel h3,.case-story h3,.opportunity-inner h2,
.service-map-intro > p:last-child,.legal-content h2,
.info-dialog h2,.email-dialog h2,.project-dialog h2 {
  font-size: var(--type-feature);
  line-height: var(--leading-feature);
}
.statement-inner p { font-size: var(--type-feature); line-height: 1.3; }

/* Level 3: cards, expandable questions and small titled content blocks. */
.commitments h3,.service-detail strong,.faq-list summary,.case-stages h4,
.legal-content h3,.info-dialog h3,.dialog-top h2 {
  font-size: var(--type-card);
  line-height: var(--leading-card);
}
.case-facts dt,.contact-direct > a,.contact-direct .contact-phone,.reference-box strong {
  font-size: var(--type-card);
  line-height: var(--leading-card);
}

/* Leads: one size and one rhythm in the introduction, hero and founder section.
   !important here only replaces the inherited lead overrides from earlier versions. */
.intro-bottom,.intro-bottom p,.hero-lead,.founder-copy > p.founder-lead,.document-lead {
  font-size: var(--type-lead) !important;
  line-height: var(--leading-lead);
}
.founder-portrait figcaption strong { font-size: var(--type-lead); line-height: var(--leading-card); }

/* Reading text stays at 16 px on small screens as well as desktop. */
.hero-description,.service-panel p:not(.eyebrow),.service-detail-body,
.method-intro > p:not(.section-label),.commitments p,.case-story > p:not(.eyebrow),
.case-stages p,.founder-copy > p:not(.section-label):not(.founder-lead),
.faq-list p,.contact-copy > p:not(.section-label),.footer-top p,
.info-dialog p,.email-dialog > p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
.legal-content p,.legal-content li,.legal-data { font-size: var(--type-body); line-height: 1.75; }

/* Actions share the same size irrespective of primary/secondary treatment. */
.button,.text-link,.hero-actions .button,.hero-actions .text-link,
.service-panel .text-link,.opportunity-inner .button,.legacy-origin .text-link,
.form-submit,.form-result .text-link,.email-fallback .button,.email-fallback .text-link,
.document-end .button,.email-actions .button,.service-tabs button,.back-to-top,
.photo-zoom,.photo-dialog .dialog-top h2 {
  font-size: var(--type-control);
  line-height: 1.4;
}
.desktop-nav,.desktop-nav a,.header-cta,.document-nav .text-link {
  font-size: var(--type-meta);
  line-height: 1.4;
}
.mobile-nav a { font-size: var(--type-feature); line-height: var(--leading-card); }
.field input,.field select,.field textarea,.inquiry-field select {
  font-size: var(--type-body);
  line-height: 1.5;
}

/* Secondary reading: captions, supporting information and all form notices. */
.service-detail small,.heading-aside,.case-facts dd,.founder-portrait figcaption span,
.contact-location,figcaption,.legacy-origin p,.document-date,.document-footer p,
.form-requirements,.message-field small,.message-count,.privacy-basic p,
.privacy-ack label,.privacy-note,.field-error,.form-feedback,.form-result p,
.form-noscript,.photo-dialog > p,.art-dialog p,.email-recipient,
.footer-bottom,.footer-bottom > span:nth-child(2),.footer-legal {
  font-size: var(--type-meta);
  line-height: var(--leading-meta);
}
.info-dialog .success-note,.email-help,.copy-status {
  font-size: var(--type-meta) !important;
  line-height: var(--leading-meta);
}

/* Small uppercase labels identify structure; they never carry reading paragraphs. */
.section-label,.eyebrow,.hero-kicker,.service-panel .eyebrow,.opportunity-inner .eyebrow,
.contact-direct .eyebrow,.dialog-top .eyebrow,.section-label .index,.service-number,
.commitments article > span,.mobile-nav a > span,.mobile-nav p,.principle-strip span,
.statement-signature,.hero-topline,.hero-bottom,.reference-box span,
.footer-top div > span {
  font-size: var(--type-label);
  line-height: var(--leading-meta);
}

/* Keep the compact header usable at 200% text sizing on narrow phones. */
@media (max-width: 360px) {
  .header-inner { gap: 6px; }
  .header-cta { padding-inline: 6px; }
}
