@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-Thin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-Book.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-SemiBolditalic.woff2") format("woff2");
  font-style: italic;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("./assets/fonts/PPNeueMontreal-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --font-sans: "PP Neue Montreal", sans-serif;
  --font-weight-thin: 100;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;

  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 40px;
  --space-3xl: 60px;
  --space-4xl: 96px;
  --card-content-padding: clamp(24px, 3.34vw, 32px);
  --card-description-color: rgba(255, 255, 255, 0.86);
  --layout-text-inset: var(--card-content-padding);

  --layout-gutter: clamp(16px, 2.8vw, 40px);
  --layout-gutter-wide: var(--layout-gutter);
  --layout-main-max: 1240px;
  --layout-wide-max: 1360px;
  --layout-main-width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-main-max));
  --layout-wide-width: min(calc(100% - (var(--layout-gutter-wide) * 2)), var(--layout-wide-max));
  --section-card-gap: clamp(44px, 5vw, 62px);
  --section-card-pad: var(--card-content-padding);

  /* Shared RU/EN scale. Layout breakpoints must not redefine type tokens.
     XL preserves the expressive greeting and short page titles. */
  --type-display-xl-size: clamp(54px, 12vw, 172px);
  --type-display-xl-line: 1;
  --type-display-xl-tracking: 0;
  --type-display-lg-size: clamp(44px, 8vw, 110px);
  --type-display-lg-line: 1.04;
  --type-display-lg-tracking: 0;
  --type-display-md-size: var(--type-heading-1-size);
  --type-display-md-line: 1.08;
  --type-display-md-tracking: 0;

  --type-heading-1-size: clamp(36px, calc(24px + 3.5vw), 74px);
  --type-heading-1-line: 1.08;
  --type-heading-1-tracking: 0;
  --type-heading-2-size: clamp(30px, calc(20px + 2.5vw), 56px);
  --type-heading-2-line: 1.12;
  --type-heading-2-tracking: 0;
  --type-heading-3-size: clamp(24px, calc(20px + 1vw), 34px);
  --type-heading-3-line: 1.15;
  --type-heading-3-tracking: 0;
  --type-card-heading-size: var(--type-heading-3-size);
  --type-card-heading-line: var(--type-heading-3-line);
  --type-card-heading-tracking: var(--type-heading-3-tracking);

  --type-lead-size: clamp(20px, calc(16px + 1.2vw), 34px);
  --type-lead-line: 1.3;
  --type-lead-tracking: 0;
  --type-body-lg-size: clamp(18px, calc(16px + 0.5vw), 24px);
  --type-body-lg-line: 1.5;
  --type-body-lg-tracking: 0;
  --type-body-size: 16px;
  --type-body-line: 1.5;
  --type-body-tracking: 0;
  --type-body-sm-size: 14px;
  --type-body-sm-line: 1.45;
  --type-body-sm-tracking: 0;
  --type-label-size: 12px;
  --type-label-line: 1.2;
  --type-label-tracking: 0.08em;
  --type-button-size: 14px;
  --type-button-line: 1.2;
  --type-button-tracking: 0;
  --type-caption-size: var(--type-label-size);
  --type-caption-line: 1.4;
  --type-form-size: var(--type-body-sm-size);
  --type-form-line: 1.4;
  --type-reading-measure: 65ch;
}
