/* Shared type roles. Palette values are the single place to choose the pair/scale. */
body, button, input, select, textarea {
  font-family: var(--zam-font-body);
  font-optical-sizing: auto;
  font-synthesis: none;
}
body { font-size:var(--zam-body-type-size); font-weight:var(--zam-body-weight); }
h1, h2, h3, h4, h5, h6,
.main_zag, .sec_zag, .usl_zag, .proj_zag, .post_name, .port_name {
  font-family: var(--zam-font-display);
  letter-spacing: var(--zam-display-tracking);
  line-height: var(--zam-display-leading);
  text-transform:var(--zam-display-transform);
}
h1, .main_zag { font-weight:var(--zam-display-weight); }
h2 { font-weight:var(--zam-section-weight); }
h3, h4, h5, h6, .usl_zag, .proj_zag, .post_name, .port_name { font-weight:var(--zam-card-weight); }
.main_zag { font-size:var(--zam-hero-type-size); text-transform:var(--zam-hero-transform); }
.sec_zag { font-size:var(--zam-section-type-size); font-weight:var(--zam-section-weight); letter-spacing:var(--zam-section-tracking); text-transform:var(--zam-section-transform); }
.content_block h3, .proj_zag, .post_name, .port_name {
  font-size: var(--zam-card-type-size);
}
.usl_zag { overflow-wrap:anywhere; hyphens:auto; font-size:var(--zam-service-card-type-size); margin-bottom:var(--zam-service-title-gap); }
/* Brand mark and interface labels keep the functional sans role. */
.logo, .about_logo, .about_logo p, .foot_name, .foot_zag, .cat_name,
.main_col p, .usl_ico p, .menu, .phone, .butt_big, .butt_small {
  font-family: var(--zam-font-body);
}
.main_col p, .usl_ico p { font-weight:var(--zam-benefit-weight); }
.main_col p { font-size: var(--zam-benefit-type-size); line-height: 1.5; }
.main-menu .menu > li { font-size:var(--zam-nav-type-size); font-weight:var(--zam-nav-weight); letter-spacing:var(--zam-nav-tracking); }
.usl_text, .content_txt, .proj_podzag { font-size:var(--zam-copy-type-size); line-height:var(--zam-copy-leading); font-weight:var(--zam-copy-weight); }
.butt_big p, .usl_zakaz p, .usl_butt_vn, .etaps_butt, .proj_butt, .post_butt { font-size:var(--zam-action-type-size); }
.form_col input.form_butt, .form_col .wpcf7-submit { font-size:var(--zam-form-action-type-size); padding-inline:var(--zam-form-action-padding); white-space:normal; height:auto; min-height:var(--zam-form-action-min-height); }
.butt_small, .usl_butt { font-size:var(--zam-secondary-type-size); }

/* Shared UI roles: calm labels instead of competing italic/bold accents.
   Native parent layout and component order stay inherited. */
.butt_small, .usl_butt, .zakaz { font-style:normal; font-weight:var(--zam-secondary-weight); }
.menu, .phone, .butt_big, .foot_zag, .foot_name { font-synthesis: none; }
.phone { font-weight:var(--zam-phone-weight); }
.butt_big p, .usl_butt_vn, .etaps_butt, .form_col .wpcf7-submit { font-weight:var(--zam-action-weight); }
.cif, .about_cif, .char_sum, .usl_cena { font-variant-numeric: tabular-nums; }

/* Infographics stay in their inherited columns; only type roles change. */
.cif, .about_cif { font-size:var(--zam-metric-type-size); font-weight:var(--zam-metric-weight); letter-spacing:var(--zam-metric-tracking); }
.cif span, .about_cif span { font-size:var(--zam-metric-unit-size); }
.cif_text, .about_cif_text { font-size:var(--zam-metric-label-size); font-weight:var(--zam-metric-label-weight); }
.etap_col > p { font-size:var(--zam-step-label-size); font-weight:var(--zam-step-label-weight); }

/* Semantic emphasis and brand/UI labels never exceed Medium. */
b, strong, th, dt, label, .label, .badge, .logo p span, .foot_name, .foot_zag, .et_cif {
  font-weight:var(--zam-weight-medium);
}

/* Project details: one hierarchy for slider summaries and full case features. */
.port_name { margin-bottom:var(--zam-detail-title-gap); }
.char_one, .char_sum, .proj_name, .proj_val, .proj_sum {
  font-size:var(--zam-detail-type-size); line-height:var(--zam-detail-leading);
  font-weight:var(--zam-weight-normal);
}
.char_one, .char_sum { margin-bottom:var(--zam-detail-gap); }
.char_one { margin-right:var(--zam-detail-inline-gap); }
.char_one span, .char_sum span, .proj_val, .proj_sum span { font-weight:var(--zam-weight-medium); }
.char_sum span, .proj_sum span { font-size:var(--zam-amount-type-size); }
.port_text, .proj_text p, .proj_text li {
  font-size:var(--zam-copy-type-size); line-height:var(--zam-copy-leading); font-weight:var(--zam-weight-normal);
}

/* Form and contact roles use one readable scale across home, service and popup. */
.form_col > p { font-size:var(--zam-field-label-size); line-height:var(--zam-field-leading); font-weight:var(--zam-weight-medium); }
.form_col :is(input:not([type="checkbox"]):not([type="submit"]), select, textarea) {
  font-size:var(--zam-field-type-size); line-height:var(--zam-field-leading); font-weight:var(--zam-weight-normal);
}
.pol_row label, .pol_row .wpcf7-list-item-label { font-size:var(--zam-consent-type-size); line-height:var(--zam-field-leading); font-weight:var(--zam-weight-normal); }
.cont_tel, .cont_mail, .cont_adr { font-size:var(--zam-contact-type-size); line-height:var(--zam-contact-leading); font-weight:var(--zam-weight-normal); }
.cont_tel { font-weight:var(--zam-weight-medium); }
.cont_text, .soc { font-size:var(--zam-contact-copy-size); line-height:var(--zam-contact-leading); font-weight:var(--zam-weight-normal); }
