/* One public-site typography policy. Layout, icon fonts and admin UI retain their owners. */
body:not(.wp-admin) {
  --tg-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --tg-display: clamp(2.125rem, 3.7vw, 3.5rem);
  --tg-section: clamp(1.875rem, 3vw, 2.75rem);
  --tg-subheading: clamp(1.25rem, 1.7vw, 1.5rem);
  --tg-card: clamp(1.25rem, 1.6vw, 1.375rem);
  --tg-body: 1.125rem;
  --tg-lead: clamp(1.125rem, 1.6vw, 1.25rem);
  --tg-small: 1rem;
  --tg-caption: .9375rem;
  --tg-label: .8125rem;
  --tg-number: 1.5rem;
  /* Existing Gutenberg size utilities consume these tokens, including their native !important. */
  --wp--preset--font-family--manrope: var(--tg-font);
  --wp--preset--font-size--small: var(--tg-caption);
  --wp--preset--font-size--medium: var(--tg-body);
  --wp--preset--font-size--large: var(--tg-lead);
  --wp--preset--font-size--x-large: var(--tg-section);
  --wp--preset--font-size--xx-large: var(--tg-display);
}
body .wp-site-blocks,
body .tg-inquiry-dialog,
body .tg-team-dialog,
body .tg-team-launch,
body .tg-whatsapp-tooltip {
  font-family: var(--tg-font);
  font-size: var(--tg-body);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
}
body .wp-site-blocks main :where(.wp-block-heading, .wp-block-post-title) {
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.15;
}
body .wp-site-blocks main :where(h1.wp-block-heading, h1.wp-block-post-title),
body .wp-site-blocks .tg-oem-hero h2 { font-size: var(--tg-display); }
body .wp-site-blocks main :where(h2.wp-block-heading) { font-size: var(--tg-section); }
body .wp-site-blocks main :where(h3.wp-block-heading) { font-size: var(--tg-subheading); line-height: 1.3; letter-spacing: -.01em; }
body .wp-site-blocks main :where(h4.wp-block-heading) { font-size: var(--tg-small); line-height: 1.4; font-weight: 600; }
body .wp-site-blocks :where(main .wp-block-post-content) :where(.wp-block-paragraph, .wp-block-list) {
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
}
body .wp-site-blocks :is(.tg-partner-value__intro, .tg-cooperation-paths__intro, .tg-process-steps__intro,
  .tg-trust-evidence__intro, .tg-about-lede, .tg-about-intro, .tg-oem-hero__lede,
  .tg-products-hero > p, .tg-contact-layout__lead) { font-size: var(--tg-lead); line-height: 1.65; }
body .wp-site-blocks :is(.tg-partner-value__item, .tg-trust-evidence__point) p:not([class*="__number"]),
body .wp-site-blocks :is(.tg-about-pillars, .tg-about-step, .tg-process-flow__item, .tg-process-steps__step,
  .tg-oem-customize__grid, .tg-cooperation-paths__path) p:not([class*="__number"]):not([class*="__kicker"]),
body .wp-site-blocks :is(.tg-contact-layout__share, .tg-contact-layout__protection, .tg-contact-location__details) p,
body .wp-site-blocks .tg-contact-layout__form > p { font-size: var(--tg-body); line-height: 1.65; }
body .wp-site-blocks :is(.tg-product-card__title, .tg-about-pillars h3, .tg-about-step h3,
  .tg-process-flow__item h3, .tg-process-steps__step h3, .tg-partner-value__item h3,
  .tg-trust-evidence__point h3, .tg-oem-customize__grid h3) {
  font-size: var(--tg-card); font-weight: 500; line-height: 1.3; letter-spacing: -.01em;
}
body .wp-site-blocks .tg-cooperation-paths__path h3 { font-size: 1.875rem; }
/* Keep the existing pinned input summary clear of the more readable body copy. */
body .wp-site-blocks .tg-cooperation-paths__path { padding-bottom: 150px; }
body .wp-site-blocks :is(.tg-partner-value__eyebrow, .tg-cooperation-paths__eyebrow,
  .tg-process-steps__eyebrow, .tg-trust-evidence__eyebrow, .tg-about-kicker,
  .tg-cooperation-paths__kicker, .tg-product-detail__eyebrow) {
  font-size: var(--tg-label); font-weight: 600; line-height: 1.45; letter-spacing: .065em;
}
body .wp-site-blocks :is(.tg-partner-value__number, .tg-cooperation-paths__number,
  .tg-process-steps__number, .tg-trust-evidence__number, .tg-process-flow__number),
body .wp-site-blocks .tg-about-step::before {
  font-size: var(--tg-number); font-weight: 500; line-height: 1.2;
  letter-spacing: .01em; font-variant-numeric: tabular-nums;
}
body .wp-site-blocks .tg-cooperation-paths__number { font-size: 1.125rem; }
body .wp-site-blocks :is(.tg-product-card__excerpt, .tg-product-detail__spec dd) { font-size: var(--tg-small); line-height: 1.65; }
body .wp-site-blocks :is(.tg-product-card__reference, .tg-product-detail__spec dt,
  .tg-oem-quick-note, .tg-products-customization__note, .tg-home-controls span, .tg-product-media__status) {
  font-size: var(--tg-caption); line-height: 1.5; letter-spacing: .015em;
}
body .wp-site-blocks :is(.tg-cooperation-paths__input, .tg-oem-quick__item) { font-size: var(--tg-small); }
body .wp-site-blocks main :is(.wp-element-caption, .wp-block-image figcaption, .wp-block-gallery figcaption) {
  font-size: var(--tg-caption); line-height: 1.55;
}
body .wp-site-blocks main .wp-block-button__link,
body .wp-site-blocks :is(.tg-product-card__link, .tg-process-steps__link a, .tg-product-detail__custom-development-cta) {
  font-family: var(--tg-font); font-size: 1rem; font-weight: 500; line-height: 1.45; letter-spacing: 0;
}
/* Preserve header's measured line box and button geometry, including the mobile menu. */
body .wp-site-blocks header :is(.wp-block-navigation, .wp-block-button__link) {
  font-size: clamp(1rem, 1rem + ((1vw - .2rem) * .185), 1.125rem);
  font-weight: 500; line-height: 1.4; letter-spacing: 0;
}
body .wp-site-blocks footer { font-size: var(--tg-small); font-weight: 400; line-height: 1.65; }
body .wp-site-blocks footer :is(.wp-block-paragraph, .wp-block-navigation) { font-size: var(--tg-small); line-height: 1.65; }
body .wp-site-blocks footer .wp-block-heading { font-weight: 600; line-height: 1.3; letter-spacing: 0; }
body :is(.trugrain-contact-form-card, .tg-inquiry-dialog) :is(label, input, select, textarea) {
  font-family: var(--tg-font); font-size: 1rem; line-height: 1.45; letter-spacing: 0;
}
body .wp-site-blocks .trugrain-contact-form-card :is(label, input, select, textarea) { font-size: 1rem; }
body :is(.trugrain-contact-form-card, .tg-inquiry-dialog) :is(.trugrain-privacy label, .wpcf7-not-valid-tip) {
  font-size: var(--tg-caption); line-height: 1.55;
}
body .tg-inquiry-dialog h2 { font-family: var(--tg-font); font-size: var(--tg-section); font-weight: 500; line-height: 1.15; }
body .tg-inquiry-eyebrow, body .tg-team-kicker { font-size: var(--tg-label); font-weight: 600; letter-spacing: .065em; line-height: 1.45; }
body .tg-inquiry-intro { font-size: var(--tg-body); }
body .tg-team-dialog .tg-team-name { font-size: 1.25rem; font-weight: 600; line-height: 1.3; }
body .tg-team-dialog :is(.tg-team-role, .tg-team-bio, .tg-team-hint) { font-size: var(--tg-caption); line-height: 1.6; }
body .tg-team-dialog :is(.tg-team-email, .tg-team-whatsapp, .tg-team-back) { font-size: .875rem; line-height: 1.5; }
body .tg-team-launch { font-size: .875rem; line-height: 1.25; }
body .tg-team-launch span { font-size: .75rem; line-height: 1.25; }
/* Approved homepage media only; preserve the complete craft action and intrinsic ratio. */
body.page-id-17 .wp-site-blocks .tg-partner-value {
  background-color: #f7f4ed;
  background-image: url('assets/typography-6ddd7c87d6774e37/company-background-1920.webp');
  background-repeat: no-repeat; background-size: cover; background-position: center;
}
body.page-id-17 .wp-site-blocks .tg-partner-value__image { aspect-ratio: auto; background: transparent; }
body.page-id-17 .wp-site-blocks .tg-partner-value__image img {
  display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: contain;
}
body.page-id-17 .wp-site-blocks .tg-partner-value__caption { margin-top: 18px; max-width: 48ch; font-size: var(--tg-caption); line-height: 1.6; }
body.page-id-17 .wp-site-blocks .tg-partner-value__caption strong { display: block; margin-bottom: 8px; color: #211d1a; font-size: var(--tg-small); font-weight: 600; }
@media (max-width: 781px) {
  body:not(.wp-admin) { --tg-body: 1.0625rem; --tg-lead: 1.125rem; }
  body.page-id-17 .wp-site-blocks .tg-partner-value { background-size: auto 100%; background-position: center; }
}

/* 2026-10-08 A: scoped readability corrections; append to existing typography.css. */
/* Gutenberg's nested-gallery caption selector otherwise wins at 13px. */
body .wp-site-blocks main .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  font-size: var(--tg-caption);
  line-height: 1.55;
}
/* Labels include About's combined "01 / ..." lines; preserve their existing weight/tracking. */
body .wp-site-blocks main :is(.tg-partner-value__eyebrow, .tg-cooperation-paths__eyebrow,
  .tg-process-steps__eyebrow, .tg-trust-evidence__eyebrow, .tg-about-kicker,
  .tg-cooperation-paths__kicker, .tg-product-detail__eyebrow) {
  font-size: var(--tg-caption);
}
/* Authored H2/H3 tags retain their semantics while sharing the detail-body subheading role. */
body .wp-site-blocks .tg-product-detail__body > :is(h2, h3) {
  font-size: var(--tg-subheading);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -.01em;
}
