@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-100.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-100.woff") format("woff");
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-300.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-300.woff") format("woff");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-500.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-500.woff") format("woff");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-500.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-500.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-700.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-700.woff") format("woff");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Museo Sans Cyrl";
  src: url("/fonts/MuseoSansCyrl-900.woff2") format("woff2"),
    url("/fonts/MuseoSansCyrl-900.woff") format("woff");
  font-weight: 900;
  font-style: normal;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Museo Sans Cyrl", Roboto, sans-serif;
  background: var(--surface-dark);
  color: var(--text);
}

body *:not(i):not([class^="ri-"]):not([class*=" ri-"]):not(.footer-heading):not(.footer-heading *):not(.banner-description):not(.start-card p):not(.tool-body):not(.badge):not(.service-title):not(.footer-item[href^="tel:"] div):not(.footer-item[href^="mailto:"] div):not(.footer-item[href^="mailto:"] span):not(.links a):not(.links a *) {
  font-family: "Museo Sans Cyrl", Roboto, sans-serif !important;
}

/* Главная: колонка на всю высоту окна, чтобы у .page / .page-sections работали width/height 100% */
body:has(> main.page) {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page {
  background: var(--bg);
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.page-sections {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: clamp(16px, 2.2vw, 40px);
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(8px, 1.2vw, 20px);
}

#home-page-sections.page-sections {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  align-self: stretch;
}

.page-sections > section {
  display: flex;
  width: 100%;
}

html[data-device-type="mobile"] .page-sections,
html[data-device-type="minTablet"] .page-sections {
  padding: 0;
  padding-bottom: 16px;
}

html[data-device-type="tablet"] .page-sections,
html[data-device-type="desktop"] .page-sections,
html[data-device-type="desktop1280"] .page-sections {
  padding: 24px;
}

html[data-device-type="tablet"] .page-sections,
html[data-device-type="desktop"] .page-sections,
html[data-device-type="desktop1280"] .page-sections {
  padding-bottom: 16px;
}

html[data-device-type="desktop"] .page-sections {
  flex: 1 1 auto;
  padding-bottom: 16px;
  gap: 20px;
}

html[data-device-type="desktop1280"] .page-sections,
html[data-device-type="desktop1920"] .page-sections,
html[data-device-type="desktop2560"] .page-sections {
  flex: 1 1 auto;
  padding-bottom: 16px;
}

html[data-device-type="desktop1920"] .page-sections {
  padding-bottom: 16px;
}

html[data-device-type="desktop2560"] .page-sections {
  padding-bottom: 24px;
}

html[data-device-type="desktop1920"] .page-sections {
  gap: 12px;
}

html[data-device-type="desktop2560"] .page-sections {
  gap: 36px;
}

.page-footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  padding: 48px;
  background: var(--navy-2);
  margin-top: auto;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  flex-shrink: 0;
}

html[data-device-type="desktop"] .page-footer,
html[data-device-type="desktop1280"] .page-footer {
  padding: 48px 24px;
}

html[data-device-type="desktop1280"] .page-footer {
  padding-top: 20px;
  padding-bottom: 20px;
}

html[data-device-type="desktop"] .page-footer {
  padding: 24px 24px;
}

html[data-device-type="desktop1920"] .page-footer {
  padding: 18px 160px;
}

html[data-device-type="desktop1920"] #home-page-footer {
  padding-top: 24px;
}

html[data-device-type="desktop2560"] .page-footer {
  padding: 48px 240px;
}

html[data-device-type="minTablet"] .page-footer,
html[data-device-type="tablet"] .page-footer,
html[data-device-type="mobile"] .page-footer {
  padding: 24px;
}
