/* Shared screen typography for Topinfo Biogas. Keep the 17px rem basis for
   established layout/branding; improve reading text without scaling the logo. */
@media screen {
:root {
  --type-body:18px;
  --type-lead:20px;
  --type-control:17px;
  --type-secondary:16px;
  --type-caption:15px;
  --type-kicker:15px;
}
body {font-family:Arial,Helvetica,sans-serif;font-size:var(--type-body);line-height:1.65}
h1,h2,h3,h4,h5,h6 {font-family:Arial,Helvetica,sans-serif}
button,input,select,textarea {font-family:inherit}
.process-list li>span,.visit-path li>span {font-family:inherit}

/* Normal reading text. Display headings, model capacities and grant/guarantee
   numbers retain their component-specific sizes. */
main p {font-size:var(--type-body);line-height:1.65}
main :is(.columns,.project p:not(.eyebrow),.section-heading .intro,
  .component-row p,.farm-context p,.loader-story p,.pitch-costs,.pitch-checks,
  .benefit-item p,.request-callout p,.equipment-intro,.equipment-note,
  .home-topic-links p,.welcome-heading>p,.welcome-machine-copy>p:not(.welcome-kicker),
  .welcome-topic>p) {font-size:var(--type-body);line-height:1.65}
main :is(.lead,.technical-copy .lead) {font-size:var(--type-lead);line-height:1.6}
.pitch-intro .funding-context {font-size:var(--type-secondary);line-height:1.6}
.funding-order-note span {font-size:var(--type-body);line-height:1.6}

/* Small section labels: readable, with calmer letter spacing. */
main :is(.eyebrow,.home-kicker,.welcome-kicker),
main .technical-copy .eyebrow,
.ems-page main .eyebrow,
.drying-page main :is(.drying-intro .eyebrow,.drying-section-heading .eyebrow,.drying-support .eyebrow),
.xcmg-page main .xcmg-kicker,
.energy-page main .storage-eyebrow {
  font-size:var(--type-kicker);font-weight:700;line-height:1.5;letter-spacing:.055em;
}

/* Text links and controls use the same family and minimum reading size.
   Carousel arrows and other icon-only buttons keep their own display size. */
.button,.text-link,.detail-link {font-family:inherit;font-size:var(--type-control);line-height:1.5}
.ems-page main .button,
.pv-page main .pv-jump a,
main .demo-location .button,
.drying-page main .drying-actions :is(.button,.text-link),
.drying-page main .drying-support-actions a,
.pv-page main :is(.button,.pv-offer-cta),
.xcmg-page main :is(.button,.xcmg-pdf-actions a,.xcmg-tabs a),
.energy-page main :is(.storage-button,.storage-text-link,.card-docs a),
.topics-draft article>.text-link,
.welcome-machine-links a,.welcome-topic>a {
  font-family:inherit;font-size:var(--type-control);line-height:1.5;
}
.form-field label,.contact-draft label {font-size:var(--type-control);line-height:1.5}
.form-field label>span {font-size:inherit}
.form-field label>span.required-mark {font-size:inherit;font-weight:700}
.form-field :is(input,select,textarea),.contact-draft textarea {font-size:var(--type-body);line-height:1.5}
.email-consent .consent-choice {font-size:var(--type-body);line-height:1.6}
.email-consent .consent-choice>span {font-size:inherit}
.email-consent legend {font-size:var(--type-control);line-height:1.5}
.email-consent .partner-explanation {font-size:var(--type-secondary);line-height:1.6}
.email-consent [data-partner-wording],.form-required-note {font-size:var(--type-secondary);line-height:1.6}

/* Captions and supporting copy remain visibly secondary, but readable. */
main :is(.small,.source-note,.caption,.location-line,.map-attribution,
  .machine-model,.gallery-count,.demo-cooperation,.welcome-equipment-note,
  .welcome-funding-tag,.topic-badge) {font-size:var(--type-secondary);line-height:1.6}
main :is(figcaption,figcaption a,figcaption span),
.truffle-milestone-photo figcaption,
.technical-photo figcaption,.technical-photo figcaption span,
[data-gallery-carousel] figcaption,
.home-hof-carousel figcaption,.home-hof-carousel .gallery-count,
.people-carousel figcaption,.people-carousel .gallery-count,
main .pitch-about .people-carousel figcaption,
.welcome-machines figcaption,
.demo-machine-photo figcaption,
.demo-location .map-attribution,
.ems-page main .ems-practice figcaption,
.drying-page main :is(.drying-main-photo figcaption,.drying-history figcaption) {
  font-size:var(--type-caption);line-height:1.6;
}
main :is(.small,.source-note,.caption,.location-line,.map-attribution) a {font-size:inherit}

/* Bring catalog labels and body text onto the same cross-page scale. */
.xcmg-page main,.energy-page main {
  --xcmg-text:var(--type-body);
  --xcmg-label:var(--type-secondary);
  font-size:var(--type-body);
}
.xcmg-page main :is(.lead),.energy-page main .hero-lead {font-size:var(--type-lead);line-height:1.6}
.xcmg-page main :is(figcaption,figcaption a),
.energy-page main :is(figcaption,figcaption a) {font-size:var(--type-caption);line-height:1.6}
.xcmg-page main :is(.xcmg-note,.xcmg-small,.xcmg-variant,.xcmg-data-note),
.energy-page main :is(.type-label,.capacity-label,.range-note,.range-note a,
  .card-docs p,.charger-power-note,.source-links li,.source-links a,.source-details p) {
  font-size:var(--type-secondary);line-height:1.6;
}
.energy-page main .system-copy>p:not(.storage-eyebrow),
.energy-page main .advice-copy>p:not(.storage-eyebrow),
.energy-page main .charger-placeholder-copy p {
  font-size:var(--type-body);line-height:1.65;
}
.energy-page main .system-copy p.small-system-note,
.energy-page main .advice-action p {
  font-size:var(--type-secondary);line-height:1.6;
}
.energy-page main .model-details :is(p,a),
.energy-page main .model-details>div,
.energy-page main .connection-facts dd {font-size:var(--type-body);line-height:1.6}
.energy-page main .hero-spec span {font-size:var(--type-secondary);line-height:1.6}
.energy-page main p.storage-eyebrow {font-size:var(--type-kicker);line-height:1.5;letter-spacing:.055em}
.local-map .map-attribution,.aerial-location .map-attribution,
.local-map .map-attribution a,.aerial-location .map-attribution a {font-size:var(--type-caption);line-height:1.6}

/* EMS and drying use explicit pixel rules, so cover those components directly. */
.ems-page main :is(.ems-benefits p,.ems-module,.ems-process li span,
  .ems-faq details p,.ems-capability-grid p,.ems-ai-note p,
  .ems-example-text>p:not(.eyebrow),.ems-practice p:not(.eyebrow),
  .ems-contact p:not(.eyebrow)) {font-size:var(--type-body);line-height:1.65}
.ems-page main .ems-intro .lead {font-size:var(--type-lead);line-height:1.6}
.ems-page main .ems-grant>p:last-child,
.ems-page main .ems-order {font-size:var(--type-secondary);line-height:1.6}
.drying-page main :is(.drying-handling,.drying-section-heading p:not(.eyebrow),
  .drying-components p,.drying-history-content>p,.drying-faq details p,
  .drying-support p:not(.eyebrow)) {font-size:var(--type-body);line-height:1.65}
.drying-page main .drying-intro .lead {font-size:var(--type-lead);line-height:1.6}
.drying-page main :is(.grant-copy p,.drying-facts span,.drying-first-question) {
  font-size:var(--type-secondary);line-height:1.6;
}

/* Readable documents, tables and disclosures. Tables keep their scroll wrappers. */
.document-table,.document-table :is(th,td),
.xcmg-page main .xcmg-table :is(th,td),
.energy-page main :is(.mini-table th,.mini-table td,.storage-table th,.storage-table td) {
  font-size:var(--type-control);line-height:1.6;
}
.document-table caption,.energy-page main .mini-table caption {font-size:var(--type-caption);line-height:1.6}
main :is(.benefits-disclosure summary,.xcmg-technical summary,.model-details summary,.source-details summary) {
  font-size:var(--type-control);line-height:1.5;
}
.energy-page main .model-details summary,
.energy-page main .source-details summary,
.xcmg-page main .xcmg-technical summary {font-size:var(--type-control);line-height:1.5}

/* Preserve the carefully separated typography of the guarantee cards. */
.buy-benefit p,.xcmg-page .buy-benefits .buy-benefit p {font-size:var(--type-body);line-height:1.6}
.buy-benefit .guarantee-label,.xcmg-page .buy-benefits .buy-benefit .guarantee-label {
  font-size:var(--type-secondary);line-height:1.5;
}
.buy-benefit .guarantee-hours,.xcmg-page .buy-benefits .buy-benefit .guarantee-hours {font-size:19px;line-height:1.45}
.buy-benefit .guarantee-scope,.xcmg-page .buy-benefits .buy-benefit .guarantee-scope {
  font-size:var(--type-secondary);line-height:1.6;
}

/* Navigation and footer should not become miniature text on a phone. */
header.pitch-header nav {font-size:var(--type-control);line-height:1.5}
header.pitch-header nav>a,header.pitch-header nav>details>summary {font-family:inherit;font-size:inherit;font-weight:600}
header.pitch-header .header-call {font-size:18px}
.mobile-call {font-family:inherit;font-size:var(--type-control);line-height:1.5}
footer,footer .footer-group,footer .footer-identity p {font-size:var(--type-secondary);line-height:1.65}
footer .footer-group b {font-size:var(--type-control);line-height:1.5}
footer .footer-group a {font-size:var(--type-secondary);line-height:1.6}

@media(max-width:760px) {
  header.pitch-header .header-call {font-size:16px}
  .ems-page main .ems-intro .lead,.drying-page main .drying-intro .lead,
  .xcmg-page main .lead,.energy-page main .hero-lead {font-size:19px}
  .energy-page main .model-details :is(p,a) {overflow-wrap:anywhere}
}
}
